李啟行,廖 薇,孟靜雯
上海工程技術大學 電子電氣工程學院,上海 201620
隨著手機、電腦等智能設備的大范圍普及,人們的日常交流也逐步從線下轉移到各種網絡社交平臺,互聯網作為主要的信息傳播途徑,每天都會增加大量的文本數據。面對這些數量龐大的文本數據,如何對數據進行有效的分類,是當前自然語言處理領域研究的重點問題。
近年來,隨著國內外學者對文本分類研究的不斷深入,許多分類算法涌現而出,目前提出的文本分類方法主要可分為兩大類:第一類是傳統的機器學習分類方法,主要包括K最鄰近(K-nearest neighbor,KNN)[1]分類算法、支持向量機(support vector machine,SVM)[2]、隱含狄利克雷分布(latent Dirichlet allocation,LDA)[3]等。這些算法在目前來看較為成熟,但在進行文本分類過程中,其分類效果主要依賴于人工提取文本特征,整個過程較為耗時。第二類是基于深度學習的分類方法,在文本分類中使用較為廣泛的有卷積神經網絡(convolutional neural network,CNN)[4]、遞歸神經網絡(recurrent neural network,RNN)以及各種CNN 與RNN 的混合網絡。CNN可以通過卷積層與池化層對文本進行局部特征提取,但是不能有效地提取文本數據的全局序列信息。RNN 是一種序列模型,相對于CNN 的優勢在于其具有“記憶”能力,可以捕獲文本的全局序列信息,但是當序列信息過長或者文本過于復雜時,RNN 會變得沒有那么敏感。在文本分類模型中引入注意力機制,可以獲取文本中每一個詞在整個文本中的重要程度,對重要的詞分配較大的比重分值,增強模型對這些特征的重視程度[5]。但注意力機制也存在一定的缺點,不可以捕捉位置信息,不能學習到文本序列中的順序關系。
為了優化深度學習模型提取文本關鍵特征的能力,提出一種基于注意力機制的雙通道文本分類模型DACRNN(dual-channel AC-RNN)。該模型以Bi-LSTM+Attention作為第一通道,提取文本序列的上下文關聯信息;以CNN+Attention 作為第二通道,提取文本序列的局部特征。同時,在CNN通道中,將原始輸入向量與各層CNN 的輸出向量進行選擇性融合,有效利用原始特征,避免特征在網絡層間傳遞過程中的丟失問題。
文本分類技術是自然語言處理領域最核心、最基礎的內容之一,目前深度學習結合文本分類的應用取得了很大的進展[6],它在輿情分析、意圖識別、問答系統等多個領域發揮著重要的作用。其中常用的深度神經網絡模型有遞歸神經網絡、注意力機制、卷積神經網絡。
在自然語言處理任務中,卷積神經網絡主要被用于文本的靜態分類任務。Kim[7]提出使用多個卷積核結合最大池化對文本進行關鍵特征提取,并用預訓練的詞向量對輸入向量進行更新。夏從零等[8]利用事件本身具有的特點,提出一種運用文本間的關系提取事件集合,進而在CNN 中進行事件特征提取的文本分類方法,通過實驗證明了方法的有效性。句子中的長距離依賴在單層CNN 中不能被很好地表達出來,一些多層網絡結構被提出。Wang等[9]提出一種具有多層網絡結構的CNN模型來獲取Web 數據中的關鍵特征,運用SVM 進行分類預測,雖然該模型取得了好的結果,但是增加網絡會使模型的參數增加,導致模型訓練速度慢,穩定性不足,模型訓練難度增大。Pham等[10]使用不同的卷積核來提取文本數據的特征,并將提取的特征向量進行融合,然后進行分類,通過這種方式可以準確提取文本的局部特征,但是不能有效地獲取文本的全局序列信息,這也是CNN所具有的缺點。
RNN 可以有效地處理上下文數據,提取文本數據的全局序列信息,但是當文本序列過長時容易出現梯度消失問題。為了解決這一問題,相關研究人員在RNN 的基礎上提出了長短期記憶網絡(long short-term memory,LSTM),并由此延伸出雙向長短期記憶網絡(Bi-LSTM),Bi-LSTM可以同時從兩個方向提取文本的序列信息。但是RNN在文本局部特征提取方面存在不足,可以對RNN 與CNN 進行組合,利用彼此的優勢提取更加豐富的文本特征。Zhang 等[11]提出一種混合LSTM和CNN的分類模型,通過LSTM獲取上下文中的依賴關系,使用CNN獲取文本的局部特征,最后將獲取的信息進行融合,輸入到分類器,最終驗證了RNN 與CNN進行組合的有效性。李洋等[12]提出一種將Bi-LSTM與CNN 相融合的網絡模型,通過雙向傳播機制獲取文本中完整的上下文信息,相對于文獻[11],該模型克服了LSTM不能準確獲取詞后特征的不足,提高了特征融合在文本分類上的準確性。
注意力機制可以對文本的關鍵特征進行聚焦操作,對特征提取有一定的積極作用。陶志勇等[13]將注意力機制引入Bi-LSTM 用于短文本分類,利用Bi-LSTM 提取文本的語義特征,通過注意力層對更深層的語義特征進行向量表示,可以提取到短文本的關鍵特征。Liu等[14]提出一種用于文本分類的AC-BiLSTM模型,在CNN與Bi-LSTM 結合的基礎上,引入注意力機制,使模型更加關注與文本情感相關的詞語,可以幫助理解句子的語義,同時通過實驗得出合理使用兩個注意力機制層比具有單注意力機制層模型的性能更好。但注意力機制忽略了詞序信息,不能用來捕捉文本的位置信息[15]。
在CNN 與Bi-LSTM 的基礎上,本文提出一種基于注意力機制的DAC-RNN文本分類模型,以中文文本作為輸入,樣本種類作為輸出,實現端對端的中文文本分類任務。DAC-RNN模型結構如圖1所示。

