廉龍穎,孔 薩,郭京偉
(黑龍江科技大學 計算機與信息工程學院, 哈爾濱 150022)
隨著互聯(lián)網技術的快速發(fā)展,網絡空間安全形勢日益嚴峻,網絡攻防信息越來越豐富,呈現(xiàn)海量、異構、領域交叉等特點。從海量數(shù)據中挖掘網絡空間安全知識,采用知識圖譜模型進行存儲,可實現(xiàn)知識管理、情報分析、攻擊預測與溯源等智能應用。如何快速準確地從非結構化的文本中抽取出有效實體是構建網絡空間安全知識圖譜的核心任務。
在實體識別研究的早期階段主要基于規(guī)則的方法,第六屆消息理解系列會議所有研究都基于詞性規(guī)則[1]和短語規(guī)則[2]的方法。在基于規(guī)則的方法中,最具代表性的是基于詞典的方法[3],主要采用字符串匹配的方式,從文本中找出與詞典中最相似的字符串進行實體識別,其主要優(yōu)勢在于簡單,但識別效果一般。因此,研究者們開始分析上下文語義信息,研究基于規(guī)則匹配實體識別方法。Fukuda等[4]基于生物領域詞典利用字符串規(guī)則來抽取實體。鄭家恒等[5]根據中文構詞法建立規(guī)則庫,通過構詞和過濾規(guī)則識別網絡新詞語實體?;谝?guī)則的實體識別方法優(yōu)點是比較接近人類的思維方式,表述直觀,易于推理,準確率較高;缺點是規(guī)則的制定依賴于領域專家,僅適用于某個特定領域小規(guī)模語料,通用性和可移植性較差,并且規(guī)則之間可能會發(fā)生沖突,此時,機器學習在自然語言處理領域開始興起?;跈C器學習的方法分為基于特征和神經網絡的方法,包括語言模型[6]、隱馬爾可夫模型[7]、二階隱馬爾可夫模型[8]、決策數(shù)[9]、最大熵模型[10]、支持向量機[11]、條件隨機場[12]、長短時記憶網絡[13]等。與規(guī)則方法相比,基于機器學習的實體識別方法優(yōu)點是不需要太多的領域知識和人工干預,比較客觀,靈活且健壯;缺點是需要人工標注數(shù)據,容易出現(xiàn)數(shù)據稀疏問題。由此,近年來,研究者們開始關注機器學習與規(guī)則相結合的實體識別方法,Lample等[14]提出LSTM+CRF的方法,通過獲取上下文的序列信息完成命名實體識別任務。Huang等[15]首次利用Bi-LSTM模型結合CRF模型進行命名實體識別。這些方法在垂直領域的實體識別中均得到廣泛應用,但由于中文分詞模型對專有名詞的準確率不高的問題,這些模型在執(zhí)行中文實體識別的準確性還有一定的提升空間。BERT[16]是由Google提出的一種語言表示模型,它使用雙向Transformer編碼器可得到依賴上下文的字向量,因此,在傳統(tǒng)模型中融入BERT模型進行實體識別成為研究熱點。謝騰等[17]通過BERT模型生成詞向量,在人民日報等語料庫完成中文實體識別。陳劍等[18]基于BERT模型對司法文書進行實體識別。
盡管實體識別研究已取得了豐富的成果,但在網絡空間安全領域中,實體類型多種多樣,尤其與網絡攻防相關的實體名稱專業(yè)性較強,如“ARP欺騙”,一些實體結構復雜,邊界劃分困難,如“限制SYN流量”;還有一些實體與上下文關聯(lián)性強,在不同場景中表達的語義也不同,如“掃描”,因此,針對通用或其它領域語料庫的實體識別模型無法在網絡空間安全領域得到有效應用,需要專門研究針對領域內特定應用場景的實體識別方法。魏笑等[19]提出了基于部件CNN的網絡安全實體識別方法。李濤等[20]設計了融合動態(tài)注意力機制的Bi-LSTM模型對網絡安全實體和關系進行了聯(lián)合抽取。秦雅等[21]提出了基于特征模板的網絡安全實體識別方法。經調研發(fā)現(xiàn),針對網絡空間安全領域實體識別的研究較少,且多使用傳統(tǒng)的Word2vec模型作為嵌入方式,實體識別性能也有待提高。
為解決網絡空間安全領域實體識別問題,筆者提出在前期研究的Bi-LSTM+CRF基礎模型上,融入BERT模型,針對網絡攻防相關的12類實體,以自建語料庫作為實驗數(shù)據集進行預訓練,充分挖掘上下文語義信息,提升網絡空間安全實體識別性能。
網絡空間安全實體識別可以看視為序列標注問題,即從給定非結構化文本中找出每個字符對應的實體標簽。句子是語料庫的基本單元,每個句子定義為一個序列X={X1,X2,…,Xn},在標注模型的指導下,識別句子X中的實體,即給出標注序列Y={Y1,Y2,…,Yn}。例如,句子X為“攻擊者使用偽造ARP請求和應答數(shù)據包更新計算機的緩存實現(xiàn)ARP欺騙”,其對應的標注序列Y是“B-per I-per I-per O O B-att I-att B-prot I-prot I-prot B-net I-net O B-net I-net B-net I-net I-net O O B-hard I-hard I-hard O B-net I-net O O B-att I-att I-att I-att I-att”。
實體識別模型結構如圖1所示。首先,將預處理后的標注語料通過BERT層預訓練模型進行雙向編碼得到字向量,然后,將字向量輸入Bi-LSTM層進一步學習上下文特征,最后,利用CRF層獲得實體標注結果,實現(xiàn)網絡空間安全實體識別。
圖1 模型結構Fig. 1 Structure of model
BERT層主要任務是將輸入文本轉換為向量,通過遮蔽語言模型和下一句預測兩個無監(jiān)督訓練過程,獲取詞級和句子級特征。BERT不像Word2vec等傳統(tǒng)語言模型僅簡單地將句子編碼按順序拼接起來,是一個多層雙向模型,底層主要獲取詞級別的特征信息,中層主要學習句級別特征信息,而頂層則是捕獲全句的語義信息。
在網絡空間安全實體識別任務中,以字為單位作為模型輸入。對于文本語句,首先,將字序列的部分字進行全詞遮蔽,然后,在句子開頭添加一個CLS標記,句子間使用SEP標記進行分隔,再將字向量、位置向量和句子分割向量三部分直接疊加,輸入到深層雙向Transformer編碼器進行特征提取,最終,生成包含語義特征的字向量。BERT模型核心部分是Transformer編碼器,其結構如圖2所示。
圖2 Transformer編碼器結構Fig. 2 Structure of Transformer encoder
在每個單元中都由自注意力機制和前饋神經網絡組成,其中自注意力機制是編碼器的關鍵部分,用于計算每個字與其它字之間的相互關系,目的是實現(xiàn)句子中每個字無論距離遠近都可以與其它字進行編碼。
LSTM是一種特殊的RNN模型,它在傳統(tǒng)RNN基礎上引入輸入門、輸出門和遺忘門等門限控制和記憶單元,記憶單元結構如圖3所示。
圖3 LSTM記憶單元結構Fig. 3 Structure of LSTM memory unit
輸入門決定哪些新信息可以更新,輸出門決定輸出哪些信息,遺忘門決定遺忘哪些信息,使LSTM能夠利用遠距離信息的能力大幅度提升。LSTM能夠獲得前文信息,但不能獲得后文信息,而在網絡空間安全實體識別中,前文與后文信息都非常重要,因此采用Bi-LSTM模型,將前后兩個方向的LSTM結構連接到同一個輸出,以此來充分捕獲前文和后文的上下文特征,從而獲取更加全面的語義理解。Bi-LSTM層將預訓練后的網絡空間安全文本向量輸入到前向LSTM和后向LSTM中進行計算,將前向輸出隱狀態(tài)序列與后向輸出的隱狀態(tài)序列進行拼接,得到最終完整的表示結果并輸出。
CRF是一個典型的條件概率分布模型,鏈式結構是最常用的CRF結構,如圖4所示。
圖4 鏈式CRFFig. 4 Linear CRF
由圖4可見,可以充分且有效地考慮標簽前后的依賴關系,由于網絡空間安全實體標簽之間并不是獨立存在的,而Bi-LSTM層不會考慮標簽之間的依賴關系,因此,經過Bi-LSTM層進行標注返回的結果可能存在與實際不符的情況。如B-att標簽后面應該是I-att,二者之間存在依賴關系,但Bi-LSTM層輸出可能會在B-att標簽之后出現(xiàn)I-per標簽,此時就不能正確識別出一個攻擊方法實體,因此,為能充分對標注結果進行約束,在Bi-LSTM層后使用CRF層。CRF可以根據給定預測序列,計算得出標注序列的條件概率分布,然后使用Veterbi算法求解出最大可能序列作為標注結果。在CRF層將Bi-LSTM層的輸出作為輸入,通過學習上下文信息預測出最大概率的標簽注序列,從而實現(xiàn)網絡空間安全實體識別。
通過分析網絡空間安全領域中與網絡攻防相關的數(shù)據資源,創(chuàng)建網絡空間安全語料庫,語料句長不超過512,并對部分語料進行人工標注。網絡空間安全實體識別問題,不同于對人名、地名、機構名等傳統(tǒng)的命名實體識別,根據本體構建結果提取自定義12個實體類型。網絡空間安全實體類別定義如表1所示。
表1 網絡空間安全實體
語料庫標注質量對訓練模型的性能起到決定性的作用,實驗中選取500條語料由專業(yè)人員進行手工標注,使用BIO標注模式[22]將標注語料轉化為實驗數(shù)據集,經去重處理后得到標注實體881個。B表示實體開始,I表示實體中間,O表示非實體。對于網絡空間安全的12類實體,將其第一個字符標注為B-(實體標識符號),后續(xù)字符標注為I-(實體標識符號),與本領域無關的非實體則標注為O。標注示例如表2所示。
表2 標注示例
經過預處理后的語料按7∶3的比例劃分為訓練集和測試集,在Python 3.7.3和Tensorflow 1.14.0環(huán)境下進行實驗。字向量選用Google已經訓練好的BERT模型,初始化參數(shù)使用默認值,在訓練過程中自適應調整。經過多次調試,將訓練集和測試集的核心參數(shù)設置為最優(yōu)組合:隱藏單元數(shù)量為512,單元數(shù)為256,學習率為0.001,梯度裁剪為5,迭代次數(shù)為100。
為了驗證文中提出的融合模型對網絡空間安全實體識別的有效性,在相同數(shù)據集上,分別采用Word2vec模型和BERT模型作為嵌入方式獲得向量表示,在前期研究的Bi-LSTM+CRF模型[23]上進行實驗,使用精確率P、召回率R和調和平均值F三個指標對網絡空間安全實體識別性能進行評估,結果對比如表3所示。
表3 結果對比
從表3可知,對于相同數(shù)據集,文中提出的使用BERT預訓練語言模型生成字向量,F(xiàn)值達到了0.884 2,比采用Word2vec模型提高了3.42%,實體識別效果更為理想。實驗結果表明,采用BERT模型可以充分提取字級、詞級和句子級的特征,通過預訓練的字向量能夠更好的表征上下文語義,增強了模型泛化能力,尤其對于數(shù)據集規(guī)模較小的垂直領域實體識別非常有效,并且對于由英文、中文和數(shù)字組合而成的病毒、漏洞等類型,也可以避免產生因分詞錯誤影響實體識別效果的問題。在實驗中也發(fā)現(xiàn),融入BERT模型后訓練耗費時間也有大幅度增加。
(1)在Bi-LSTM+CRF基礎模型上,加入BERT預訓練語言模型,獲取表征上下文語義字向量,增強了模型泛化能力。
(2)根據網絡空間安全的應用需求,定義了與網絡攻防相關的12類實體類型與標注規(guī)范,收集和整理非結構化文本,建立了網絡空間安全語料庫作為實驗數(shù)據集,經過對比實驗表明,融合BERT模型F值達到了0.884 2,總體識別效果更佳。
文中的研究為網絡空間安全領域實體抽取提供了方法。由于實驗數(shù)據集規(guī)模較小,在后續(xù)研究中,將繼續(xù)擴展網絡空間安全語料庫,在保證實體識別效果的基礎上,對BERT模型進行優(yōu)化改進,以降低訓練時間。