魏上斐 喬保軍 于俊洋 姚相宇
1(河南大學軟件學院 河南 開封 475000) 2(河南大學計算機信息與工程學院 河南 開封 475000)
隨著網絡的盛行與網絡技術的發展,用戶可在網絡中發表自己對事物的觀點,這些觀點中含有用戶想要表達的情感因素。更加準確地發掘評論中的情感因素已成為當前工業界和學術界的迫切要求。
情感分析又稱為意見挖掘、主觀因素挖掘等,是通過計算機分析并整理互聯網上大量的評論信息,對帶有情感因素的主觀性文本進行分析、處理的過程[1]。情感分析的主要工作是將文本所含有的情感因素(如積極、消極、中立等)進行分類。目前,國內外學者提出基于傳統的機器學習方法,在語法層面上進行語義分析。周楓等[2]提出了一種雙向GRU與CNN相結合的文本分類模型,通過增大重要信息的權重,提高分類精度。現在流行的深度學習采用淺層神經網絡的方法也可以進行情感分類。一些研究學者在文本的詞向量表達上進行了改進,得到了更好的分類效果。Biswas等[3]利用特有領域的信息訓練詞向量,使情感分類模型有了更好的提升。Cotterell等[4]提出了一種新的形態學詞向量,在詞相似方面得到了很大的提升效果。Abdedda?m等[5]提出了一種新的MeSH-gram模型,通過句向量捕捉語義聯系,性能高于傳統skip-gram模型。Yao等[6]提出了一種新方法LSI,通過將外部知識轉化為語義空間以增強詞向量表達方式。文獻[7-8]通過結合主題模型來訓練詞向量進行文本分類。文獻[9-11]均使用深層次模型訓練詞向量,并應用在詞表征任務上。
綜上所述,現階段的情感分類問題在于無法更好地抓取情感因素。詞向量表示方法能夠更好地對文本特征進行描述,在分類時的效果更好。本文提出GE-BiLSTM情感分析模型。通過預訓練語言模型構建文本的特征詞向量,然后將文本的特征詞向量作為BiLSTM神經網絡的輸入,通過訓練神經網絡獲取深度詞向量特征,最后使用softmax層對文本進行情感分類。
Glove(Global Vectors for Word Representation)模型由斯坦福大學的Pennington等[12]提出,Glove模型是基于共現矩陣分解生成詞向量的模型。假設共現矩陣為X,Xi表示詞i,Xij表示詞j在目標詞i的上下文中出現的次數。模型在訓練時用到了全局信息,利用了詞共現的信息狀態,使用上下文信息建模,如果兩個詞在語料庫中出現的上下文位置類似,這兩個詞的詞向量就相似,對詞語具有更好的描述。Glove模型的損失函數為:
(1)
式中:|V|是詞典的大小;Wi為詞i的詞向量;Wj為詞j的詞向量;bi和bj分別為矩陣X行、列的偏移值。J的計算復雜度和共現矩陣矩陣X的非零元素的數目呈線性關系。設共現矩陣X中,Xij代表詞j在詞i上下文出現的次數。詞i和詞j的上下文是k時,k與i、j存在共現關系。
(2)
式中:P(k|i)為單詞i、k共現概率。
(3)
式中:P(k|j)為單詞j、k共現概率。
(4)
如果F(wi,wj,wk)的值較大,說明k和i的相關性強;反之,則說明k與j相關性比較大。Glove模型的不足是上下文單詞之間的聯系不強,同一個詞出現在不同場景的文本中,詞匯的向量表征矩陣變化不大。
LSTM網絡結構是基于循環神經網絡(RNN)改進而來的。循環神經網絡最早由Schuster等[14]提出,該網絡結構更適合對序列化數據進行處理和預測,在處理文本信息時,可以使之前的信息對后面的輸入信息產生影響,輸入信息為{x1,x2,…,xt},xi的輸入都會經過激活函數轉化為輸出值oi和上一個狀態的記憶值hi,所以當前時刻t的輸入除了來自當前輸入層的xt,還有上一個狀態的ht。LSTM具體單元結構公式如下:
zt=tanh(Wz[ht-1,xt]+bz)
(5)
it=σ(Wi[ht-1,xt]+bi)
(6)
ft=σ(Wf[ht-1,xt]+bf)
(7)
ot=σ[Wo(ht-1,xt)+bo]
(8)
ct=ft·ct-1+it·zt
(9)
ht=ot·tanhct
(10)
式中:z為輸入值;i為輸入門;f為遺忘門;o為輸出門;ct為結合遺忘門選擇的信息后輸出的新狀態;ht為結合ct、輸入和上一個狀態所生成的進入下一層隱藏層的狀態;σ為sigmoid激活函數;b是訓練時的偏置項。“門”機制可以更好地篩選有用的信息,雖然在訓練時會產生更多的參數,但在數據量不大的數據集上具有更好的效果,所以本文選擇了LSTM作為提取情感因素的網絡結構。
本文提出一種GE-BiLSTM情感分析模型,引入了預訓練語言模型,針對于當前傳統情感分類模型無法更好地抓取情感因素導致文本向量矩陣稀疏的問題進行了改進及處理。通過訓練語言模型,以BiLSTM作為語言模型訓練的網絡結構在訓練結束后可以得到輸入文本中每個詞匯的m層向量矩陣,由于兩個模型的訓練機制不同,最終生成向量矩陣需進行運算重組,運算函數如下:
(11)
式中:e′為新的ELMO模型詞向量;e為原始詞向量;n為詞向量維度;h為每個詞匯的詞向量層數。將預訓練語言模型ELMO訓練結果與Glove詞向量通過運算融合為新的詞向量矩陣。最終放入BiLSTM模型訓練,進行情感分析。
本文引用了Peters等[13]提出的ELMO模型(Embeddings from Language Models),以語言模型為目標在雙向LSTM上訓練模型,利用LSTM網絡結構生成詞語的表征。Word2Vec等傳統模型生成詞向量時,不同句子中的相同詞匯的詞向量是一樣的;而本文預訓練雙向語言模型的輸入度量是字符而不是詞匯,從而可以增強單詞的聯系,以語言模型為目的,更好地預測下一個單詞的出現概率。該語言模型的前后網絡結構如下。
前向LSTM結構:
(12)
反向LSTM結構:
(13)
聯合前向和后向語言模型,并最大化前后向語言模型,得到該語言模型的聯合似然函數如下:
(14)
式中:θx為輸入的初始詞向量參數;θs為輸出的softmax層參數。本文利用預訓練語言模型的概念,使用雙向LSTM訓練語言模型,對該模型加以應用,每個詞語經過語言模型的預訓練后,情感詞的權重通過最大條件概率隨之增大,更加突出情感關鍵詞的重要性,結合特定數據語境的情感詞的條件概率可通過極大似然估計求得:
(15)
通過結合全局信息和局部上下文信息,可以充分彌補傳統情感分類模型中,只能通過前后句子判斷關鍵情感詞重要性的缺陷,情感詞條件概率的增大,可以通過不同場景,產生不同意義的詞語表征。情感信息在融合新機制下得到了更好的保留,效果優于傳統主題模型。
本文所選擇的傳統詞向量模型為Glove模型,該模型在Word2Vec模型的基礎上加以改進,結合了全局信息,彌補了Word2Vec只能結合局部語義信息的缺點,在詞表征任務上具有更好的效果。本文模型首先通過預訓練語言模型訓練詞向量,在得到局部上下文信息后,再結合Glove模型訓練得到的全局信息重組運算成新的矩陣。傳統詞向量模型Glove訓練出來的詞向量矩陣設為G,文本分詞之后每個詞的tokens設為g,詞向量矩陣維度過大容易造成訓練參數增加、時間復雜度提升。經過實驗證明,詞向量維度在200~300維之間時詞向量差別很小;當維度超過300維,會造成維度過長,訓練時參數過多,提高時間復雜度。本文Glove模型詞向量維度選擇為256維,矩陣為文本詞向量的集合G。
(16)
通過預訓練語言模型訓練出來的詞向量矩陣設為E,文本分詞之后每個詞的tokens設為e,維度與Glove模型輸出保持一致,矩陣為文本詞向量的集合{e1,1,e1,2,…,e229902,256},訓練出的每個詞的詞向量有m層,將ELMO模型每個詞的詞向量求平均值,轉為新的詞向量矩陣E′。
(17)
將兩個模型訓練的詞向量通過運算融合,即W=concat(G,E′),運算后的具體矩陣為:
(18)
融合后的詞向量維度為512維。
本文提出的GE-BiLSTM模型的關鍵部分在于通過預先訓練語言模型,得到包含上下文信息的詞向量,再結合傳統的Glove所生成的全局詞向量,提高了詞語之間的聯系,以語言模型為目的訓練詞向量可以更好地抓取情感因素,雙向LSTM網絡進一步提取文本特征,以提高分類精度。LSTM網絡結構是在RNN(Recurrent Neural Network)基礎上改進得到的網絡結構,其克服了RNN無法存儲更多信息的缺點。但是在訓練時,文本中每個詞匯的理解不僅依賴于前面所存儲的信息,也與后面輸入的信息有關。LSTM是單向的網絡結構,如果要同時考慮上下文的信息,就需要同時考慮文本句子前后方向的信息。在經過對模型性能和訓練復雜性之間進行權衡之后,本文選擇雙向的LSTM結構作為詞向量融合之后訓練的網絡結構,以此可以充分地理解詞匯的上下文信息。GE-BiLSTM情感分析模型的流程如圖1所示。

