徐逸舟,林 曉,陸黎明
(上海師范大學 信息與機電工程學院,上海 200234)
電影評論的文本情感分類任務與文本分類[1]類似,本質上是將文本歸類到某一預定義標簽的特定類別。目前常用的方法可以分為3類:①基于詞典和語義分析等方法[2]。這類方法主要通過人工制定語義規則,通常需要針對特定領域來建立相應情感詞典,有很大的局限性。②使用傳統機器學習的方法[3]。主要基于監督學習,利用樸素貝葉斯[4]、支持向量機[5]等算法。這些方法都可以被劃分為淺層學習方法[6]。它們計算量雖小,但泛化能力較差。③使用深度學習。這類方法主要基于卷積神經網絡和長短期記憶網絡(long short-term memory,LSTM)等神經網絡。
為了實現對電影影評情感傾向的準確分類,本文提出了一種基于分層式CNN的pos-ACNN-CNN長文本情感分類模型。常見的文本分類模型對于短文本已經取得較好的結果,但對于長文本,由于句子較長較多,且情感語義貢獻度不同的原因,其分類的準確度并沒有達到預期效果。本文提出的模型針對電影長評,兼顧上下文內容,提取出對分類貢獻度大的特征,從而提高情感分類的準確性。
近年來,隨著深度學習的不斷發展,許多原本應用在計算機視覺領域的神經網絡模型開始在自然語言處理領域中嶄露頭角,并取得了不錯的進展。文本分類技術是自然語言處理中最常用的技術之一,同時也是一個多學科交叉的研究方向,涉及到語言學、統計學、數據挖掘等多個領域的理論和方法。
2014,原本應用在計算機視覺領域的CNN模型被引入到文本分類任務中。Ko等[7]提出多層卷積神經網絡,并將其運用在字符級別的識別和分類中。Vieira等[8]則在句子層使用卷積神經網絡進行文本分類。Tang等[9]為了對句子之間的關聯關系進行建模,提出層次化循環神經網絡(recurrent neural network,RNN)模型。Zhou等[10]使用LSTM解決跨語言情感分析任務,解決了循環神經網絡存在的梯度爆炸和梯度消失的問題。
注意力機制可以根據上下文信息找到真正對語義起作用的詞語,對解決情感極性判別問題非常有效。Yin等[11]提出一種基于注意力機制的卷積神經網絡,并將該網絡模型運用在句子對的建模任務中,驗證了注意力機制和CNN結合的可行性。Wang等[12]利用那個多層注意力機制和卷積神經網絡結合的方式進行句子關系分類。總的來說,深度學習方法能夠對特征信息進行自動提取,在自然語言處理的多個領域問題上,減少了傳統方法繁瑣復雜的特征工程步驟,具有很大的優勢。
上述的算法模型在短文本的分類中總能取得較好的效果,當訓練集和測試集中評論的詞語不超過140字時,其分類效果顯著。但當處理較長的文本時,準確度將會明顯下降。這是因為長文本具有句子多、文本長的特點,因此需要能夠更加精煉提取其關鍵信息,分析上下文情感關系,從而準確判斷作者的情感極性。
針對電影評論的文本情感分類任務,本文在卷積神經網絡的模型基礎上,提出基于注意力機制和卷積神經網絡結合的分層式長文本情感分類模型pos-ACNN-CNN。模型由pos Embedding層、ACNN層和CNN層組成。其中,pos Embedding層是帶有位置信息的詞嵌入層,ACNN層是由基于注意力機制的CNN模型構成,最后的CNN層則是由基于文本層的CNN模型構成。pos-ACNN-CNN模型如圖1所示。

