?

基于多通道循環卷積神經網絡的文本分類方法

2020-09-02 01:35
計算機應用與軟件 2020年8期
關鍵詞:向量卷積注意力

陸 超 紅

(中國科學技術大學計算機科學與技術學院中國科大-伯明翰大學智能計算與應用聯合研究所 安徽 合肥 230027)

0 引 言

文本分類是自然語言處理的核心任務之一,在垃圾郵件檢測[2]、主題分類[3]和情感分析[4]等領域有著大量的應用[1]。傳統的文本分類方法包括:樸素貝葉斯[5]、支持向量機、K近鄰以及決策樹等。這些分類方法大多使用稀疏的詞匯特征來表示文本,常見的文本表示方法有詞袋模型(Bag of Words,BoW)以及向量空間模型(Vector Space Model,VSM)等。這些文本表示方法通常忽略了文本上下文關系,并且丟失了語序信息,因此不能很好地提取文本的語義特征。

隨著深度學習的發展,詞的分布式表示凸顯出了極大的優勢。Bengio等[6]提出了神經概率語言模型(Neural Probabilistic Language Model,NPLM),詞向量嵌入可以通過訓練該模型來得到。Mikolov等[7]提出了用連續詞袋模型(CBoW)和連續跳躍元語法模型[7](Skip-Gram)來訓練詞向量。

連續詞袋模型通過周圍的詞來預測中心詞,連續跳躍元語法模型則是通過中心詞來預測周圍詞,這些模型由于考慮到了上下文信息,因此有語義表征能力。預訓練的詞向量與傳統的文本表示方法相比,具有低維、稠密等特點,而且會讓語義相似詞的詞向量在歐氏空間中的距離較小,因此在深度學習中得到了大規模的應用。

基于預訓練的詞向量表示,研究者提出利用循環神經網絡(Recurrent Neural Network, RNN)[8]來對序列進行建模。這種模型會將文本的所有歷史信息保存在一個定長隱狀態向量中,因此能夠捕捉文本中的長期依賴。然而RNN存在著梯度消失等問題,通過引入門機制的長短期記憶網絡(Long Short-Term Memory,LSTM)[9]和門控循環單元(Gated Recurrent Unit)[10]能夠讓這個問題得到有效緩解。Tang等[11]提出了利用門控循環單元來對文檔進行編碼,Yang等[12]基于門控循環單元提出了文檔的分層編碼。這些研究表明:這種編碼方法得到的文檔表示能夠包含句子的語義和句子間的關系。由于RNN是一個有偏模型[13],重要的信息不一定存在于文本末尾,因此定長的向量表示限制了RNN的文本特征表達能力。一種簡單的解決方案是將RNN各個時間步的隱狀態置為同等重要,然后利用它們的均值池化向量來代替最終時間步的隱狀態向量。

為了更好地選取對分類結果的有著重要貢獻的輸入元素,Bahdanau等[14]將注意力機制(Attention Mechanism)引入到自然語言處理領域。注意力機制能夠讓RNN保持可變長度的記憶并根據輸入元素的權重將其整合到輸出中,在機器翻譯領域的成功應用[15]證明了其有效性。但是注意力機制采取的加權和形式會丟失文本的時序信息[16],而且不能捕捉特征之間的關聯??紤]例句:① 杰克喜歡凱特琳;② 凱特琳喜歡杰克。這兩個句子包含相同的3個詞,經過RNN編碼之后,將例句①中詞的高維表示進行加權平權的結果與例句②的結果相差無幾,但是由于詞的時序信息不一樣,兩個句子的意思卻截然相反。

卷積神經網絡(Convolutional Neural Network,CNN)[17]是無偏模型,它能通過具有局部感知能力的卷積核對連續n個詞進行卷積操作來提取n-gram特征,然后對特征進行池化操作,最后將池化過后的特征放入全連接層進行文本分類。Kim[18]首次將CNN應用到文本分類中,利用多個大小不同的卷積核來并行地提取不同的n-gram信息,然后對其進行最大池化(Max Pooling)操作來提取最重要的特征,最終完成分類。Kalchbrenner等[19]隨后提出了動態卷積神經網絡(Dynamic Convolutional Neural Network),使用動態k最大池化(Dynamic k-Max Pooling)來更好地保留特征信息。但是卷積核提取的n-gram特征來源于獨立連續的n個詞,脫離了語境,因此卷積核寬度的大小限制了n-gram特征的信息包含能力:把卷積核寬度設置過小將會讓n-gram特征丟失關鍵語義信息,近似于詞袋模型;把卷積核設置過大會導致巨大的參數空間,難以訓練。

