楊曉晨,莫秀良*,王春東
(天津理工大學a.天津市智能計算及軟件新技術重點實驗室,b.計算機科學與工程學院,天津300384)
隨著互聯網技術的不斷發展,人們已經從信息缺乏時代過渡到信息十分豐富的數字化時代,越來越多的人愿意將自己的意見、評論在網絡中與人交流,網絡中的評論能夠表達出人們情感,如何準確地從這些情感性評論中挖掘出有效信息至關重要。文本情感分析也被稱為意見挖掘[1],主要用來將文本進行分類,分為正面情感、負面情感以及中性情感[2]。最初的情感研究方法是基于情感詞典進行研究[3],RAO等[4]提出了基于主題建模的方法來構建主題級詞典。隨著機器學習的發展,傳統的支持向量機、樸素貝葉斯、K-近鄰算法等逐漸應用到文本分類任務中。由于傳統方法的完成效率和質量不是很高,人們開始利用深度學習構建網絡模型進行文本分類任務,MINAEE等[5]在其綜述中,詳細回顧了近幾年發展起來的150多種基于深度學習的文本分類模型,并討論了它們的技術貢獻、相似性和優勢。神經網絡模型的使用帶動了詞向量嵌入技術的發展,例如詞向量(word to vector,Word2vec)就是MINAEE等[5]提出來的一種文本分布式表示的方法。ABID等[6]將詞嵌入與神經網絡結合進行情緒分析;速遞神經網絡無法解決長依賴問題,而長短記憶循環神經網絡(long short-term memory,LSTM)能很好地解決依賴問題,并且能很好地存儲信息。MA等[7]提出了在LSTM中添加一個疊加的注意力機制,可有效地提升分類性能。LIU等[8]進一步提出了學習注意力機制的相關理論,指出將注意力機制和循環神經網絡組成的融合模型進行文本分類。MENG等[9]進一步強調增強注意力機制應用在混合模型中將取得更好的效果,為不同模型的優勢進行融合提供了研究思路。
綜合以上研究,本文提出了神經網絡(CNN+LSTMAttention)模型進行影評文本情感分析研究,在公開數據集互聯網電影資料庫(internet movie database,IMDB)的影評數據集上進行多組實驗[10],并設置不同模型的對比實驗,結果表明新模型具有更好的分類準確率。
卷積神經網絡(convolutional neural network,CNN)是多層神經網絡,基本結構為輸入層、卷積層、池化層、全連接層和輸出層,CNN在圖像視覺領域取得了很大的成就。隨著學習的深度發展,KIM[11]在論文中提出了CNN模型,CNN模型的整體網絡架構如圖1所示。

圖1 CNN模型的整體網絡架構Fig.1 The overall network architecture of CNN model
輸入層,在圖像處理領域,一般為圖片像素,類比圖像中的原始像素點。文中將句子或者文檔表示成向量矩陣。假設某一句子的向量矩陣為n*k,n表示句子中詞的個數,k表示詞向量的維度。
卷積層,是CNN的核心,主要思想是局部連接和參數共享。卷積層用若干個可學習的卷積核與詞向量矩陣進行卷積運算,通過卷積運算可以得到更高級的特征表示,一般可以取寬度、詞向量維度相同和高度有所變化的卷積核,每個卷積核與輸入特征的不同局部窗口進行卷積操作,將運算得到的特征向量經過激活函數的處理可以輸出本層的特征,得出計算公式(1)為:

式中,hj表示經過卷積層得到的第j個特征數據,g為激活函數,xi表示輸入數據的集合中第i個輸入數據,wij表示在卷積層中第i個輸入特征數據對應第j個輸出特征數據的卷積核權值,bj為偏置。
池化層,是對卷積層的輸出特征結果采用最大值采樣,將卷積層的最大元素連接起來而創建向量。
全連接層,將所有的特征根據概率值的大小進行分類,輸出最后的分類結果。
循環神經網絡(Recurrent neural network,RNN)用于處理可變長序列,通過維護一個狀態變量用于捕獲序列數據中存在的各種模式,典型的RNN相當于多層前饋神經網絡,長序列帶來的大量歷史信息會導致傳輸中的梯度消失和梯度爆炸問題。
LSTM模型,專門設計來解決RNN的長期依賴問題,LSTM視為一個更高級的RNN家族。LSTM比普通的具有更長的存儲記憶,它具有更多的參數,能夠決定存儲哪些記憶,丟棄哪些記憶。完整的LSTM架構圖如圖2所示,它主要由5個不同的部分組成:

圖2 完整的LSTM架構圖Fig.2 Complete LSTM architecturediagram
1)單元狀態,LSTM的內部單元狀態即記憶。
2)隱藏狀態,用于計算預測結果的外部隱藏狀態。
3)輸入門,決定多少當前輸入會被送進單元狀態。
4)遺忘門,決定多少先前的單元狀態會被送到當前單元狀態。
5)輸出門,決定多少單元狀態被輸出到隱藏狀態。
在LSTM中,輸入門it會將當前輸入xt和前一個最終隱藏狀態ht-1作為輸入,對比于標準的RNN,其中激活函數發生了變化,同時增加了偏置。按照公式(2)進行計算得出it為:

式中,W為權重;i為對應輸入門;h為隱藏處理狀態。
計算后,it=1時,來自當前輸入的所有值都將進入到單元狀態;it=0時,來自當前輸入的所有值都不會進入到單元狀態。c~t為候選值,通過公式(3)進行計算得出c~t為:

式中,ft為遺忘門,遺忘門的值為1時,x為輸入。ct-1的所有信息都會傳送到ct中;遺忘門的值為0時,ct-1所有信息都不會傳送到ct中。
通過公式(4)計算得出ft。
LSTM有一個很好的特性,能夠從先前的單元狀態中選擇記住或者忘記哪些信息,也可以添加或者放棄當前輸入的一些信息。

最后狀態ht是根據公式(6)和公式(7)更新。
以上內容介紹了LSTM的結構和形式。但在本文中,實際上在LSTM的頂部加入了具有權重和偏置的分類器用于輸出最后的分類結果。
注意力機制能夠賦予模型區分辨別的能力,被廣泛地用于機器翻譯、語音識別領域,為句子中的每個詞賦予不同的權重,使神經網絡模型的學習變得更加靈活,同時注意力機制可以用于解釋輸入和輸出句子之間的對齊關系,以及解釋模型到底學到了什么知識。
在該模型中需要根據公式計算編碼層中各時刻隱藏層的輸出加權平均值ci,計算如公式(8~9)為:

式中,si-1表示解碼層中第i-1時刻隱藏層的輸出,eij就是對齊模型,可以衡量編碼層中j位置的詞對解碼層中i位置的詞的影響程度。
本文使用的是加入注意力機制的CNN+LSTM模型,首先將文本進行向量表示,形成詞嵌入進行輸入,本方法采用的是單層卷積層和最大池化方法,在進入到LSTM之前進行丟棄法操作,在進行訓練時,會根據概率隨機生成0、1向量,將部分輸入的元素隨機設置為0,能夠將輸入平均化,減少神經元之間復雜的共適應關系。
在進入到LSTM層之后,再次進行丟棄法操作,能夠很好地解決擬合現象。接下來引入注意力機制,分配不同的權重以區分信息的重要程度。最后經過全連接層和分類器層得到輸出最終的結果,CNN+LSTM-Attention模型結構圖如圖3所示。

圖3 CNN+LSTM-Attention模型結構圖Fig.3 CNN+LSTM-Attention model structure diagram
本實驗用的是公開的IMDB電影評論數據集,IMDB數據集共包括50 000條電影評論數據,其中訓練集和測試集各25 000條,根據實際評論內容,每條數據都被標記為正面評價或者負面評價。情感標簽直接分為兩類,分類標簽設置如表1所示。

