胡玉琦,李 婧,常艷鵬,梁順攀,原福永
1(燕山大學 信息科學與工程學院,河北 秦皇島 066004)
2(河北省計算機虛擬技術與系統(tǒng)集成重點實驗室,河北 秦皇島 066004)E-mail:2529044203@qq.com
情感分析的目的旨在確定人們對某個話題,或?qū)ξ臋n、互動或事件的整體極性,是根據(jù)人們生成的文本來分析他們的情感或觀點,在數(shù)據(jù)挖掘和自然語言處理領域發(fā)揮著至關重要的作用[1].怎樣從海量的文本中將有用的信息自動提取出來深受許多研究者的關注,本世紀初期,情感分析被首次提出[2,3],它受到工業(yè)界和學術界的廣泛關注,并且逐步成為了一個十分活躍的研究領域,而且在實際應用中,評論文本中情感極性的挖掘,具有很高的研究價值.
情感分類是情感分析和意見挖掘領域的一項基礎性任務.這項任務的目的是推斷用戶為產(chǎn)品撰寫的評論文本的總體情緒強度(例如點評網(wǎng)站上的1~5顆星或1~10顆星),研究遵循將情感分類作為文本分類問題的特例.Pang和Lee等人通常使用用戶標記的情感極性或評分作為標簽,并使用機器學習算法構建具有文本特征的情感分類器[4].由于機器學習的性能在很大程度上取決于數(shù)據(jù)表示的選擇[5],許多工作著重于設計有效特征或使用神經(jīng)網(wǎng)絡從數(shù)據(jù)中學習判別特征.
盡管基于神經(jīng)網(wǎng)絡的方法在情感分類上已經(jīng)取得了很大的成功,但是它們通常只關注文本信息,而忽略了用戶偏好和產(chǎn)品性能對評分的重要影響.對于不同的用戶,同一個詞可能會表達不同的情感強度.以評分1-5顆星的等級評價為例,一個寬容的用戶可能用“好”來評價一個普通的產(chǎn)品,并打5顆星,而對于一個挑剔的用戶來講,“好”就是表達一個優(yōu)秀的態(tài)度,但他評價為4顆星.同樣產(chǎn)品的性能也會對評價的等級產(chǎn)生影響,與低質(zhì)量的產(chǎn)品相比,高質(zhì)量的產(chǎn)品通常會得到更高的評價.
針對以上問題,本文提出一種引入注意力機制的BiGRU-CNN文本情感分類模型(BiGRU-CNN Sentiment Classification Model with Attention Mechanism,簡稱GCA情感分類模型),該模型分別考慮用戶和產(chǎn)品特征,將BiGRU和CNN相結合,并引入注意力機制,充分提取了評論文本的特征,實驗結果表明,該模型在IMDB和Yelp數(shù)據(jù)集上提高了情感分類的準確率.
隨著深度學習在語音識別,圖像識別和文本分析等領域上取得的發(fā)展,神經(jīng)網(wǎng)絡模型因其具有文本表示學習的能力而被應用到情感分類領域中.
Glorot[6]等首次在情感分類中使用疊加去燥編碼器,Socher通過一系列遞歸神經(jīng)網(wǎng)絡模型學習基于句子遞歸樹結構的表示,其中包括遞歸自編碼器(RAE)[7]、矩陣向量遞歸神經(jīng)網(wǎng)絡(MV-RNN)[8]以及遞歸神經(jīng)張量網(wǎng)絡(RNTN)[9].并且Kim[10]和Johnson等[11]采用卷積神經(jīng)網(wǎng)絡學習句子表示,在情感分類方面取得了顯著的成績.神經(jīng)網(wǎng)絡可以更好的提取文本特征,同時還可以減小數(shù)據(jù)維度,克服數(shù)據(jù)稀疏問題,但是CNN沒有記憶功能,存在記憶缺失,而循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network,RNN)存在著梯度消失的不足.
為了避免上述問題,便有學者將二者結合起來進行研究.Hassan等人[12]提出聯(lián)合卷積神經(jīng)網(wǎng)絡和循環(huán)神經(jīng)網(wǎng)絡的模型,該模型將卷積神經(jīng)網(wǎng)絡和遞歸神經(jīng)網(wǎng)絡結合在無監(jiān)督,預訓練的單詞向量之上,取得了更出色的結果.Wen等人[13]提出了一個名為ATTCONV的更為細化的卷積神經(jīng)網(wǎng)絡,該方法在提取本地上下文特征的同時,還使用RNN中常用的注意機制提取非本地上下文中信息中派生出來的單詞的高級特征,實驗證明,該方法具有更好的靈活性和有效性.由此可見,應用神經(jīng)網(wǎng)絡來做情感分析研究是很有價值的.
近年來,隨著注意力機制的不斷發(fā)展,很多學者也將注意力機制運用到了情感分類中.武等[14]提出基于CNN-LSTM模型的系統(tǒng),在該模型中,應用LSTM從文本中提取上下文信息,之后引入注意力機制,為特征序列分配不同注意力權重,最后用四種不同卷積核大小的CNN來提取局部特征對對話的情緒進行分類.葛等[15]提出了一個端對端的LSTM-CNN網(wǎng)絡模型,用BiLSTM作為編碼器來捕獲來自兩個方向的信息,之后加入注意層,然后用CNN來獲取局部上下文信息,最后用帶有softmax激活函數(shù)的致密層對情緒進行分類.胡榮磊等[16]將LSTM與前饋注意力模型相結合最終實現(xiàn)情感分類.李梅等[17]針對時序數(shù)據(jù)特征,提出基于注意力機制的CNN聯(lián)合LSTM的神經(jīng)網(wǎng)絡預測模型,CNN與注意力并行提取細粒度特征,LSTM提取細粒度特征中的粗粒度特征,融合粗細粒度特征實現(xiàn)準確的時間序列預測.
但現(xiàn)有的情感分類方法大多忽略了用戶偏好和產(chǎn)品性能對情感極性的重要影響.因此,本文分別考慮用戶和產(chǎn)品特征,并在神經(jīng)網(wǎng)絡中引入注意力機制,充分提取評論文本的特征,提出GCA情感分類模型.
GCA情感分類模型圖如圖1所示.
圖1 GCA情感分類模型圖
GCA情感分類模型主要分為三大部分:
1)用戶特征的提?。?/p>
2)產(chǎn)品特征的提?。?/p>
3)將用戶特征和產(chǎn)品特征融合在一起進行分類.
GCA情感分類模型又分為四層,即BiGRU層、注意力層、CNN層以及全連接層和分類層,并對文本進行單詞級和句子級的分析.
1)在進行單詞級語義分析時,將詞向量輸入到BiGRU層,然后在BiGRU層提取文本的上下文特征;
2)在注意力機制層將BiGRU層的隱藏層狀態(tài)作為輸入,計算注意力權重,得到賦予權重的特征向量,得到句子表示;
3)在進行句子級分析時,將在注意力機制層得到的句子表示輸入到CNN層,得到文檔表示.
4)在全連接層和分類層將得到的文檔融合在一起進行最后的情感分類.
門控循環(huán)神經(jīng)網(wǎng)絡(Gated Recurrent Unit,簡稱GRU)是對長短期記憶網(wǎng)絡(Long Short Term Memory Neural Networks,簡稱LSTM)的一種改進,GRU也具有一個從頭至尾持續(xù)不變的記憶狀態(tài)單元,在這個這個記憶單元中,原來LSTM中的輸入門和遺忘門被更新門所替代,這便使得在網(wǎng)絡結構上GRU要比LSTM變的簡單,并且GRU需要的張量操作較少,需要的參數(shù)也更少,因此GRU訓練起來要比LSTM更為簡單,訓練速度也更快一些.GRU模型圖如圖2所示.
圖2 GRU模型圖
但是GRU只學習了當前詞前面的信息,而并沒有學習到當前詞后面的信息.對于一個詞來說,這個詞的語義理解與其之前和之后的詞語都密切相關,因此本文選取了雙向門控循環(huán)神經(jīng)網(wǎng)絡BiGRU來搭建模型,充分考慮了當前詞的上下文信息.
從用戶的角度上來看,用戶的偏好或者感情不是所有的詞語都能同等反應出來的.為了解決這個問題,本文使用用戶注意力機制來提取對句子意義重要的用戶特定詞語,最后的句子表示由這些詞的表示聚合而成.增強的句子表示就是用戶視圖中單詞級隱藏層狀態(tài)的加權和,如公式(1)所示:
(1)
(2)
(3)
(4)
本文中每個評論都有一個用戶ID和一個產(chǎn)品ID,以指示用戶為某產(chǎn)品撰寫評論,例如[u1,p1,r1],[u2,p1,r2],[u1,p2,r3].使用向量初始化每個用戶和每個產(chǎn)品,因此,當給定評論r1和r3時,u1向量將被更新.當給定r1和r2時,網(wǎng)絡將更新向量p1.可以看到,u和p用不同的評論進行了更新.因此它們是不同的,并學會了分別指示用戶喜好和產(chǎn)品特性.
CNN是一種包含卷積計算且具有深度結構的前饋神經(jīng)網(wǎng)絡.它分為四層,分別為輸入層、卷積層、池化層、全連接層以及輸出層.
本文將注意力機制層得到的用戶句子表示和產(chǎn)品句子表示分別作為卷積層的輸入,利用CNN局部特征的強學習能力,提取兩部分評論文本的局部特征,最終分別得到用戶文檔表示du,如公式(5),和產(chǎn)品文檔表示dp,如公式(6)所示:
(5)
(6)
在全連接層,將用戶文檔表示du和產(chǎn)品文檔表示dp融合在一起,得到最終的情感分類文檔d.
本文將情感分析問題看成一個多分類問題,分類函數(shù)選用softmax函數(shù).情感概率p的推算方法如公式(7)所示.
pi=softmax(Wd+b)
(7)
其中,pi代表情感概率分布,W代表權重矩陣,b代表偏置量.
為了使預測文本所屬類別更接近真實類別,在本文的情感分析模型中,定義如公式(8)所示的交叉熵損失函數(shù):
(8)
GCA情感分類模型算法:
1.文本d由n個句子{s1,s2,…,sn}組成,li為第i個句字的長度,第i個句子si由li個單詞{wi1,wi2,…,wili}組成,將文本d輸入到Glove模型中訓練,把評論文本中的詞映射為對應的詞向量;
2.將詞向量輸入到BiGRU層,得到隱藏層狀態(tài)[hi1,hi2,…,hili];
3.將隱藏層的狀態(tài)加入注意力機制得到賦予注意力權重的句子表示si;
4.將句子表示[s1,s2,…,sn]輸入到CNN層,經(jīng)過CNN池化層下采樣得到隱藏層表示,對隱藏層狀態(tài)值求和得到文檔表示d;
5.用上述方法同時分別提取用戶特征和產(chǎn)品特征,將得到的用戶文檔表示du和產(chǎn)品文檔表示dp通過全連接層融合在一起,最后,通過softmax函數(shù)映射到情感分類的C個類別進行分類.
本文選用IMDB、yelp2013和yelp2014三個公開的數(shù)據(jù)集進行實驗,并將上述數(shù)據(jù)集中用戶對電影的評分作為用戶的情感極性.IMDB、yelp2013和yelp2014三個數(shù)據(jù)集的詳情信息請見表1所示.
表1 三個數(shù)據(jù)集的具體描述
實驗參數(shù)的設置會直接影響到模型的分類效果,本文中GCA情感分類模型的具體實驗參數(shù)一部分是根據(jù)前人WU等人[18]在實驗中建議設置的,另一部分是在每一次迭代完成后根據(jù)實驗的準確率調(diào)整,經(jīng)過多次迭代而確定的,綜上所述實驗的參數(shù)設置如下:詞嵌入維度為200,BiGRU隱藏層大小為128,最大句子長度為50,最大評論文本長度為40,卷積核滑動窗口大小為3,4,5,學習率為0.001.
本文選取準確率(Accuracy)和均方根誤差(RMSE)兩個評價指標來評估模型.準確率可以判斷模型正確預測的概率,均方根誤差作為評價指標可計算模型預測的情感極性與真實情感極性之間的偏差.
假設評論數(shù)據(jù)一共有N條,其中分類正確的數(shù)據(jù)有T條,那么準確率的計算如公式(9)所示.
(9)
假設用戶評論的真實情感類別為gdi,對用戶評論情感的預測為pri,則均方根誤差公式如公式(10)所示.
(10)
本文將提出的GCA情感分類模型與以下幾種情感分類方法進行了對比.
Trigram:使用一元、二元和三元模型提取特征來訓練SVM分類器[19].
TextFeature:通過提取文本的單詞、字符和情感詞典等特征來訓練SVM分類器[20].
AvgWordvec:對文檔中的詞嵌入進行平均生成文檔表示,然后將其作為特征輸入到SVM分類器中[21].
SSWE:使用特定情感的詞嵌入生成特征,然后分別對特征使用最大池化、最小池化和均值池化,將這些特征融合作為文本表示輸入到SVM分類器[22].
RNTN+RNN:使用遞歸神經(jīng)張量網(wǎng)絡獲得句子表示,然后將其作為循環(huán)神經(jīng)網(wǎng)絡的輸入得到隱藏層向量,之后平均隱藏層向量生成文檔表示用于情感分類,實現(xiàn)了文獻[9]中的方法.
Paragraph Vrctor:實現(xiàn)了用于文檔情感分類的段落向量的分布式存儲模型[23].
UPNN:將用戶和產(chǎn)品的字級偏好矩陣和文檔表示向量引入CNN情感分類器,得到用戶和產(chǎn)品向量表示和評論文本表示,然后將其結合到一起作為特征輸入到softmax層進行情感分類[24].
NSC+LA:基于NSC(采用分層LSTM模型對評論文本進行編碼),用于情感分類實現(xiàn)局部語義注意的思想[25].
HUAPA:該模型使用兩個獨立的層次神經(jīng)網(wǎng)絡BiLSTM來生成用戶注意和產(chǎn)品注意兩個表示,然后用組合策略充分利用這兩種表示進行訓練和最終預測,實現(xiàn)了文獻[18]中的方法.
本文的數(shù)據(jù)集采用文獻[18]中的數(shù)據(jù)集,因此對于以上的實驗對比方法均采用文獻[18]中的實驗結果.
實驗結果數(shù)據(jù)如表2所示.本文將實驗結果劃分為兩部分:一是只考慮評論文本信息;二是綜合考慮用戶和產(chǎn)品信息.
表2 實驗結果
為了驗證GCA情感分類模型的分類有效性,將其與Trigram、TextFeature、AvgWordvec+SVM、SSWE+SVM、Paragraph Vrctor、RNTN+Recurrent、UPNN、NSC+LA八種只考慮文本信息的方法分在IMDB、Yelp2013和Yelp2014三個數(shù)據(jù)集上做對比,從表中可以看出,GCA情感分類模型在三個真實數(shù)據(jù)集上的情感分類準確率均高于這八種方法,其中相比這八種方法中最好的實驗結果,GCA情感分類模型的準確率在三個數(shù)據(jù)集上分別提升了2.2%、0.5%、2.5%,GCA情感分類模型的表現(xiàn)在均方根誤差上也有明顯改善,相比于這八種方法中表現(xiàn)最好的NSC+LA方法,GCA情感分類模型的均方根誤差在上述的三個數(shù)據(jù)集上,分別減少了3.9%,1.2%,4.7%.
其次將GCA情感分類模型與考慮用戶和產(chǎn)品信息的Trigram+UPF、TextFeature+UPF、UPNN(CNN)及HUAPA四種方法進行比較,相比于前三種方法,GCA情感分類模型的準確率較其最好的結果在三個數(shù)據(jù)集上分別提升了7.4%,4.0%,4.7%,均方根誤差減少了26.0%,9.0%,9.6%,而相比于HUAPA方法,GCA情感分類模型在三個數(shù)據(jù)集上的準確率均沒有HUAPA方法的準確率高,在三個數(shù)據(jù)集上分別相差4.1%,4.7%,3.1%,均方根誤差也較HUAPA方法差一些,在三個數(shù)據(jù)集上分別增加了15.7%,6.6%,4.2%,分析原因是因為HUAPA方法相比于本文的方法運用了兩次注意力機制,更加精準的提取了情感特征,從而使精確度更高,更準確,并且在數(shù)據(jù)集很大的情況下,BiLSTM的表達性能比BiGRU要更好,還有BiLSTM能夠充分考慮上下文,運用兩次BiLSTM模型更加充分的提取了所需的情感特征,使得結果更加的精準,而CNN偏向于提取局部特征,而且沒有時序性的概念,但在文本處理時,上一個詞很大程度上影響了下一個詞.但是HUAPA方法要比本文的方法復雜,它使用兩次注意力機制,重復了兩次,必定造成了空間和時間復雜度的增加,而且一般情況下,BiLSTM的訓練時間要比CNN要長,訓練的效率也差一些,再有BiGRU模型參數(shù)較BiLSTM更少,訓練起來比BiLSTM更簡單,且不容易過擬合.
綜上所述,GCA情感分類模型在一定程度上能夠有效的提取文本的全局和局部特征,并且通過引入注意力機制,獲取文本中的有效特征,能降低噪音特征干擾,從而進一步提高分類的準確率.
為了研究和證明加入用戶注意和產(chǎn)品注意對情感分類有更好的效果,本文還做了只考慮文本信息的研究.此研究中的模型將BiGRU換為了BiLSTM,并將該模型命名為BiLSTM-CNN(no UP)情感分類模型,該模型方法具體如下:
1)首先將文本輸入到Glove模型中訓練,把評論文本中的詞映射為對應的詞向量;
2)將詞向量輸入到BiLSTM層,得到隱藏層狀態(tài);
3)將隱藏層的狀態(tài)加入注意力機制得到賦予注意力權重的句子表示;
4)將句子表示輸入到CNN層,經(jīng)過CNN池化層下采樣得到隱藏層表示,對隱藏層狀態(tài)值求和得到文檔表示;
5)最后,通過softmax函數(shù)映射到情感分類的C個類別進行分類.
由文獻[26]實驗研究可知,無論是用GRU還是LSTM,其最后結果并不會有太大的差異,只是GRU參數(shù)更少一些,訓練起來比LSTM更簡單.但在數(shù)據(jù)集很大的情況下,LSTM的表達性能更好.所以將BiLSTM-CNN(no UP)情感分類模型的實驗結果與本文GCA模型的實驗結果進行對比,來進行分析.由表2的實驗結果顯示,BiLSTM-CNN(no UP)情感分類模型在IMDB、Yelp2013和Yelp2014三個數(shù)據(jù)集上的準確率分別為0.457,0.613和0.625,相比于本文的GCA模型,其準確率分別降低了5.2%,2.3%和3.0%,而均方根誤差也分別增加了12.9%,1.9%和3.6%,由此可見,加入用戶注意和產(chǎn)品注意要比只考慮文本信息的準確率要更高,均方根誤差要更小.
本文提出一種引入注意力機制的BiGRU-CNN文本情感分類模型-GCA情感分類模型,該模型結合BiGRU模型能夠充分提取文本上下文信息特征的優(yōu)勢和CNN模型具有提取局部特征的特點,引入注意力機制對評論文本進行情感分類.并且該模型分別提取用戶特征和產(chǎn)品特征,彌補了傳統(tǒng)方法只考慮文本信息的不足.將該模型應用于IMDB、yelp2013以及yelp2014三個數(shù)據(jù)集,并與多種基線方法進行對比,實驗結果表明,本文提出的模型在一定程度上提高了情感分類的準確性.