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