陸 超 紅
(中國科學(xué)技術(shù)大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院中國科大-伯明翰大學(xué)智能計算與應(yīng)用聯(lián)合研究所 安徽 合肥 230027)
文本分類是自然語言處理的核心任務(wù)之一,在垃圾郵件檢測[2]、主題分類[3]和情感分析[4]等領(lǐng)域有著大量的應(yīng)用[1]。傳統(tǒng)的文本分類方法包括:樸素貝葉斯[5]、支持向量機(jī)、K近鄰以及決策樹等。這些分類方法大多使用稀疏的詞匯特征來表示文本,常見的文本表示方法有詞袋模型(Bag of Words,BoW)以及向量空間模型(Vector Space Model,VSM)等。這些文本表示方法通常忽略了文本上下文關(guān)系,并且丟失了語序信息,因此不能很好地提取文本的語義特征。
隨著深度學(xué)習(xí)的發(fā)展,詞的分布式表示凸顯出了極大的優(yōu)勢。Bengio等[6]提出了神經(jīng)概率語言模型(Neural Probabilistic Language Model,NPLM),詞向量嵌入可以通過訓(xùn)練該模型來得到。Mikolov等[7]提出了用連續(xù)詞袋模型(CBoW)和連續(xù)跳躍元語法模型[7](Skip-Gram)來訓(xùn)練詞向量。
連續(xù)詞袋模型通過周圍的詞來預(yù)測中心詞,連續(xù)跳躍元語法模型則是通過中心詞來預(yù)測周圍詞,這些模型由于考慮到了上下文信息,因此有語義表征能力。預(yù)訓(xùn)練的詞向量與傳統(tǒng)的文本表示方法相比,具有低維、稠密等特點,而且會讓語義相似詞的詞向量在歐氏空間中的距離較小,因此在深度學(xué)習(xí)中得到了大規(guī)模的應(yīng)用。
基于預(yù)訓(xùn)練的詞向量表示,研究者提出利用循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN)[8]來對序列進(jìn)行建模。這種模型會將文本的所有歷史信息保存在一個定長隱狀態(tài)向量中,因此能夠捕捉文本中的長期依賴。然而RNN存在著梯度消失等問題,通過引入門機(jī)制的長短期記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)[9]和門控循環(huán)單元(Gated Recurrent Unit)[10]能夠讓這個問題得到有效緩解。Tang等[11]提出了利用門控循環(huán)單元來對文檔進(jìn)行編碼,Yang等[12]基于門控循環(huán)單元提出了文檔的分層編碼。這些研究表明:這種編碼方法得到的文檔表示能夠包含句子的語義和句子間的關(guān)系。由于RNN是一個有偏模型[13],重要的信息不一定存在于文本末尾,因此定長的向量表示限制了RNN的文本特征表達(dá)能力。一種簡單的解決方案是將RNN各個時間步的隱狀態(tài)置為同等重要,然后利用它們的均值池化向量來代替最終時間步的隱狀態(tài)向量。
為了更好地選取對分類結(jié)果的有著重要貢獻(xiàn)的輸入元素,Bahdanau等[14]將注意力機(jī)制(Attention Mechanism)引入到自然語言處理領(lǐng)域。注意力機(jī)制能夠讓RNN保持可變長度的記憶并根據(jù)輸入元素的權(quán)重將其整合到輸出中,在機(jī)器翻譯領(lǐng)域的成功應(yīng)用[15]證明了其有效性。但是注意力機(jī)制采取的加權(quán)和形式會丟失文本的時序信息[16],而且不能捕捉特征之間的關(guān)聯(lián)??紤]例句:① 杰克喜歡凱特琳;② 凱特琳喜歡杰克。這兩個句子包含相同的3個詞,經(jīng)過RNN編碼之后,將例句①中詞的高維表示進(jìn)行加權(quán)平權(quán)的結(jié)果與例句②的結(jié)果相差無幾,但是由于詞的時序信息不一樣,兩個句子的意思卻截然相反。
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)[17]是無偏模型,它能通過具有局部感知能力的卷積核對連續(xù)n個詞進(jìn)行卷積操作來提取n-gram特征,然后對特征進(jìn)行池化操作,最后將池化過后的特征放入全連接層進(jìn)行文本分類。Kim[18]首次將CNN應(yīng)用到文本分類中,利用多個大小不同的卷積核來并行地提取不同的n-gram信息,然后對其進(jìn)行最大池化(Max Pooling)操作來提取最重要的特征,最終完成分類。Kalchbrenner等[19]隨后提出了動態(tài)卷積神經(jīng)網(wǎng)絡(luò)(Dynamic Convolutional Neural Network),使用動態(tài)k最大池化(Dynamic k-Max Pooling)來更好地保留特征信息。但是卷積核提取的n-gram特征來源于獨立連續(xù)的n個詞,脫離了語境,因此卷積核寬度的大小限制了n-gram特征的信息包含能力:把卷積核寬度設(shè)置過小將會讓n-gram特征丟失關(guān)鍵語義信息,近似于詞袋模型;把卷積核設(shè)置過大會導(dǎo)致巨大的參數(shù)空間,難以訓(xùn)練。
針對上述問題,本文提出了一種基于多通道循環(huán)卷積神經(jīng)網(wǎng)絡(luò)的文本分類模型。該模型采用雙向長短期記憶網(wǎng)絡(luò)(Bidirectional Long Short-Term Memory, Bi-LSTM)對文本進(jìn)行編碼,讓Bi-LSTM每一時間步的隱狀態(tài)既包含上文信息也包含下文信息,這種編碼方法能夠讓CNN提取包含語境的n-gram特征。然后模型通過引入注意力機(jī)制,生成文本的多通道表示,每一個通道都是文本的不同層次表征,讓文本的語義表征更加豐富,最終的分類由CNN完成。


