劉江舟 段 立
(海軍工程大學(xué) 武漢 430000)
隨著《“十四五”規(guī)劃和2035年遠(yuǎn)景目標(biāo)綱要》的發(fā)布,網(wǎng)絡(luò)安全被列為未來中國重點(diǎn)發(fā)展建設(shè)的工作之一,也標(biāo)志著我國的網(wǎng)絡(luò)安全產(chǎn)業(yè)也進(jìn)入了新時(shí)期。在網(wǎng)絡(luò)安全日新月異的發(fā)展情況下,線上學(xué)習(xí)因?yàn)閷?shí)時(shí)性和時(shí)效性,成為了多數(shù)網(wǎng)絡(luò)安全從業(yè)者的學(xué)習(xí)手段,特別地,文本資源以技術(shù)文章和短訊等形式,成為了用戶獲取網(wǎng)絡(luò)安全知識(shí)的重中之重。然而,互聯(lián)網(wǎng)在提供了海量文本資源的同時(shí),也存在著部分問題,現(xiàn)階段以主題為標(biāo)準(zhǔn)的分類方式,雖然可以將文本資源進(jìn)行了粗分類,但是分類的各個(gè)主題之間缺乏緊密聯(lián)系,導(dǎo)致相關(guān)文本資源分布分散,缺乏傳統(tǒng)課程學(xué)習(xí)的系統(tǒng)性和連續(xù)性,不利于用戶快速準(zhǔn)確獲取目標(biāo)文本包含的知識(shí)信息。
因此,本文提出基于Albert-TextCNN的網(wǎng)絡(luò)安全領(lǐng)域文本分類模型,目的是在網(wǎng)絡(luò)安全知識(shí)體系下,快速準(zhǔn)確地提取文本中的知識(shí)點(diǎn),從而實(shí)現(xiàn)按照知識(shí)點(diǎn)對(duì)網(wǎng)絡(luò)安全文本進(jìn)行分類,確保用戶可以根據(jù)自己感興趣的知識(shí)點(diǎn)來進(jìn)行學(xué)習(xí),達(dá)到用戶按圖索驥的目的。
文本分類作為自然語言處理領(lǐng)域的重要課題[1],已經(jīng)有了很多年的發(fā)展。多標(biāo)簽分類總體可以分為兩種:一是傳統(tǒng)的機(jī)器學(xué)習(xí)的方法;二是深度學(xué)習(xí)的方法。其中,機(jī)器學(xué)習(xí)方法又可以分為問題轉(zhuǎn)化方法和算法自適應(yīng)方法。問題轉(zhuǎn)化方法是指把多標(biāo)簽分類問題轉(zhuǎn)換為一個(gè)或者多個(gè)單標(biāo)簽分類問題,從而可以用現(xiàn)存的單標(biāo)簽分類算法來實(shí)現(xiàn)多標(biāo)簽分類的目的;算法自適應(yīng)的方法是指直接根據(jù)問題本身,將修改現(xiàn)存的單標(biāo)簽分類算法進(jìn)行調(diào)整,用來直接處理多標(biāo)簽學(xué)習(xí)問題。隨著深度學(xué)習(xí)在計(jì)算機(jī)視覺和語音識(shí)別等領(lǐng)域取得的巨大進(jìn)步,神經(jīng)網(wǎng)絡(luò)模型也逐漸被運(yùn)用到了多標(biāo)簽文本分類問題上。Zhang等[2]和 Nam等[3]使用全連接神經(jīng)網(wǎng)絡(luò)來解決多標(biāo)簽文本分類問題,該方法雖然可以適用于大規(guī)模的文本分類問題,但卻未充分考慮標(biāo)簽之間的關(guān)聯(lián)關(guān)系,易導(dǎo)致反義標(biāo)簽共現(xiàn)的問題。文獻(xiàn)[4]提出的TextCNN模型,首次將CNN結(jié)構(gòu)引入到文本分類領(lǐng)域,用于句子級(jí)別的文本分類,取得了一定的效果。針對(duì)TextCNN忽略句子上下文的問題,文獻(xiàn)[5]同時(shí)結(jié)合了RNN與CNN的優(yōu)點(diǎn),提出了TextRCNN模型。隨著transformer和Bert的廣泛應(yīng)用,Sun[6]等將Bert用于解決文本分類問題,并介紹了Bert的微調(diào)方法,進(jìn)一步讓Bert適用于具體的多標(biāo)簽分類問題。
在自然語言處理領(lǐng)域,由于計(jì)算機(jī)無法識(shí)別文本語言,因此,需要將文本語言轉(zhuǎn)換為計(jì)算機(jī)語言,即解決文本表示問題[7]。其中,常見的有布爾表示和分布式表示。
布爾表示是根據(jù)囊括所有詞的字典索引號(hào),向量的維度是整個(gè)字典的長(zhǎng)度,并且整個(gè)向量中只有一個(gè)維度取值為1,其余維度都是0,其中,取值為1的代表出現(xiàn)該詞。布爾表示雖然擁有易于理解,便于生成的特點(diǎn),但是仍然存在幾個(gè)較為明顯的缺點(diǎn):一是向量維度爆炸。例如:當(dāng)字典規(guī)模較大時(shí),相應(yīng)地向量維度也會(huì)十分龐大,但是有效數(shù)據(jù)卻十分稀疏,不利于對(duì)向量的存儲(chǔ)。二是無法體現(xiàn)詞之間的關(guān)聯(lián)。因?yàn)槊總€(gè)詞向量之間都是正交關(guān)系,因此無法從數(shù)學(xué)角度體現(xiàn)詞向量之間的關(guān)聯(lián)關(guān)系,不符合實(shí)際工程需求。
分布式表示由Hinton于1986年提出,即后來廣泛應(yīng)用的詞向量。分布式表示是通過訓(xùn)練將文本中的每個(gè)詞用一個(gè)固定維度的向量表示,從而全部詞向量共同組成一個(gè)向量空間,其中各個(gè)詞向量相當(dāng)于向量空間中的一個(gè)點(diǎn),從而,使得詞向量之間包含了詞之間的語義關(guān)系。因此,我們可以用歐式距離,余弦相似度來計(jì)算詞向量之間的語義相似度。
Bert模 型[8](Bidirectional Encoder Representa?tions from Transformer),由谷歌公司于2018年提出,因其在自然語言處理的各個(gè)領(lǐng)域均取得了不俗的成績(jī)而被業(yè)界所熟知。根據(jù)Bert英文全稱可以了解到該模型大量疊加使用transformer的編碼模塊,代替之前多數(shù)模型較為常用的Bi-LSTM[9],因此具有執(zhí)行并行運(yùn)算的能力,同時(shí),transformer的編碼器可以通過多頭注意力機(jī)制及其前饋網(wǎng)絡(luò)實(shí)現(xiàn)文本前后信息的交互,因此在處理文本信息方面具有極強(qiáng)的表征能力。其模型結(jié)構(gòu)如圖1所示,初始字向量E1,E2,…EN通過由多個(gè) transformer組成的編碼器,最后輸出包含豐富語義信息的字向量T1,T2,…TN。
圖1 Bert結(jié)構(gòu)示意圖
Bert最初的目標(biāo)是利用大規(guī)模無標(biāo)注語料訓(xùn)練,進(jìn)而豐富語義信息的文本表示,即文本的語義表示。但是,由于Bert在大規(guī)模語料上訓(xùn)練所需的配置高,時(shí)間長(zhǎng),因此,Google公司提供了預(yù)訓(xùn)練模型,方便大眾對(duì)Bert微調(diào)[10],進(jìn)而完成相應(yīng)的下游任務(wù)。
TextCNN的基本思想是利用CNN的結(jié)構(gòu)進(jìn)行分類,該模型將詞向量組成的句子利用不同大小的窗口來捕捉句子的局部信息,提取相關(guān)特征,整體上比較適用于短文本任務(wù)。
從結(jié)構(gòu)上講,TextCNN分為輸入層、卷積層和池化層,如圖2。
圖2 TextCNN結(jié)構(gòu)
TextCNN的輸入層為一個(gè)文本的字向量組成的矩陣,由橫向?yàn)槊總€(gè)字向量,同時(shí)為了保持字向量長(zhǎng)度,還對(duì)原文本進(jìn)行了補(bǔ)0操作。通常,TextCNN的輸入向量來源于上游任務(wù)。
在卷積層中,不同于計(jì)算機(jī)視覺中的CNN正方形卷積核可以在圖片矩陣上進(jìn)行縱向和橫向兩個(gè)方向的移動(dòng);TextCNN的卷積核與詞向量的寬度相同,僅需要在縱向進(jìn)行移動(dòng)。由于卷積核需要詞向量的寬度一致,作為滑動(dòng)窗口的卷積核,不同的卷積核大小,會(huì)使窗口內(nèi)包含的語義信息也會(huì)不同,根據(jù)實(shí)際工程需求可以選擇不同卷積核。
TextCNN的池化層采用了最大池化,即從滑動(dòng)窗口中產(chǎn)生的特征向量中篩選出最大特征,進(jìn)一步將特征向量進(jìn)行拼接,從而得到一個(gè)固定長(zhǎng)度的向量表示。
常見的網(wǎng)絡(luò)安全領(lǐng)域文本的分類是按照其主題進(jìn)行分類,但是此類標(biāo)準(zhǔn)的分類主題之間缺乏彼此的聯(lián)系,不利于用戶選擇適合自己興趣的文本。在網(wǎng)絡(luò)安全領(lǐng)域,一個(gè)文本資源通常會(huì)包含多個(gè)網(wǎng)絡(luò)安全知識(shí)點(diǎn),因此,本文提出以知識(shí)點(diǎn)為標(biāo)準(zhǔn),將文本資源按照知識(shí)點(diǎn)進(jìn)行分類。同時(shí),通過整理所得的知識(shí)體系,幫助用戶了解知識(shí)點(diǎn)之間的包含與被包含關(guān)系,通過知識(shí)點(diǎn)關(guān)聯(lián)文本資源,從而有利于用戶根據(jù)自身知識(shí)水平進(jìn)行網(wǎng)絡(luò)安全領(lǐng)域文本資源的選擇。
圖3 為模型結(jié)構(gòu),本文采用 Albert[11]預(yù)訓(xùn)練模型對(duì)文本進(jìn)行向量提取,從而作為多標(biāo)簽文本分類的輸入。
圖3 Albert-TextCNN的多標(biāo)簽分類模型
基于模型更加輕量化,效果更好,訓(xùn)練更快的目的,Albert(a lite bert,精簡(jiǎn)版Bert)預(yù)訓(xùn)練模型,在Bert的基礎(chǔ)上,Albert有以下三個(gè)改進(jìn)點(diǎn):
一是對(duì)嵌入?yún)?shù)進(jìn)行因式分解。將詞嵌入層映射到低維空間進(jìn)行降維,再映射到隱藏層;
二是采用跨層參數(shù)共享的策略,避免參數(shù)量隨著網(wǎng)絡(luò)深度的增加而增多;
三是解決了Bert下句預(yù)測(cè)(Next Sentence Pre?dict,NSP)損失抵消的問題,改用語序預(yù)測(cè)(Sen?tence-Order Prediction,SOP)來代替NSP作為訓(xùn)練任務(wù)。
綜合以上三個(gè)特點(diǎn),Albert模型參數(shù)量?jī)H為Bert的1/18,訓(xùn)練速度卻為Bert的17倍,在顯著減少了參數(shù)量的同時(shí)仍保持了較高的模型效果。因此,比較適合小規(guī)模的文本分類任務(wù)。本文采用的Albert_small_zh預(yù)訓(xùn)練模型在包括多個(gè)百科、新聞、互動(dòng)社區(qū)多種語境的約30G中文語料上進(jìn)行訓(xùn)練,累計(jì)學(xué)習(xí)訓(xùn)練超過100億漢字,同時(shí),語料中包含部分中文語料中的常用英文。因此,結(jié)合Albert模型本身的三個(gè)特點(diǎn),該模型適用于任務(wù)規(guī)模相對(duì)較小,同時(shí)實(shí)時(shí)性要求高的包含少量英文的分類任務(wù)。因此,本文采用的Albert_small_zh包含4個(gè)隱藏層,12頭注意力機(jī)制,總計(jì)4M的參數(shù)量。
假設(shè)經(jīng)Albert_small_zh預(yù)訓(xùn)練模型處理后的第i個(gè)文本中共有n個(gè)詞,則在TextCNN輸入層中的初始輸入E可以表示為
在卷積層中,利用卷積核進(jìn)行卷積操作,進(jìn)而提取窗口內(nèi)文本的局部信息:
其中,W 為權(quán)值矩陣,b為偏置項(xiàng),f(?)為激活函數(shù)。
在最大池化層中可以得到,全局特征向量:
最后,進(jìn)入全連接層進(jìn)行分類。
實(shí)驗(yàn)硬件:CPU為i5-8400,顯卡為RTX2060,顯存8G;實(shí)驗(yàn)軟件:操作系統(tǒng)為Windows10 64位,Python版本為3.8,TensorFlow版本為1.15。
本實(shí)驗(yàn)使用的數(shù)據(jù)集共6771條,每條包含文本資源的標(biāo)題及關(guān)鍵詞,文本資源從安全客、Free?buf等網(wǎng)絡(luò)安全網(wǎng)站爬取得到。按照8:2的比例分為訓(xùn)練集和驗(yàn)證集。同時(shí),根據(jù)看雪論壇等多個(gè)網(wǎng)絡(luò)安全權(quán)威網(wǎng)站整理得到網(wǎng)絡(luò)安全領(lǐng)域相關(guān)知識(shí)共216個(gè),即以上文本資源覆蓋216個(gè)知識(shí)點(diǎn)標(biāo)簽,如圖4為部分知識(shí)點(diǎn)。
圖4 網(wǎng)絡(luò)安全知識(shí)點(diǎn)標(biāo)簽(部分)
對(duì)于常規(guī)的文本分類任務(wù),該數(shù)據(jù)集屬于小型語料庫,同時(shí)由于樣本本身存在類別較多,類別不平衡等現(xiàn)象,會(huì)對(duì)模型的分類效果產(chǎn)生較大影響。因此按照文獻(xiàn)[12]提出的EDA方法通過同義詞替換法(Synonyms Replace,SR)、隨機(jī)插入法(Ran?domly Insert,RI)、隨機(jī)交換法(Randomly Swap,RS)和隨機(jī)刪除法(Randomly Delete,RD)對(duì)文本數(shù)據(jù)進(jìn)行增強(qiáng),減小類別不平衡對(duì)模型效果的影響。
本實(shí)驗(yàn)?zāi)P团c對(duì)比模型通過以下5個(gè)實(shí)驗(yàn)指標(biāo)進(jìn)行評(píng)估:準(zhǔn)確率(Accuracy)、精確率(Preci?sion)、召回率(Recall)、F1值和Hamming Loss對(duì)分類結(jié)果進(jìn)行分析。
精確率(Precision,P)表示在預(yù)測(cè)為正的樣本中,被正確預(yù)測(cè)所占樣本比例,該指標(biāo)體現(xiàn)了模型的查準(zhǔn)率。召回率(Recall,R)表示在預(yù)測(cè)正確的樣本中,正樣本所占樣本比例,該指標(biāo)可以體現(xiàn)模型的查全率。F1值則是由精確率和召回率的加權(quán)調(diào)和平均計(jì)算得來,是對(duì)精確率和召回率的綜合考察。準(zhǔn)確率(Accuracy,A)表示在分類正確的標(biāo)簽數(shù)量占標(biāo)簽總量的比例。在多標(biāo)簽分類任務(wù)中,由于標(biāo)簽眾多不能關(guān)注每一個(gè)標(biāo)簽的指標(biāo),因此,使用Macro-precision、Macro-recall和 Macro-F1來進(jìn)行度量,同理,其值越大,代表模型的性能越好。
其中,TP表示將正樣本預(yù)測(cè)為正,F(xiàn)P表示將負(fù)樣本預(yù)測(cè)為正,F(xiàn)P表示將正樣本預(yù)測(cè)為負(fù),TN表示將負(fù)樣本預(yù)測(cè)為負(fù)。
Hamming Loss(HL)表示標(biāo)簽被誤分類的個(gè)數(shù),該值越小表示模型的性能越好。
其中,N表示樣本的數(shù)量,L是標(biāo)簽的總數(shù),Yi,j表示第i個(gè)樣本真實(shí)標(biāo)簽集中的第j個(gè)標(biāo)簽,Pi,j表示第i個(gè)樣本預(yù)測(cè)標(biāo)簽集中的第j個(gè)標(biāo)簽,XOR表示異或運(yùn)算。
本采用以下兩個(gè)模型進(jìn)行對(duì)比實(shí)驗(yàn):
1)Albert文本分類模型:模型以Albert模型作為詞向量模型,把詞向量直接接入全連接層進(jìn)行分類。
2)Albert+Dense文本分類模型:模型以Albert模型作為詞向量模型,但是把多標(biāo)簽分類問題當(dāng)作多個(gè)判斷是否屬于該類標(biāo)簽的二分類問題。
為防止實(shí)驗(yàn)中偶然因素的干擾,實(shí)驗(yàn)結(jié)果均運(yùn)行10次求均值,從而得到表1中的結(jié)果。
表1 實(shí)驗(yàn)結(jié)果對(duì)比
由表中結(jié)果可知,本文采用的在網(wǎng)絡(luò)安全知識(shí)體系下的Albert+TextCNN可以有效提升模型效果,在準(zhǔn)確率、精確率、召回率和F1值上均可取得最大值,與表現(xiàn)最好的對(duì)比模型Albert+Dense相比分別在Precision、reccall、F1和accuracy指標(biāo)上高出0.21、0.36、0.32和0.20,且Hamming Loss最小。
同時(shí),由圖5和圖6可知,在網(wǎng)絡(luò)安全數(shù)據(jù)集上,Albert+TextCNN模型與其他兩個(gè)模型對(duì)比,ac?curacy曲線最早達(dá)到穩(wěn)定,在10K step附近達(dá)到穩(wěn)定,并且曲線明顯高于其他兩個(gè)模型。同時(shí),Al?bert+TextCNN模型loss曲線下潛深度更深,loss更小,而且曲線整體穩(wěn)步收斂。
圖5 模型accuracy曲線對(duì)比
圖6 模型loss曲線對(duì)比
綜合以上兩點(diǎn),實(shí)驗(yàn)驗(yàn)證了Albert+TextCNN模型的有效性,本文提出的模型能夠很好地利用Al?bert對(duì)文本強(qiáng)大的表示學(xué)習(xí)能力,再通過TextCNN的卷積核進(jìn)一步提取文本的語義信息,同時(shí)輔助以網(wǎng)絡(luò)安全知識(shí)體系下標(biāo)簽之間的先驗(yàn)知識(shí),增強(qiáng)了模型在文本多標(biāo)簽分類任務(wù)中的識(shí)別能力在與對(duì)比實(shí)驗(yàn)?zāi)P偷谋容^中具有一定的優(yōu)勢(shì)。
本文提出了在網(wǎng)絡(luò)安全知識(shí)體系下,基于Al?bert-TextCNN的網(wǎng)絡(luò)安全領(lǐng)域文本分類模型。經(jīng)過實(shí)驗(yàn)對(duì)比,該模型優(yōu)于同類型的多標(biāo)簽分類模型,可以有效地抽取文本知識(shí)點(diǎn),實(shí)現(xiàn)對(duì)文本按照知識(shí)點(diǎn)標(biāo)簽的快速分類。
下一步,本文將進(jìn)一步將模型結(jié)合推薦算法,從知識(shí)點(diǎn)角度出發(fā),為精準(zhǔn)有效地推薦相關(guān)的文本資源,實(shí)現(xiàn)智能導(dǎo)學(xué)的目標(biāo)。