表1 分類標簽設置Tab.1 Classification label settings
實驗采用準確率(Accuracy)作為評價分類結果好壞的指標,正面評價記為Positive,負面評價記為Negative,分類正確結果標記為True,分類錯誤結果標記為False。計算公式(10~12)為:

TP、TN、FP和FN的混淆矩陣如表2所示。

表2 混淆矩陣Tab.2 Confusion matrix
本實驗在Windows10企業版臺式機進行,使用深度學習庫(TensorFlow)和深度學習框架(karas),采用Python編程語言進行實驗。在實驗中用訓練好的Word2vec將詞轉化為詞向量,具體的實驗參數設置如下,詞向量維度200;嵌入層中特征單詞的個數5 000,embedding_size參數值128;卷積層中卷積核個數32個,卷積核大小5;池化層中池化核大小4;LSTM中隱藏層維度300;可調超參數batch_size參數值32,epochs參數值10,丟棄法參數值為0.30,學習率為0.01。在實驗中,優化器能將損失函數的誤差最小化,并能夠找到誤差最小的“權重與偏差的組合”,采用的優化器是自適應學習率優化算法。
本文所提出的新模型是聯合模型,為證明聯合模型的有效性,針對實驗的影評數據集,設置兩組對比試驗。第一組實驗將聯合模型CNN+LSTM與其他單一模型做對比,這些模型包括LSTM、雙向長短時記憶循環神經網絡(bidirectional long shortterm memory,BiLSTM)和CNN,第一組實驗結果如表3所示。第二組實驗將第一組實驗中用到的模型分別加入注意力機制,與第一組實驗結果做對比,這些加入注意力機制的模型包括:LSTMAttention、BiLSTM-Attention和CNN-Attention。

表3 第一組實驗結果Tab.3 Thefirst set of experimental results
第一組實驗中LSTM模型只能學習前項特征,無法很好地利用到后向特征,而BiLSTM能夠記住前向和后向特征,能更好地利用了上下文的語義特征進行分類。從分類結果看,分類準確率提升了2.47%;利用CNN進行分類,堆疊多個卷積核提取文本的抽象特征,通過卷積計算能夠獲取到相鄰詞的特征,但不能很好地提取長距離的文本特征,盡管如此,CNN得到的分類結果仍然優于BiLSTM。本文中,將單一模型進行聯合,利用CNN提取局部特征并與LSTM進行結合,得到聯合模型CNN+LSTM,聯合模型不僅能考慮到相鄰詞的特征,還能更好地考慮到遠距離詞的信息,即上下文信息,聯合模型的分類準確率與單一模型相比有了明顯提高。
在第二組實驗中,注意力模型通過分配不同的權重來區分文本中信息的重要性,獲取重要的局部特征,對有關情感的語義特征進行加強權重,對無關情感的語義特征進行弱化權重。將注意力機制加入到模型中,能夠更好地利用文本信息,進一步提高了分類準確率,第二組實驗結果如表4所示,對比于表3的結果,看到模型加入Attention機制后,準確率都有進一步的提高,證明了Attention機制提高分類準確率的有效性,提高了1.74%。

表4 第二組實驗結果Tab.4 The second set of experimental results
通過實驗1的結果可以看到,聯合模型能夠結合單一模型的優點,實現充分利用文本信息,提取文本中的有效特征。通過實驗2的結果可以看出,將注意力機制加入模型,加強或者弱化局部特征的權重,是為了更加合理地利用局部特征進行文本情感分類,通過將加入注意力機制的模型和未加入注意力機制的模型分類結果進行對比,可以得出提出的新模型具有較好的分類準確率,具有一定的可行性。
本文提出的新模型使用LSTM學習和CNN池化后得到的結果連接而成新特征,能夠解決單一CNN無法充分利用文章上下文信息的問題,最后引入注意力機制進行特征權重分配,能夠降低噪聲干擾,從而提高了分類準確率。實驗結果表明,在影評情感分析任務中新模型性能上優于其他對比模型,使用該模型進行文本情感分析是可行的。