圖1 多通道循環(huán)卷積神經(jīng)網(wǎng)絡(luò)框架圖
循環(huán)神經(jīng)網(wǎng)絡(luò)在處理時序數(shù)據(jù)的時候會根據(jù)當(dāng)前時刻的輸入xt和前一時刻的隱狀態(tài)ht-1來生成此時刻的隱狀態(tài)ht:
ht=f(W·[ht-1;xt]+b)
(1)
理論上,循環(huán)神經(jīng)網(wǎng)絡(luò)具有記憶任何長度序列信息的能力, 然而標(biāo)準(zhǔn)的循環(huán)神經(jīng)網(wǎng)絡(luò)存在著梯度消失的問題,所以研究者更傾向于使用LSTM。LSTM是由參數(shù)共享的一系列模塊單元串聯(lián)而成,在每一個時間步,LSTM通過門機(jī)制來控制信息的保留程度,其中包括遺忘門ft、輸入門it以及輸出門ot。LSTM的具體轉(zhuǎn)化公式如下:
ft=σ(Wf·[ht-1;xt]+bf)
(2)
it=σ(Wi·[ht-1;xt]+bi)
(3)
ot=σ(Wo·[ht-1;xt]+bo)
(4)
(5)
(6)
ht=ot⊙tanh(Ct)
(7)


xt=Wewt
(8)
(9)
(10)
(11)

