朱海東, 鄭 虹*, 侯秀萍
(長春工業大學 計算機科學與工程學院, 吉林 長春 130012)
隨著互聯網技術的發展,越來越多的人們喜歡通過網絡發表自己的觀點、看法以及一些評論,從而產生大量帶有情感色彩的文本信息。這些文本通常包括對時事的熱評、商品評論、酒店評論[1]。因此,從這些海量的評論信息中分析和挖掘出用戶的情感傾向具有重要的意義和研究價值。例如,電商賣家可以根據買家對商品及服務的評價來制定合適的營銷策略。政府可以根據網民評論信息的分析結果進行合理的輿論監控[2]。從互聯網的文本信息中可以看出,挖掘出人們的情感傾向是非常值得研究的問題。
目前,應用比較廣泛的神經網絡模型有卷積神經網絡[3](CNN)和循環神經網絡[4-5](RNN),預訓練模型有Transformer和Bert。但是它們在處理非結構化的文本時,不能有效捕獲全局語義特征和局部語義特征,不能準確表達語義信息,除此以外,還不能有效獲取文本中關鍵的情感信息。針對以上模型存在的不足,文中提出一種將ERNIE[6]預訓練模型和Attention[7]注意力機制與CNN和BIGRU[8](門控單元循環神經網絡)兩種神經網絡相結合的方法對文本進行情感分析。
隨著深度學習技術的快速發展,越來越多的深度學習模型應用于自然語言處理領域,尤其是情感分類的任務中。Bengio等[9]首次將神經網絡模型用于自然語言處理任務中來訓練特定的語言模型;白靜等[10]提出利用BiLSTM網絡模型對微博文本中所蘊含的情感進行立場檢測;Xu J等[11]提出一種能捕獲長期情緒信息的帶有緩存機制的LSTM。表明循環神經網絡在情感分類任務中是有效的;徐菲菲等[12]提出一種結合卷積神經網絡和最小門控單元注意力模型來進行情感分析,通過在公開數據集IMDB、Sentiment140上進行實驗,證明該模型可以有效地提高分類效果;Tian Z等[13]為了提升短文本的情感分類效果提出一種將雙向GRU與注意力機制結合的模型,該模型有效地提高了分類效果。表明BiGRU與注意力機制結合能夠進行更加精準的分類;史振杰等[14]提出Bert+CNN模型對電商評論進行情感分析;雷景生等[15]提出一種ERNIE_BIGRU的中文文本分類方法在新浪新聞公開的數據集上取得良好的分類效果。這些工作表明預訓練模型與神經網絡結合在獲得完整語義及全局特征方面是有效的。
文中提出中文情感分類模型在現有ERNIE情感分類模型和ERNIE_BIGRU模型的基礎上進行改進 ,與現有工作既有聯系又有區別,在一定程度上彌補了上述模型無法識別出不同詞的貢獻度和無法提取局部重要特征的不足,在情感分類任務上分類的準確率有明顯的提高。
EBAP中文情感分類模型主要由四層網絡結構組成,分別是ERNIE層、BIGRU層、池化層和注意力機制層。EBAP模型通過結合不同層的各自優勢來實現準確的情感分類目標。通過ERNIE層學習更多的先驗知識增強語義表示,通過不同的知識掩蔽策略來學習更準確的語義信息。并通過雙向GRU層捕獲上下文的語義信息,同時減少了網絡的張量計算和參數的數量,提高了網絡訓練的執行效率。在進行前面一系列的特征提取之后,通過引入注意力機制層將重要的特征和情感信息賦予較大的權重,通過池化層進行特征降維,去除冗余信息,把最重要的信息提取出來,同時也防止了過擬合。最終送入Softmax函數進行分類。
EBAP模型結構如圖1所示。

圖1 EBAP模型整體結構
圖中,s={w1,w2,w3,…,wn}表示長度為n的輸入語句。wi表示句子中的單詞。x={x1,x2,x3,…,xn}表示語句S經過ERNIE層的向量表達形式。B={B1,B2,B3,…,Bn}表示經過BIGRU層特征提取的結果。A={A1,A2,A3,…,An}表示賦予不同權重后的特征向量表達形式。P={P1,P2,P3,…,Pn)表示池化層特征提取結果。
ERNIE 預訓練模型是在Bert模型的基礎上進行改進,通過改進不同的遮蔽策略,以及利用先驗知識增強語義表示。而ERNIE模型和Bert模型本質上都是采用多層雙向的Transformer結構,利用雙向的Transformer結構作為編碼器來訓練深度雙向文本表示向量[16]。Transfomer采用編碼-解碼結構,其中編碼器部分就是將輸入序列(x1,x2,…,xn}映射到連續表示z=(z1,z2,…,zn},在解碼器端生成一個輸出序列(y1,y2,…,yn},每一時刻輸出一個結果。
Transformer編碼單元如圖2所示。