圖1 GE-BiLSTM情感分析模型流程
在訓練之前,先通過停用詞表去除無用詞并處理原數據,通過兩個模型分別訓練出詞向量,經過維度調整和矩陣處理后,將預訓練語言模型與Glove模型最終訓練得到的矩陣運算融合成新的詞向量矩陣。融合后分類交叉熵得到的目標函數為:
(19)


圖2 融合細節圖
將融合之后的結果作為網絡結構的輸入放到輸入層中,再次通過BiLSTM網絡結構進一步抓取情感因素,將輸出結果作為softmax層的輸入,最終得到分類結果。
最終生成的詞向量矩陣通過BiLSTM網絡訓練,在得到情感特征向量后,利用向量矩陣做分類,softmax函數是歸一化的指數函數,其定義如下:
(20)
式中:X是經過網絡結構訓練后的矩陣;d是輸入數據的向量維度,W是輸入層的向量矩陣。設softmax函數的輸入數據為d維的向量W,最終softmax函數結果也是一個d維的向量,每個維度的值在0到1之間。利用softmax輸出兩個取值在0到1之間的數值,通過數值判斷最終輸出的概率,選擇輸出概率最大的作為文本分類的結果。GE-BiLSTM算法流程如算法1所示。
算法1GE-BiLSTM
1. 通過對數據集處理成句子與標簽對應形式
2. 通過式(4)和式(14)得到融合后的情感詞向量矩陣
3. foriin [1,N]
4. 使用預訓練語言模型與傳統詞向量模型訓練詞語表示
5. 使用式(15)的最大條件概率再次定義情感詞權重
6. 運算重組訓練后的詞向量矩陣
7. end
8. 將BiLSTM再次訓練之后的向量矩陣,通過式(19)更新權重參數
9. 將最終的詞語表征矩陣輸入到softmax 分類器中,輸出最終的分類結果
本文實驗數據集采用了IMDB大型電影評論集。該評論集具有良好的特征情感詞,評論集中共有50 000條含有標簽的評論,其中積極的文本為25 000條,消極文本為25 000條。在訓練時,采用5 ∶1的比例劃分訓練集與測試集。訓練集文本為40 000條,測試集文本為10 000條。通過統計數據集文本,每條文本評論在500詞左右,本次實驗對訓練詞匯設定統一長度,最大詞匯數設定為500,超過部分進行截斷,不足的補0。
本文所選數據集為IMDB大型電影評論集,該評論語料集中主要為積極評論與消極評論兩種,表1所示為數據集中部分積極與消極評論。