圖1 DAC-RNN文本分類模型Fig.1 DAC-RNN text classification model
整個模型分為四部分:詞嵌入層,將分詞后的文本向量化表示;Bi-LSTM+Attention通道,獲取文本序列的上下文關聯語義;CNN+Attention通道,獲取文本序列的局部特征;Softmax 層,對兩通道融合后的輸出進行分類,獲取分類結果。
在自然語言處理任務中,因為計算機不能直接理解人類的語言,所以在文本處理時首先需要將文本轉換成計算機能夠識別的數值形式,即將每個詞語都表示成一個向量。獨熱編碼(one-hot encoding)是一種傳統的文本表示方法,這種方法非常簡單,但是當詞語的數量過多時,特征空間會變得非常大。同時,獨熱編碼的值只有0和1,這就默認兩個詞語孤立存在,從而忽略了上下文的語義信息,不能體現兩個詞語之間的關系。近年來,詞向量一詞得到了很好的應用,Mikolov 等人于2013 年提出一種Word2Vec 模型,通過將初始特征值映射到實數低維向量,解決了詞向量維度過大的問題,在詞向量生成過程中也將詞語與詞語之間的關系進行了連接。
本文利用Google開源推出的Word2Vec工具包進行詞向量訓練,將中文文本數據庫中的文本通過結巴進行分詞處理后,使用Word2Vec中的Skip-gram模型進行詞向量預訓練。Skip-gram模型通過上下文預測目標詞來訓練語義嵌入,也可以捕獲詞語之間的語義關系。假設一個句子S的長度為N,整個文本可以向量化表示為式(1):

LSTM由3個門組成:遺忘門、輸入門和輸出門。首先,遺忘門決定從單元狀態中刪除掉哪些信息,然后輸入門決定將哪些信息更新為單元狀態,當遺忘門與輸入門確定以后,單元狀態可以隨之更新。最后輸出門決定網絡的最終輸出。整個過程中每個節點的狀態由式(2)~(7)決定。


其中,σ表示Sigmoid 函數,ft、ot、it分別表示t時刻的遺忘門、輸出門與輸入門的節點操作,Wf、Wi、Wc、Wo為參數矩陣,bf、bi、bc、bo為偏置項,xt為時間t的輸入向量,ht-1表示前一步產生的狀態,ht表示最后輸出的狀態,ct-1表示上一步輸出的單元狀態,ct是當前單元的狀態,運算符?表示逐元素乘法。
標準的LSTM是單向網絡,這就說明當前狀態只能按從前向后的順序在文本序列中獲取信息,但是對于文本數據,特別是對于文本分類任務,其結果主要取決于過去與將來的整體信息。為了解決這個問題,本文選擇使用Bi-LSTM來處理兩個方向的序列,其結構如圖2所示。Bi-LSTM包含前向隱藏層和后向隱藏層,當前輸出不僅取決于當前輸入,還受到歷史信息與未來信息的影響。其中前向隱藏層的輸出為,后向隱藏層的輸出為Bi-LSTM隱藏層的輸出Ht可表示為式(8)。


