楊春霞,吳佳君,李欣栩
(南京信息工程大學 自動化學院,南京 210044) (江蘇省大數據分析技術重點實驗室,南京 210044) (江蘇省大氣環境與裝備技術協同創新中心,南京 210044)
作為自然語言處理(Natural Language Processing,NLP)領域中的基本任務之一,文本分類在過去幾十年以來已經得到了廣泛的應用研究.尤其是在當今信息爆炸的時代背景下,如何對以文本信息為主的海量信息有效地進行分類規劃,從而能從海量信息中迅速準確地獲取所需信息,是NLP方面研究的重點.文本分類正是解決該問題的重要技術.其在信息檢索、情感分析、垃圾郵件過濾等任務中都具有重要作用,逐漸受到更多的關注和研究.
文本分類旨在對海量文本信息按照一定的分類指標做出分類,如對新聞文章分為娛樂、體育、科技、軍事等類別.常見的模型有基于機器學習和基于深度學習的分類方法.前者多注重特征的提取與選擇,而后者多注重模型的結構與參數.隨著深度學習在各領域快速發展,后者展現出了不可比擬的優越性,諸如機器翻譯、文本摘要、文本分類等NLP任務中都獲得了極大發展.在針對文本分類任務中,越來越多的學者都致力于運用深度學習的方法來構建模型,提升文本分類精度.基于深度學習的文本分類方法雖然有效解決了傳統方法較依賴于手工提取特征、詞語語義關系不明的缺點,但是對如何有效、豐富的表示出文本深層的特征及語義,還未得到有效解決.因此如何挖掘出文本豐富的語義信息,提升文本分類精度是目前工作的重點.本文就通過循環神經網絡結合Attention機制,挖掘文本上下文內容語義關聯特征,另外,融合了實體信息,進一步豐富文本的語義信息和內容特征,從而實現文本分類精度的提升.
本文的主要貢獻如下:
1)本文利用雙向循環神經網絡充分提取文本的上下文語義特征,然后通過Attention層對重要語義特征實現提取,再通過將輸入的文本表示與實體表示做注意力計算,與經過雙向循環神經網絡和Attention層的輸出做拼接,強化了對于實體信息的關注,突出文本的內容特征,最后送入Highway網絡進行優化特征,極大豐富了文本的語義表示,有效提高分類精度.
2)本文在4個不同數據集上進行了實驗,并與當前主流模型進行了對比試驗,結果表明,本文所提模型展現出了優越性能,在準確率上有一定的提高.
傳統的文本分類方法依賴于手工提取特征,如樸素貝葉斯分類算法[1]、K近鄰算法[2]、支持向量機[3]等基于機器學習的文本分類方法,雖然能夠獲得不錯的性能,但耗時耗力、效率低下,并易受到數據規模的限制,很難滿足如今對海量文本進行快速、高效、準確的分類需求.
基于深度學習的文本分類算法則有效解決了傳統分類方法的缺點,滿足了大數據、高效率的需求,通過讓計算機自主學習文本特征信息,從而達到更好的文本分類效果.越來越多的研究者也致力于研究以深度學習為主的文本分類算法.鑒于CNN在計算機視覺領域的良好表現,Kim[4]首次將CNN用于文本分類任務中,通過將預訓練的詞向量矩陣作為輸入(如Word2Vec[5]、Glove[6]等),然后通過卷積操作得到特征映射,再由最大池化層提取最重要特征,最后通過全連接層輸送到Softmax分類器,該方法在不同數據集上都取得了不錯效果,并且實現方式簡單,但卷積核窗口難以確定,不同大小的窗口容易帶來噪聲,也無法較好獲取全局特征;Joulin[7]等人在詞向量的基礎上提出FastText模型,利用詞之間的n-gram進行詞向量表示,捕獲局部詞序信息,文本用所有詞的均值向量表示,然后送入分類器預測標簽,該方法訓練高效,也能取得不錯效果,但在數據集少的情況下,容易出現過擬合情況;Shen[8]等人則專注于在詞向量上做簡單池化操作,提出SWEM模型,該模型有4種不同的池化方法:平均池化、最大池化、平均池化與最大池化拼接以及層次池化,并與CNN、RNN做對比,在分類性能方面發現該模型獲得了與神經網絡相當甚至更好的效果,且更具魯棒性,但該方法忽略了詞序信息;Yao[9]等人用當下流行的GCN進行文本分類,它將文本和詞分別視為一個節點,通過詞與詞、詞與文本間的聯系構建鄰接矩陣,將文本分類視為節點分類,以one-hot向量為輸入,利用兩層GCN做分類,達到了很好的效果,但該方法訓練速度慢,且測試樣本需要在訓練過程中使用;Lai[10]等人分析了CNN、RNN用于文本分類的缺點,提出了RCNN(循環卷積神經網絡)模型,在不增加時間復雜度的基礎上,不僅有效解決了CNN窗口大小難以確定、RNN存在梯度消失的問題,還捕獲到了豐富的上下文信息,大大提升了文本分類精度.但是,現有模型通常只注重于文本的上下文表示,弱化了實體信息在文本分類中的作用.
實體也能很好地捕捉文本的語義信息,突出文本內容特征.它從文本中檢測一系列與文章相關的實體來表示文本,相比于需要結合上下文語境的詞來說,含義清晰明確的實體減少了對文本上下文的依賴性.Peng[11]等人在新聞引用推薦任務中除了使用詞向量,還引入實體信息,來解決語言的多樣性和歧義性;Yamada[12]等人利用知識庫中的實體詞向量,提出NABoE模型,該模型通過抽取文本中的實體獲得預先訓練好的實體詞向量表示,然后將實體與文本做注意力計算,獲得基于實體的文本表示,最后通過分類器進行分類,取得優異效果,但該模型未能考慮到文本上下文全局信息.
此外,注意力(Attention)機制也被廣泛應用于文本分類任務中,該方法旨在為文本中更重要的單詞或句子表示分配更多的權重,以此讓模型更關注于權重高的單詞或句子表示,提高學習效率.王麗亞[13]等人將Attention機制加入到聯合了CNN和雙向LSTM的模型中,該模型運用CNN提取文本的局部特征,再運用雙向LSTM提取文本的上下文特征,最后將輸出送入Attention機制提取更重要的特征,取得了不錯效果;王吉俐[14]等人將Attention機制與CNN融合,首先通過RNN捕捉上下文信息,用Attention機制突出重要的文本類別向量,最后使用CNN模型完成分類分類任務,在不平衡數據集上該模型展現出了較好性能.
隨著神經網絡深度不斷加深,訓練也變得更加困難,為了解決此問題,Srivastava[15]等人提出了Highway網絡.在文本分類任務中,Wen[16]等人從RCNN模型的基礎上,在卷積層前加入一層Highway網絡,用以對每個單詞表示分別選擇特征,結果表明加入Highway網絡的RCNN模型比原模型效果更好;陳榕[17]等人用CNN和雙向GRU提取文本的局部和全局特征,再用Attention機制找到關鍵詞語特征,最后用Highway網絡將這些特征進行優化,送入Softmax層進行分類,獲得了較好的實驗結果.
基于上述等工作,本文針對基于神經網絡和基于實體進行文本分類方法的缺點做出改進,嘗試在考慮上下文信息的同時,將實體信息也考慮進去.因此利用雙向循環神經網絡捕捉文本的上下文內容信息,利用Attention機制賦予重要特征更高權重,并提取文本實體信息,與輸入的文本表示做注意力計算,以豐富文本語義及內容特征的表示,最后將兩者的輸出拼接,不僅充分挖掘文本的上下文信息,還考慮實體信息的重要作用,最后送入Highway網絡進行特征優化,以此提升文本分類效果.
給定訓練集{(D1,y1),(D2,y2),…,(Dn,yn)},其中Dm代表訓練集中第m個文本,包含了一系列詞{w1,w2,…,wq}以及實體{e1,e2,…,ep},ym代表Dm的類別標簽.本文的模型框架如圖1所示,其主要包含3個部分:1)通過雙向循環神經網絡和Attention機制對文本進行建模;2)利用實體與文本進行注意力計算;3)將兩個輸出做拼接后送入Highway網絡,最后做Softmax分類.相比于其他基于深度學習的模型,本文模型不僅針對文本的上下文進行建模,還融合實體信息,充分挖掘了文本語義以及內容特征.
文本詞向量與實體詞向量使用Yamada[18]等人提出的開源工具Wikipedia2Vec在維基百科上預訓練的詞向量.它提供了從維基百科上獲取單詞和實體,并使用skip-gram對維基百科知識庫中的詞和標注好的實體進行預訓練,之后得到維度d為300的詞向量表,即每個詞的詞向量為xwi∈Rd,實體詞向量為xei∈Rd.

