楊朝強,邵黨國,楊志豪,相 艷,馬 磊
(昆明理工大學 信息工程與自動化學院,昆明 650504)
隨著互聯網的高速發展,快速準確地進行文本分類成為研究的熱點之一.目前的文本分類算法大多數主要針對長文本,即所處理的文本信息片段較長,包含一定量的信息內容.然而在實際情況中,如何快速準確地實現短文本處理成為文本分類的首要問題之一.短文本指長度不超過160個字符的文本體,以網絡文本居多,包括:短新聞、評論、博客、聊天記錄等,在信息查詢[1],內容推薦[2]和關系抽取[3]等領域具有一定的研究價值.
現階段而言,短文本分類的研究難點之一在于文本特征提取.文本特征提取方法一般分為三種,傳統的文本數據化表示,機器學習和模型融合方法,具體介紹如下:
傳統的特征提取為基于空間向量模型(Vecto-r Space Model,VSM)[4],該模型將文本看作不同詞的組合形式,未考慮詞與詞之間的相關性,且該方法存在數據高維稀疏性問題.針對VSM中存在的缺陷,一些研究者通過引入外部先驗知識,來對短文本進行語義擴展[5,6],但該方法對引入知識的質量要求較高,同時極大地增加了模型的復雜度.也有學者通過分析文本自身的語義結構[7],來構建文本表示方法,如 LSA,pLSI 和 LDA[8-10],但由于模型構建中只考慮到了文本層面信息,缺乏對低層面信息的分析.
自Google2013年推出具有語義表示功能的Word2vec[11]詞向量模型后,神經網絡在分類任務中取得了飛速的發展Yoon Kim等人[12]提出的基于CNN(Convolutional Neural Network)的文本分類模型,實驗結果顯示該模型的分類效果優于傳統模型.在CNN的基礎上,Nal Kalchbrenner等人[13]提出了DCNN(Dynamic Convolutional Neural Network)文本分類模型,該模型用動態的K-max Pooling層代替了傳統CNN中的Max Pooling層,有效提取了文本的部分結構信息.但是上述模型都存在長短距離依賴問題,為解決該問題提出了基于RNN(Recurrent Neural Network)[14]改進的LSTM(Long Short-Term Memory)[15]文本分類模型.Bansal等人提出了GRU(Gated recurrent unit)[16]模型,GRU模型將LSTM模型中的遺忘門和輸入門用更新門來替代,有效減少了模型訓練參數,提高了模型訓練速度.為解決LSTM模型在進行文本分類時,狀態只能由前向后單向傳輸的問題,Grave等人提出了Bi-LSTM(Bi-directional Long Short-Term Memory)[17]模型,該模型不僅考慮前面狀態對當前狀態的影響,同時考慮后面狀態對當前狀態的影響,能夠更加全面有效的提取文本信息.
針對單一模型在文本特征提取中的局限性,Chunting Zhou等人[18]提出的C-LSTM(Contextual LSTM)特征融合模型,充分結合了CNN和LSTM模型的優勢,將CNN訓練得到的結果作為LSTM的輸入,有效避免了單一模型文本分類的局限性.Siwei Lai等人[19]提出的RCNN(Recurrent and Convolutional Neural Networks)模型使用RNN作為CNN的卷積層,有助于CNN模型提取全局信息,但上述的特征融合模型可能存在特征冗余的問題.
上述的三種特征提取方法在解決短文本分類的問題上存在一定的局限性.首先,短文本中含有特征詞較少,單一模型難以做到對文本信息的充分提取.另外,短文本的不規范性導致現有的分詞工具難以保證分詞結果的準確性,從而導致詞向量的文本表示方法不夠準確.針對上述問題,本文提出了Multi-feature fusion model(MFFM)中文短文本分類模型,該模型包含以下三個方面:
1)分別使用詞向量和字向量從兩個不同粒度對短文本進行表示,并通過Self-attention[20]模型對字向量進行有效融合,解決中文短文本中存在的特征稀疏和不規范特性等問題.
2)使用BILSTM、CNN和CAPSNET三個不同的模型對文本進行不同層面的特征提取,解決文本分類模型在特征提取中的局限性.
3)引入Self-attention模型動態調節各模型特征在最終特征構建中的權重系數解決模型融合方法中可能存在的特征冗余問題.
BILSTM是由前向后和由后向前分別訓練一個LSTM,然后將兩個LSTM的結果拼接作為模型的輸出.該模型能夠同時保留“過去”和“未來”的文本信息,有效避免了LSTM模型在提取文本特征的過程中,只保留“過去”信息的弊端.BILSTM在進行文本處理時,原理如下:假設在t時刻輸入向量為xt,前一時刻的輸出為ht-1,前一時刻的隱藏狀態為ct-1,則當前時刻的狀態ct和輸出ht如公式(1)、公式(2)所示.
ct=ft×ct-1+it×g(wcX+bc)
(1)
ht=ot×s(ct)
(2)
其中,當前時刻的輸入X由輸入向量xt與前一時刻的輸出ht-1組成如公式(3)所示,w為權重,b為偏置,g、s分別表示輸出和輸出的激活函數,it、ft、ot分別表示輸入門i、遺忘門f、輸出門o在t時刻的激活值,如公式(4)、公式(5)、公式(6)所示.σ表示三個門的激活函數.
(3)
it=σ(wiX+bi)
(4)
ft=σ(wfX+bf)
(5)
ot=σ(woX+bo)
(6)
Yoon Kim 將CNN應用到文本分類領域,CNN主要包括卷積和池化兩大部分.卷積的設計參考了局部感受野的思想,即當前層的節點只與前一層網絡的有限個節點相連接,而不是與所有的輸入節點進行連接.此外,卷積操作中將同一層中某些神經元之間的連接權重設置為共享參數,有效減少需要訓練的權值參數.卷積層通過使用多個n×h卷積核對輸入信息進行卷積操作,通過多個卷積核能夠提取到文本不同層次的特征信息.最終,將提取到的多層次信息進行拼接融合,作為卷積層的最終輸出,計算結果如公式(7)所示.
mi=f(w×Xi:i+h-1+b)
(7)
其中,mi表示第i個卷積核提取的文本特征,f表示激活函數,w表示卷積核的權重參數,在大小為h的窗口內,與輸入特征X進行卷積獲得新的文本表述,Xi表示X的第i個特征,b為偏置參數.
將上述的所有特征連接起來就得到了卷積層的輸出特征M,如公式(8)所示.
M=[m1,m2,...,ml-h+1]
(8)
池化類似于對高維特征進行降維,常用的池化方式主要有:Mean-pooling,Max-pooling和Stochastic-pooling.本文中使用Max-pooling提取M中最顯著的特征代替M中的所有特征,計算如公式(9)所示.
mj=max[m1,m2,...,ml-h+1]
(9)
將上述池化結果拼接起來構成池化層的輸出,最終通過激活函數對提取到的特征進行分類.
Hinton 等人[21]提出的膠囊網絡(Capsule Network,CAPSNET),用向量來代替傳統網絡中的單個節點,以 Dynamic Routing 思路來更新網絡參數,其中用新的網絡向量輸出代替傳統的標量輸出,用動態路由原則代替傳統的池化操作,并在實驗中證明迭代次數設置為3時性能較好.具體算法流程如表1所示.
在這里,bij是一個未經歸一化的臨時累積變量,初始值為0,bij的個數是由上一層和下一層的CAPSNET的個數決定的.
自注意力機制(Self-attention)是注意力機制的一種,與其他的注意力機制相比,該機制不需要考慮下一層級的信息,能夠以并行的方式快速實現同一層級內部信息之間相關性分析.具體計算公式如公式(10)~公式(12)所示.
(10)