圖2 Transformer編碼單元
由圖2可以看出,編碼器端有6層這樣的結構,每一層包括兩個子層:第一個子層是多頭自注意力機制,用來計算輸入的自注意力機制層;第二個子層是全連接層。在每一個層中都使用了殘差網絡。因此每一個子層的輸出都是
LayerNorm(x+Sublayer(x)),
(1)
式中:Sublayer(x)----子層對x做的映射。
Transformer解碼單元如圖3所示。

圖3 Transformer解碼單元
由圖3可以看出,解碼器端也是6層,每一層包含三個子層。同encoder相比多一個注意力機制層。第一個子層是遮蔽的多頭自注意力機制層,同樣也是計算輸入的自注意力機制,Mask掉未來的信息。第二個子層是對encoder的輸入做attention運算層。第三個子層是一個簡單的全連接層。從中可以看出,ERNIE及Transformer最主要的就是自注意力機制,對于Attention機制假設輸入query,key,value,其中key和value的維度分別為dk和dv。但實踐中將query,keys,values都處理成對應的矩陣Q,K,V。因此Attention相應的公式可表示為

(2)
ERNIE預訓練模型是一種新的語言表示模型,在之前提出的Bert預訓練模型中只是通過上下文來預測缺失部位的單詞,而沒有考慮在句子中應用先驗知識。ERNIE模型通過知識推理來增強模型表示,通過應用與Bert不同的遮蔽策略----實體級和短語級的遮蔽,即我們在遮蔽的時候是以一個實體或者短語為一個遮蔽單位。在沒有直接知識嵌入的情況下,通過這種方式在訓練過程中就能隱式地學習到先驗知識,例如能學習到實體之間的關系、屬性等知識信息。從而獲得完整的語義表示。Bert模型Mask的是字,因此在訓練過程中只能學習到字與字之間的語義聯系。而ERNIE模型Mask的是一些連續的token、詞和實體,因此在訓練過程中不僅能學習到字與字之間的關系,還能學習到實體之間的知識信息,因此模型會得到更加準確的語義表示。
GRU是LSTM(長短時記憶網絡)的一種改進,在LSTM的基礎上,將輸入門和遺忘門合并為更新門,從而使網絡結構變得更為簡單,在訓練過程中減少了網絡參數的數量,加快了收斂時間,提高了模型的訓練效率,同時也降低了出現過擬合的可能性。
GRU公式表示如下:
rt=σ(Wrxt+Urht-1),
(3)
zt=σ(Wzxt+Uzht-1),
(4)

(5)

(6)
式中:zt----更新門,功能是控制下一時刻信息的輸入;
rt----重置門,決定信息的保留與丟棄;
xt----t時刻的輸入;

ht,ht-1----t時刻及t-1時刻的隱藏狀態;
Wr,Wz,W,Ur,Uz,U----權重矩陣,更新門和重置門決定隱藏狀態的輸出。
GRU只能捕獲單向的語義信息和情感信息,對于一個情感詞只能從這個詞之前的時刻進行單向學習,而無法到這個詞之后的語義特征,從而忽略了之后時刻的語義重要性,因此,文中使用BIGRU從兩個方向捕獲語義信息[17]。
對于BIGRU層不能識別出評論文本不同的部分對于情感分類結果的重要程度,因此,文中提出的模型中BIGRU層之后增加了注意力機制層。用于標記和識別出不同的詞對于待分類文本情感極性的貢獻度,極大地提高了分類的準確率。Attention模型具體公式如下:
eij=a(si-1,hj),
(7)

(8)

(9)
式中:hj----編碼器中第j時刻的隱藏狀態向量;
si-1----解碼器端第i-1時刻的狀態向量;
eij----評分函數對當前詞的重要程度進行打分;
aij----經過計算后的語義權重。
通過對每個詞的隱藏狀態和對應的語義權重進行加權求和,得到相應的語義向量ci。
評論文本在經過前述過程的特征捕獲及分配權重后得到C={c1,c2,c3,…,cn}文本語義向量。利用池化層提取局部最重要的語義特征,最后把CNN層輸出的向量進行拼接,得到最終向量C={c1,c2,c3,…,cn}。文中提出的模型采用最大池化的方式為
C=max(c)。
(10)
最后,將之前經過不同網絡結構提取到的特征送入到全連接層和分類器,為了防止過擬合在全連接層后融入dropout機制,分類器采用softmax分類函數,通過softmax函數得到最終的情感分類結果。
文中實驗在CentOS 7.9 環境下運行,實驗使用GPU為NVIDIA TITAN XP*4 ,編程語言為Python,使用的深度學習框架為Pytorch,實驗所用的預訓練模型為百度推出的基于知識策略和實體遮蔽的ERNIE 。
文中使用的數據集是由譚松波老師整理的酒店評論的中文公開數據集Chnsenticorp,該數據集是帶有情感標簽的情感分類中文數據集,情感極性為積極和消極兩種,即為二分類。為了防止實驗驗證模型出現過擬合現象,將數據集按照8∶1∶1切分為訓練集、測試集和驗證集。將測試集上得到的實驗數據作為實驗結果。積極文本的情感標簽記為1,消極文本的情感標簽記為0。
為了使模型能表現出自身最佳的分類性能,模型中的超參數設置見表1。