針對上述問題,本文提出了一種基于多通道循環卷積神經網絡的文本分類模型。該模型采用雙向長短期記憶網絡(Bidirectional Long Short-Term Memory, Bi-LSTM)對文本進行編碼,讓Bi-LSTM每一時間步的隱狀態既包含上文信息也包含下文信息,這種編碼方法能夠讓CNN提取包含語境的n-gram特征。然后模型通過引入注意力機制,生成文本的多通道表示,每一個通道都是文本的不同層次表征,讓文本的語義表征更加豐富,最終的分類由CNN完成。

1 多通道循環卷積神經網絡

圖1 多通道循環卷積神經網絡框架圖

1.1 長短期記憶網絡

循環神經網絡在處理時序數據的時候會根據當前時刻的輸入xt和前一時刻的隱狀態ht-1來生成此時刻的隱狀態ht:

ht=f(W·[ht-1;xt]+b)

(1)

理論上,循環神經網絡具有記憶任何長度序列信息的能力, 然而標準的循環神經網絡存在著梯度消失的問題,所以研究者更傾向于使用LSTM。LSTM是由參數共享的一系列模塊單元串聯而成,在每一個時間步,LSTM通過門機制來控制信息的保留程度,其中包括遺忘門ft、輸入門it以及輸出門ot。LSTM的具體轉化公式如下:

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)

1.2 標量注意力機制

在自然語言處理的文本分類或機器翻譯任務上,不同的詞對最終的文本表示有著不同的重要性。注意力機制可以計算出輸入元素的重要性權值,然后采用加權平均的形式將輸入元素整合到輸出中。文獻[20]將注意力機制的計算泛化成Query-Key-Value(Q-K-V)的形式,神經機器翻譯領域的Query來自解碼器不同時刻的隱狀態,其結合語境,是不斷變化的。文本分類領域的做法通常是設立一個可訓練的向量充當固定的Query來與ht或ht的映射做內積,沒有利用到上下文語境的交互。該做法可解釋性差,因為相同的詞在不同的語境中具有不同的含義,重要性程度也會不一樣。

(12)

(13)

clt=alt·ht

(14)

Cl=[cl1,cl2,…,cln]

(15)

式中:tanh(·)是雙曲正切激活函數;clt是第t個詞在第l個通道的高維向量表示;Cl是第l個通道的表示;參數只有映射矩陣Wl和偏置項bl,每個通道的映射矩陣和偏置項獨立進行訓練。

1.3 矢量注意力機制

一個詞被編碼成n維向量[v1,v2,…,vn],而每一維都可以被解碼成特定的含義。本文提出一種矢量注意力機制,這種機制是傳統注意力機制的延伸,衡量的是詞表示各個維度的重要性。例如:“兵馬俑”這個詞被編碼成3維向量[v1,v2,v3],其中v1可以被解碼成“中國”,v2可以被解碼成“陜西”,v3可以被解碼成“西安”。那么在分類任務“兵馬俑是否屬于陜西?”中,第二維特征會比其他維度的特征更重要;在問答任務“兵馬俑在中國的哪一個城市?”中,第三維特征會更重要。矢量注意力機制會給每個詞分配一個向量值,假設需要得到L個通道,那么第l個通道的計算方式如下:

(16)

alt=softmax(scorelt)

(17)

clt=alt·ht

(18)

Cl=[cl1,cl2,…,cln]

(19)

式中:clt是第t個詞在第l個通道的高維向量表示;Cl是第l個通道的表示;參數有查詢矩陣Wl1、映射矩陣Wl2和偏置項bl,每個通道的參數也是獨立進行訓練。

標量注意力機制和矢量注意力機制能夠分別形成多通道表示,為了減少參數規模,可以假定標量注意力機制有多組參數,而矢量注意力機制只有一組參數,此時ht對應的標量注意力值為alt,對應的矢量注意力值為at,那么clt按照以下方式計算:

clt=alt·(at⊙ht)

(20)

Cl=[cl1,cl2,…,cln]

(21)

將得到的clt拼接會形成文本的第l個通道表示Cl,以下將采用卷積神經網絡對文本的多通道表示進行分類。

1.4 卷積神經網絡

單通道卷積與多通道卷積只有初始卷積層的參數不一樣,其余運算無本質區別,為了敘述簡便,本文采用單通道卷積的形式進行描述。卷積神經網絡采用多個滑動的卷積核來卷積提取局部特征。假設通過標量和矢量注意力機制運算之后得到的單通道表示如下:

C=[c1,c2,…,cn]

(22)

式中:C∈Rn×k,n和k分別代表文本的長度和詞表示的維度。在一次卷積操作中,一個卷積核m∈Rlk通過對連續l個詞進行卷積運算產生一個新的特征:

xi=f(m·ci:i+l-1+b)

(23)

