唐 莊,王志舒,周 愛,馮美姍,屈 雯,魯明羽
大連海事大學 信息科學技術學院,遼寧 大連116026
文本分類是自然語言處理領域中一個經典問題,其核心任務是對文本的合理建模,提取到文本的特征表示,以便把數據集中的每個樣本劃分到正確的類別中去。
由于深度學習神經網絡模型具有自學習、自適應和強大的泛化能力等優點,已被普遍應用于文本分類任務中。目前深度學習主流的神經網絡模型包括卷積神經網絡(Convolutional Neural Network,CNN)[1]、長短時記憶神經網絡(Long Short-Term Memory Networks,LSTM)[2]以及兩者的各種變體。CNN通過固定窗口大小的卷積核一次滑動多個單詞,提取到局部短語特征,然后用最大池化選擇最顯著的特征,這會過濾掉許多底層信息。Sabour 等人提出膠囊網絡(Capsule network)來解決上述信息損失問題,用矢量膠囊代替標量神經元[3]。
雖然膠囊網絡改進了傳統CNN 中的最大池化操作,但本質上依舊是通過卷積提取到文本的局部短語特征,忽略了上下文序列對當前詞的影響;transformer 作為一種新型的網絡模型,可以一次性遍歷整個文本序列從而提取到全局語義特征,已廣泛應用于序列編碼-解碼任務中[4],但缺點是面對長文本時不僅費時,且沒有考慮到局部關鍵詞對文本分類的重要性,難以捕獲局部短語特征。本文結合了transformer 和膠囊網絡兩種模型各自的優點,通過集成的形式將兩個模型分別提取到的局部短語特征和全局語義特征進行融合,從局部到全局兩個層次對文本序列進行建模,從而提取到多層次的、更全面的文本特征表示。此外,本文針對傳統膠囊網絡模型中存在部分噪音膠囊干擾的問題,提出了基于注意力機制的動態路由算法,使得分類效果進一步提升。
早期的文本分類任務采用詞袋模型、N-gram和TFIDF 等特征作為各種分類算法的輸入[5],如支持向量機(SVM)[6]、邏輯回歸[7]、樸素貝葉斯[8]等。然而,特征提取過程不僅存在數據稀疏和維度爆炸問題,且隨著數據量增大,處理海量數據過程會費時費力。
近年來,深度學習神經網絡模型已被廣泛應用于文本分類任務中。神經網絡模型能從原始的數據中自動提取有用的特征,大大提高了文本分類任務的性能。Kim等人首次將卷積神經網絡應用到文本分類任務中,提出了textCNN模型,該模型利用多個不同大小的卷積核提取句子的短語信息[9]。textCNN模型需要使用預訓練好的詞向量等信息,針對該問題,Zhang 等人提出字符級卷積神經網絡CL-CNN,從字符層面訓練神經網絡,該方法的優點是不需要使用預訓練好的詞向量以及語法句法結構等信息[10]。Joulin等人提出快速文本分類算法fastText,該算法在保持較高分類精度的情況下加快了模型訓練速度[11]。Conneau等人提出了一個具有29個卷積層的深度卷積網絡VD-CNN用于文本分類,加深了網絡結構[12]。張越等人在大規模弱監督數據上訓練CNN模型,同時引入“預訓練-微調”策略,減少了弱監督數據中的噪聲干擾[13]。CNN 通過卷積提取到文本的局部短語特征,而LSTM則解決了循環神經網絡中存在的長期依賴問題,主要針對時序性文本序列。Tai 等人結合了LSTM 和樹形網絡,提出了Tree-LSTM 模型,該模型在兩個文本分類任務中取得了不錯的效果[14]。傳統的LSTM網絡以時間順序處理文本序列,但忽略了下文信息對當前詞的影響,Zhang 等人提出雙向LSTM 網絡用于文本分類,該網絡引入逆序遍歷的LSTM 層,將每個單詞前向和后向傳遞的信息合并,進一步提高分類效果[15]。李梅等人提出一種基于注意力機制的CNNLSTM 聯合模型,將CNN 的輸出作為LSTM 的輸入,然后進行分類預測[16]。
除了CNN、LSTM 這兩種網絡模型,Sabour 等人在2017年底提出了一種名為膠囊網絡的新型神經網絡,用矢量輸出膠囊代替了CNN 的標量輸出神經元,并用路由協議機制代替了CNN 中最大池化操作,在圖像領域MNIST 手寫字符識別數據集上取得了很好的分類結果[3]。Zhao 等人在2018 年底首次將膠囊網絡引入文本分類任務中,在多個數據集上分類性能超過了CNN 和LSTM[17]。

