申艷光,賈耀清,生 龍,范永健
(1.河北工程大學信息與電氣工程學院,河北 邯鄲 056038;2.河北工程大學河北省安防信息感知與處理重點實驗室,河北 邯鄲 056038)
文本分類由來已久,利用文本分類技術對大量不同的文本進行科學有效地分類是亟待解決的問題。文本分類有十分廣闊的應用,如文章組織、意見挖掘、推薦系統(tǒng)、知識圖譜、垃圾郵件過濾、決策過程等[1]。
上個世紀70年代,Salton等人提出了向量空間模型(Vector Space Model),在此基礎之上,F(xiàn)eigenbaum首次提出了知識工程(Knowledge Engineering)的概念[6],主要解決的是知識的分類、表示和推理,但這種分類技術由相關領域的專業(yè)人員來處理,分類方法過于單一,分類準確率效果欠佳。上個世紀90年代,基于機器學習的文本分類方法逐漸興起,與基于知識工程的文本分類方法相比,該方法不需要專業(yè)人員的參與,并且能夠適用于各種領域的文本集合,成為當時文本分類的主流方法,崔建明等人[7]提出了基于SVM算法的文本分類方法,解決了特征工程中的數(shù)據(jù)高維性和不平衡性的問題。傳統(tǒng)的文本分類方法首先建立特征工程,然后經(jīng)過特征選擇,最后經(jīng)過各種分類算法完成文本分類,現(xiàn)如今深度學習技術的興起,基于深度學習的文本分類方法占據(jù)主流,這是一種端到端的學習方式,有效解決了分類準確率不高的問題。
圖卷積神經(jīng)網(wǎng)絡(Graph Convolutional Network,GCN)[8]是近年來的研究熱點,非常適合處理具有圖結構的數(shù)據(jù),例如社交網(wǎng)絡、通信網(wǎng)絡、蛋白質分子網(wǎng)絡等。GCN可以對圖結構的數(shù)據(jù)進行節(jié)點分類,邊預測和圖分類等。早期的圖卷積神經(jīng)網(wǎng)絡基于巴納赫不動點定理,Bruna J等人[9]提出第一個真正意義上的圖神經(jīng)網(wǎng)絡(Graph neural network,GNN),其基本思想是基于卷積定理在譜空間上定義圖卷積。Yao L等人將提出了Text GCN模型,與其它模型相比準確率較高[10]。Attention機制[11]最早應用在機器翻譯任務中,其本質是計算輸入的各個部分對輸出的貢獻權重,Yang Z等人基于層次結構的Attention機制構建了HAN網(wǎng)絡[12],并可視化了注意力層。
因此,基于上述問題,提出一種結合GCN和Attention機制的文本分類方法。與傳統(tǒng)文本分類方法不同,該方法將文本分類問題轉化為圖結構數(shù)據(jù)中的節(jié)點分類問題。首先建立整個語料庫的大型文本圖,然后將該文本圖的鄰接矩陣和特征矩陣輸入到圖卷積神經(jīng)網(wǎng)絡中,最后網(wǎng)絡的輸出與注意力機制相結合,利用注意力機制中Self-Attention機制充分學習文本表示,不斷調整網(wǎng)絡的輸出。與傳統(tǒng)的文本分類方法SVM,KNN,TF-IDF相比,該方法準確率較高。
一個文本圖的各個符號的含義見表1。
表1 文本圖中各個符號的含義
將語料庫中文檔和單詞轉化為節(jié)點的形式,如果相鄰兩個節(jié)點的聯(lián)系越緊密則連接線越粗,建立文本圖G=(V,E,A),如圖1。
圖1 文本圖
假設語料庫中有N個節(jié)點(Node),每個Node具有自己Z維度的特征,定義矩陣X=N×Z,稱X為特征矩陣。每個Node之間組成N×N的矩陣,定義矩陣A=N×N,稱A為鄰接矩陣。
構造GCN,模型簡化為
Z=f(X,A)
(1)
引入鄰接矩陣的度矩陣D,得到新的鄰接矩陣A。
(2)
其中,
(3)
(4)
Attention機制的本質可以看作是一種ENCODER-DECODER模型,如圖2。例如,輸入英文句子“He is a teacher”,首先經(jīng)過編碼階段將輸入語句轉化為高級文本表示,然后經(jīng)過解碼階段“翻譯”出想要的結果。在輸出“教師”時,考慮到輸入序列的4個單詞“He”、“is”、“a”“teacher”,而Attention機制的作用在于可以為這4個單詞賦一個權重,例如將“He”、“is”、“a”賦權值為0.1,而單詞“teacher”賦權值為0.7。顯然,單詞“teacher”的重要性相對其它三個單詞更加重要。在編解碼過程中,輸出序列的每一個單詞都充分考慮了輸入序列的所有單詞,而Self-Attention是Attention機制的特殊形式,輸入序列的每個單詞都需要和該序列的所有單詞進行Attention計算,這樣做的目的是充分考慮語句之間不同單詞之間的語義和語法聯(lián)系。
圖2 ENCODER-DECODER模型
利用Attention機制中的Self-Attention機制計算Word1和Word2的自我注意力需要經(jīng)過以下步驟:
1)Word1的詞向量為x1,Word2的詞向量為x2,通過輸入詞向量計算得到Attention機制中的Query向量、Key向量和Value向量。
2)計算score得分。其中,
Score=q×k
(5)
3)通過softmax操作進行歸一化,保持結果為正,和為1。
4)計算總的加權值,產(chǎn)生輸出。其中,
Sum=Softmax×Value
(6)
第2)步到第4)步可以合并,計算公式如下:
(7)
將原GCN的輸出引入Self-Attention機制,使網(wǎng)絡側重特征本身的內部聯(lián)系,最后通過加權平均輸出結果,提高模型的表達能力,如圖3。
圖3 Self-Attention機制
本仿真采用的公開數(shù)據(jù)集是20NewsGroups(20NG),20NG是文本分類領域的公開數(shù)據(jù)集,該數(shù)據(jù)集包含18846個新聞文檔,20個類別,其中訓練集60%,測試集40%。
在數(shù)據(jù)集20NG中,TP表示真正類,TN表示真負類,F(xiàn)P表示假正類,F(xiàn)N表示假負類,如圖4。
分類結果屬于ci的文本不屬于ci的文本屬于ci的文本TPFP不屬于ci的文本FNTN
圖4 樣本分類
衡量文本分類系統(tǒng)性能的技術指標有正確率(accuracy)、召回率(recall)、準確率(precision),公式如下
(8)
(9)
(10)
(11)
為了直觀有效表示分類的效果,本實驗選用precision指標來衡量系統(tǒng)的性能。
本實驗的硬件環(huán)境為:處理器為i5-9300H,內存為16 GB RAM,顯卡為RTX2060。編程語言采用Python3.6.5,結合tensorflow深度學習框架。
設定分類的準確率precision為P,不同分類方法得到的P值見表2:
表2 各種分類方法的P值
GCN+Attention的方法比SVM、KNN、TF-IDF以及GCN方法表現(xiàn)良好的原因分析如下:
1)SVM、KNN和TF-IDF方法同屬于基于機器學習的文本分類方法,而這些方法都需要經(jīng)過文本預處理、特征提取、特征選擇、分類等過程,由于沒有考慮到文檔與單詞以及單詞與單詞之間的內部聯(lián)系,最終分類的準確率表現(xiàn)不佳。
2)GCN+Attention方法與GCN方法同屬于基于深度學習的文本分類方法,它能同時對節(jié)點特征信息與結構信息進行端對端的學習。由于不需要經(jīng)過特征提取、特征選擇等過程,避免了人工提取特征而引入的誤差,引入Attention機制之后,模型更加注重單詞與單詞之間的聯(lián)系,增強了文本表示。GCN+Attention方法中文檔節(jié)點的標簽信息可以傳遞給相鄰的詞節(jié)點,詞節(jié)點收集全面的文檔標簽信息,在文本圖中充當關鍵的連接,最終將標簽信息傳播到整個文本圖中。
設定GCN+Attention方法的網(wǎng)絡層數(shù)為K,在不同K值的情況下實驗,如圖5。
圖5 不同K值分類方法的表現(xiàn)
不同K值的分類方法表現(xiàn)不同的分析如下:
圖卷積神經(jīng)網(wǎng)絡中文本圖的建立需要考慮到語料庫中所有單詞的信息,建立這些單詞之間以及文檔與單詞之間的聯(lián)系本身需要消耗大量的資源,而如果網(wǎng)絡層數(shù)過多會導致計算更加復雜,文本表示也更加抽象,使得每個節(jié)點的詞嵌入更加靠近,對后面文本圖的節(jié)點分類產(chǎn)生干擾。
與卷積神經(jīng)網(wǎng)絡[13]類似,圖卷積神經(jīng)網(wǎng)絡的卷積核類似于一個滑動的窗口,設窗口大小為H。在不同K值,不同H值的情況下實驗,其準確率見表3。
表3 不同K值,不同H值的準確率
表4 標準偏差
根據(jù)表3的數(shù)據(jù),計算當K為固定數(shù)值,H分別為5,10,15時兩種方法的標準偏差以及計算當H為固定數(shù)值,K分別為1,2,3時兩種方法的標準偏差,得到標準偏差數(shù)據(jù),見表4。其中,計算標準偏差的公式為
(12)
其中,S為標準偏差,X為樣本數(shù)值,M為樣本平均數(shù),n為樣本數(shù)。
通過分析表3和表4得到的實驗數(shù)據(jù),可以得到如下結論:
1)不管K與H為何值,GCN+Attention方法均比GCN方法的準確率高,引入Attention機制之后提高了分類的準確率。
2)當K值為固定數(shù)值時,取H為5,10和15,其S值較小,P值波動較??;當H為固定數(shù)值時,取K為1,2,3,其S值較大,P值波動較大。所以,GCN+Attention方法中網(wǎng)絡層數(shù)(K值大小)的影響要比滑動窗口(H的大小)的影響要大。
分析得到以上結論的可能原因如下:
圖卷積神經(jīng)網(wǎng)絡的本質也是卷積神經(jīng)網(wǎng)絡的一種,而卷積神經(jīng)網(wǎng)絡的卷積核大小一般都是由經(jīng)驗值設定的,但是網(wǎng)絡的層數(shù)卻不是由經(jīng)驗值所確定,He K等人將ResNet網(wǎng)絡[14]的層數(shù)設計到了152層,但是卷積核的大小卻沒有設計的相對較大。
最后,選擇最佳的K值與H值(K=3,H=10),實驗5次取平均之后的準確率,如圖6。SVM、KNN、TF-IDF、GCN和GCN+Attention方法分別用不同的填充圖案表示,GCN+Attention的方法表現(xiàn)良好。
圖6 各種分類方法的準確率
傳統(tǒng)的文本分類方法普遍存在分類準確率不高的問題,針對此問題,本文提出了一種結合GCN與Attention機制的文本分類方法。與傳統(tǒng)文本分類方法不同,GCN+Attention機制的文本分類方法是將整個語料庫構建成一個大型異構文本圖,并將文本分類問題轉化為節(jié)點分類問題,有效避免了人工特征工程。仿真結果表明,本方法實現(xiàn)了較高的準確率,但需要注意的是,GCN+Attention的方法在文本分類問題中網(wǎng)絡層數(shù)不宜設置過大。
文本分類的應用前景十分廣闊,但也面臨著許多挑戰(zhàn)。未來針對文本分類的研究還可以從以下幾個方向進行:①短文本數(shù)據(jù)例如微博評論、視頻彈幕、手機短信等形式的迅速擴增,短文本數(shù)據(jù)分類難度增大,這給文本分類領域帶來了更多的機遇與挑戰(zhàn)。②圖卷積神經(jīng)網(wǎng)絡正處于迅速發(fā)展階段,可以嘗試將圖卷積神經(jīng)網(wǎng)絡與其它神經(jīng)網(wǎng)絡相結合來解決文本分類領域的問題。③雖然提出的分類方法提高了準確率,但這是在犧牲時間成本的前提下實現(xiàn)的,如何在保證準確率的前提下縮短時間是未來的研究方向。