式中:ci:i+l-1是詞高維表示[ci,ci-1,…,ci+l-1]的拼接;f(·)是非線性激活函數,本文選取ReLU函數。當一個卷積核的卷積操作完成之后,將會得到如下特征圖:

x=[x1,x2,…,xn-l+1]

(24)

(25)

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

(26)

(27)

海瑞溫斯頓將跳時功能運用于部分腕表中,如今史詩陀飛輪Histoire de Tourbillon 9號腕表突破傳統。時針連續指示0至12,最后跳回起始位置。連續分針遵循同樣的設計和節奏。

(28)

式中:if(·)為指示函數,如果y(i)=t成立,則if(y(i)=t)=1,如果y(i)=t不成立,則if(y(i)=t)=0。

模型采用隨機梯度下降(Stochastic Gradient Descent,SGD)方法來更新參數。

2 實 驗

為了驗證多通道循環卷積神經網絡的有效性,本文在不同的標準數據集上進行了文本分類的測試,并將其結果與其他的文本分類算法進行比較。所采用的標準數據集如表1所示,其中:MR是二分類的短影評數據集;Subj是二分類的主觀性測評數據集;MPQA是二分類的新聞情感極性測評數據集;SST-2和SST-1分別是二分類和五分類的影評數據集。當數據沒有標準的訓練/驗證/測試劃分時,使用交叉驗證(Cross Validation, CV),預處理詞數代表文本去停用詞之后的數據集中詞的總數。

表1 數據集詳細信息

2.1 實驗設置

由于卷積層要求輸入定長,而文本數據是不定長數據,所以本文使用unk字符來將所有文本擴充為長度為n的新文本,其中n為數據集中最長句子的長度。使用無監督神經語言模型獲得的詞向量來初始化數據集中的詞是提高性能常用方法,其中Word2vec是通過使用連續詞袋模型在谷歌新聞上訓練得到的詞向量,每個詞向量包含300維。本文使用預訓練詞向量Word2vec來初始化數據集中的詞。如果數據集中的詞不在預訓練的詞向量中,則將其每一維按照均勻分布U[-0.25,0.25]來初始化,以保證所有詞的詞向量有著相同的方差。雖然讓詞向量在模型訓練過程中進行微調整會讓分類精度更高,但是對于規模較小的數據集,讓詞向量保持靜止會讓模型更穩定,因此模型將可訓練的詞向量和靜止的詞向量拼接作為輸入。

對于使用unk來填充的部分,它們經過Bi-LSTM編碼后仍然只攜帶了很少的信息,因此它們的權重應當盡量小到對分類結果沒有影響。在式(13)進行softmax歸一化之前,將unk對應的scorelt減去一個固定很大的正數,這樣會將unk對應的alt在softmax歸一化操作之后接近0。

在模型中,只使用單層Bi-LSTM和只包含一層卷積層的CNN。為了防止模型過擬合,模型在詞向量輸入層和全連接分類層使用dropout,并且使用L2正則化來限制標量注意力機制和矢量注意力機制中矩陣參數。模型的參數設置如表2所示,其中隱狀態維度指的是單向LSTM的隱狀態維度,卷積核設置為(4,5,6)×100指的是寬度為4、5、6的卷積核各100個。

表2 模型相關參數設置

本文所采用的對比算法主要分為兩類:傳統機器學習方法與基于深度學習的方法。傳統機器學習方法包括:基于統計解析的Sent-Paser[21];基于樸素貝葉斯特征的支持向量機(NBSVM)[20];基于多項式的樸素貝葉斯(MNB)[22];快速丟棄(F-Dropout)[23]?;谏疃葘W習的方法包括:從變長文本學習出的定長段落嵌入(Paragraph-Vec)[24];基于遞歸神經網絡的RAE[25],MV-RNN,RNTN;采用動態k最大池化的動態卷積神經網絡(DCNN);基于預訓練詞向量的卷積神經網絡(CNN);基于詞聚類的Hclustering_avg[26]和Kmeans_centroid[26]。

2.2 實驗結果與分析

表3為本文模型與相關算法在不同數據集上的對比結果。本文模型在表中用MRCNN-{1,3,5,7,rv}來表示,其中MRCNN-{1,3,5,7}代表通道數分別為{1,3,5,7}的MRCNN,MRCNN-rv代表去掉矢量注意力機制的MRCNN-3??梢钥闯?,在MR、Subj、MPQA三個數據集上,本文算法的分類結果表現優異,尤其是在MR數據集上提升顯著。然而在SST-1和SST-2數據集上,本文算法未能超越之前的算法,原因是模型沒有利用到SST數據集中的額外語法樹等信息。

表3 本文算法與對比算法在不同數據集上的結果

續表3