表1 實驗的超參數表
文中提出的情感分類模型采用的評價指標有精確率P、召回率R和F1值。具體計算公式為:

(11)

(12)

(13)
式中:Tp----實際值和預測值情感極性都為積極時的數據個數;
Fp----實際的情感極性為消極,預測的情感極性為積極時的數據個數;
Fn----實際的情感極性為積極,預測的情感極性為消極時的數據個數。
F1值由精確率和召回率共同決定。
為了驗證在相同數據集及同等實驗條件下文中提出的EBAP中文情感分類模型要優于文獻[6]提出的情感分類的基線模型及文獻[15]提出的中文文本分類模型,文中逐步探索,陸續提出了ERNIE_CNN,ERNIE_BiGRU_Attention,ERNIE_BiGRU_CNN,Bert_BiGRU_CNN_Attention等情感分類模型。
在此基礎上,結合這些模型各自的優缺點提出了EBAP模型。為了驗證EBAP模型的有效性,在完成EBAP模型實驗的基礎上又完成了上述情感分類模型,以及其他基準模型的對比驗證實驗。
實驗中RNN網絡都是采用雙向GRU門控單元循環神經網絡。所用的損失函數是交叉熵損失函數。
不同模型在測試集上的準確率及損失值見表2。

表2 不同模型在測試集上的準確率及損失值
不同模型在積極測試集文本上的不同評價指標見表3。

表3 不同模型在積極測試集文本上的不同評價指標
不同模型在消極測試集文本上的不同評價指標見表4。
不同模型在測試集上準確率分布的條形統計圖如圖4所示。

圖4 不同模型在測試集上準確率分布的條形統計圖
不同模型在測試集上損失值分布的折線統計圖如圖5所示。

圖5 不同模型在測試集上損失值分布的折線統計圖
從以上實驗結果可以看出,文中提出的EBAP模型在同等實驗條件下要比文獻[6]所提出的ERNIE模型在中文情感分類問題上效果好,在測試集上的準確率提升了1.75%。同時可以看出,EBAP模型在中文情感分類問題上比文中其他幾種對比模型的實驗效果好,說明ERNIE預訓練模型與RCNN及Attention機制結合在中文情感分類問題上是有效的。通過實驗還可以看出,BiGRU加入了ERNIE預訓練模型之后效果有明顯的提升,提升了5.67%,說明通過ERNIE預訓練模型得到的詞向量比Word2vec[18]得到的詞向量在語義表示方面更加準確、更加完整。同時,EBAP模型比Bert_BiGRU_CNN_Att模型在分類效果上提升了1%,說明在中文情感分類問題上,尤其是獲得語義表示方面ERNIE要優于Bert。
在評價指標方面,從表3可以看出,對比ERNIE模型和EBAP模型在精確率相差不大的情況下,EBAP模型在測試集積極文本上的召回率比ERNIE提高了4.39個百分點,說明EBAP模型比ERNIE模型更能捕捉積極的情感信息。對比Bert_BiGRU_CNN和EBAP模型兩者在測試集積極和消極文本上的F1值可以看出,EBAP模型的F1值均比Bert_BiGRU_CNN模型高,這也說明了對于捕捉情感詞方面EBAP模型更有優勢。
從表3和表4可以看出,EBAP模型的F1值和Precision均高于其他情感分類模型,說明EBAP模型更適合于中文情感分類任務。通過不同模型損失值的折線圖可以看出,EBAP模型損失值最小。
采用與傳統情感分類不同的方法,利用ERNIE預訓練模型不同的知識遮蔽策略生成更完整、更精準的詞向量語義表示,在此基礎上,結合RCNN神經網絡和Attention機制提出了EBAP模型,并在Chnsenticorp中文公開數據集實驗,在相同的實驗參數和同等實驗條件下,EBAP中文情感分類模型測試集的準確率及評價指標F1上要優于文獻[6]所提的ERNIE模型及文獻[15]所提的中文文本分類ERNIE_BiGRU模型,同時也優于文中提到的其他情感分類模型,并取得了很好的分類效果。
EBAP模型雖然取得了很好的分類效果,但是也存在著諸多不足,如EBAP模型所能判斷的情感極性只有積極和消極兩種,不能實現多類別的情感分類。除此以外,EBAP模型對于段落級文本和篇章級文本實驗效果還未知,需要進一步研究和探索。所以接下來的工作就是著手處理解決以上存在的幾個問題, 使得文中提出的模型更加完善、更具適應性。