吳君戈,張笑笑,鄒春明,宋好好
(公安部第三研究所/上海網(wǎng)絡(luò)與信息安全測評工程技術(shù)研究中心,上海 200031)
隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,信息化已經(jīng)深入到人們生活的方方面面,信息化高速發(fā)展也導(dǎo)致了各式各樣信息安全事件的出現(xiàn),給人民的財產(chǎn)安全造成了嚴(yán)重的威脅[1]。與此同時,信息安全事件往往被淹沒在海量的新聞事件中,研究人員較難快速地定位到信息安全事件之上,難以有針對性地提出解決方案[2]。因此,如何有效地從海量的新聞事件中抽取出信息安全事件,對于維護社會穩(wěn)定和公共利益具有積極而重要的意義[3]。
近年來,國內(nèi)外學(xué)者針對信息安全事件的分類提取工作進行了大量的研究。文獻[4]中,作者利用TextRank和隱含狄利克雷分布(Latent Dirichlet Allocation,LDA)模型對信息安全熱點事件進行分類和提取,然而LD模型需提前預(yù)設(shè)參數(shù),參數(shù)選擇對于其分類性能有著直接的影響。文獻[5]中,G Jelena等人提出了基于K最近鄰(k-Nearest Neighbor,KNN)分類算法和支持向量機(Support Vector Machine, SVM)的多層文本分類算法,并證明了所提算法的有效性。然而,實驗中所用數(shù)據(jù)需提前進行主標(biāo)簽分類,當(dāng)數(shù)據(jù)量增加時分類效率必然會有所降低。文獻[6]中,A Ritter等人提出利用弱監(jiān)督學(xué)習(xí)算法從Twitter上提取信息安全事件,但是由于Twitter屬于文本表現(xiàn)自由的短文本,較之新聞文本有較大差別,因此該算法用于新聞文本中進行信息安全事件的分類抽取時并無優(yōu)勢。
對于信息安全管理而言,如何快速、準(zhǔn)確地從大量新聞事件中提取信息安全事件是一個挑戰(zhàn)。為了解決這個問題,本文提出一種基于改進LDA模型的信息安全事件提取方法,首先通過對傳統(tǒng)LDA模型中文本主題數(shù)確定指標(biāo)進行優(yōu)化,提高LDA模型對于事件主題挖掘的準(zhǔn)確性,進而從海量新聞事件中形成信息安全事件候選事件集,最后采用投票機制從候選事件集中分類出真正的信息安全事件。
隱含狄利克雷分布(Latent Dirichlet Allocation,LDA)模型由D M Blei等人提出,通過無監(jiān)督學(xué)習(xí)方法分析文檔集中每篇文檔的主題分布,然后根據(jù)主題分布進行主題聚類或文本分類[7]。LDA模型認(rèn)為一篇文檔可以包含多個主題,這與一個信息安全事件往往涉及多個主題相吻合。
LDA模型的基本思想:首先是生成“主題-詞匯”多項分布,此多項分布是服從參數(shù)為 β 的狄利克雷先驗分布,再生成“文檔-主題”多項分布,此多項分布是服從參數(shù)為 的狄利克雷先驗分布,具體過程如圖1所示[8]。
圖1 LDA模型實現(xiàn)圖
LDA模型具體實現(xiàn)就是確定出參數(shù)(α,β),常用的估計方法有期望傳播、貝葉斯推斷和Gibbs抽樣等,由于Gibbs抽樣的算法比較簡單,而且對參數(shù)的抽樣效果較為理想,因此在LDA主題模型中,常使用Gibbs抽樣方法對語料庫中的所有文檔和詞匯的主題進行提取,具體流程如下[9]:
1)選擇合適的主題數(shù)K,初始化參數(shù)向量α和β;
2)對應(yīng)語料庫中每一篇文檔的每一個詞,隨機的賦予一個主題編號Zm,n;
3)重新掃描語料庫,對于每一個詞,利用Gibbs采樣公式更新它的主題編號,并更新語料中該詞的編號;
4)重復(fù)第3)步的基于坐標(biāo)軸輪換的Gibbs采樣,直到Gibbs采樣收斂;
5)統(tǒng)計語料庫中的各個文檔各個詞的主題,得到文檔主題分布,統(tǒng)計語料庫中各個主題詞的分布,得到LDA的主題與詞的分布
由上述流程可以看出,確定參數(shù)(α,β)需提前預(yù)設(shè)好最優(yōu)主題個數(shù),因此影響最終LDA模型主題分類效果的一個重要因素是最優(yōu)主題個數(shù)的確定。
目前,LDA模型中常用于衡量最優(yōu)主題數(shù)的指標(biāo)有困惑度(Perplexity)、JS散度(Jensen-Shannon Divergence)等[10]。然而,Perplexity指標(biāo)注重模型對新文檔的預(yù)測能力,往往導(dǎo)致求得的最優(yōu)主題數(shù)偏大,而JS散度側(cè)重于主題之間的差異性和穩(wěn)定性,雖彌補了Perplexity的缺點,但求得的主題數(shù)偏小。因此,本文結(jié)合兩者的優(yōu)點提出一種改進的最優(yōu)主題數(shù)確定指標(biāo)Perplexity-Aver,來得到更貼合實際要求的主題數(shù)目。
為衡量主題空間的整體差異性,首先在JS散度的基礎(chǔ)上引入JS散度平均值A(chǔ)ver(T)的概念,表達式如下所示:
其中,P1和P2分別為主題k1和k2的概率分布。
最后,綜合Perplexity和Aver(T)兩個指標(biāo),提出一種確定最優(yōu)主題數(shù)指標(biāo)Perplexity-Aver,其計算方法如下:
其中,Dtest表示實驗的文本數(shù)據(jù)集,Perplexity(Dtest)表示實驗數(shù)據(jù)集的困惑度,Aver(Ttest)表示實驗數(shù)據(jù)集的JS散度平均集。
由公式(4)可以看出,當(dāng)Perplexity(Dtest)越小時,主題模型的泛化能力越強,對新文檔主題的預(yù)測效果更好;當(dāng)Aver(Ttest)越大時,主題模型各主題之間的差異就越大,主題的平均相似度就越小,主題抽取的效果就越好。因此,當(dāng)Perplexity-Aver的指標(biāo)最小時,對應(yīng)的主題數(shù)是最優(yōu)主題數(shù)。
綜上所述,利用改進的LDA模型進行主題建模時分為七步驟:
1)將各類別混合的N篇文檔進行預(yù)處理,包括去分詞和去停用詞;
2)將預(yù)處理好的文檔集輸入改進的LDA主題模型,輸入模型參數(shù)K、α、β;
3)利用Gibbs抽樣計算出模型的θ和φ分布;
4)改變K的值,重復(fù)步驟2)和3),得到不同主題數(shù)下的建模結(jié)果;
5)根據(jù)Perplexity-Aver確定最優(yōu)主題數(shù)K;
6)修剪無關(guān)的詞匯,輸出各類信息安全事件下的關(guān)鍵詞;
7)輸出主題建模結(jié)果。
其中,步驟1)中分詞是指遵循一定的規(guī)則,將一個個連續(xù)的字序列劃分為詞匯的過程;去停用詞是指刪除文檔中出現(xiàn)的虛詞和對文本分類沒有實際意義的高頻詞匯。
通過改進的LDA模型進行主題建模,可以得到信息安全事件的幾大類別,并得到每一類主題下的主題詞,主題詞可以作為該類信息安全事件的觸發(fā)詞,由觸發(fā)詞引發(fā)的事件集合稱為候選事件集。
然而,并非所有含觸發(fā)詞的事件都是與信息安全相關(guān)的事件。例如表1所示,只有句子1是信息安全相關(guān)事件,即句子中的“病毒”是網(wǎng)絡(luò)病毒的含義;句子2和句子3都不屬于信息安全事件的范疇,不是我們真正關(guān)注的事件。
因此,本文對事件觸發(fā)詞進行改進,將觸發(fā)詞分為“限制詞”和“業(yè)務(wù)詞”,業(yè)務(wù)詞是指事件涉及到的敏感詞匯,限制詞則根據(jù)每一類事件實際描述的事件內(nèi)容,限定了業(yè)務(wù)詞引起的事件的范圍。將“限制詞”和“業(yè)務(wù)詞”同時作為觸發(fā)條件,以使候選事件更接近于信息安全相關(guān)事件。
表1 觸發(fā)詞觸發(fā)的事件示例
表2 業(yè)務(wù)詞和限制詞共同觸發(fā)的事件示例
雖然將事件觸發(fā)詞改進為“限制詞”和“業(yè)務(wù)詞”,可以提高候選事件集中信息安全事件的比例,但是得到的候選事件集中仍然存在不合要求的事件。例如表2所示,其中句子1和3是與信息安全相關(guān)的事件,句子2和4明顯是與信息安全無關(guān)的事件。
因此,本文選擇觸發(fā)語句所在位置、觸發(fā)語句在全文的比例、標(biāo)題是否為觸發(fā)語句作為候選事件集中的特征項對候選事件集進行特征提取,具體定義為:
① 觸發(fā)語句所在位置F1的計算方式如公式(5)所示:
其中,Nrank表示觸發(fā)語句在文中的位置,即觸發(fā)語句在文中第幾句;Ntotal表示文中句子總數(shù)。
② 觸發(fā)語句在全文中的比例F2的計算方式如公式(6)所示:
其中,ntotal表示觸發(fā)語句在文中的數(shù)量。
③ 標(biāo)題是否為觸發(fā)語句F3的計算方式如公式(7)所示:
由于候選事件集中的文章僅有兩類,與信息安全相關(guān)的事件和與信息安全無關(guān)的事件,因此識別真正的信息安全事件問題可以看作是一個二分類問題?;诖耍疚膶蜻x事件集進行特征提取之后,利用投票機制,完成對信息安全事件和與信息安全無關(guān)的事件的分類。
基于投票機制的文本分類屬于集成學(xué)習(xí),其基本思路是先使用多個分類器單獨對樣本進行預(yù)測,然后通過一定的方式將各個分類器的分類結(jié)果融合起來,以此決定文本的最終歸屬類別。集成學(xué)習(xí)是否有效的關(guān)鍵有兩點:
一是各個基分類器必須有一定的差異性;
二是各個基分類器的預(yù)測正確率必須不小于50%。
圖2 信息安全事件提取算法流程圖
因此,本文選取樸素貝葉斯、SVM、決策樹構(gòu)建投票機制,利用候選事件集特征F1、F2和F3,供二元分類算法學(xué)習(xí),進而采用訓(xùn)練完成后的投票機制進行預(yù)測,預(yù)測數(shù)據(jù)的最終結(jié)果為服從多數(shù)分類器預(yù)測的結(jié)果,具體算法流程圖如圖2所示。
本文通過網(wǎng)絡(luò)爬蟲工具GooSeeker,收集國內(nèi)主流的信息安全網(wǎng)站(中國信息安全等級保護網(wǎng)、中國信息安全網(wǎng)等)2015年1月1日至2019年12月30日期間報道的信息安全事件作為原始數(shù)據(jù)集。原始數(shù)據(jù)集內(nèi)容為上述網(wǎng)站的新聞內(nèi)容、標(biāo)題和發(fā)布時間,其中新聞內(nèi)容只保留文字,去除視頻、圖片等格式的數(shù)據(jù)。
由于采集到的原始數(shù)據(jù)中含有垃圾數(shù)據(jù),因此經(jīng)對采集到的數(shù)據(jù)進行去除重復(fù)數(shù)據(jù)和刪掉無文本的空白數(shù)據(jù)后,共獲得有效數(shù)據(jù)13,684條。
本文在對對原始數(shù)據(jù)進行分詞和去停用詞的預(yù)處理后,利用改進的LDA模型對原始數(shù)據(jù)集進行主題建模,設(shè)置迭代次數(shù)為100,經(jīng)驗值參數(shù)α和β參照文獻[11]分別設(shè)置為50/k和0.01。對于主題數(shù)量K,根據(jù)以往信息安全事件的分類經(jīng)驗,將主題數(shù)量約定在3~10之間,利用Perplexity-Aver確定最優(yōu)的主題數(shù)K。圖3為主題建模過程中Perplexity-Aver值與Perplexity、JS散度的對比關(guān)系,從圖3中可以看出,Perplexity因更看重對新文檔的預(yù)測能力導(dǎo)致主題數(shù)偏大,而JS散度因更看重整體的差異性和穩(wěn)定性而導(dǎo)致主題數(shù)偏小。
為了進一步驗證本文所提信息安全事件提取方法的性能,選取準(zhǔn)確率(Precision)、召回率(Recall)和F值作為評價標(biāo)準(zhǔn),表達式如下所示:
其中,TP表示正確匹配的樣本數(shù)量,即將信息安全事件樣本預(yù)測為信息安全事件的數(shù)量,F(xiàn)N表示漏報的樣本數(shù)量,即將信息安全事件的樣本錯誤預(yù)測為非信息安全事件的數(shù)量,F(xiàn)P表示誤報的樣本數(shù)量,即將非信息安全事件的樣本錯誤預(yù)測為信息安全事件的數(shù)量,TN表示正確的非匹配樣本數(shù)量,即將非信息安全事件的樣本預(yù)測為非信息安全事件的數(shù)量。
實驗中,使用交叉驗證的方法進行5折交叉驗證,即每次選擇實驗數(shù)據(jù)的1/5作為測試數(shù)據(jù),剩下的4/5作為訓(xùn)練數(shù)據(jù),進行5次試驗,并將5次試驗結(jié)果的準(zhǔn)確率、召回率、F值的平均值作為最終的準(zhǔn)確率、召回率和F值。為了驗證本文所提信息安全事件提取方法的有效性,選取文獻[4]和文獻[12]中所提分類算法進行比較,其中文獻[4]為采用傳統(tǒng)LDA模型進行文本分類提取的方法,文獻[12]提出一種基于改進BP神經(jīng)網(wǎng)絡(luò)的文本分類方法,結(jié)果如表3所示
圖3 Perplexity-Aver與Perplexity、JS散度的對比關(guān)系
從表3中可以看出,在準(zhǔn)確性、召回率和F值指標(biāo)上,本文所提事件提取方法均要優(yōu)于文獻[4]和文獻[12]所提的文本分類方法,這是證明了本文所提算法在信息安全事件提取方面的有效性。
表3 本文方法與其他文獻方法性能比較
本文提出一種基于LDA模型和投票機制的信息安全事件提取方法,通過利用LDA主題模型和改進的主題數(shù)確定指標(biāo)Perplexity-Aver對新聞事件進行主題建模,得到信息安全候選事件集,最后利用投票機制從候選事件集中識別出真正的信息安全事件。仿真結(jié)果表明,本文所提信息安全事件提取方法,無論在準(zhǔn)確率、召回率,還是F值方面,均優(yōu)于傳統(tǒng)的文本方法,可以獲得較好的文本分類性能。