圖1 基于分層式CNN的pos-ACNN-CNN長文本情感分類模型
電影評論通常包含強烈的情感傾向,且在表達上多有前后因果關系,因此構造句子對更能提取出關鍵性的信息。據此,將影評中前后兩個句子組成一個句子對,針對每個句子首先通過Word2vec獲得詞向量表示,根據詞語位置添加位置編碼信息。使用ACNN模型提取句子對之間的特征信息,再將所有句子對的特征信息輸入到CNN模型中,通過CNN模型提取整個文本的全局特征,最終得到輸出分類結果。
詞向量的表示方法有多種,過去最常用的是詞袋模型。然而詞袋模型并沒有考慮句子中詞與詞之間的上下文關系,僅僅考慮詞本身的權重,而權重只與詞語在文本中出現的頻率有關。另一方面,詞袋模型會出現數據稀疏和特征向量維度過高等問題,不易計算且計算量大。
本文采用Word2vec[13]獲取文本詞向量表示。Word2vec是Google的開源工具,它改進了神經語言模型,結合了人工神經網絡和概率模型。Word2vec包含了兩種訓練模型,CBOW模型和Skip-gram。本文使用CBOW模型得到詞向量,作為模型的輸入。
本文以詞為單位,對于長度為n的句子,其句向量可表示為詞向量進行拼接后的結果
E1∶n=E1⊕E2⊕…⊕En
(1)
其中,⊕為拼接操作符。
由于本文基于卷積神經網絡,保留句子序列信息的能力并不強。而序列信息代表著全局的結構,又尤為重要。因此為了充分利用句子本身的順序性,本文在每個單詞中增加了該單詞在句子中的相對位置編碼信息。有多種方法來構建位置編碼信息函數,此處本文采用正弦和余弦函數[14]。該方法可以適用測試集中句子長度長于訓練集實例的情況
PE(pos,2i)=sin(pos/100002i/d)
(2)
PE(pos,2i+1)=cos(pos/100002i/d)
(3)
POS=PE(pos,2i)⊕PE(pos,2i+1)
(4)
POS表示該詞的位置編碼信息向量。其中pos是該詞在句子中的位置,d表示詞向量的維度,i表示詞向量中的第i個元素,⊕為拼接操作符。
編碼信息與詞嵌入向量矩陣的維度相同,可以直接疊加求和,再進行后面的計算。所以在本文的模型中,ACNN模型的輸入層是詞嵌入向量與位置編碼向量之和。pos-Embedding層模型如圖2所示。

圖2 帶位置信息的pos-Embedding層
在pos-Embedding層之后,提出基于注意力機制的卷積神經網絡ACNN模型,如圖3所示。ACNN主要由輸入層、寬卷積層、基于注意力機制的池化層和合并層組成。輸入層接收的是pos-Embedding層的輸出,即句子對中每個詞語的詞向量特征矩陣;寬卷積利用其本身特點對輸入層的基本單位進行卷積操作提取特征;在池化層添加注意力機制提取不同詞語之間的情感極性;最后通過合并層將兩個句子的特性信息進行融合,得到該句子對的特征表示向量。

圖3 ACNN模型框架
2.3.1 寬卷積
假設有大小為k的卷積核和長度為n的句子。Li∈d是該句子中第i個詞的d維向量表示,L∈n×d代表輸入句子,向量m∈k×d表示卷積操作使用的卷積核。對于句子中的第j個位置,可以根據卷積核大小得到同樣大小的窗口向量矩陣。它由k個連續詞向量組成
wj=[Lj,Lj+1,…,Lj+k-1]
(5)
卷積核m對每個位置的窗口向量(k-gram)進行卷積。一維卷積背后的思想是將卷積核m與句子L中的每個k-gram做矩陣的元素相乘運算,得到特征映射cj為
cj=f(mTwj+b)
(6)
其中,b是偏置項,f(x)是一個非線性變換函數,常用sigmoid、tanh、reLU等激活函數。本文使用reLU激活函數。
對于窄卷積,如圖4所示,也就是常提到的卷積,j的范圍從1到n-m。然而在進行這樣的窄卷積時,使用卷積核對矩陣操作往往對處于邊緣的數據無法操作。此處本文使用zero-padding的方法,對于輸入值范圍外的當j<1或者j>n-m都設為0。這樣可以將卷積核應用在所有輸入尺寸的矩陣上。最終可以獲得一個更大的矩陣輸出。而這種填充0的方法被稱為寬卷積,如圖5所示。

圖4 窄卷積