圖1 模型整體框架Fig.1 Overall framework of the model
本文使用循環神經網絡的變體LSTM,它有效解決了傳統循環神經網絡梯度消失和長期依賴問題,主要思想是引入自適應選通機制,該機制決定了LSTM單元保持前一狀態的程度,并存儲當前輸入特征.LSTM單元在t時刻更新過程如下:
it=σ(Wi·[ht-1,xt]+bi)
(1)
ft=σ(Wf·[ht-1,xt]+bf)
(2)
qt=tanh(Wq·[ht-1,xt]+bq)
(3)
ot=σ(Wo·[ht-1,xt]+bo)
(4)
ct=ft⊙ct-1+it⊙qt
(5)
ht=ot⊙tanh(ct)
(6)
上式中,σ為激活函數,⊙代表點乘運算,it、ft、ot分別代表輸入門、遺忘門、輸出門,Wi、Wf、Wq、Wo為權重矩陣,bi、bf、bq、bo為偏差,ct代表t時刻記憶細胞的狀態,ht則為最后的輸出值.

(7)

M=tanh(X)
(8)
α=softmax(ωTM)
(9)
ν=XαT
(10)
上式中,X∈Rd×q,ω是可訓練的參數向量,ωT是其轉置.最后,通過tanh激活函數獲得最后的表示:
v*=tanh(v)
(11)
通過此方式就較好挖掘了文本重要的上下文語義特征.
在給定了文本Dm的詞{w1,w2,…,wq}和實體{e1,e2,…,ep}后,首先對文本所有詞向量xwi做求和平均:
(12)
此處只使用預訓練的詞向量做簡單的求和平均,是因為本文旨在捕獲實體與文本的相關性,無需使用更深層次的語義特征,減少過擬合現象的發生.
然后,對實體向量xei做加權平均:
(13)
其中,βe使用如下特征做注意力計算:
(14)
φ(e,D)=C⊕Pe
(15)
(16)
上式中,⊕為拼接操作,C為特定實體詞向量xe與文本νD的余弦相似度,Pe代表實體名稱引用維基百科中實體的概率[19],ωe為權重矩陣,be為偏差.用這兩種特征是為了獲得與文本最相關且語義清晰的實體.
最后,將獲得加權平均后的實體向量νe與3.3節的輸出向量v*做拼接獲得融合實體信息后的文本向量ψ:
ψ=v*⊕νe
(17)
這樣,就充分挖掘了文本的語義和內容特征.相比于前人的方法,本文模型有效解決了只考慮上下文信息卻弱化實體信息或考慮了實體信息卻忽略上下文全局信息的缺點.
Highway網絡較好地解決了深層次網絡受梯度信息回流受阻而難以訓練的問題.它通過門控機制來控制信息流,允許輸入信息的一部分不變地傳遞到輸出,而其余部分則進行一些(非線性)轉換,這樣有助于對特征進行優化并提取大量有意義的信息.其公式如下:
τ=σ1(Wτψ+bτ)
(18)
z=τ⊙σ2(Whψ+bh)+(1-τ)⊙ψ
(19)
上式中,σ1和σ2為非線性激活函數,τ是轉換門,用來將部分輸入進行變換,z為最后的輸出.