MRCNN-1本質上是單通道模型。MRCNN-3表現優于MRCNN-{5,7},而MRCNN-{5,7}優于MRCNN-1。這種現象表明多通道在表征文本上比單通道更有效,但是通道數并不是越多越好,本文認為通道數根據文本中重要的詞數來選擇會取得更理想的效果。本文從MR數據集中挑選出兩個例子來進行分析:“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.”第一個例句中有三個與情感有關的詞uplifting、worst、best,第二個例句中比較重要的詞有undeniably、gorgeous、triumph等。模型在給這兩句話進行分類的過程中,標量注意力機制會給各個詞進行分配權重,如圖2所示。

圖2 通過不同通道學習到的標量注意力權重的可視化

對于第一個句子,第一個通道按重要性程度排序主要關注了uplifting、best、worst、and等;第二個通道依次關注了worst、uplifting、best等;第三個通道依次關注了best、uplifting、worst。該句子表達的是正向情感,但是第二個通道卻給worst分配了較大的權重,如果只根據第二個通道的文本表示來進行最終的分類,結果將會出錯,但是由于另外兩個通道的存在,文本的表示依然是正向情感占主導因素,因此多通道的存在會讓模型的泛化能力更強。

對于第二個句子,第一個通道給gorgeous、acolyte、undeniably、triumph等詞分配了較大權重;第二個通道卻沒有關注acolytes這個詞,更集中地關注了gorgeous、undeniably、triumph這些詞;第三個通道則是比較均衡,除了上述重要的詞外,對文中其他的詞也給予了一定的關注度。這3種分配注意力的方式給文本引入了外部擾動,讓文本有著3種不同的表示方式,使文本在特征層次的數據增強,最終的分類會綜合考慮這些文本的表示。

本文提出的MRCNN-rv與MRCNN-3的對比也驗證了矢量注意力機制的有效性,矢量注意力機制能夠根據特定的任務來選擇詞不同的高維特征,有了初步的一詞多義能力,此外,矢量注意力機制也給文本數據引入了內部擾動。

2.3 通道數分析

圖3以三通道模型為基準,展示了通道數的變化對各個數據集產生的準確率影響。在 MPQA、MR、SST-2 數據集上,三通道模型表現最優。在Subj數據集上,模型準確率雖然不高,但隨著通道數的增加會先增加再減少。因此對于小規模數據集,通道數為3時模型的性能已經較為優異,四通道模型最優,但是準確率與三通道模型存在差距。本文推測模型的通道數可以根據文本中重要的詞數來選擇,上述第二個例句中有三個比較重要的詞 (uplifting,worst,best),三個通道剛好分別重點關注了這三個詞,當重要詞的個數與通道數不一致的時候 (如例句一),多通道仍然會給它們分配較大的權重,只是權值有所波動,因此會給文本引入外部擾動,最終的結果都是讓文本得到語義更豐富的表達。

圖3 通道數對模型分類性能的影響

3 結 語

本文提出了一種基于注意力機制的多通道循環卷積神經網絡(MRCNN)來完成文本分類任務。模型通過Bi-LSTM對文本進行序列建模,讓詞的高維表示包含上下文語境信息。引入的標量注意力機制使用Bi-LSTM產生的反向隱狀態充當Query,讓注意力機制的計算充分考慮到上下文語境;提出的矢量注意力機制能夠讓詞的特征在不同的任務中選擇性表達,讓詞具有初步的一詞多義能力。根據注意力機制的計算方式,模型可以生成文本的多通道表示,每個通道都是文本數據的不同表達。模型使用CNN來完成n-gram特征的提取以及分類,此時CNN提取的n-gram特征包含詞的上下文信息,緩解了卷積核寬度帶來的限制。由于多通道能夠讓文本的語義特征更加豐富,因此模型在文本分類任務上表現優異。

本文提出的多通道是基于注意力機制生成的,本質上是對文本的特征增強,但是這種實現依賴于Bi-LSTM的序列建模效果,未來可以使用生成模型(如GAN,VAE)來對文本做數據增強形成多通道表示。模型使用的Bi-LSTM在序列建模時并行化計算的程度較低,在大規模文本訓練上會比較耗時,因此采用分層的結構來對文本進行多通道編碼表示也是一個有待研究的問題。

猜你喜歡
向量卷積注意力
向量的分解
讓注意力“飛”回來
基于3D-Winograd的快速卷積算法設計及FPGA實現
一種并行不對稱空洞卷積模塊①
聚焦“向量與三角”創新題
如何培養一年級學生的注意力
從濾波器理解卷積
基于傅里葉域卷積表示的目標跟蹤算法
A Beautiful Way Of Looking At Things
向量垂直在解析幾何中的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合