應偉志,于 青
(天津理工大學計算機科學與工程學院,天津300384)
文本情感分析是網絡輿情分析的一個關鍵任務,也是自然語言處理領域的一個重要研究方向[1]。深度學習技術目前已經成功地應用于自然語言處理領域[2-4],有許多學者對其進行了研究。DERIU等[5]使用大量數據用于訓練卷積神經網絡(convolutional neural network,CNN),并將預測結果與隨機森林分類器相結合,優化了情感極性分類。TANG等[6]提出了利用情感嵌入將文本的情感與詞的情境共同編碼,并開發出能夠裁剪損失的神經網絡。吳冬茵等[7]提出了使用深度神經網絡得到文本表示,然后基于高斯過程遷移數據集,提高文本的情感分析性能。ZHANG等[8]提出了一種基于語義規則的鄰域適應環境的情感分析膠囊網絡(capsule network,CapsNet),可以增強句子的綜合表示學習。
上述文獻在情感分析領域做了大量有益的工作。然而,上述文獻并沒有充分利用文本的前向和后向信息,而且提取文本信息的方法也存在著局限性。因此,本文提出了一種基于雙向門控循環神經網絡(bidirectional gated recurrent neural network,BGRU)和CapsNet的情感分析算法來解決上述問題。
標準的循環神經網絡(recurrent neural network,RNN)利用上文信息按照正向輸入序列的方式來處理序列問題,但不考慮下文信息。針對這一問題,SCHUSTER等[9]提出了雙向循環神經網絡(bidirectional recurrent neural network,BRNN)模型。該模型能夠同時存儲上下文信息,它的核心思想是:利用兩個RNN依次處理正向和反向序列,然后將各自的輸出共同連接到輸出層中,進而記錄相關信息。在BRNN模型的基礎上,將BRNN模型中的隱藏層神經元替換成門控循環單元(gate recurrent unit,GRU)記憶單元,就可以得到BGRU模型,其網絡結構如圖1所示。

圖1 BGRU網絡結構Fig.1 BGRU network structure
對于給定的n維輸入(x1,x2,…,xn),在t時刻,BGRU的隱藏層輸出其具體計算過程為:

在該模型中,將正向GRU節點與反向GRU節點的輸出進行拼接,可以得到ht,它能夠被認為是文本的情感特征,進而連接至CapsNet層,計算公式為:

CapsNet是SABOUR[10]為解決卷積神經網絡在空間感知方面的不足而提出的一種新的神經網絡結構。CapsNet與普通神經網絡的不同點為:CapsNet中的神經元是向量(值集),而不是標量(單個值),即CapsNet中的神經元被稱為向量神經元。向量神經元中的每個值都代表一個特定的屬性,比如姿勢、速度、顏色、紋理等。向量神經元也具有特殊的屬性,其值表示為向量的長度,即神經元所表示的實例存在的概率,表示向量的長度在區間[0,1]。因此,每個屬性構成向量神經元的方向,實例存在的概率構成向量神經元的長度。標量神經元(普通神經元)與向量神經元的前向傳播過程如圖2所示。

圖2 標量神經元與向量神經元的前向傳播過程Fig.2 The forward propagation process of scalar neuron and vector neuron
標量神經元進行前向傳播的過程如下:1)將輸入標量xi與權重Wi相乘;
2)對加權的輸入標量進行求和,得到標量a;
3)使用非線性函數將標量a轉化成標量hj。
向量神經元進行前向傳播的過程如下:
1)將輸入向量ui與矩陣Wij相乘得到新的輸入向量
3)對加權的輸入向量求和成向量sj;
4)用非線性函數(squash)將向量sj轉化成向量vj。
本文使用的是向量神經元,因此僅介紹向量神經元的前向傳播公式,其為:

以上公式中,i表示輸入層神經元的下標,j、k表示下一層神經元的下標,W是需要通過學習獲得的參數,b和c的值由動態路由算法確定,該算法將在下一小節進行描述。式(7)中用到的squash函數是文獻[10]為CapsNet而特殊設計的激活函數。
動態路由算法的關鍵為:低層向量神經元將其對應的輸出發送給對此表示“同意”的高層向量神經元。低層向高層的映射關系如圖3所示。

圖3 低層向高層的映射關系Fig.3 Mapping relationship from low level to high level
低層向高層的映射關系(單個神經元)如圖4所示。