(20)

(21)
(22)
式中,ti是真實標簽的one-hot表示,m是類別數,λ是L2正則化參數.
本文在4個廣泛使用的基準數據集上使用模型,數據集的詳細統計信息見表1.

表1 數據集統計信息Table 1 Statistics for the dataset
其中,數據集中的實體檢測參照Yamada[12]等人的做法:將維基百科作為知識庫,首先把文本中的所有在實體字典[20]的詞和短語看作實體名稱(entity names),然后檢測每個實體名稱所有可能的引用實體(referent entities),去除連接概率(link probability)小于1%的實體名稱和通用性(commonnes)小于3%的引用實體.最后,得到的實體字典中含有18785550個實體名稱,每個名稱平均有1.14個引用實體.表2為AG News數據集中4個類別文本中部分實體示例.

表2 AG News部分實體示例Table 2 Some examples of AGNews entities
本文將使用以下幾種目前較為流行的模型作為基線模型進行比較:
1)CNN[4]:使用Kim提出的CNN文本分類算法,經一維卷積后使用最大池化,最后接一層全連接的Softmax層.本文使用CNN-non-static版本,即使用預訓練的詞向量模型.
2)FastText[7]:由Joulin等人提出的一個簡單且高效的文本分類模型,其將n-grams向量的平均值作為文檔向量,送入線性分類器.
3)SWEM[8]:Shen等人提出的對預訓練詞向量進行簡單的池化操作.本文使用SWEM-concat版本,即將句子所有詞向量的平均池化和最大池化做拼接.
4)TextGCN[9]:Yao等人把文本分類視為節點分類,分別將詞與文本作為一個節點,利用PMI和TF-IDF構建零階矩陣,最后利用圖卷積做節點分類.
5)NABoE[12]:Yamada等人利用知識庫中的實體詞向量與文本做注意力計算后來表示文本,最后送入分類器進行文本分類.
上述基線模型除CNN外,均使用其文獻中所提供的源代碼進行實驗,為體現各模型的魯棒性,參數均依各文獻原文所述保持不變.CNN模型由本文復現,參數設置為:batch size 為64,學習率為0.001,dropout為0.5,卷積核數為256,卷積核尺寸為(2,3,4),輸入維度為300,隱藏狀態向量為128.
1)實驗平臺:操作系統Ubuntu 16.04,GPU NVIDIA 1080 Ti,11 G顯存,32 G內存,開發語言Python 3.6,torch1.1.0,開發工具Pycharm.
2)參數設置:使用mini-batch隨機梯度下降訓練,20NG、R8的batch size為32,IMDB、AG News的batch size為64,學習率為0.001,L2正則化參數為0.0001,dropout為0.5,詞向量和實體向量維度為300,循環層隱藏狀態向量維度為128,激活函數為ReLU,Highway網絡2層.
3)評估指標:使用準確率作為評估指標.其計算公式為:
(23)
式中,n為數據集的測試集樣本容量,Π(·)為指示函數,在括號內的內容為真時取1,反之取0.
表3展示了4個數據集在不同模型上的表現.

