田喬鑫,孔韋韋,2,滕金保,王照乾
(1.西安郵電大學 計算機學院,西安 710121;2.廣西可信軟件重點實驗室,廣西 桂林 541004)
隨著互聯網和社交媒體的快速發展,越來越多的用戶參與到內容生產和信息發布的流程中,逐漸從信息獲取者轉變為信息創造者。用戶在社交媒體上發表個人主觀性言論,針對這些主觀性言論進行情感分析可以獲得極具價值的信息,然而通過人工方式對其進行分析需要消耗大量人力與財力,因此文本情感分析技術成為自然語言處理領域的熱門研究方向。
文本情感分析是指利用自然語言處理和文本挖掘技術,對帶有情感色彩的主觀性文本進行分析、處理和抽取的過程[1]。傳統的文本情感分析方法主要包括基于情感詞典[2]和基于有監督機器學習[3]的方法,這類方法在處理小數據文本情感分析任務時有著不錯的表現,同時也有較強的可解釋性,但傳統方法主要存在文本表示稀疏性且泛化能力較弱的問題。HINTON[4]提出的分布式表示概念以及MIKOLOV 等[5]提出的Word2vec 詞向量訓練工具解決了詞向量的表示稀疏性問題,使得文本的向量表示可以包含一定的語義信息。KIM[6]將卷積神經網絡(Convolutional Neural Network,CNN)用于句子分類任務中,采用3 種不同大小的卷積核來采集文本的N-grams 特征,再進行特征融合,取得了很好的分類效果,但是循環神經網絡(Recurrent Neural Network,RNN)不能采集到文本的上下文信息。XIAO 等[7]使用雙向長短期 記憶(Long Short-Term Memory,LSTM)網絡處理文本情感分析任務,通過兩個方向神經元的循環計算提取文本的上下文信息。LAI 等[8]為了進一步提升分類效果,將LSTM 與CNN 相結合,提出一種循環卷積神經網絡(Recurrent Convolutional Neural Network,RCNN)模型,先使用雙向LSTM 提取文本的上下文信息,再通過最大池化層提取主要特征進行文本分類。ABID等[9]構建CNN 與RNN 聯合體系結構,提高了推特情感語料庫的分析效果。
基于神經網絡的文本情感分析方法相比傳統方法獲得了更好的文本表示以及更強的特征提取能力,但卻沒有考慮關鍵信息對文本情感傾向的影響。BAHDANAU 等[10]將注意力機制應用到自然語言處理領域,通過注意力機制識別出文本中的關鍵信息,有效提高了神經翻譯模型的效果。YANG 等[11]提出一種分層注意力機制,在詞語和句子兩個層次分別使用注意力機制,同時考慮文本中關鍵詞和關鍵句的重要性,適用于長文本的分類和處理。VASWANI等[12]舍棄了傳統的注意力機制依賴于神經網絡的固有模式,提出了基于多頭注意力的Transformer 模型。為了取得更好的文本情感分析效果,研究人員開始將注意力機制融入RNN 與CNN 的混合模型。趙亞南等[13]提出融合多頭自注意力與CNN 的文本情感分析模型,在金融新聞文本上進行情感分析且取得了不錯的效果。袁和金等[14]提出的文本情感分析模型先用多通道的卷積神經網絡提取文本特征信息,再將特征信息送入雙向門控循環單元(Bidirectional Gated Recurrent Unit,BiGRU)并結合注意力機制獲得上下文情感特征,同時引入Maxout 神經元避免訓練過程中的梯度彌散問題。郭寶震等[15]提出的句子分類模型先對詞向量使用注意力機制,再使用雙路卷積神經網絡對句子進行分類。WANG 等[16]針對在線評論中特定方面的情感極性進行更細粒度的情感分析,提出一種關系圖注意力網絡,更好地建立了方面詞和觀點詞之間的聯系。
基于分布式詞向量和深度學習的文本情感分析方法要優于傳統基于統計學習的文本情感分析方法,基于神經網絡和融入注意力機制的文本情感分析模型由于具有更強的特征提取能力和對關鍵信息的加強處理,取得了更好的情感分析結果。本文在以上研究的基礎上,提出一種基于并行混合網絡與雙路注意力機制的文本情感分析模型GCDA。針對不同網絡的特點采用兩種不同的詞向量作為并行混合網絡的輸入,獲得更豐富的文本信息。利用兩種神經網絡并行混合分別提取文本的全局特征和局部特征。使用雙路注意力機制加強處理兩種特征中的關鍵信息,提升模型的分類效果。
GCDA 文本情感分析模型結構如圖1 所示,包括如下組成部分:

圖1 GCDA 模型結構Fig.1 GCDA model structure
1)詞嵌入層:將文本通過GloVe 和Word2vec 嵌入為兩種不同的詞向量。
2)特征提取層:將GloVe 詞向量輸入到BiGRU中提取包含上下文語義信息的全局特征,對Word2vec 詞向量采用CNN 提取局部特征。
3)雙路注意力層:對上一層輸出的全局特征和局部特征使用雙路注意力機制加強其中的關鍵信息。
4)輸出層:對雙路注意力層輸出的兩種特征信息進行特征融合,并使用softmax 分類器進行分類。
GCDA 模型使用BiGRU 和CNN 神經網絡。CNN 通過卷積操作提取卷積核范圍內詞語之間的局部特征,且受卷積核大小限制一般適合處理短文本信息。BiGRU 通過神經元之間的循環依賴可以提取到文本中詞語之間的關聯信息,即使文本的長度較長也不會遺漏,同時采用雙向結構還可以采集到文本的上下文信息。但由于門控機制對信息的過濾,因此不會提取到較強的局部性特征,而是提取整個文本的全局性特征。GCDA 模型將BiGRU 和CNN 并行混合構成特征提取層,結合兩個神經網絡的特點進行特征提取上的互補,使得模型適用于長文本和短文本。同時由于文本情感分析本質上也是分類任務,因此該模型也可以應用于文本分類、意圖識別、命名實體識別等任務。針對具體的任務使用特定數據集進行訓練,并根據具體分類任務的類別數目對輸出層參數進行微調,可以將模型推廣應用至其他下游分類任務。
詞嵌入層將文本信息轉換為向量作為模型的輸入數據。根據不同網絡的特點,采用Word2vec[5]和GloVe[17]兩種詞向量分別作為兩個神經網絡的輸入。Word2vec 采用局部上下文窗口訓練詞向量,與CNN采用卷積核窗口提取特征類似,都只能關注到窗口范圍之內的上下文信息,故作為CNN 的輸入來提取更強的局部特征。GloVe 利用語料庫的全局統計信息構建詞的共現矩陣,再基于共現矩陣訓練得到包含全局信息的詞向量,將GloVe 訓練得到的詞向量作為BiGRU 的輸入用來提取全局特征和上下文信息。
由于神經網絡需要接收固定長度的輸入,因此在詞嵌入前需要先對不定長度的文本進行預處理。假設每個文本S固定長度為n,則每個文本可以表示為S={w1,w2,…,wn},長度超出n的部分信息舍棄,不足的部分采用
1.2.1 全局特征提取
由于文本信息的有序性特點,因此RNN 非常適合用來處理文本信息。RNN 每一個神經元的輸出由當前時刻的輸入和前一時刻的記憶共同決定,所以可以捕獲文本之間的長期依賴關系,通常用來提取全局特征,但是傳統的RNN 由于梯度爆炸和梯度消失問題導致在實際應用中難以訓練。HOCHREITER 等[18]提出的LSTM 網絡通過 在RNN神經元內部設置輸入門、遺忘門和輸出門3 個門控單元,解決了RNN 的梯度消失問題,使得LSTM 相比RNN 更容易訓練。CHO 等[19]提出的門控循環單元(Gated Recurrent Unit,GRU)只設置了重置門和更新門,減少了網絡中的相關參數,在保留LSTM 優點的同時提高了訓練速度。因此本文采用雙向GRU 網絡來提取文本的全局特征和上下文信息,GRU 內部結構如圖2 所示。

圖2 GRU 內部結構Fig.2 GRU internal structure
在圖2 中,xt表示當前時刻的輸入,ht?1表示前一時刻的記憶信息,br、bz、b為偏置項,rt表示重置門,zt表示更新門,Wr與Wz分別表示重置門與更新門中的權重參數,ht表示當前時刻的輸出,具體計算過程如式(1)~式(4)所示:

通過嵌入層GloVe 訓練得到的文本向量矩陣A={x1,x2,…,xn},以詞向量xi為例作為雙向GRU 的輸入,經過前向和后向GRU 編碼得到的隱藏層表示分別包含了上文信息和下文信息,則詞向量xi經過雙向GRU 提取到的包含上下文信息的全局特征表示如下:

整個文本矩陣A經過雙向GRU 提取到包含上下文語義信息的全局特征表示如下:

使用雙向GRU 提取文本信息全局特征的過程如圖3 所示,其中dim 表示文本矩陣維度。