圖1 集成模型框架圖
基于transformer-capsule 集成模型的文本分類框架如圖1 所示,以處理Reuters-21578 數據集為例,本文提出的模型包括以下四個部分:向量表示、特征提取、特征集成以及文本分類。
(1)向量表示:使用預訓練的詞嵌入數據庫word2vec,將原始文本序列映射為300維的詞向量矩陣。
(2)特征提取:將詞向量矩陣作為膠囊網絡和transformer 的輸入,其中膠囊網絡首先用256 個3×300 的卷積核、步長為2 做卷積運算,經過擠壓函數后形成16 維主膠囊層,經過一次基于注意力機制的路由協議后連接分類膠囊層,得到文本的局部短語特征;而transformer模型通過增加單詞位置編碼、殘差連接、層歸一化、前饋連接等操作處理輸入序列并將序列信息壓縮成固定長度的語義向量,提取到全局語義特征。
(3)特征集成:將提取到的局部短語特征和全局語義特征進行拼接融合,綜合得到文本的詞法、句法和語義信息。
(4)文本分類:通過一層全連接層將集成特征輸入到分類器中,單標簽分類用softmax分類器,多標簽分類用sigmoid分類器。
transformer-capsule 集成模型框架圖中采用上下雙通道的形式對文本序列進行建模,上通道為膠囊網絡模型,下通道為transformer 模型,下面對這兩種模型進行介紹。
傳統的LSTM 由于在序列化處理時依賴于前一時刻的計算,并行效率低,模型運行速度慢。transformer模型通過多頭自注意力機制可以在并行計算的同時捕獲長距離依賴關系,充分學習到輸入文本的全局語義信息。transformer 模型主要用于seq2seq,采用編碼器-解碼器結構,本文用作文本分類任務只用到了其中的編碼器結構,通過增加單詞位置編碼、殘差連接、層歸一化處理、前向連接等操作處理輸入序列并將序列信息壓縮成固定長度的語義向量。transformer 模型中位置編碼計算公式如下:

其中,pos是指當前詞在句子中的位置,i是指向量中每個值的索引,dmodel是指詞向量的維度,在偶數位置使用正弦編碼,在奇數位置使用余弦編碼。將位置向量與詞向量相加得到融合詞向量,豐富了文本詞向量的表示。transformer模型中多頭自注意力機制計算公式如下:


其中,xi表示融合詞向量x 的第i維,m表示輸入x 的均值,σ表示輸入x 的標準差,α、β是可學習的參數,?是為了防止除數為0 而設置的小數。層歸一化旨在增強反向傳播信息流動性,加快訓練收斂速度,解決網絡訓練困難,難以擬合的問題。transformer模型中前向連接計算公式如下:

其中,y是經過層歸一化后的輸出向量,e為偏置項。在多頭自注意力模塊后跟兩個全連接,中間加一個relu激活函數,構成雙層前饋神經網絡。
傳統的CNN通過卷積核來提取文本序列的底層局部短語特征,最大池化操作雖然減少了網絡層神經元數量,但卻造成了信息損失。膠囊網絡使用一組向量神經元(膠囊)來替代傳統神經網絡中的標量神經元節點,改變了傳統神經網絡標量與標量相連的結構。在各個網絡層中每個膠囊攜帶的信息從1 維增加到了多維。下層膠囊通過動態路由機制(Dynamic Routing)將該層膠囊保存的計算結果傳遞給上層膠囊,從而實現在提取局部短語特征的同時減少信息的損失。
由于文本中存在著與分類標簽無關的詞語,比如停用詞和連接詞等,下層膠囊中不可避免地會出現噪音膠囊,這些膠囊攜帶的信息對分類結果的準確性會造成一定的影響,因此本文對傳統的動態路由機制做出了改進,提出基于注意力機制(attention)的動態路由算法,利用兩層全連接神經網絡產生每個膠囊的注意力值,歸一化后作為最終的注意力值,再乘以原始膠囊的輸出。這樣可以降低噪音膠囊的權重,減少噪音膠囊傳遞給上層膠囊的信息。動態路由算法描述如下:

其中,sj為上層膠囊的輸入,u為下層膠囊的輸出,M為相鄰兩層之間的權值矩陣,cij為耦合系數,表示下層膠囊i激活上層膠囊j的可能性,bij初始值設置為0,通過動態路由更新cij從而更新bij,擠壓函數squash 及更新bij的計算公式如下:

其中,vj為上層膠囊的輸出,由于膠囊輸出向量的模長代表類別的概率值,擠壓函數將向量的模長限定在[0,1]區間,輸出向量的模長越大,代表文本所屬該類的概率越大。
膠囊網絡在提取文本局部短語特征的同時減少了信息損失,transformer單元通過自注意力機制遍歷整個文本序列,從而提取到全局語義特征。本文采用的集成模型可以結合膠囊網絡和transformer各自的優勢,綜合考慮到文本的局部短語信息和全局語義信息,提高分類效果。
由于分類標簽數固定,膠囊網絡和transformer具有相同的輸出維度,因此本文在模型集成階段采用合并拼接的方式,即拼接兩種網絡生成的特征向量,再通過一層全連接層映射到最終的分類向量中。假設膠囊網絡的輸出向量為HC=(hC1,hC2,…,hCn),transformer 單元的輸出向量為HT=(hT1,hT2,…,hTn),集成后的特征向量為H ,計算公式如下:

其中,Dense是一個映射到類別數上的全連接層。對于單標簽數據集,對集成后的特征向量H 使用softmax分類器得到每個類別的概率值,選擇其中數值最大的對應類別為預測的分類類別;對于多標簽數據集,對特征向量H 使用sigmoid分類器,設置閾值為0.5,所有概率值大于該閾值的則給該樣本添加對應的標簽。
本文在4個單標簽數據集和1個多標簽數據集上進行實驗,單標簽數據集包括電影評論MR(Movie Review)、觀點分類Subj(Subjectivity dataset)、問題分類TREC(TREC question dataset)和新聞分類AG。多標簽數據集為路透社新聞語料庫Reuters-21578。各個數據集劃分為訓練集、驗證集、測試集以及類別數,如表1所示。
本文實驗基于TensorFlow實現,使用300維word2vec向量來初始化詞嵌入向量,使用Adam 優化器,學習率為0.001,模型具體超參數設置如表2所示。

表1 數據集類別劃分

表2 實驗超參數設置
本文實驗中單標簽數據集分類性能評價指標是分類精度(Accuracy),多標簽數據集評價指標包括準確率(Precision)、召回率(Recall)、F1 值(F1 Score),F1 值計算公式如下:

為驗證本文提出的transformer-capsule 集成模型的有效性,本文在單標簽對比實驗上選取深度學習領域比較主流的幾個基線模型:LSTM、BiLSTM、Tree-LSTM、CNN、CL-CNN、VD-CNN,在多標簽Reuters-21578 數據集上添加了膠囊網絡Capsule-A、Capsule-B以及具有代表性的機器學習模型Binary Relevance(BR)[18]、Classifier Chains(CC)[19]、Label Powerset(LP)[20]進行實驗。兩個膠囊網絡模型都采用了較復雜的兩次路由迭代機制,唯一區別是兩者在N-gram 卷積時N的取值不同。Capsule-A 中N取值為3,每次滑動三個單詞,而Capsule-B 中N分別取值3、4、5,最后結果為三種取值下各自實驗結果的平均值。本文的capsule模型簡化了一次路由操作,因此減少了一層卷積膠囊層,但結合了注意力機制,大大縮短了實驗時間。
實驗中四個單標簽數據集分別為MR、Subj、TREC和AG,實驗結果如表3所示,表格內容為分類精度。多標簽Reuters-21578數據集評價指標為準確率、召回率和F1 值,實驗結果如表4 所示,其中加粗數值為該數據集的評價指標在所列模型中的最大值。
從表3和表4可看出,與傳統的CNN和LSTM等神經網絡模型相比,本文提出的transformer-capsule 集成模型在三個單標簽數據集上分類性能較好。在Reuters-21578 多標簽數據集上,本文提出的transformer-capsule集成模型在三個指標準確率、召回率以及F1 值上相比于傳統的CNN和LSTM等神經網絡模型以及機器學習模型性能提升很多,其中在F1 值上相比于膠囊網絡Capsule-B模型提升了3.6%,并且本文的模型在保證高準確率的同時其召回率相比于Capsule-B模型提升了6.0%。

表3 單標簽數據集分類精度 %

表4 Reuters-21 578數據集準確率、召回率及F1值%

圖2 P值、R值、F1值隨路由次數變化圖

圖3 Reuters-21578數據集上文本特征可視化結果圖
為了驗證本文提出的基于注意力機制的動態路由算法的有效性,在Reuters-21578數據集上設置了兩組對比實驗,對transformer-capsule 集成模型分別使用原始路由算法(routing)以及基于注意力機制的動態路由算法(ATT-routing)進行實驗,準確率P 值、召回率R 值和F1 值隨路由迭代次數的實驗結果分別如圖2 中(a)、(b)、(c)所示。
從圖2(a)中看出,使用原始路由算法和基于注意力機制的動態路由算法的transformer-capsule集成模型在第二次迭代時的分類準確率最高,但隨著路由次數增加,原始路由算法的準確率迅速下降,而使用注意力機制的路由算法則相對平穩。從圖2(b)和(c)看出,路由迭代次數設置為3時的分類性能最好,且基于注意力機制的動態路由算法在每次迭代時的R值和F1值都要明顯優于原始路由算法。
為了得到一個更直觀的比較結果,在Reuters-21578數據集上進行了結果可視化實驗,使用t-SNE算法分別將transformer、膠囊網絡capsule以及transformer-capsule集成模型學到的文本特征映射到二維空間進行對比,實驗結果分別如圖3中(a)、(b)、(c)所示,每種顏色代表一個類別,每個節點代表所屬該類的一個樣本。
從圖3中看出,單獨膠囊網絡學到的文本特征效果不是很好,多個類別樣本之間存在著高度重合情況,而transformer 模型存在的缺點是類內樣本點分布較為散亂。從圖3(c)中看出,transformer-capsule 集成模型學習到的文本特征更加豐富,不僅類間樣本重合較少,且具有高度類內聚合性,這表明該模型能夠有效地結合膠囊網絡以及transformer的優點,充分學習到文本的局部短語特征和全局語義特征。
本文針對文本分類任務,提出了一種基于transformercapsule的集成模型,在幾個文本分類通用語料數據集上獲得了較好的性能。膠囊網絡可以有效地捕獲文本中的局部短語特征并且減少信息損失,transformer通過多頭自注意力機制遍歷整個文本來提取全局語義特征,通過特征集成得到文本的多層次、更全面的特征表示。此外,本文針對文本中存在停用詞等與分類結果無關詞語形成噪音膠囊的情況,提出基于注意力機制的動態路由算法,降低噪音膠囊的權重,減少其傳遞給后續膠囊的干擾信息,有效地提升了分類性能。