在自然語言處理的文本分類或機(jī)器翻譯任務(wù)上,不同的詞對最終的文本表示有著不同的重要性。注意力機(jī)制可以計算出輸入元素的重要性權(quán)值,然后采用加權(quán)平均的形式將輸入元素整合到輸出中。文獻(xiàn)[20]將注意力機(jī)制的計算泛化成Query-Key-Value(Q-K-V)的形式,神經(jīng)機(jī)器翻譯領(lǐng)域的Query來自解碼器不同時刻的隱狀態(tài),其結(jié)合語境,是不斷變化的。文本分類領(lǐng)域的做法通常是設(shè)立一個可訓(xùn)練的向量充當(dāng)固定的Query來與ht或ht的映射做內(nèi)積,沒有利用到上下文語境的交互。該做法可解釋性差,因為相同的詞在不同的語境中具有不同的含義,重要性程度也會不一樣。
(12)
(13)
clt=alt·ht
(14)
Cl=[cl1,cl2,…,cln]
(15)
式中:tanh(·)是雙曲正切激活函數(shù);clt是第t個詞在第l個通道的高維向量表示;Cl是第l個通道的表示;參數(shù)只有映射矩陣Wl和偏置項bl,每個通道的映射矩陣和偏置項獨立進(jìn)行訓(xùn)練。
一個詞被編碼成n維向量[v1,v2,…,vn],而每一維都可以被解碼成特定的含義。本文提出一種矢量注意力機(jī)制,這種機(jī)制是傳統(tǒng)注意力機(jī)制的延伸,衡量的是詞表示各個維度的重要性。例如:“兵馬俑”這個詞被編碼成3維向量[v1,v2,v3],其中v1可以被解碼成“中國”,v2可以被解碼成“陜西”,v3可以被解碼成“西安”。那么在分類任務(wù)“兵馬俑是否屬于陜西?”中,第二維特征會比其他維度的特征更重要;在問答任務(wù)“兵馬俑在中國的哪一個城市?”中,第三維特征會更重要。矢量注意力機(jī)制會給每個詞分配一個向量值,假設(shè)需要得到L個通道,那么第l個通道的計算方式如下:
(16)
alt=softmax(scorelt)
(17)
clt=alt·ht
(18)
Cl=[cl1,cl2,…,cln]
(19)
式中:clt是第t個詞在第l個通道的高維向量表示;Cl是第l個通道的表示;參數(shù)有查詢矩陣Wl1、映射矩陣Wl2和偏置項bl,每個通道的參數(shù)也是獨立進(jìn)行訓(xùn)練。
標(biāo)量注意力機(jī)制和矢量注意力機(jī)制能夠分別形成多通道表示,為了減少參數(shù)規(guī)模,可以假定標(biāo)量注意力機(jī)制有多組參數(shù),而矢量注意力機(jī)制只有一組參數(shù),此時ht對應(yīng)的標(biāo)量注意力值為alt,對應(yīng)的矢量注意力值為at,那么clt按照以下方式計算:
clt=alt·(at⊙ht)
(20)
Cl=[cl1,cl2,…,cln]
(21)
將得到的clt拼接會形成文本的第l個通道表示Cl,以下將采用卷積神經(jīng)網(wǎng)絡(luò)對文本的多通道表示進(jìn)行分類。
單通道卷積與多通道卷積只有初始卷積層的參數(shù)不一樣,其余運(yùn)算無本質(zhì)區(qū)別,為了敘述簡便,本文采用單通道卷積的形式進(jìn)行描述。卷積神經(jīng)網(wǎng)絡(luò)采用多個滑動的卷積核來卷積提取局部特征。假設(shè)通過標(biāo)量和矢量注意力機(jī)制運(yùn)算之后得到的單通道表示如下:
C=[c1,c2,…,cn]
(22)
式中:C∈Rn×k,n和k分別代表文本的長度和詞表示的維度。在一次卷積操作中,一個卷積核m∈Rlk通過對連續(xù)l個詞進(jìn)行卷積運(yùn)算產(chǎn)生一個新的特征:
xi=f(m·ci:i+l-1+b)
(23)
式中:ci:i+l-1是詞高維表示[ci,ci-1,…,ci+l-1]的拼接;f(·)是非線性激活函數(shù),本文選取ReLU函數(shù)。當(dāng)一個卷積核的卷積操作完成之后,將會得到如下特征圖:
x=[x1,x2,…,xn-l+1]
(24)


(25)
通過設(shè)置s個大小不同的卷積核同時進(jìn)行卷積操作會得到多個不同的主導(dǎo)特征,將其拼接得到的向量r放入全連接層來輸出類別的概率分布:
(26)