圖3 BiGRU 提取全局特征的過程Fig.3 Process of BiGRU extracting global features
1.2.2 局部特征提取
CNN 具有較強的特征提取能力,由于卷積核窗口大小有限,一次只能提取到局部范圍內的信息,因此采用CNN 來提取文本的局部特征。本文采用3 個不同大小的卷積核來分別提取文本不同的N-grams局部特征。將經過Word2vec 訓練得到的文本向量表示矩陣B={y1,y2,…,yn}作為CNN 的輸入,使用卷積核在文本矩陣中自上向下滑動提取局部特征。對于窗口大小為r的卷積核通過第j次卷積操作提取到的局部特征cj表示如下:

其中:f為ReLU 非線性激活函數;w代表卷積核中的參 數;b為偏置 項;yj:j+r?1表示文 本矩陣的第j行到第j+r?1 行中卷積核一次共讀取r行的詞向量。卷積核在文本矩陣中自上向下滑動共進行n?r+1 次卷積操作,所提取到的局部特征矩陣C表示如下:

已有方法在卷積層提取到特征之后常常采用池化層來進一步提取特征,但池化操作會造成一定的信息丟失,且會破壞文本特征的時序性特點,所以本文方法在卷積層之后棄用池化層使用注意力層,該方法可以減少信息的損失并對文本中關鍵信息進行加強。使用CNN 對文本矩陣B進行局部特征提取的過程如圖4 所示。

圖4 CNN 提取局部特征的過程Fig.4 Process of CNN extracting local features
在情感分析任務中,文本中常常包含表達強烈情感意向的情感詞,這些詞語會對整個文本的情感傾向產生至關重要的影響,使用注意力機制來捕獲這些關鍵情感詞并分配較大的概率權重對提高情感分析準確率有著極大的幫助。
對特征提取層提取到的全局特征和局部特征分別使用注意力機制加強其中的關鍵信息,先按照重要程度的不同對全局特征hi和局部特征cj分配不同的注意力權重,如式(9)、式(10)所示:

其中:wh和wc表示權重參數矩陣;bh和bc為偏置項;tanh 為非線性激活函數;vi和vj為經過激活函數激活后文本的權重向量。
在對注意力權重進行歸一化處理后,得到關于全局特征hi和局部特征cj的注意力分數ai和aj,如式(11)、式(12)所示:

按照每個詞不同的重要程度,引入經過歸一化處理得到的注意力分數ai和aj,對提取到的每個特征hi和cj計算加權和,得到經過注意力加強關鍵信息的整個文本的全局特征zh和局部特征zc,如式(13)、式(14)所示:

本層使用雙路注意力機制對BiGRU 和CNN 并行提取到的特征分別做加強處理,為關鍵信息分配更高的注意力權重,從而提高模型的分類效果。
輸出層由全連接神經網絡和softmax 激活函數構成。分類前首先對注意力層得到的兩種特征信息進行特征融合,得到文本最終的特征表示t,如式(15)所示:

然后將融合得到的特征輸入到全連接神經網絡中,使用softmax 激活函數計算得到文本的情感概率p,最終進行情感分類處理,如式(16)所示:

其中:w為權重向量;b為偏置項。
最后根據情感概率值p確定整個文本的情感類別。
實驗在Windows10 系統下進行,CPU 為Intel?i5-6300HQ 2.3 GHz,編程語言采用Python 3.7.9,深度學習框架采用PyTorch 1.0.1。
數據集采用情感分類公開數據集IMDb[20]和SST-2。IMDb 數據集是從IMDb 電影評論網站收集的50 000 條電影評論,情感極性分為積極和消極兩類,每類各占總評論數的一半,該數據集中訓練集和測試集各包含25 000 條影評數據。SST-2 是斯坦福標準情感分析數據集的二分類版本,去除了中立情感的數據部分。兩個數據集的具體信息如表1所示。

表1 數據集信息Table 1 Dataset information
實驗采用準確率(A)、精確率(P)、召回率(R)和F1 值(F)作為模型的評估指標。用于計算這些指標的分類混淆矩陣如表2 所示。

表2 分類混淆矩陣Table 2 Classification confusion matrix
在表2 中,TP表示將樣本正確分類為積極情感的個數,FP表示將樣本錯誤分類為積極情感的個數,TN表示將樣本正確分類為消極情感的個數,FN表示將樣本錯誤分類為消極情感的個數。評價指標中準確率表示所有預測正確的結果占總結果的比率;精確率是針對結果,表示所有預測為正例的結果中預測正確的比率;召回率是針對樣本,表示樣本中的正例被正確識別的比率;F1 值是召回率和精確率的調和平均值,可以綜合衡量模型的分類效果。計算公式如式(17)~式(20)所示:

除模型本身的結構設計以外,參數設置也會影響模型的特征提取能力以及訓練效果,從而對最終的實驗效果造成影響,所以參數調優是實驗中的重要步驟。采用控制變量法經過反復實驗確定模型的最佳參數,以對結果影響較大的隨機失活率(Dropout)、BiGRU 隱藏層參數維度(Hidden_Size)、卷積核通道數(Nums_Channels)3 個參數為例進行分析,在IMDb 數據集上參數的調整對準確率的影響實驗結果如表3 所示。由于模型中卷積核尺寸(3,4,5)表示采用大小分別為3、4、5 的卷積核,因此(32,32,32)表示3 個卷積核對應的通道數均為32。

表3 參數設置對準確率的影響Table 3 Effect of parameter settings on the accuracy
Dropout 是按照概率對一些神經元的激活值進行隨機失活處理,用來避免過擬合現象。當其值設置的較小時幾乎不能避免過擬合,當其值設置的較大時失活的值太多會造成特征丟失,GCDA 模型Dropout 取0.4 時效果較好。BiGRU 的隱藏層參數維度即提取到的特征維度,若維度太小則不足以進行特征表示,若維度太大則會增加模型的訓練時間,且更容易發生過擬合。卷積核采用多通道的方式進行局部特征的提取,由于有BiGRU 提取的全局特征作為補充,因此卷積核通道數設置為32 時便可以取得較好的效果。經過實驗確定模型參數后,在IMDb 數據集上對模型進行訓練,平均每個Epoch 所需的時間為249.45 s,模型中的參數迭代至最優并且趨于平穩所需的運行時間成本約為10 個Epoch。模型整體的參數設置如表4 所示。

表4 模型參數設置Table 4 Model parameter setting
2.4.1 情感分析模型對比實驗與結果分析
為驗證GCDA 模型的有效性,將其在IMDb 和SST-2 兩個公開數據集上與經典模型和最新模型進行對比實驗,具體對比模型如下:
1)TextCNN[6]:該模型采用3 種大小的多通道卷積核,提取文本不同的N-grams 特征。
2)BiLSTM[7]:該模 型采用雙向長短 期記憶網絡,提取文本的上下文信息。
3)BiLSTM+EMB_Att[21]:該模型采用詞向量注意力機制先識別關鍵信息,再使用雙向長短期記憶網絡提取文本的上下文信息。
4)Att-DouCNN[15]:該模型使用詞向量注意力機制提取關鍵詞信息,并使用雙路卷積神經網絡提取句子特征。
5)Att-C_MGU[22]:該模型結合卷積神經網絡和最小門控單元,并融合注意力機制,提取文本的深層特征,并且參數更少,收斂速度較快。
6)Att-MCNN-BGRUM[14]:該模型先使用多通道卷積神經網絡提取特征信息,再將特征信息送入雙向GRU 中,結合注意力機制得到文本的上下文情感特征。
7)Bi-SGRU-Att[23]:該模型采用雙向切片GRU對文本序列進行切片實現并行處理,減少了模型訓練所需的時間,并融入注意力機制提取關鍵信息。
經過對比實驗,以上模型和本文GCDA 模型的實驗結果分別如表5 和表6 所示。通過表5 和表6 的實驗數據可知,在兩個數據集上GCDA 模型相比其他模型分類效果均有一定的提升。GCDA 模型在IMDb 和SST-2 兩個數據集上的準確率分別達到了91.73%和91.16%,相比經典的TextCNN 與BiLSTM模型在準確率和F1 值上約提升了3 個百分點。GCDA 模型相比IMDb 和SST-2 兩個數據集上的對照組最優模型準確率分別提高了0.87 和0.66 個百分點。GCDA 模型在IMDb 數據集上相比BiLSTM+EMB_Att 模型和Bi-SGRU-Att 模型準確率分別提高了2.70 和0.87 個百分點。GCDA 模型在SST-2 數據集上相比Att-DouCNN 模型準確率提高了2.56 個百分點,這是由于使用BiGRU 與CNN 組成的并行混合網絡可以同時提取到文本的長期依賴信息和局部信息,組成更豐富的文本特征表示從而提升分類效果。GCDA 模型相比Att-C_MGU 模型和Att-MCNNBGRUM 模型在IMDb 數據集上準確率分別提高了3.57 和0.93 個百分點,說明采用雙路注意力機制可以更全面地捕獲文本中的關鍵信息,進一步提高分類準確率。