(11)
(12)
表1 Dynamic Routing算法
Table 1 Dynamic Routing algorithm

Procedure1Routingalgorithm1.procedureROUTING(^uj|i,r,l)2. forallCapsuleIinlayerlandCapsulejinlayer(l+1):bij←03. forriterationsdo4. forallCapsuleiinlayerl:ci←softmax(bi)5. forallCapsulejinlayer(l+1):sj←∑icij^uj|i6. forallCapsulejinlayer(l+1):vj←squash(sj)7. forallCapsuleiinlayerlandCapsulejinlayer(l+1):bij←bij+uj|i^×vj Returnvj
在公式(10)~公式(12)中αi,j表示的是位置i處元素和位置j處元素之間的注意力權重系數,通過softmax函數對權重系數進行歸一化操作,使得∑jai,j=1,score(xi,xj)是用來計算序列中任意兩個元素之間的相關性,該過程通過MLP實現.
對中文短文本分類,需要對短文本信息進行預處理,處理過程如下:
1)中文分詞.本文使用結巴分詞工具對文本進行分詞操作,在分詞的過程中,對文本中出現的標點和停用詞進行過濾.
2)建立詞向量字典.對數據集中出現的詞語進行統計編碼,建立相應的字典,然后將詞語轉換其對應的編碼,初步實現文本數字化表示.
3)詞向量訓練.本文Word2Vec模型進行詞向量訓練,該模型訓練的詞向量具有一定的語義表示功能,同時有效的降低了向量的空間維度.
4)統一樣本長度.由于數據集中每個樣本的長度不一,在模型輸入時需要統一樣本長度,具體做法為:對于長度不足的用0補齊,對于超過規定長度的截斷.
5)文本向量化.根據2)轉換后的編碼在3)中找出其對應的詞向量,將4)中全部數字轉換為對應的詞向量,作為模型的輸入.
MFFM融合建模結構如圖1所示.從圖中可以看出MFFM模型包含三個階段:1)分別采用基于字向量和詞向量的文本表示方法,通過Self-attention模型對字詞向量進行有效融合,對文本的原始信息進行充分表示;2)分別用BILSTM、CNN和CAPSNET模型對文本進行不同層面的特征提取,并將不同模型提取的特征送入Self-attention模型動態調節各模型特征在最終特征構建中的權重系數.3)將提取的文本特征送入分類器進行類別劃分.

