應(yīng)偉志,于 青
(天津理工大學計算機科學與工程學院,天津300384)
文本情感分析是網(wǎng)絡(luò)輿情分析的一個關(guān)鍵任務(wù),也是自然語言處理領(lǐng)域的一個重要研究方向[1]。深度學習技術(shù)目前已經(jīng)成功地應(yīng)用于自然語言處理領(lǐng)域[2-4],有許多學者對其進行了研究。DERIU等[5]使用大量數(shù)據(jù)用于訓練卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN),并將預(yù)測結(jié)果與隨機森林分類器相結(jié)合,優(yōu)化了情感極性分類。TANG等[6]提出了利用情感嵌入將文本的情感與詞的情境共同編碼,并開發(fā)出能夠裁剪損失的神經(jīng)網(wǎng)絡(luò)。吳冬茵等[7]提出了使用深度神經(jīng)網(wǎng)絡(luò)得到文本表示,然后基于高斯過程遷移數(shù)據(jù)集,提高文本的情感分析性能。ZHANG等[8]提出了一種基于語義規(guī)則的鄰域適應(yīng)環(huán)境的情感分析膠囊網(wǎng)絡(luò)(capsule network,CapsNet),可以增強句子的綜合表示學習。
上述文獻在情感分析領(lǐng)域做了大量有益的工作。然而,上述文獻并沒有充分利用文本的前向和后向信息,而且提取文本信息的方法也存在著局限性。因此,本文提出了一種基于雙向門控循環(huán)神經(jīng)網(wǎng)絡(luò)(bidirectional gated recurrent neural network,BGRU)和CapsNet的情感分析算法來解決上述問題。
標準的循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)利用上文信息按照正向輸入序列的方式來處理序列問題,但不考慮下文信息。針對這一問題,SCHUSTER等[9]提出了雙向循環(huán)神經(jīng)網(wǎng)絡(luò)(bidirectional recurrent neural network,BRNN)模型。該模型能夠同時存儲上下文信息,它的核心思想是:利用兩個RNN依次處理正向和反向序列,然后將各自的輸出共同連接到輸出層中,進而記錄相關(guān)信息。在BRNN模型的基礎(chǔ)上,將BRNN模型中的隱藏層神經(jīng)元替換成門控循環(huán)單元(gate recurrent unit,GRU)記憶單元,就可以得到BGRU模型,其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 BGRU網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 BGRU network structure
對于給定的n維輸入(x1,x2,…,xn),在t時刻,BGRU的隱藏層輸出其具體計算過程為:
在該模型中,將正向GRU節(jié)點與反向GRU節(jié)點的輸出進行拼接,可以得到ht,它能夠被認為是文本的情感特征,進而連接至CapsNet層,計算公式為:
CapsNet是SABOUR[10]為解決卷積神經(jīng)網(wǎng)絡(luò)在空間感知方面的不足而提出的一種新的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。CapsNet與普通神經(jīng)網(wǎng)絡(luò)的不同點為:CapsNet中的神經(jīng)元是向量(值集),而不是標量(單個值),即CapsNet中的神經(jīng)元被稱為向量神經(jīng)元。向量神經(jīng)元中的每個值都代表一個特定的屬性,比如姿勢、速度、顏色、紋理等。向量神經(jīng)元也具有特殊的屬性,其值表示為向量的長度,即神經(jīng)元所表示的實例存在的概率,表示向量的長度在區(qū)間[0,1]。因此,每個屬性構(gòu)成向量神經(jīng)元的方向,實例存在的概率構(gòu)成向量神經(jīng)元的長度。標量神經(jīng)元(普通神經(jīng)元)與向量神經(jīng)元的前向傳播過程如圖2所示。
圖2 標量神經(jīng)元與向量神經(jīng)元的前向傳播過程Fig.2 The forward propagation process of scalar neuron and vector neuron
標量神經(jīng)元進行前向傳播的過程如下:1)將輸入標量xi與權(quán)重Wi相乘;
2)對加權(quán)的輸入標量進行求和,得到標量a;
3)使用非線性函數(shù)將標量a轉(zhuǎn)化成標量hj。
向量神經(jīng)元進行前向傳播的過程如下:
1)將輸入向量ui與矩陣Wij相乘得到新的輸入向量
3)對加權(quán)的輸入向量求和成向量sj;
4)用非線性函數(shù)(squash)將向量sj轉(zhuǎn)化成向量vj。
本文使用的是向量神經(jīng)元,因此僅介紹向量神經(jīng)元的前向傳播公式,其為:
以上公式中,i表示輸入層神經(jīng)元的下標,j、k表示下一層神經(jīng)元的下標,W是需要通過學習獲得的參數(shù),b和c的值由動態(tài)路由算法確定,該算法將在下一小節(jié)進行描述。式(7)中用到的squash函數(shù)是文獻[10]為CapsNet而特殊設(shè)計的激活函數(shù)。
動態(tài)路由算法的關(guān)鍵為:低層向量神經(jīng)元將其對應(yīng)的輸出發(fā)送給對此表示“同意”的高層向量神經(jīng)元。低層向高層的映射關(guān)系如圖3所示。
圖3 低層向高層的映射關(guān)系Fig.3 Mapping relationship from low level to high level
低層向高層的映射關(guān)系(單個神經(jīng)元)如圖4所示。
圖4 低層向高層的映射關(guān)系(單個神經(jīng)元)Fig.4 Mapping relationship from low level to high level(single neuron)
在圖4中,u1按照概率分成4份,分別向v1、v2、v3、v4傳遞信息。這里提到的概率就是式(5)中的耦合系數(shù)cij,具體為c11、c12、c13、c14。要得到cij,只需要求得bij即可,bij更新的過程就是用動態(tài)路由算法計算得到的。將bij初始化為0,用下面的式子進行更新。動態(tài)路由算法的具體過程如算法1所述。
算法1:動態(tài)路由算法。
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的混合神經(jīng)網(wǎng)絡(luò)情感分析模型,模型結(jié)構(gòu)如圖5所示。它由4個模塊組成:詞向量模塊、BGRU模塊、CapsNet模塊和分類模塊。假設(shè)輸入句子Z=[w1,…,wi,…,wn],模型的目標是預(yù)測句子Z的情緒極性,即積極的(P)或消極的(N)。
圖5 模型結(jié)構(gòu)Fig.5 Model structure
詞向量模塊:該模塊的目標是將每個單詞都表示為多維分布向量。具體做法如下:將包含n個單詞的句子輸入到嵌入層,每個單詞都將轉(zhuǎn)換為大小為d維的單詞向量。最后,嵌入層能夠?qū)⒚總€句子表示編碼為矩陣Z=[w1,…,wi,…,wn]∈?n×d,在矩陣Z中wi=[xi1,…,xij,…,xid]對應(yīng)句子中單詞wi的單詞向量。
BGRU模塊:該模塊簡化了門結(jié)構(gòu),并加快了訓練速度,使用BGRU可快速獲取文本的隱藏表示。通過式(1)和式(2)計算正向GRU和反向GRU的值,然后使用式(3)將前向和反向輸出拼接為下一層的輸入。
CapsNet模塊:將CapsNet與BGRU相結(jié)合,實現(xiàn)情感分類。CapsNet可提取更豐富的文本信息,能夠有效地編碼單詞的位置、語義和句法結(jié)構(gòu)。它能夠提高文本的表達能力,獲得更多的重要線索。CapsNet的輸入為ht,這是BGRU上一層的輸出。具體操作如式(9)、式(10)和式(11)所示:
式(9)中,Wio表示權(quán)值矩陣,它控制輸入層和輸出層之間的連接強度。式(10)中,cio為動態(tài)路由算法迭代更新的耦合系數(shù)。輸入層和輸出層的耦合系數(shù)之和為1,它由softmax計算得到。另外初始化bio為0。
非線性激活函數(shù)squash用于對式(10)中的輸出向量進行歸一化,具體計算公式為:
Capsule中的動態(tài)路由算法如圖6所示。
圖6 capsule中的動態(tài)路由算法Fig.6 Dynamic routing algorithm in capsule
耦合系數(shù)向量初始化為c=[c11,…,ct1,…,cn1],根據(jù)式(9)、式(10)和式(11)獲得輸出v1。在每輪迭代中,通過計算分量ht對輸出v1的影響來迭代更新向量c。隨著向量c的變化,序列文本中重要特征的權(quán)重逐漸增加。耦合系數(shù)cio越大,重要語義特征的權(quán)重就越高,這將有助于提高分類準確性。
分類模塊:將CapsNet提取的語義矩陣輸入到dropout層,防止過擬合。其作用為在訓練過程中,隱藏層中隨機選取一些神經(jīng)元不起作用,但是仍將它們保留在下一個輸入樣本中,其他神經(jīng)元參與計算和連接過程。將向量矩陣輸入到全連接層進行降維,最后通過sigmoid激活函數(shù)計算情感類別的概率分布。
具體的基于BGRU-CapsNet的情感分析算法如算法2所示。
算法2:基于BGRU-CapsNet的情感分析算法。
輸入:文本數(shù)據(jù)。
輸出:情感類別的概率分布。
1)用預(yù)訓練的詞向量表示訓練集中的每個句子。
2)截斷或補齊使得每個句子的長度都為170。
3)對于每個批次(epoch=1,2,…,N)做如下操作。
(1)選擇含有M個樣本的隨機小批次訓練集。
(2)對于每個訓練樣本(i=1,…,M)做如下操作。
動態(tài)路由程序(輸入向量u^o|i,迭代次數(shù)r)。
通過sigmoid計算情感類別的概率分布y。
結(jié)束
結(jié)束
使用sigmoid函數(shù)作為分類器,如式(13)所示:
樣本為{xij,yi},yi=0表示消極,yi=1表示積極。X是樣本特征向量,ωi是可訓練的參數(shù)矩陣。
選擇交叉熵損失函數(shù)。訓練模型參數(shù)ωi:yi為輸入xij的真實類別,hωi(xij)為預(yù)測輸入xij屬于類別1的概率J(ωi),如式(14)所示:
選擇使用自適應(yīng)學習率優(yōu)化算法(adaptive moment estimation,Adam)優(yōu)化器,它在RNN中表現(xiàn)良好,其參數(shù)與默認值相同。
本文在情感分類實驗中選取的數(shù)據(jù)集都是消費者網(wǎng)購后的評論,主要涉及手機、書籍和牛奶。有兩種類型的評論情緒標簽,0是消極情緒,1是積極情緒。數(shù)據(jù)集總數(shù)為21 105,訓練數(shù)據(jù)集數(shù)量為17 094,驗證數(shù)據(jù)集數(shù)量為1 900,測試數(shù)據(jù)集數(shù)量為2 111。數(shù)據(jù)集說明如表1所示。
表1 數(shù)據(jù)集說明Tab.1 Dataset description
實驗參數(shù)設(shè)置如表2所示。
將本文提出的模型與下列模型進行對比實驗以驗證提出模型的有效性。
·雙向長短時記憶循環(huán)神經(jīng)網(wǎng)絡(luò)(bidirectional long short-time memory,BLSTM):XIAO等[11]提出的利用BLSTM進行中文文本情感分析的模型。
·BGRU:曹宇等[12]提出的利用BGRU進行中文文本情感分析的模型。
·CNN:王煜涵等[13]提出的利用CNN進行推特文本情感分析的模型。
·CapsNet:YANG等[14]提出的基于動態(tài)路由的CapsNet用于文本分類的模型。
·BGRU-注意力機制(Attention):王偉等[15]提出的基于BGRU-Attention的文本情感分類模型。
使用網(wǎng)絡(luò)文本情感分析中廣泛使用的評估指標來評估提出的模型。評估指標包括:準確度(accuracy)、精準率(precision)、召回率(recall)和F值(F-measure)。為了描述這些評估指標,需要引入分類結(jié)果的混淆矩陣,如表3所示。
表3 分類結(jié)果的混淆矩陣Tab.3 Confusion matrix of classification results
在表3中,TP指分類器將積極數(shù)據(jù)正確地分類為積極數(shù)據(jù),F(xiàn)N指分類器將積極數(shù)據(jù)錯誤地分類為消極數(shù)據(jù),F(xiàn)P指分類器將消極數(shù)據(jù)錯誤地分類為積極數(shù)據(jù),TN指分類器將消極數(shù)據(jù)正確地分類為消極數(shù)據(jù)。
準確度能夠反映模型正確分類的能力,準確度值越高代表分類器的性能越出色,準確度的計算公式為:
精準率是指在所有被預(yù)測為積極的文本中實際為積極的文本所占的比例,它能夠評估分類器的正確性,精準率越高表示分類器對某類樣本的預(yù)測能力越強,精準率的計算公式為:
召回率是指實際為積極的文本中被預(yù)測為積極的文本所占的比例,召回率越高代表分類器的分類效果越好,召回率的計算公式為:
F值是準確度和召回率的調(diào)和平均,它可有效地平滑二者之間的影響,F(xiàn)值的計算公式為:
實驗結(jié)果比較如表4所示。網(wǎng)絡(luò)輸入都是使用單詞轉(zhuǎn)換成向量訓練的跳字模型(continuous skipgram model,skip-gram)詞向量。從表4中可分析出,本文提出的BGRU-CapsNet模型準確度為93.51%,F(xiàn)值為93.54%,均優(yōu)于其他模型。與BGRU和CapsNet模型相比,它證明了本文提出的模型的有效性。BGRU可以有效地學習文本上下文的特征,而CapsNet可以提取更豐富的文本信息,提高文本表達能力。將兩種模型進行結(jié)合可以提高情感分類的準確性。
表4 實驗結(jié)果比較Tab.4 Comparison of experimental results
圖7 為驗證集準確度變化圖,從圖7可知,6組模型的準確度都隨著迭代次數(shù)的增加而增加,經(jīng)過第3次迭代后,所有模型的準確度都達到了88%以上。然而,本文提出的BGRU-CapsNet模型達到了90%以上,并且隨著迭代次數(shù)的增加準確度穩(wěn)步上升,不像其他模型具有更大的波動性。
圖7 驗證集準確度變化圖Fig.7 Validation set accuracy ratechangegraph
圖8為驗證集損失率變化圖,從圖8可知,本文提出的BGRU-CapsNet模型的損失率隨著迭代次數(shù)的增加逐漸趨于穩(wěn)定,并且均小于其他對比模型。從圖8中還可分析出,BGRU-CapsNet的損失率比其他模型下降得更快,這足以說明本文提出的模型收斂得更快,效果更好。
圖8 驗證集損失率變化圖Fig.8 Validation set lossratechangegraph
由于上下文的信息有限,對文本進行情感分析是一項十分困難的任務(wù)。本文提出了一種基于BGRU和CapsNet的混合神經(jīng)網(wǎng)絡(luò)模型,該模型不僅充分利用了文本的前向和后向信息,而且縮短了相互依賴特征之間的距離。它可以提取更豐富的文本信息,提高詞匯、語義和句法結(jié)構(gòu)的表達能力。實驗結(jié)果表明,該模型能顯著提高文本情感分析的準確度。
雖然本文提出的模型可有效地提高文本情感分析的準確性,但在實驗中發(fā)現(xiàn)模型所需耗費的時間代價較高,下一步計劃將解決時間代價高的問題。