(27)

海瑞溫斯頓將跳時功能運(yùn)用于部分腕表中,如今史詩陀飛輪Histoire de Tourbillon 9號腕表突破傳統(tǒng)。時針連續(xù)指示0至12,最后跳回起始位置。連續(xù)分針遵循同樣的設(shè)計和節(jié)奏。
(28)
式中:if(·)為指示函數(shù),如果y(i)=t成立,則if(y(i)=t)=1,如果y(i)=t不成立,則if(y(i)=t)=0。
模型采用隨機(jī)梯度下降(Stochastic Gradient Descent,SGD)方法來更新參數(shù)。
為了驗證多通道循環(huán)卷積神經(jīng)網(wǎng)絡(luò)的有效性,本文在不同的標(biāo)準(zhǔn)數(shù)據(jù)集上進(jìn)行了文本分類的測試,并將其結(jié)果與其他的文本分類算法進(jìn)行比較。所采用的標(biāo)準(zhǔn)數(shù)據(jù)集如表1所示,其中:MR是二分類的短影評數(shù)據(jù)集;Subj是二分類的主觀性測評數(shù)據(jù)集;MPQA是二分類的新聞情感極性測評數(shù)據(jù)集;SST-2和SST-1分別是二分類和五分類的影評數(shù)據(jù)集。當(dāng)數(shù)據(jù)沒有標(biāo)準(zhǔn)的訓(xùn)練/驗證/測試劃分時,使用交叉驗證(Cross Validation, CV),預(yù)處理詞數(shù)代表文本去停用詞之后的數(shù)據(jù)集中詞的總數(shù)。

表1 數(shù)據(jù)集詳細(xì)信息
由于卷積層要求輸入定長,而文本數(shù)據(jù)是不定長數(shù)據(jù),所以本文使用unk字符來將所有文本擴(kuò)充為長度為n的新文本,其中n為數(shù)據(jù)集中最長句子的長度。使用無監(jiān)督神經(jīng)語言模型獲得的詞向量來初始化數(shù)據(jù)集中的詞是提高性能常用方法,其中Word2vec是通過使用連續(xù)詞袋模型在谷歌新聞上訓(xùn)練得到的詞向量,每個詞向量包含300維。本文使用預(yù)訓(xùn)練詞向量Word2vec來初始化數(shù)據(jù)集中的詞。如果數(shù)據(jù)集中的詞不在預(yù)訓(xùn)練的詞向量中,則將其每一維按照均勻分布U[-0.25,0.25]來初始化,以保證所有詞的詞向量有著相同的方差。雖然讓詞向量在模型訓(xùn)練過程中進(jìn)行微調(diào)整會讓分類精度更高,但是對于規(guī)模較小的數(shù)據(jù)集,讓詞向量保持靜止會讓模型更穩(wěn)定,因此模型將可訓(xùn)練的詞向量和靜止的詞向量拼接作為輸入。
對于使用unk來填充的部分,它們經(jīng)過Bi-LSTM編碼后仍然只攜帶了很少的信息,因此它們的權(quán)重應(yīng)當(dāng)盡量小到對分類結(jié)果沒有影響。在式(13)進(jìn)行softmax歸一化之前,將unk對應(yīng)的scorelt減去一個固定很大的正數(shù),這樣會將unk對應(yīng)的alt在softmax歸一化操作之后接近0。
在模型中,只使用單層Bi-LSTM和只包含一層卷積層的CNN。為了防止模型過擬合,模型在詞向量輸入層和全連接分類層使用dropout,并且使用L2正則化來限制標(biāo)量注意力機(jī)制和矢量注意力機(jī)制中矩陣參數(shù)。模型的參數(shù)設(shè)置如表2所示,其中隱狀態(tài)維度指的是單向LSTM的隱狀態(tài)維度,卷積核設(shè)置為(4,5,6)×100指的是寬度為4、5、6的卷積核各100個。