圖5 寬卷積
假設輸入節點為L1到Ln,卷積核m的大小為k,經過窄卷積操作后只剩下(n-k+1)個節點,而處于邊緣的(k-1)/2個節點沒有相應的卷積操作,因此會失去關于這兩個節點的相關信息;我們采用zero-padding法,首先在矩陣邊緣添加(k-1)/2個節點,再進行卷積運算則得到(n+k-1)個節點,甚至比原矩陣更大。
經過寬卷積之后得到特征向量C為
C=(c1,c2,…,cn+k-1)
(7)
寬卷積相比窄卷積能確保卷積核中所有權重能達到整個句子,包括邊緣的單詞。故本文在輸入層之后進行寬卷積操作,盡最大可能保留句子中的所有信息,以提高最后分類的準確性。
2.3.2 基于Attention的池化層
為了使模型在訓練過程中區分重要信息,本文在池化層中添加注意力機制,使模型高度關注這些信息。
在卷積層部分,我們將兩個連續的句子進行寬卷積操作從而得到的兩個不同的輸出向量,命名為CL和CR。利用這兩個向量進行如下公式計算可以得到注意力權重向量矩陣A
Ai,j=MatchScore(CL[:,i],CR[:,j])
(8)
Aij代表FL的第i列向量和FR的第j列向量的距離度量。其定義方法為1/(1+|L-R|),|L-R|表示左右兩個向量的距離度量,計算方法有多種,如歐幾里得距離、余弦相似度、曼哈頓距離等等,此處使用歐幾里得距離,效果較好。
獲取注意力權重向量矩陣A之后,計算卷積向量權重,給每個卷積層輸出一個權重值。左向量(7 col)每個單元對應的Attention權重aL,j是由權重向量矩陣A中的列向量求和的值作為權重值
aL,j=∑A[j,:]
(9)
右向量(9 col)中每個單元的權重值aR,j是權重向量矩陣A的行向量求和得到
aR,j=∑A[:,j]
(10)
在池化的時候,將卷積后輸出的特征矩陣,基于Attention的權重值,相乘求和,提取出重要的特征信息,再連接成一個向量,得到池化層的輸出。其中,C∈(L+w-1)×d表示卷積層輸出,而整個句子池化后得到
(11)
其中,x有L和R兩個選項,分別代表一個句子對的左句子和右句子。d是向量維度。ax,k是句子x對應的Attention權重值,Cx是句子x卷積后得到的句子向量。而Px是x句子池化后得到的句子特征。最終在合并層,將PL和PR進行拼接操作,得到句子對的特性信息向量P
P=PL⊕PR
(12)
經過2.3節,最終得到基于注意力機制的卷積神經網絡的句子對的信息特征。對于某一待分類的文本,共有s個句子。前后兩個句子組成給句子對,共s-1個句子對,經過ACNN層得到句子對的輸出結果P,共s-1個特征向量P。整個文本的特征向量可以表示為
F=P1⊕P2⊕P3⊕…⊕Ps-1
(13)
其中,⊕表示拼接操作。
將得到的文本特征向量F輸入到CNN模型中,整個CNN模型由以下4個部分組成。圖6為CNN模型框架示意圖。

圖6 CNN框架
(1)輸入層:ACNN模型的輸出結果F是整個文本的特征向量,同時也是該CNN層的輸入層。其中,F∈(s-1)×2×d。
(2)卷積層:卷積層使用的是2.3.1節提到的窄卷積,通過多個不同尺寸的卷積核對向量矩陣F進行信息提取。
(3)池化層:通過采用最大池化的方式,提取卷積層的最優特征。
(4)全連接層:通過softmax函數進行計算,輸出樣本文本在各個標簽上的概率分布,得到最終的分類結果。
本實驗的實驗環境參數見表1。

表1 實驗環境參數
為了檢驗本文提出的模型性能,本文采用了來自國外長文本電影評論數據集:互聯網電影資料庫IMDB。這個數據集是情感分類中最常用的英文影評數據集,分類目標是將評論分為正類和負類。實驗數據總共包括50 000篇電影評論,為測試模型在長文本中的效果,本文根據評論文本的長度將其劃分為兩個子數據集,其中少于140字的稱之為短文本,長于140字的稱之為長文本。可以對比模型在短文本和長文本上的效果。實驗中將標注好的數據集劃分為訓練集、驗證集和測試集,分別占總數據集規模的70%、20%和10%。表2為IMDB影評數據集樣本示例。

