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