圖1 MFFM融合建模過程圖
3.2.1 字詞向量融合的文本表示
在文本表示層面分別使用了基于字向量和詞向量的兩種不同表示方法.引入字向量的原因主要有以下兩點:1)在中文中單個字是有其特定意義的,單個漢字也蘊含著豐富的語義信息;2)基于字向量的文本表示具有以下優點:能夠在一定程度上解決短文本中特征詞過少的問題;有效避免對文本中出現的不規則特征詞的錯誤劃分;字向量的文本表示方式可以有效避免詞向量訓練過程中詞庫數量過大的問題.字和詞對文本而言是兩個不同的粒度,詞是一個較大粒度而字是一個更加精細的粒度,從不同粒度分析同一文本,能夠提取到不同層面的文本信息.最終,將字向量和詞向量對原始文本的表示送入 Self-attention模型進行融合,字詞向量的融合能夠有效結合字向量和詞向量的各自優勢,在一定程度上解決了短文本中存在的特征稀疏性和不規則特征詞的錯誤劃分問題.
3.2.2 多模型融合的特征提取模型
多模型融合通過將多個短文本分類器進行結合,獲得比單一的分類器顯著優越的泛化性能.現有的BILSTM模型對于不同位置的信息提取特征的過程中,相對而言更偏重于文本后面信息,可能忽略文本重要信息.CNN模型在進行卷積操作時,受卷積核大小的限制,只考慮到了卷積核范圍內的特征間的相互影響,提取到的特征缺失了部分全局信息.CAPSNET用動態路由取代傳統的池化層能保證位置信息的保留性,且針對特定問題調整相應的參數,使得模型參數的調整更加快速合理.因此本文使用BILSTM、CNN和CAPSNET模型對文本進行不同層面的特征提取,以便獲取全面有效的文本特征,原因如下:
1)BILSTM在對文本進行特征提取時,充分考慮到了文本前后文信息之間的相互影響,通過分析文本中所有詞之間的相關性,并根據特征的重要性構建最終的特征提取模型.
2)CNN模型在對文本進行特征提取時,在進行卷積操作時卷積核的長度是固定不變,始終與輸入文本的詞向量維度一致,寬度可以根據自身的需要進行設置.
3)膠囊網絡(Capsule Network)在對文本進行特征提取時,用神經元矢量替換傳統神經網絡中的單個神經元節點,用動態路由取代傳統的池化層.相比CNN網絡,由于它不再使用最大池,所以位置信息得以保留.并且動態路由可以在一定程度上形成推理機制,并針對特定問題調整相應的參數,使得模型參數的調整更加快速合理.
在對三個模型提取到的特征進行融合時,本文引入了Self-attention模型.通過該模型對BILSTM、CNN和CAPSNET三個模型提取的特征動態分配權重,將各模型特征與對應的權重相乘構建最終的文本特征.相比傳統的特征融合方法,Self-attention模型將各模型提取的特征作為一個整體進行權重劃分,避免將各模型特征拼接后對每一維特征進行權重分配時,可能存在的特征冗余問題.
本文使用中文冶金短文本數據集、淘寶評論數據集和譚松波酒店評論數據集來驗證MFFM模型的性能.三個數據集均為二分類數據集,其中中文冶金短文本數據集包括:冶金新聞和非冶金新聞兩大部分;淘寶評論數據集包括:買家對購買商品的正面評論和負面評論兩大部分;譚松波酒店評論數據集包括:住宿者對酒店服務的正面評論和負面評論兩大部分,對比數據集的基本屬性如表2所示.
表2 數據集特征
Table 2 Datasets feature