表2 模型相關(guān)參數(shù)設(shè)置
本文所采用的對比算法主要分為兩類:傳統(tǒng)機(jī)器學(xué)習(xí)方法與基于深度學(xué)習(xí)的方法。傳統(tǒng)機(jī)器學(xué)習(xí)方法包括:基于統(tǒng)計解析的Sent-Paser[21];基于樸素貝葉斯特征的支持向量機(jī)(NBSVM)[20];基于多項式的樸素貝葉斯(MNB)[22];快速丟棄(F-Dropout)[23]?;谏疃葘W(xué)習(xí)的方法包括:從變長文本學(xué)習(xí)出的定長段落嵌入(Paragraph-Vec)[24];基于遞歸神經(jīng)網(wǎng)絡(luò)的RAE[25],MV-RNN,RNTN;采用動態(tài)k最大池化的動態(tài)卷積神經(jīng)網(wǎng)絡(luò)(DCNN);基于預(yù)訓(xùn)練詞向量的卷積神經(jīng)網(wǎng)絡(luò)(CNN);基于詞聚類的Hclustering_avg[26]和Kmeans_centroid[26]。
表3為本文模型與相關(guān)算法在不同數(shù)據(jù)集上的對比結(jié)果。本文模型在表中用MRCNN-{1,3,5,7,rv}來表示,其中MRCNN-{1,3,5,7}代表通道數(shù)分別為{1,3,5,7}的MRCNN,MRCNN-rv代表去掉矢量注意力機(jī)制的MRCNN-3??梢钥闯?,在MR、Subj、MPQA三個數(shù)據(jù)集上,本文算法的分類結(jié)果表現(xiàn)優(yōu)異,尤其是在MR數(shù)據(jù)集上提升顯著。然而在SST-1和SST-2數(shù)據(jù)集上,本文算法未能超越之前的算法,原因是模型沒有利用到SST數(shù)據(jù)集中的額外語法樹等信息。

表3 本文算法與對比算法在不同數(shù)據(jù)集上的結(jié)果

續(xù)表3
MRCNN-1本質(zhì)上是單通道模型。MRCNN-3表現(xiàn)優(yōu)于MRCNN-{5,7},而MRCNN-{5,7}優(yōu)于MRCNN-1。這種現(xiàn)象表明多通道在表征文本上比單通道更有效,但是通道數(shù)并不是越多越好,本文認(rèn)為通道數(shù)根據(jù)文本中重要的詞數(shù)來選擇會取得更理想的效果。本文從MR數(shù)據(jù)集中挑選出兩個例子來進(jìn)行分析:“Uplifting as only a document of the worst possibilities of mankind can be, and among the best films of the year.”以及“An undeniably gorgeous, terminally document of a troubadour, his acolytes, and the triumph of his band.”第一個例句中有三個與情感有關(guān)的詞uplifting、worst、best,第二個例句中比較重要的詞有undeniably、gorgeous、triumph等。模型在給這兩句話進(jìn)行分類的過程中,標(biāo)量注意力機(jī)制會給各個詞進(jìn)行分配權(quán)重,如圖2所示。