圖2 Bi-LSTM模型圖Fig.2 Bi-LSTM model diagram
Bi-LSTM 的作用是建立文本級詞語向量表示。因為每個詞語對文本類別都有不同的貢獻,所以為每個詞語分配不同的權重能夠區分詞語間的貢獻程度。注意機制可以為詞語分配不同的權重,把注意力集中到對文本較重要的詞語上,進一步提高對整個文本的理解。引入注意力機制后的計算過程如下。

其中,ui為Ht的注意力隱層表示,Ws為權值矩陣,bs為偏置項,αi是ui通過Softmax 函數得到的歸一化權值,最后將Bi-LSTM 隱藏層的輸出與注意力權重值進行點乘與累加操作,得到該通道的輸出T。
常用的CNN 模型主要由卷積層、池化層和全連接層構成,卷積層是CNN的核心,可以看作一種特征提取器,用于從文本中提取局部特征,因為共享權重,所以模型的參數更少。池化層位于卷積運算之后,用于自然語言處理中的特征選擇,捕獲最突出的特征。池化操作大致分為最大值池化、平均池化以及K-max池化三種,本文采用最大值池化。全連接層一般與輸出層進行連接,主要作用是將輸送來的特征整合到一起,減少特征信息丟失對分類帶來的影響。
為了提取到更加豐富的局部特征,本文使用雙層CNN,結構如圖1 所示,將CNN1 的輸出與原輸入的詞向量矩陣進行融合,用于CNN2 的輸入,接著對CNN1與CNN2 的輸出進行融合,重新利用原始特征,確保更多的特征參與到模型的學習過程中,增強特征對分類結果的積極影響。在進行卷積計算過程中,為了保證每層CNN 輸入向量的維度與輸出向量的維度保持一致,使每個卷積層中的Padding參數都選擇SAME模式。
將向量矩陣S=[x1,x2,…,xN]輸入,xi∈Rd表示一個文本中第i個詞語對應詞向量,參數d表示詞向量的維度。取卷積核W=[w0,w1,…,wβ-1] ,卷積核中詞語的個數為β,卷積計算公式如下。

式中,f是非線性激活函數,本文使用ReLU 作為激活函數,Xt:t+β-1表示輸入詞向量矩陣S的第t列到第t+β-1 列,b表示偏置項。
詞向量矩陣S經過式(12)進行卷積計算,可以得到CNN1 的輸出矩陣C1=[ ]c1,c2,…,cN ,N為詞向量個數。將原始輸入矩陣S與CNN1的輸出矩陣C1通過Concat函數進行融合,得到融合后的特征矩陣S2=[c1,c2,…,cN,x1,x2,…,xN],將其作為CNN2的輸入,通過式(12)進行卷積運算,得到CNN2的輸出矩陣C2=[k1,k2,…,kj],j為詞向量個數。最后,將CNN1的輸出C1與CNN2的輸出C2進行Concat 融合,得到下層網絡的輸入矩陣C3=[c1,c2,…,cN,k1,k2,…,kj] ,Concat融合公式如式(13)。其中,axis=1 表示將C1與C2進行橫向拼接的過程,只改變了詞向量的個數,詞向量的維度d未發生改變,從而大大減小了融合操作給整個模型帶來的負面影響。

下一步對卷積操作的輸出矩陣C3進行Attention與池化層處理,用于篩選并提取出更突出的特征,其中注意力機制引入過程見式(14)~式(16)。池化層對特征向量進行降維操作,通過最大值池化獲取更豐富的特征信息。

其中,Ct是t時刻通過雙層CNN學習到的特征表示,ut為Ct的注意力隱層表示,Ws為權值矩陣,bs為偏置項,αt是ut通過Softmax 函數得到的歸一化權值。
上述兩通道通過不同的網絡結構捕獲到了文本序列的局部特征與全局序列信息,在進行分類前需要對兩個通道提取的特征進行融合。由于在第二通道中池化層對特征向量進行降維操作,使得兩個通道的輸出呈現不同的維度,需要對兩個通道輸出的特征矩陣進行一定的處理,然后將融合后的特征保存在outputs中,作為全連接層的輸入,全連接層中使用ReLU激活函數。
在全連接層之后引入Dropout 機制,使權值更新不只依賴部分特征,這樣做是為了防止訓練過程中出現過擬合。最后將處理后的outputs輸送到Softmax分類器,本文通過Softmax 分類器輸出類別的概率分布。將x分類為類別j的概率為:

本文使用兩種不同類型的數據集進行實驗,來測試DAC-RNN 文本分類模型的分類效果。數據集包括THUCNews新聞文本數據集、今日頭條新聞文本數據集。
THUCNews 新聞文本數據集是由清華大學提供并公開的一種大規模文本數據集,該數據集是根據新浪新聞的某個訂閱頻道6年間的歷史數據篩選生成,共有74萬余篇新聞文檔,包含14個新聞類別,常用于長文本分類任務。本文選用其中10 個類別的樣本,每類取5 000條作為訓練集,1 000條作為測試集,500條作為驗證集。
今日頭條新聞文本數據集由今日頭條提供,共有38 萬余條新聞,包含15個新聞類別,數據中的新聞標題很短,不超過50個字,可用于進行短文本分類任務。實驗中提取其中的8 個類別,類別及數量關系如表1 所示。在每個類別的數據中抽取80%作為訓練集,剩余的數據中各取一半作為測試集與驗證集。

表1 今日頭條數據統計Table 1 Statistics of Toutiao
實驗環境配置如表2所示。

表2 實驗平臺設置Table 2 Setting of experimental platform
本文采用mini-batch梯度下降法對模型進行批量訓練,采用Adam 作為模型優化器,兩個CNN 使用卷積核的大小由kernel_size定義。模型的具體參數設置如表3所示。

表3 實驗參數設置Table 3 Experimental parameter setting
3.3.1 性能分析
分類模型的評價指標主要包括準確率(Acc)、精確率(P)、召回率(R)和F1 值。
為了驗證DAC-RNN模型的分類效果,對DAC-RNN模型及其變體DC-RNN模型進行測試,兩者的區別在于后者未引入注意力機制。兩模型在THUCNews數據集上的測試結果如圖3所示,在今日頭條數據集上的測試結果如圖4 所示。其中縱坐標表示這些類別在測試集上的準確率(Acc),單位為%。

圖3 THUCNews數據集測試結果Fig.3 Test results of THUCNews dataset

圖4 今日頭條數據集測試結果Fig.4 Test results of Toutiao dataset
通過圖3 和圖4 可以看出,DAC-RNN 模型在兩個測試集的不同類別中都得到了很好的分類效果。圖3中顯示只有房產類的準確率低于95%,造成房產類準確率偏低的原因是房產內有些數據與其他類的數據相似,并且數據中其他類別詞語的權重較高所致。圖4 中有一半類別的準確率達到90%以上,其中體育類的準確率更是高達93.8%。此外,從兩圖中很明顯可以看出,加入注意力機制的DAC-RNN 模型比未加入注意力機制的DC-RNN模型有更好的分類效果,其中圖3的房產類引入注意力后準確率提高了2.55個百分點,而圖4中體育類引入注意力后準確率更是提高了3.03 個百分點。以上結果不僅證明了在模型中加入Attention 機制提高了模型的分類效果,更是體現了所提模型在長、短文本的實際應用中均具有良好的分類性能。
3.3.2 卷積核尺寸對模型性能的影響
卷積核的尺寸對模型的分類效果有顯著的影響,為了使模型發揮出更好的性能,本文通過實驗對卷積核的尺寸選擇進行調優,實驗結果如圖5所示。由于本文搭建的模型使用了兩個CNN層,需要研究各種CNN尺寸組合對模型性能的影響。圖5 中橫坐標表示CNN 尺寸組合,例如(2,3)表示模型中CNN1 的卷積核尺寸為2,CNN2的卷積核尺寸為3。