表2 IMDB數據集樣本示例
為了驗證本文提出的基于分層式CNN的神經網絡模型pos-ACNN-CNN在長文本情感分類上的有效性,對以下5種模型進行對比實驗。
(1)CNN:使用了普通卷積神經網絡的模型。
(2)CNN-CNN:使用了雙層卷積神經網絡模型。
(3)ACNN:基于注意力機制的卷積神經網絡模型,在詞嵌入部分不包含位置信息。
(4)pos-ACNN:基于注意力機制的卷積神經網絡模型,在詞嵌入部分包含位置信息。
(5)pos-ACNN-CNN:本文提出的實驗模型。
在訓練過程中,使用Adam優化模型,卷積層的激活函數使用ReLU函數。其它具體參數見表3。

表3 實驗參數
本文采用精確率(Precision,P)、召回率(Recall,R)和準確率(Accuracy)這3個常用指標作為評價標準。具體的計算方式如下所示
(14)
(15)
(16)
其中,TP是真實類別為正類且預測為正類的樣本個數;FN是真實類別為正類且預測類別為負類的樣本個數;FP將真實類別為負類且預測類別為正類的樣本個數;TN是真實類別為負類且預測類別為負類的樣本個數。
本文將5組實驗在IMDB數據集上進行實驗。表4給出了各個組實驗進行文本情感分類的結果,包括準確率、精確度和召回率。

表4 不同類型的文本情感分類模型結果對比
從表4中可以看出,整體上基于深度學習的模型在IMDB數據集上都取得了不錯的分類效果,其中本文提出的pos-ACNN-CNN模型的表現性能最優,在準確率、精確度和召回率3個衡量指標上都達到了最高。
對比CNN和ACNN模型可以看出,ACNN的性能遠勝CNN。這是因為注意力機制對比分析了文本中每個詞的重要程度,因此更好地把握了文本中的重點詞匯給文本情感傾向帶來的影響,從而提高情感分類的準確率。對比CNN和CNN-CNN模型可以看出,多層模型的性能更好,說明在面對數據量較大的情況下,復雜模型更具優勢。多層模型可以更好地提取長文本中特征信息。對比ACNN、pos-ACNN和pos-ACNN-CNN這3個模型,可以看出pos-ACNN相較于ACNN,性能略有提升,這是因為pos-ACNN增加了位置編碼信息,保留了詞語的位置信息,因此其準確率更高。而pos-ACNN-CNN在pos-ACNN的基礎上多增加了一層CNN,能夠更好適用復雜數據集。
另一方面,對比所有模型在短文本和長文本方面的表現,顯然單層模型在短文本上表現更好,但在長文本上表現不佳。而本文提出的基于分層式CNN模型pos-ACNN-CNN在長文本上的表現,在精確率和準確率上與在短文本上表現基本持平,而在召回率上高出0.0093,驗證了pos-ACNN-CNN模型在長文本上的適用性。一方面是因為復雜的分層式模型更加適用于長文本的特征提取,另一方面則是注意力機制的運用和位置信息的結合使得提取的特征更加準確,更能夠反映文本的情感傾向。
本文提出基于分層式CNN的pos-ACNN-CNN文本情感分類模型,融合了卷積神經網絡的模型優勢,并通過注意力機制抓住了文本的重要特征,同時在此嵌入層增加位置編碼信息,從而提高了文本分類的精確性。為驗證該模型的性能,將其在經典文本情感分類IMDB數據集上進行實驗,并設計了多組對比實驗。該模型在實驗中獲得了較優的分類效果,驗證該模型可以更加精確地提取文本特征,更加適合長文本的情感分類工作。
在未來的工作中,將考慮分層注意力機制,將普通的文本分類拆分成從句子層的分類和從文本層進行的分類,同時結合LSTM等序列信息模型,以此來探索多種組合模型在更廣泛的領域上的適用性。