數據集正向樣本負向樣本樣本長度(char)樣本長度(word)字典大小詞典大小中文冶金短文本數據集17388156283618407944327淘寶評論數據集106791042810050465347858譚松波酒店評論數據集6000300015075347027005
本文分別使用Precision、Accuracy、Recall值及F1評價指標對MFFM模型的性能進行評價.其中,令A,B,C和D分別代表正陽性、假陰性、假陽性和正陰性的分類數量,則四個評價指標具體的計算公式如公式(13)~公式(16)所示.
(13)
(14)
(15)
(16)
本文中實驗操作環境為Intel核心i5-7500 CPU,8 GB RAM,所有的實驗都是基于Keras架構搭建,使用Python3.6的運行環境.本文參數設置如表3所示.
表3 模型的參數設置
Table 3 Model parameter settings

參 數 數值字向量維度96詞向量維度96BILSTM狀態維度200卷積窗口大小(3,4,5)過濾器的個數100CAPSNET個數10CAPSNET的維數16Self-attention參數(8,16)Dropout值0.5優化器Adam迭代次數30
實驗中各模型參數的選擇依據來源于兩方面:
1)參考已有的經典模型,CNN模型的參數設置參考了Yoon Kim等人[12]的工作,使用窗口大小分別為3、4、5卷積核各100個;CAPSNET模型的參數主要了參考Hinton等人[21]的工作,膠囊的個數和膠囊的維數分別為10和16;Self-attention模型的參數主要參考了Ashish Vaswani等人[20]的工作.
2)在譚松波酒店評論數據集上,通過多組對比實驗來確定BILSTM模型中隱藏層神經元的節點個數和詞向量維度,具體結果如表4和表5所示.根據表4可以看出在隱藏層神經元節點個數為100時,模型性能最佳,因此在BILSTM模型中將隱藏層神經元設置為100.根據表5可以看出在詞向量維度分別為:64、96、128和160時,本文提出的模型相比基準模型中的最優模型F1值分別提升:0.75%、1%、0.9%和1.6%.從而,在一定程度上證明了MFFM模型的有效性和穩定性.同時詞向量維度為96時,模型性能最佳,因此實驗中將詞向量維度設置為96.
表4 BILSTM模型不同節點的實驗結果
Table 4 Experimental results of different nodes of the BILSTM model