表1 實驗數據集
本文所提出的GE-BiLSTM模型訓練參數如表2所示。該模型訓練時使用的激活函數是tanh,可以有效地降低在訓練時梯度爆炸的概率。常用的SGD優化函數在優化過程中,容易陷入局部次優解,相比較下Adam優化函數可以直接并入梯度一階矩估計中,其魯棒性更強。

表2 實驗參數

續表2
本文選取查準率P(precision)、召回率R(recall)和F1值(F1-score)作為情感分析的評價標準。查準率與召回率是一對矛盾量,為了達到一個較為平衡的評價標準,需要用到F1值來衡量。F1公式如下:
(21)
為了驗證GE-BiLSTM情感分析模型的有效性,本文將分別與Glove-LSTM、ELMO-LSTM、Glove-BiLSTM、ELMO-BiLSTM模型進行對比實驗。
圖3為Glove模型與雙向LSTM訓練后得到的acc/loss圖,圖4為ELMO預訓練語言模型與雙向LSTM訓練后得到的acc/loss圖,圖5為本文模型的acc/loss圖。可以看出,GE-BiLSTM具有更好效果,訓練集在第6輪左右,數據收斂趨于平緩。具體實驗結果數據對比如表3所示。

圖3 Glove-BiLSTM acc/loss圖

圖4 ELMO-BiLSTM acc/loss圖

圖5 GE-BiLSTM acc/loss圖

表3 實驗結果對比
本文還與文獻[16]方法做比較,通過結合LDA主題模型來捕捉單詞之間的語義和情感相似性,分析語義成分,再結合上下文語義結構,通過無監督概率模型學習單詞向量,最終將生成語義向量通過SVM(支持向量機)進行情感分類。實驗證明,本文提出的GE-BiLSTM情感分析模型具有更好的分類效果,F1值比ELMO-BiLSTM方法提升0.045,比Glove-BiLSTM方法提高0.025。
本文提出了一種基于預訓練語言模型ELMO與傳統詞向量模型融合的GE-BiLSTM情感分析模型。通過模型輸出向量矩陣調整后,進行詞向量矩陣運算融合,在文本向量化表示部分增加了文本的特征描述及上下文詞匯之間的聯系,減少了向量矩陣的稀疏度,再通過雙向LSTM的訓練可以更好地抓取情感因素。實驗表明,GE-BiLSTM情感分析模型具有更好的分類效果。下一步將對文本的特征描述做進一步研究。