圖5 卷積核尺寸組合對性能的影響Fig.5 Effect of convolution kernel size combination on performance
實驗結果表明,在今日頭條數據集中卷積核尺寸組合為(2,3)時,模型取得最佳分類效果,在THUCNews新聞文本數據集中卷積核尺寸組合為(3,5)時,模型取得最佳分類效果。卷積核尺寸過小會導致模型的特征提取能力降低,進而影響分類性能。隨著卷積核尺寸的增大,模型的特征提取能力也會增大,與此同時,模型的各類參數也會隨之變得更多,使模型變得復雜化,從而影響分類效果。
3.3.3 各通道對模型性能的影響
為了探究模型中兩個通道對模型性能的影響,本文在今日頭條與THUCNews兩個新聞文本數據集上進行了對比實驗:選擇單獨的Bi-LSTM+Att通道作為通道1模型,選擇CNN+Att通道作為通道2模型。得到的結果如表4所示。

表4 各通道對模型性能的影響Table 4 Effect of channels on model performance
從表4中可以看出,使用單個通道的模型對文本進行分類時準確率偏低,而同時使用兩個通道進行文本特征提取則取得了良好的分類效果。因此,使用兩個通道分別提取文本序列的上下文關聯語義與局部特征能夠進一步改進文本分類的性能。
3.3.4 對比實驗分析
為了進一步驗證本文所提出的DAC-RNN 模型在文本分類方面的有效性,在THUCNews 新聞文本數據集、今日頭條新聞數據集上進行對比實驗。本文不僅與單模型進行對比,也與其他的神經網絡模型進行了對比,同時引用了在相同數據集上具有代表性的網絡模型。基線模型包括CNN[7]、LSTM、Bi-LSTM、C-LSTM[16]、Bi-LSTM+Att、字詞融合+CNN[17]、Bi-LSTM-CNN+Att[18],結果如表5所示。

表5 各模型準確率對比Table 5 Comparison of accuracy of each model %
從表5中可以看出,與經典的單模型分類方法相比,本文所提模型DAC-RNN 在兩個數據集上的分類準確率分別提高了7.53個百分點以及4.13個百分點,由此可以證明,CNN 與RNN 結合的網絡結構更能有效地提取文本中的關鍵特征。通過比較模型Bi-LSTM與Bi-LSTM+Att的分類準確率以及模型Bi-LSTM-CNN+Att與C-LSTM的分類準確率,注意力機制的引入使模型的性能得到了進一步的提升。將本文所提模型與單通道的Bi-LSTMCNN+At模型的分類進行比較,準確率提高了1.15個百分點,這表明本文通過使用雙通道的方法,能夠更充分地發揮出CNN 與LSTM 對文本特征的提取能力,并且在CNN 通道中通過特征融合的方法增強了特征的重用,更是進一步提高了CNN 提取文本局部特征的能力。字詞粒度融合+CNN 模型在THUCNews 數據集上與其他模型相比取得了很高的準確率,但是在表5中可以發現,本文所提模型在THUCNews 數據集上的分類準確率高達97.59%,比字詞粒度融合+CNN模型的準確率更高。綜上所述,通過在不同數據集上與基線模型的分類準確率進行對比,證明了本文所提出的DAC-RNN模型在文本分類任務的精度上取得了一定提升。
表6為DAC-RNN 模型在THUCNews 數據集上測試實驗的三項評價指標,從表中可以看出,除了房產類的三項評價指標略低,其他各類的三項指標都取得了很高的結果,其中體育類、時尚類、游戲類以及娛樂類的三項指標更是高于0.98。表7 為分類結果混淆矩陣,展示了每個類別1 000條新聞文本的測試結果。結果顯示有7 個類別分類正確的條數在980 條之上,體育類和游戲類更是高于990條。總體而言,各主題類別分錯類的情況非常少。

表6 三項評價指標Table 6 Three evaluation index

表7 分類結果混淆矩陣Table 7 Confusion matrix of classification results
對比上述各項實驗結果,本文提出的DAC-RNN模型在長文本分類任務與短文本分類任務中具有較好的分類效果,有效地提高了分類準確率。
本文結合CNN、RNN、Attention 的優點,提出一種基于注意力機制的雙通道DAC-RNN 文本分類模型。該模型通過兩個通道分別提取文本不同層次的全局序列信息與局部特征,使模型提取到更加全面的文本特征。將原始輸入向量與各層CNN的輸出向量進行選擇性融合,通過特征重利用的方法減少局部特征的損失。實驗結果顯示,本文所提出的文本分類模型在長文本分類數據集與短文本分類數據集中均取得了比較好的分類結果。在接下來的研究中,著重從注意力機制算法、整體模型結構以及模型的參數三方面進行優化與改進,從而進一步提高模型對中文文本數據的分類性能,減少訓練過程的時間消耗。