圖2 通過不同通道學(xué)習(xí)到的標(biāo)量注意力權(quán)重的可視化
對于第一個句子,第一個通道按重要性程度排序主要關(guān)注了uplifting、best、worst、and等;第二個通道依次關(guān)注了worst、uplifting、best等;第三個通道依次關(guān)注了best、uplifting、worst。該句子表達(dá)的是正向情感,但是第二個通道卻給worst分配了較大的權(quán)重,如果只根據(jù)第二個通道的文本表示來進(jìn)行最終的分類,結(jié)果將會出錯,但是由于另外兩個通道的存在,文本的表示依然是正向情感占主導(dǎo)因素,因此多通道的存在會讓模型的泛化能力更強(qiáng)。
對于第二個句子,第一個通道給gorgeous、acolyte、undeniably、triumph等詞分配了較大權(quán)重;第二個通道卻沒有關(guān)注acolytes這個詞,更集中地關(guān)注了gorgeous、undeniably、triumph這些詞;第三個通道則是比較均衡,除了上述重要的詞外,對文中其他的詞也給予了一定的關(guān)注度。這3種分配注意力的方式給文本引入了外部擾動,讓文本有著3種不同的表示方式,使文本在特征層次的數(shù)據(jù)增強(qiáng),最終的分類會綜合考慮這些文本的表示。
本文提出的MRCNN-rv與MRCNN-3的對比也驗證了矢量注意力機(jī)制的有效性,矢量注意力機(jī)制能夠根據(jù)特定的任務(wù)來選擇詞不同的高維特征,有了初步的一詞多義能力,此外,矢量注意力機(jī)制也給文本數(shù)據(jù)引入了內(nèi)部擾動。
圖3以三通道模型為基準(zhǔn),展示了通道數(shù)的變化對各個數(shù)據(jù)集產(chǎn)生的準(zhǔn)確率影響。在 MPQA、MR、SST-2 數(shù)據(jù)集上,三通道模型表現(xiàn)最優(yōu)。在Subj數(shù)據(jù)集上,模型準(zhǔn)確率雖然不高,但隨著通道數(shù)的增加會先增加再減少。因此對于小規(guī)模數(shù)據(jù)集,通道數(shù)為3時模型的性能已經(jīng)較為優(yōu)異,四通道模型最優(yōu),但是準(zhǔn)確率與三通道模型存在差距。本文推測模型的通道數(shù)可以根據(jù)文本中重要的詞數(shù)來選擇,上述第二個例句中有三個比較重要的詞 (uplifting,worst,best),三個通道剛好分別重點關(guān)注了這三個詞,當(dāng)重要詞的個數(shù)與通道數(shù)不一致的時候 (如例句一),多通道仍然會給它們分配較大的權(quán)重,只是權(quán)值有所波動,因此會給文本引入外部擾動,最終的結(jié)果都是讓文本得到語義更豐富的表達(dá)。

圖3 通道數(shù)對模型分類性能的影響
本文提出了一種基于注意力機(jī)制的多通道循環(huán)卷積神經(jīng)網(wǎng)絡(luò)(MRCNN)來完成文本分類任務(wù)。模型通過Bi-LSTM對文本進(jìn)行序列建模,讓詞的高維表示包含上下文語境信息。引入的標(biāo)量注意力機(jī)制使用Bi-LSTM產(chǎn)生的反向隱狀態(tài)充當(dāng)Query,讓注意力機(jī)制的計算充分考慮到上下文語境;提出的矢量注意力機(jī)制能夠讓詞的特征在不同的任務(wù)中選擇性表達(dá),讓詞具有初步的一詞多義能力。根據(jù)注意力機(jī)制的計算方式,模型可以生成文本的多通道表示,每個通道都是文本數(shù)據(jù)的不同表達(dá)。模型使用CNN來完成n-gram特征的提取以及分類,此時CNN提取的n-gram特征包含詞的上下文信息,緩解了卷積核寬度帶來的限制。由于多通道能夠讓文本的語義特征更加豐富,因此模型在文本分類任務(wù)上表現(xiàn)優(yōu)異。
本文提出的多通道是基于注意力機(jī)制生成的,本質(zhì)上是對文本的特征增強(qiáng),但是這種實現(xiàn)依賴于Bi-LSTM的序列建模效果,未來可以使用生成模型(如GAN,VAE)來對文本做數(shù)據(jù)增強(qiáng)形成多通道表示。模型使用的Bi-LSTM在序列建模時并行化計算的程度較低,在大規(guī)模文本訓(xùn)練上會比較耗時,因此采用分層的結(jié)構(gòu)來對文本進(jìn)行多通道編碼表示也是一個有待研究的問題。