圖4 低層向高層的映射關系(單個神經元)Fig.4 Mapping relationship from low level to high level(single neuron)
在圖4中,u1按照概率分成4份,分別向v1、v2、v3、v4傳遞信息。這里提到的概率就是式(5)中的耦合系數cij,具體為c11、c12、c13、c14。要得到cij,只需要求得bij即可,bij更新的過程就是用動態路由算法計算得到的。將bij初始化為0,用下面的式子進行更新。動態路由算法的具體過程如算法1所述。

算法1:動態路由算法。
2)對于l中每個膠囊i和l+1層的每個膠囊j:bij←0。
3)對于r次迭代,做如下操作。
4)遍歷l中每個膠囊i:cij←softmax(bi)。
5)遍歷l+1層的每個膠囊j:
6)遍歷l+1層的每個膠囊j:vj←squash(sj)。
7)遍歷l中每個膠囊i和l+1層的每個膠囊
8)返回vj。
本文提出了一種基于BGRU和CapsNet的混合神經網絡情感分析模型,模型結構如圖5所示。它由4個模塊組成:詞向量模塊、BGRU模塊、CapsNet模塊和分類模塊。假設輸入句子Z=[w1,…,wi,…,wn],模型的目標是預測句子Z的情緒極性,即積極的(P)或消極的(N)。

圖5 模型結構Fig.5 Model structure
詞向量模塊:該模塊的目標是將每個單詞都表示為多維分布向量。具體做法如下:將包含n個單詞的句子輸入到嵌入層,每個單詞都將轉換為大小為d維的單詞向量。最后,嵌入層能夠將每個句子表示編碼為矩陣Z=[w1,…,wi,…,wn]∈?n×d,在矩陣Z中wi=[xi1,…,xij,…,xid]對應句子中單詞wi的單詞向量。
BGRU模塊:該模塊簡化了門結構,并加快了訓練速度,使用BGRU可快速獲取文本的隱藏表示。通過式(1)和式(2)計算正向GRU和反向GRU的值,然后使用式(3)將前向和反向輸出拼接為下一層的輸入。
CapsNet模塊:將CapsNet與BGRU相結合,實現情感分類。CapsNet可提取更豐富的文本信息,能夠有效地編碼單詞的位置、語義和句法結構。它能夠提高文本的表達能力,獲得更多的重要線索。CapsNet的輸入為ht,這是BGRU上一層的輸出。具體操作如式(9)、式(10)和式(11)所示:

式(9)中,Wio表示權值矩陣,它控制輸入層和輸出層之間的連接強度。式(10)中,cio為動態路由算法迭代更新的耦合系數。輸入層和輸出層的耦合系數之和為1,它由softmax計算得到。另外初始化bio為0。
非線性激活函數squash用于對式(10)中的輸出向量進行歸一化,具體計算公式為:

Capsule中的動態路由算法如圖6所示。

圖6 capsule中的動態路由算法Fig.6 Dynamic routing algorithm in capsule
耦合系數向量初始化為c=[c11,…,ct1,…,cn1],根據式(9)、式(10)和式(11)獲得輸出v1。在每輪迭代中,通過計算分量ht對輸出v1的影響來迭代更新向量c。隨著向量c的變化,序列文本中重要特征的權重逐漸增加。耦合系數cio越大,重要語義特征的權重就越高,這將有助于提高分類準確性。
分類模塊:將CapsNet提取的語義矩陣輸入到dropout層,防止過擬合。其作用為在訓練過程中,隱藏層中隨機選取一些神經元不起作用,但是仍將它們保留在下一個輸入樣本中,其他神經元參與計算和連接過程。將向量矩陣輸入到全連接層進行降維,最后通過sigmoid激活函數計算情感類別的概率分布。
具體的基于BGRU-CapsNet的情感分析算法如算法2所示。
算法2:基于BGRU-CapsNet的情感分析算法。
輸入:文本數據。
輸出:情感類別的概率分布。
1)用預訓練的詞向量表示訓練集中的每個句子。
2)截斷或補齊使得每個句子的長度都為170。
3)對于每個批次(epoch=1,2,…,N)做如下操作。
(1)選擇含有M個樣本的隨機小批次訓練集。
(2)對于每個訓練樣本(i=1,…,M)做如下操作。
動態路由程序(輸入向量u^o|i,迭代次數r)。
通過sigmoid計算情感類別的概率分布y。
結束
結束
使用sigmoid函數作為分類器,如式(13)所示:

樣本為{xij,yi},yi=0表示消極,yi=1表示積極。X是樣本特征向量,ωi是可訓練的參數矩陣。
選擇交叉熵損失函數。訓練模型參數ωi:yi為輸入xij的真實類別,hωi(xij)為預測輸入xij屬于類別1的概率J(ωi),如式(14)所示:

選擇使用自適應學習率優化算法(adaptive moment estimation,Adam)優化器,它在RNN中表現良好,其參數與默認值相同。
本文在情感分類實驗中選取的數據集都是消費者網購后的評論,主要涉及手機、書籍和牛奶。有兩種類型的評論情緒標簽,0是消極情緒,1是積極情緒。數據集總數為21 105,訓練數據集數量為17 094,驗證數據集數量為1 900,測試數據集數量為2 111。數據集說明如表1所示。

表1 數據集說明Tab.1 Dataset description
實驗參數設置如表2所示。
將本文提出的模型與下列模型進行對比實驗以驗證提出模型的有效性。
·雙向長短時記憶循環神經網絡(bidirectional long short-time memory,BLSTM):XIAO等[11]提出的利用BLSTM進行中文文本情感分析的模型。
·BGRU:曹宇等[12]提出的利用BGRU進行中文文本情感分析的模型。
·CNN:王煜涵等[13]提出的利用CNN進行推特文本情感分析的模型。
·CapsNet:YANG等[14]提出的基于動態路由的CapsNet用于文本分類的模型。
·BGRU-注意力機制(Attention):王偉等[15]提出的基于BGRU-Attention的文本情感分類模型。
使用網絡文本情感分析中廣泛使用的評估指標來評估提出的模型。評估指標包括:準確度(accuracy)、精準率(precision)、召回率(recall)和F值(F-measure)。為了描述這些評估指標,需要引入分類結果的混淆矩陣,如表3所示。

表3 分類結果的混淆矩陣Tab.3 Confusion matrix of classification results
在表3中,TP指分類器將積極數據正確地分類為積極數據,FN指分類器將積極數據錯誤地分類為消極數據,FP指分類器將消極數據錯誤地分類為積極數據,TN指分類器將消極數據正確地分類為消極數據。
準確度能夠反映模型正確分類的能力,準確度值越高代表分類器的性能越出色,準確度的計算公式為:

精準率是指在所有被預測為積極的文本中實際為積極的文本所占的比例,它能夠評估分類器的正確性,精準率越高表示分類器對某類樣本的預測能力越強,精準率的計算公式為:

召回率是指實際為積極的文本中被預測為積極的文本所占的比例,召回率越高代表分類器的分類效果越好,召回率的計算公式為:

F值是準確度和召回率的調和平均,它可有效地平滑二者之間的影響,F值的計算公式為:

實驗結果比較如表4所示。網絡輸入都是使用單詞轉換成向量訓練的跳字模型(continuous skipgram model,skip-gram)詞向量。從表4中可分析出,本文提出的BGRU-CapsNet模型準確度為93.51%,F值為93.54%,均優于其他模型。與BGRU和CapsNet模型相比,它證明了本文提出的模型的有效性。BGRU可以有效地學習文本上下文的特征,而CapsNet可以提取更豐富的文本信息,提高文本表達能力。將兩種模型進行結合可以提高情感分類的準確性。

表4 實驗結果比較Tab.4 Comparison of experimental results
圖7 為驗證集準確度變化圖,從圖7可知,6組模型的準確度都隨著迭代次數的增加而增加,經過第3次迭代后,所有模型的準確度都達到了88%以上。然而,本文提出的BGRU-CapsNet模型達到了90%以上,并且隨著迭代次數的增加準確度穩步上升,不像其他模型具有更大的波動性。

圖7 驗證集準確度變化圖Fig.7 Validation set accuracy ratechangegraph
圖8為驗證集損失率變化圖,從圖8可知,本文提出的BGRU-CapsNet模型的損失率隨著迭代次數的增加逐漸趨于穩定,并且均小于其他對比模型。從圖8中還可分析出,BGRU-CapsNet的損失率比其他模型下降得更快,這足以說明本文提出的模型收斂得更快,效果更好。

圖8 驗證集損失率變化圖Fig.8 Validation set lossratechangegraph
由于上下文的信息有限,對文本進行情感分析是一項十分困難的任務。本文提出了一種基于BGRU和CapsNet的混合神經網絡模型,該模型不僅充分利用了文本的前向和后向信息,而且縮短了相互依賴特征之間的距離。它可以提取更豐富的文本信息,提高詞匯、語義和句法結構的表達能力。實驗結果表明,該模型能顯著提高文本情感分析的準確度。
雖然本文提出的模型可有效地提高文本情感分析的準確性,但在實驗中發現模型所需耗費的時間代價較高,下一步計劃將解決時間代價高的問題。