表3 模型對比結果Table 3 Model comparison result
從表3中可以看到,本文模型均獲得了優異結果.在20NG數據集上,FastText表現最差,而本文模型獲得了最佳效果,相比基線模型中最好的NABoE提升了1.1%,對比可以發現本文模型在將上下文信息和實體信息都考慮進去后,準確率有一定提升;在R8數據集上,CNN表現最差,本文模型則獲得了最佳效果,相比基線模型中最好的TextGCN和NABoE提升了0.6%,相比較下,本文模型比TextGCN訓練速度更快、效率更高,比NABoE捕獲更多額外的文本全局信息,體現出一定優勢;在AG News數據集上,CNN表現最差,而本文模型仍然獲得了最佳效果,相比基線模型中最好的SWEM提升了0.3%,對比下,SWEM使用了兩種池化操作做拼接,在對訓練集較多的情況下也能獲得較好效果,但未考慮詞序問題使得魯棒性變弱,而本文模型則考慮到詞序問題,即充分獲取了上下文信息以及實體信息,在準確率上有更多提高;而在IMDB數據集上,CNN表現最差,本文模型與SWEM獲得的效果相當,主要原因可能是由于該數據集把較中性的評論刪除,只含有情感傾向較為明顯的評論,且評論中含有的實體相對較少,因此在此類數據集下通過一些簡單的池化操作也能獲得不錯的效果,而基于神經網絡的模型則容易出現過擬合現象.
縱觀4個數據集整體結果,CNN整體效果最差,其余基線模型在不同數據集上表現有好有壞,而本文模型均能獲得最佳結果,可見本文模型更加魯棒.在訓練速度上,FastText最快,TextGCN最慢,其余4個模型訓練速度相當,不同數據集下每批次訓練時間均相差在0.8s左右;計算復雜度也相當,算力要求也適中,模型并未因融合了實體信息而提升總復雜性,再結合結果的優劣來看,本文模型在效率上體現出一定優勢.
此外,為了進一步驗證本文所提模型的有效性,進行了消融實驗.在本文所提模型基礎上,分別去掉Highway網絡、實體信息融合、雙向LSTM上的Attention機制.模型的對比結果見表4(w/o代表without).