表5 IMDb 數據集上不同模型的實驗結果Table 5 Experimental results of different models on the IMDb dataset %

表6 SST-2 數據集上不同模型的實驗結果Table 6 Experimental results of different models on the SST-2 dataset %
2.4.2 雙路注意力機制對分類效果的影響
為了進一步驗證雙路注意力機制對模型分類效果的影響,在原模型的基礎上進行修改得到單路注意力機制和無注意力機制的兩組模型作為對照進行對比實驗,具體對照模型如下:
1)無注意力機制模型:BiGRU+CNN,去掉原模型的雙路注意力機制,采用CNN 與BiGRU 的并行混合。
2)單路注意力機制模型:(1)BiGRU+CNN-Att,去掉原模型中BiGRU 部分的注意力機制,采用BiGRU 與CNN-Att 的并行混合;(2)BiGRU-Att+CNN,去掉原模型中CNN 部分的注意力機制,采用BiGRU-Att 與CNN 的并行混合。
以上模型的參數設置與GCDA 模型相同,在IMDb 和SST-2 數據集上進行實驗,共訓練10 個Epoch,每次迭代的結果如圖5 和圖6 所示。

圖5 4 種模型在IMDb 數據集上的準確率變化趨勢Fig.5 Accuracy variation trend of four models on IMDb dataset

圖6 4 種模型在SST-2 數據集上的F1 值變化趨勢Fig.6 F1 value variation trend of four models on SST-2 dataset
通過對比無注意力機制模型和融入注意力機制模型的實驗結果可知,使用注意力機制捕獲文本序列中的關鍵信息可以明顯提高模型的整體分類效果。在單路注意機制模型中,BiGRU+CNN-Att 模型使用注意力機制識別CNN 提取到的局部特征中的關鍵信息,BiGRU-Att+CNN 模型則識別BiGRU 提取到的全局特征中的關鍵信息,對比其結果可以發現使用注意力機制捕獲全局特征中的關鍵信息能提升分類效果,并且在文本長度較長的IMDb 數據集上提升效果更明顯。
通過對比GCDA 模型和單路注意力機制模型的實驗結果可知,使用雙路注意力機制同時關注全局特征和局部特征中的關鍵信息,可以捕獲同一個詞在局部文本和整篇文本中不同的情感程度,識別出更細微的情感傾向變化,從而提高最終的分類效果,驗證了雙路注意力機制的合理性與有效性。
2.4.3 不同詞向量作為輸入的實驗與結果分析
為了驗證GCDA 模型針對不同網絡特點采用兩種詞向量并行輸入模型的有效性,使用其他詞向量輸入模型作為對比實驗驗證,具體詞向量如下:
1)Word2vec:使用單一的Word2vec 詞向量作為模型輸入。
2)GloVe:使用單一的GloVe 詞向量 作為模 型輸入。
3)GloVe_Word2vec:本文詞向量,針對兩種網絡的特點,使用GloVe 詞向量作為BiGRU 的輸入,使用Word2vec 詞向量作為CNN 的輸入。
輸入的詞向量均為100 維,其他參數設置保持不變,在IMDb 和SST-2 數據集上分別進行實驗,具體的實驗結果如圖7 所示。

圖7 不同詞向量對準確率的影響Fig.7 Effect of different word vectors on the accuracy
通過圖7 的實驗數據可知:Word2vec 是使用詞的局部上下文窗口來訓練詞向量,只能提取窗口大小內上下文的相關性信息;GloVe 是基于全局統計信息訓練詞向量,準確率略高于Word2vec;GloVe_Word2vec 同時使用兩種詞向量可以從不同的角度將文本向量化,從而獲得更豐富的文本表示信息。可見,GloVe_Word2vec 針對BiGRU 使用循環單元提取全局特征的特點,利用基于全局統計信息的GloVe詞向量作為輸入;針對CNN 使用卷積窗口提取局部特征的特點,利用基于上下文窗口訓練的Word2vec詞向量作為輸入,最終的分類準確率相比采用其他詞向量得到了一定程度的提升。
本文提出一種基于并行混合網絡和雙路注意力機制的文本情感分析模型。該模型通過兩種詞向量輸入從而得到更豐富的文本信息,再利用并行混合網絡提取文本的上下文信息和局部特征,同時融入雙路注意力機制,為兩種特征中的關鍵信息分配更高的概率權重,使模型高度關注情感傾向明顯的重要詞匯。在公開數據集上與同類模型的對比實驗結果證明了本文模型具有良好的分類效果。后續將針對融合位置編碼信息的方面級情感分析任務展開研究,進一步擴展本文模型的適用范圍。