BILSTM隱藏層神經節點數F1RecallPrecisionAccuracy500.91420.91380.91470.91431000.91710.91710.91710.91711500.91570.91640.91500.91602000.91510.91550.91470.91502500.91400.91430.91380.9136
為驗證MFFM的性能,本文與短文本分類中的四個經典模型CNN、BILSTM、CAPSNET和CNN-BILSTM作為基準模型進行對比實驗,實驗結果如表6所示,模型的F1值如圖2所示.通過對表6和圖2的分析,可以看出MFFM在三個中文短文本數據集上的分類性能均優于四個基準模型.其中,在譚松波酒店評論數據集上MFFM相比基準模型中的最優模型BILSTM-CNN的F1值提升了1%;在淘寶評論數據集上,相比BILSTM-CNN模型F1值提升0.93%;在中文冶金短文本數據集上,相比BILSTM-CNN模型F1值提升0.94%.為了進一步證明本文提出模型的有效性,本文在實驗部分對中文短文本數據集、譚松波酒店評論數據集和淘寶評論數據集三個數據集的正負樣本進行合并構建新的數據集,合并后的數據集含有不同領域之間的正負樣本,相比單個數據集具有更好的兼容性,通過表6可以看出,本文提出的模型在融合后的數據上,相比基準模型中的最優模型BILSTM-CNN的F1提升了1.55%,通過在單一領域數據集和多領域數據上的實驗結果可以看出本文提出的模型相比基準模型均有一定程度的提高,從而有效的證明了本文提出模型MFFM的有效性.
表5 不同詞向量維度的實驗結果
Table 5 Experimental results of different word vector dimensions

字、詞向量維度評價指標BILSTMCNNCAPSNETBILSTM+CNNMFFM(本文)F10.91710.90840.91470.92600.933564Recall0.91710.90900.91660.92470.9337Precision0.91710.90710.91270.92730.9332Accuracy0.91710.90830.91450.92610.9334F10.91850.90440.91660.92700.937096Recall0.91800.90530.91620.92700.9384Precision0.91890.90360.91700.92700.9358Accuracy0.91850.90430.91660.92700.9370F10.91260.90610.92230.91950.9313128Recall0.91240.90670.92280.91660.9313Precision0.91280.90540.92190.92240.9313Accuracy0.91260.90600.92230.91970.9313F10.91420.90550.91990.91960.9356160Recall0.91570.90530.91900.92180.9356Precision0.91270.90570.92080.91750.9358Accuracy0.91400.90550.91990.91950.9356
表6 三個數據集上的實驗結果
Table 6 Experimental results on three datasets

數據集評價指標BILSTMCNNCAPSNETBILSTM+CNNMFFM(本文)F10.91850.90440.91660.92700.9370譚松波酒店評論數據集Recall0.91800.90530.91620.92700.9384Precision0.91890.90360.91700.92700.9358Accuracy0.91850.90430.91660.92700.9370F10.90000.89940.90440.90500.9143淘寶評論數據集Recall0.90000.89990.90300.90000.9162Precision0.90000.89900.90580.91020.9125Accuracy0.90000.89950.90450.90560.9141F10.95640.95520.95700.95820.9676中文冶金短文本數據集Recall0.95670.95550.95670.95250.9679Precision0.95610.95490.95730.96420.9673Accuracy0.95640.95520.95700.95850.9676F10.93880.93090.93760.93950.9550合并數據集Recall0.93880.93100.93750.93910.9552Precision0.93880.93080.93770.94000.9547Accuracy0.93880.93090.93760.93960.9549

圖2 模型在不同數據集上的F1值對比圖
短文本分類的研究難點之一在于文本特征提取.文本特征提取方法一般分為三種,傳統的文本數據化表示,機器學習和模型融合方法,但是這些方法都存在局限性.為解決這些問題,本文提出了MFFM模型,旨在提取更有效的文本特征,提高模型的分類性能.
首先分別基于詞向量和字向量從不同粒度對短文本進行表示,并通過Self-attention模型實現字詞向量的融合,融合后的文本表示方式能夠在一定程度上,解決短文本中存在的特征稀疏性和不規范性問題.然后用BILSTM、CNN和CAPSNET三種模型從不同層面提取文本中蘊含的信息.最終,將三個模型提取到的特征送入Self-attention模型,通過自注意力機制動態分配各模型特征在最終特征構建中的權重系數.
在實驗中,可以看出MFFM模型的性能在三個數據集下優于對比的四個算法(CNN、BILSTM、CAPSNET和CNN-BILSTM),并利用數據融合來進一步驗證了MFFM模型的有效性.不可否認,本文現在的工作僅僅是這個主題的開端,在未來,更低復雜度、更優的融合模型會出現,例如,進化式壓縮MFMM模型.