表4 消融實驗Table 4 Ablation experiment
從表中可以看出,在4個數據集中,無論去掉哪種結構,均降低了準確率.其中,去掉Highway網絡后的準確率在4個數據集上依次下降了0.2%、0.3%、0.5%、0.3%,可以看出Highway網絡準確率上貢獻較少,但仍能通過優化特征進而提取更有意義的信息,而且其無需大的深度就可自適應特征變換,可以有效提高分類效率和準確率.此外,本文還對比了不同層數的Highway網絡給模型提供的性能,如圖2所示,加入Highway網絡均或多或少提高了準確率,在層數為2時,4個數據集均能獲得最佳性能,但在添加更多層數時性能有所降低,可能是由于過擬合導致;去掉Attention機制后準確率分別下降了0.8%、0.4%、0.3%、1%,側面可以看出Attention機制能夠使得模型更關注于對文本更有用的詞表示,對模型性能的提升有幫助;而去掉融合了實體信息的模型準確率下降的最多,依次下降了1.1%、0.7%、0.3%和2.4%,可以看出沒有融合實體信息的模型只展現了與基線模型相當的性能,并沒有充分挖掘出更豐富的文本信息以及內容特征,這也側面表明了增加實體信息確實對文本信息及內容特征有積極作用,能提升文本分類準確率,驗證了本文所提模型的有效性.因此,本文模型在保證充分捕獲文本上下文語義的同時,融合了實體信息進一步突出文本內容特征,最后通過Highway網絡優化特征,極大豐富了文本語義表示以及對內容的特征挖掘,增強了模型魯棒性,提升了分類效率,結果表明了該模型的合理性、有效性.

圖2 添加不同層數Highway網絡的準確率Fig.2 Accuracy of adding different layers of Highway network
本文提出了融合實體信息的循環神經網絡文本分類模型,不僅考慮了上下文語義信息,還充分挖掘了文本中的實體信息,極大豐富了文本的表示,有效解決了前人模型的缺點.在與目前較流行的基線模型相比中,獲得了優異的分類結果和更好的魯棒性,在效率上也具有一定優勢.此外,在消融實驗中,也證明了本文模型的合理性、有效性,模型能夠通過Attention機制、實體信息和Highway網絡對文本進行特征表示和優化,獲得理想效果.
在未來的工作中,將進一步研究在數據量較少以及實體信息不多的情況下,如何更有效地提高分類精度,同時,降低訓練時間復雜度、提高運行效率也將是接來的重點.