毛騰躍,鄭志鵬,鄭祿
(中南民族大學(xué) 計算機科學(xué)學(xué)院&湖北省制造企業(yè)智能管理工程技術(shù)研究中心,武漢 430074)
情感分析(Sentiment Analysis,SA)是自然語言處理(Natural Language Processing,NLP)領(lǐng)域的重要研究方向之一,其中針對文本信息的方面級情感分析(Aspect-Based Sentiment Analysis,ABSA)是更加細粒度子任務(wù),它不僅在學(xué)術(shù)界被廣泛關(guān)注,在工業(yè)界中也應(yīng)用廣泛,亞馬遜、淘寶等電商網(wǎng)站針對商品評論進行情感分析[1],可以為企業(yè)和用戶提供實時反饋,改善產(chǎn)品服務(wù)和用戶體驗.
在方面級情感分析任務(wù)中,用戶的評論往往會包含針對單個目標或多個目標的幾個不同方面,例如:“The food is so good and so popular that waiting can really be a nightmare.”中,“food”方面的情感極性是積極的,但是針對“service”方面的情感極性是消極的.ABSA的任務(wù)就是識別實體對象在特定方面的細粒度情感極性[2].
早期的方面情感分析主要基于人工構(gòu)建的情感詞典、語法規(guī)則等相關(guān)特征,再結(jié)合樸素貝葉斯(NBM)[3]、支持向量機(SVM)[4]等模型來訓(xùn)練分類器,進而得到特定方面的情感極性.近年來,隨著深度學(xué)習(xí)方法的廣泛應(yīng)用,ABSA任務(wù)目前大多采用的是諸如循環(huán)神經(jīng)網(wǎng)絡(luò)的相關(guān)模型;同時,由于注意力機制在文本分類上的顯著效果,越來越多的研究人員開始使用注意力機制來挖掘方面詞和上下文之間的關(guān)系[5].
目前有研究注意到,傳統(tǒng)的應(yīng)用于情感分析的注意力機制在訓(xùn)練時,對于出現(xiàn)頻率高的情感詞,注意力機制往往會傾向于給其分配較高的注意力權(quán)重,而對于出現(xiàn)頻率低的情感詞,注意力的權(quán)重分配不足[6].如表1所示,在列舉的3個訓(xùn)練句中,由于句中情感詞“small”往往以消極的情感極性出現(xiàn),因此注意力機制對其消極的情感表示給予了更多的關(guān)注,分配了更高的注意力權(quán)重值,甚至直接將該情感詞和負面情緒句子關(guān)聯(lián)起來.傳統(tǒng)注意力機制的這一特性,會導(dǎo)致對另外一個具有情感極性的情感詞“crowded”關(guān)注不足,盡管該單詞也具有消極的情感極性,但是訓(xùn)練過程中,由于其出現(xiàn)次數(shù)較少,注意力機制通常無法識別出來.因此,部分采用這種注意力機制的ABSA模型,就會錯誤預(yù)測示例中兩個測試句子的情感極性:在第一個測試句中,一些ABSA模型無法捕捉“crowded”涉及的負面情緒;雖然在第二個測試句中,注意機制關(guān)注到了“small”,但是它與給定的方面無關(guān),因此導(dǎo)致將方面“hotel”原本的積極情感極性錯誤預(yù)測為了消極.所以,本文認為目前的ABSA模型的注意力機制部分存在一定的改進空間.
表1 典型句子舉例Tab.1 Examples of sentences
傳統(tǒng)的結(jié)合注意力機制的ABSA模型進一步提升情感分類的效果有限.為了解決這一問題,本文使用改進后的自注意力機制,可以根據(jù)上一輪注意力信息指導(dǎo)下一輪注意力機制訓(xùn)練的過程.
方面級情感分析是一種細粒度的情感分類任務(wù),早期的方面級情感分析方法通常是基于詞匯和句法特征的傳統(tǒng)機器學(xué)習(xí)模型[7-9],這種模型的性能高度依賴于大量的人工標記的情感詞典的質(zhì)量.因此,近年來的研究提出了大量基于深度學(xué)習(xí)的情感分類方法,可分為以下5類:遞歸神經(jīng)網(wǎng)絡(luò)(Recursive Neural Network,RecNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)、基于注意力的RNN、卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN),以及記憶網(wǎng)絡(luò)(Memory Network)[10].
DONG等人[11]第一次提出在方面級情感分析任務(wù)上使用RecNN,RecNN通過自下而上的方式遞歸生成父表示,進而獲取短語的表示,最終得到整個句子的表示信息,該模型利用了句子的句法信息作為輔助模型來提高情感分類的效果.由于RNN模型在語言序列學(xué)習(xí)問題中展現(xiàn)出了顯著作用,所以目前許多ABSA的解決方案都源于RNN模型.TANG等人[12]為了解決LSTM忽略目標詞的問題,提出了Target-Dependent LSTM(TD-LSTM),在TD-LSTM的基礎(chǔ)上,提出了Target-Connection LSTM(TC-LSTM),進一步加強了target-word與句子中每個token的關(guān)聯(lián).注意力機制已經(jīng)成功應(yīng)用于很多自然語言處理的任務(wù),例如機器翻譯、問答、閱讀理解等.很多基于注意力的RNN模型也被用于方面級情感分析,使用注意力機制來強制執(zhí)行RNN模型關(guān)注文本序列的重要部分.WANG等人[13]提出了基于注意力機制的LSTM模型(ATAE-LSTM),將輸入的句子表示與方面詞結(jié)合,采用LSTM進行編碼獲取隱向量表示,然后與方面詞表示進行拼接,通過注意力機制對輸出進行處理,最終得到情感分類的結(jié)果.對于基于注意力的RNN方法,MA等人[14]考慮了給定方案及其內(nèi)容詞之間的交互,提出了Interactive Attention Network(IAN),使用兩個基于注意力機制的LSTM來交互地捕捉方面術(shù)語和上下文的聯(lián)系,分別計算注意力權(quán)重分數(shù),將單詞和上下文表示拼接起來作為句子的向量表示,計算情感分類的結(jié)果.TANG等人[15]為了解決RNN、LSTM等網(wǎng)絡(luò)記憶能力差的問題,首先基于ABSA的多跳注意力機制提出了深度記憶網(wǎng)絡(luò)(MemNet),它維護了一個外部的記憶單元用于存儲上一層的信息,而不是通過內(nèi)部的隱狀態(tài).CHEN等人[16]在記憶網(wǎng)絡(luò)的基礎(chǔ)上,結(jié)合循環(huán)的注意力機制,提出了RAM模型,為了提取長距離的情感信息,該模型采用GRU網(wǎng)絡(luò)對注意力進行多層的提取,將提取的多層注意力進行非線性組合得到目標方面的情感極性分類結(jié)果.
近期在方面級情感分類中表現(xiàn)較好的模型,大都使用了相應(yīng)的注意力機制,但是這些模型為了獲得給定方面在上下文句子中的重要性,其使用的注意力模型往往會存在關(guān)注高頻情感詞而忽略低頻情感詞的問題.本文為了解決傳統(tǒng)注意力機制存在的問題,使用漸進式的自監(jiān)督學(xué)習(xí)方法,自動挖掘語料庫中的注意力權(quán)重信息對注意力機制訓(xùn)練過程進行改進,指導(dǎo)ABSA模型的情感分類.
本文使用的ATAE-LSTM(+AS)網(wǎng)絡(luò)模型在ATAE-LSTM模型的基礎(chǔ)上,對其注意力機制的訓(xùn)練過程進行了改進,如圖1所示,分為輸入層、雙向LSTM層、注意力層和輸出層.對于一個給定的評論語 句x=(x1,x2,...,xN)和 給 定 的 方 面 詞w=(w1,w2,...,wT)[17],模型的目的是為了預(yù)測給定方面的情感極性.
圖1 網(wǎng)絡(luò)模型Fig.1 The network model
輸入層:對文本預(yù)處理之后,使用Glove詞嵌入,獲得每個詞的詞向量表示,然后將方面詞的詞向量與每個詞的詞向量進行拼接,作為模型的輸入表示.
雙向LSTM層:LSTM網(wǎng)絡(luò)是一種特殊的RNN,能夠?qū)W習(xí)到長期的依賴性.將文本詞和方面詞拼接后的詞向量作為雙向LSTM層的輸入表示,使模型可以從前往后和從后往前兩個方向?qū)斎脒M行編碼,提取文本的句子特征,得到單詞和整體文本的隱向量表示.本文采用的模型使用了雙向LSTM對句子進行編碼,LSTM模型由3個門組成,分別是輸入門、輸出門和遺忘門[18].具體的LSTM單元計算過程的如公式(1)~(6)所示:
其中,t表示時間,xt是時間t的輸入,ht是時間t的隱向量表示,*代表元素乘法,σ表示激活函數(shù),Wi,bi是輸入門的參數(shù),Wf,bf是遺忘門的參數(shù),Wo,bo是輸出門的參數(shù).ct-1和ct分別表示上一單元的狀態(tài)和當前單元的狀態(tài).
注意力層:本文的目標是改進注意力機制的訓(xùn)練過程,在模型注意力訓(xùn)練的過程中增加額外K輪迭代訓(xùn)練,生成更加準確的注意力權(quán)重,指導(dǎo)最終的情感分類過程.
輸出層:通過注意力層之后,經(jīng)過全連接層和softmax函數(shù)后,得到最終的情感分類結(jié)果.
在基于注意力機制的ABSA模型中,句子中的每一個上下文單詞,對一個給定方面的重要性程度主要依賴于其注意力權(quán)重.因此,具有最大注意力權(quán)重的上下文詞的情感極性對輸入句的情感預(yù)測結(jié)果影響最大.所以,如果在訓(xùn)練句中,ABSA模型的預(yù)測是正確的,應(yīng)該繼續(xù)關(guān)注該上下文的情感詞;反之,應(yīng)該盡量減少對于該情感詞的關(guān)注度,將其在下一輪訓(xùn)練中的預(yù)期注意力權(quán)重值設(shè)置為0.
如前所述,具有最大注意力權(quán)重的上下文詞通常是具有強烈情感極性的.它一般會在訓(xùn)練語料庫中頻繁出現(xiàn),因而在模型訓(xùn)練期間往往會被給予過度的關(guān)注,可能會導(dǎo)致對其他低頻詞,特別是那些具有情感極性的低頻情感詞的學(xué)習(xí)和訓(xùn)練不足.為了解決這個問題,一種較為直觀的方法就是在本輪訓(xùn)練時,先屏蔽掉前面具有最強情感極性的上下文單詞,使注意力模型在訓(xùn)練過程中,可以關(guān)注到具有情感極性的低頻單詞.
基于以上的分析,本文采用了一種漸進式的訓(xùn)練方法來自動挖掘當前訓(xùn)練句中的強情感極性的語境詞,在原有注意力訓(xùn)練的基礎(chǔ)上增加額外的K輪改進后的注意力迭代訓(xùn)練過程.首先使用初始的訓(xùn)練語料庫D進行注意力機制的訓(xùn)練,得到初始的模型注意力參數(shù)θ(0),然后繼續(xù)迭代訓(xùn)練,在每一次迭代中提取一個注意力權(quán)重值最高的情感詞,循環(huán)直到K輪注意力訓(xùn)練結(jié)束或者當前句子中已經(jīng)不存在對句子情感預(yù)測具有強烈影響的情感詞為止.在此過程中,使用兩個單詞集合sa(x)、sm(x)來分別記錄提取出的上下文單詞.sa(x)是由對句子x的情緒預(yù)測正確的情感詞組成的集合,希望在后續(xù)的模型訓(xùn)練中予以保留;sm(x)是由對x的情緒預(yù)測錯誤的情感詞組成的集合,在后續(xù)的訓(xùn)練中,會減少對這些情感詞的注意力權(quán)重.步驟1到步驟4是額外K輪注意力迭代訓(xùn)練的具體過程:
步驟1:使用前面輪次迭代產(chǎn)生的模型參數(shù)θ(k-1)來生成方面表示v(t),k∈[1,K],初始模型參數(shù)為θ(0).然后根據(jù)集合sa(x)和sm(x),將所有先前從x中提取的上下文單詞屏蔽,來創(chuàng)建一個新的句子x',每個被屏蔽的單詞被替換為一個特殊的標識“
步驟2:基于方面表示v(t)和單詞表示h(x'),利用前一輪的模型參數(shù)θ(k-1)來預(yù)測句子x'的情感,記為yp,代表基于當前模型參數(shù),預(yù)測得到的情感極性.其中單詞的注意力權(quán)重分布為α(x')={α(x'1),整體加權(quán)和為
步驟3:使用熵E(α(x')),來表示α(x')的方差,這有助于模型確定句子x'中的高頻情感詞是否存在,公式如下:
如果E(α(x'))小于閾值εα,本文認為當前句中存在對x'情感預(yù)測影響較大的情感詞.因此,將對句子情感預(yù)測結(jié)果影響較大的情感詞(記為x'm)提取出來,用于改善模型的訓(xùn)練.具體來說,根據(jù)預(yù)測的結(jié)果使用了兩種策略:(1)如果預(yù)測是正確的,本文希望繼續(xù)關(guān)注x'm,并且將其添加到集合sa(x);(2)如果預(yù)測是錯誤的,本文希望減少對于x'm的注意力權(quán)重,并且將其添加到集合sm(x).循環(huán)進行K輪注意力訓(xùn)練.
步驟4:在額外K輪訓(xùn)練之后,將x',t和y作為一個三元組,并將其與收集的集合組合成新的訓(xùn)練語料庫D(k),利用D(k)執(zhí)行最后一輪注意力訓(xùn)練.通過這種方式,可以讓模型自動挖掘出對情感預(yù)測具有強烈影響力的上下文單詞.
通過上述K輪的迭代,可以提取到所有訓(xùn)練實例中有影響力的上下文詞.如表2所示,在此示例中,迭代地提取出了“small”,“crowded”和“great”3個上下文詞.前兩個單詞包含在sa(x)中,而最后一個單詞包含在sm(x)中.最后,每個訓(xùn)練實例中提取的上下文單詞將被包含在D中,形成最終訓(xùn)練語料庫的信息,該信息將用于執(zhí)行最后一輪的注意力訓(xùn)練.
表2 挖掘情感詞句子舉例Tab.2 The example of mining emotional words
為了利用上下文詞來優(yōu)化針對ABSA模型的注意力機制的訓(xùn)練,本文使用了一種注意力優(yōu)化器其中α(*)和表示sa(x)∪sm(x)所引起的注意力分布.是兩者之間的歐氏距離損失,可用于消除之間的差異.
如前所述,本文希望在最終注意力訓(xùn)練期間,即第K輪迭代結(jié)束后,接著的一輪注意力訓(xùn)練時,同樣繼續(xù)關(guān)注sa(x)的上下文詞.為此,將句子的預(yù)期注意力權(quán)重設(shè)置為相同的值,即為.通過這種方式,之前提取出的單詞的注意力權(quán)重會被降低,后來提取的單詞的注意力權(quán)重會相應(yīng)增加,由此可以避免具有情感極性的高頻上下文詞的過度擬合,以及低頻情感詞在模型訓(xùn)練時被忽視的問題;另一方面,由于sm(x)中的單詞對x的情感預(yù)測具有誤導(dǎo)性的影響,因此減少它們的影響,直接將其預(yù)期的權(quán) 重 設(shè) 置 為0.以 表2中 句 子1為 例,“small”和“crowded”∈sa(x),所以被分配相同的預(yù)期注意力權(quán)重,即為0.5,“great”∈sm(x)的預(yù)期權(quán)重為0.
最后,使用添加了sa(x)和sm(x)中詞的訓(xùn)練語料庫Ds進行最后一輪注意力訓(xùn)練,如公式(8)、(9)所示:
公式(8)表示常規(guī)訓(xùn)練目標,公式(9)表示最終在Ds語料庫上的訓(xùn)練目標.其中D是訓(xùn)練語料庫,d(y)是y的一維向量,d(x,t;θ)是模型對(x,t)預(yù)測的情感極性分布,γ是平衡常規(guī)損失函數(shù)和正則化術(shù)語之間差異的參數(shù).除了利用監(jiān)督信息以外,將這類信息添加到模型中,更容易解決梯度消失的問題.
為了驗證本文ATAE-LSTM(+AS)模型的效果,實驗使用了SemEval 2014 Task4的兩組公開數(shù)據(jù)集——Laptop和Restaurant領(lǐng)域的兩個數(shù)據(jù)集,以及包含Twitter用戶對多個方面項評論信息的Twitter數(shù)據(jù)集.3個公開數(shù)據(jù)集是目前方面級情感分析任務(wù)使用最多的數(shù)據(jù)集,由上下文語句、方面項、方面所對應(yīng)的情感極性組成.本文使用的數(shù)據(jù)集中,方面情感極性包含積極、消極、中立3個方向,統(tǒng)計結(jié)果如表3所示.
表3 基準數(shù)據(jù)集統(tǒng)計表Tab.3 The statistics of benchmark dataset
為了準確評估不同的方面級情感分析模型的性能,對本文采用的注意力機制的改進效果進行評估,本文采用情感分析領(lǐng)域常用的準確率(Accuracy)和Macro-F1值作為評價指標,公式如下:
其中,TP表示正類情感極性標簽被模型正確預(yù)測為正的樣本數(shù)量;TN表示負類情感極性標簽被模型正確預(yù)測為負的樣本數(shù)量;FP表示負類情感極性標簽被模型錯誤預(yù)測為正的樣本數(shù)量;FN表示正類情感極性標簽被模型錯誤預(yù)測為負的樣本數(shù)量,N表示總的樣本數(shù)量.
在本文的實驗中,采用了預(yù)訓(xùn)練的詞向量對模型的輸入進行處理,詞向量的維度設(shè)置為300.對于詞匯外的單詞,在其均勻分布的[-0.25,0.25]范圍內(nèi)進行了詞嵌入的隨機采樣.此外,在[-0.01,0.01]的范圍內(nèi)均勻地初始化了其他模型參數(shù).根據(jù)實驗經(jīng)驗數(shù)據(jù),將最大迭代次數(shù)K設(shè)置為5.γ在Laptop數(shù)據(jù)集上設(shè)置為0.1,在Restaurant數(shù)據(jù)集上設(shè)置為0.5,在Twitter數(shù)據(jù)集上設(shè)置為0.1.所有的超參數(shù)都在注意力訓(xùn)練過程中進行20%左右的隨機上調(diào).使用Adam作為優(yōu)化器,learning rate設(shè)置為0.001.
本文對基于改進自注意力機制的ABSA模型(ATAE-LSTM(+AS))和 以下 的baseline方法 在SemEval 2014 Task4的兩組公開數(shù)據(jù)集和Twitter數(shù)據(jù)集上進行了比較,以驗證該方法的有效性.具體對比模型如下:
(1)SVM:Kiritchenko等將SVM與詞典的方法相結(jié)合,在SemEval比賽中對方面情感分類任務(wù)上取得了優(yōu)于之前方法的效果;
(2)LSTM:對句子中的token進行embedding之后作為模型的輸入,經(jīng)過多輪計算隱層和輸入之后得到句子的隱向量表示,然后對這個向量進行softmax計算情感分類的概率;
(3)TD-LSTM:使用了兩個LSTM,分為前向和后向,分別對目標詞的左右兩邊的信息進行建模,將得到的隱狀態(tài)融合之后得到整體句子的情感表示,用于情感分類;
(4)ATAE-LSTM:進一步利用了方面詞嵌入的信息,將方面嵌入和上下文詞嵌入共同組合作為模型的輸入,使用LSTM模型計算上下文特征,結(jié)合注意力機制對隱藏層進行處理,得到針對方面的情感分類結(jié)果;
(5)ATAE-LSTM(+AS):本文提出的情感分類模型,在ATAE-LSTM的基礎(chǔ)上,使用了改進后的自注意力機制,對注意力層進行額外的K+1輪訓(xùn)練,能更好地對上下文分配注意力權(quán)重,指導(dǎo)模型進行情感分類.
表4提供了上述5個模型的所有實驗結(jié)果,為了證明本文方法的有效性,在3個基準數(shù)據(jù)集上重新實現(xiàn)了相應(yīng)的對比模型,采用準確率和Macro-F1度量模型的效果.其中,SVM、LSTM和ATAE-LSTM都與原始論文中的實驗結(jié)果相當.這些結(jié)果表明,重新實現(xiàn)的基線模型是具有可信度的.
表4 各模型實驗結(jié)果對比Tab.4 Experimental results comparison of different models
以上方法中,SVM的方法在Laptop數(shù)據(jù)集的表現(xiàn)與其他LSTM模型相當,在Restaurant數(shù)據(jù)集中性能相對還優(yōu)于其他傳統(tǒng)LSTM方法,說明傳統(tǒng)機器學(xué)習(xí)與特征工程的方法依然具有應(yīng)用價值,但是由于其需要大量的人工標記的情感詞典,所以不適合大規(guī)模工業(yè)級數(shù)據(jù)的分析任務(wù).在Laptop和Restaurant數(shù)據(jù)集上,ATAE-LSTM(+AS)都取得了較好的效果,由于本文對注意力機制的訓(xùn)練過程進行了改進,增加了額外的多輪訓(xùn)練,因此與原始的ATAE-LSTM模型相比,模型注意力參數(shù)更加合理,在Laptop、Restaurant和Twitter數(shù)據(jù)集上的準確率效果提升了1.93%、2.04%、0.93%.這一結(jié)果表明,本文采用的改進的注意力機制可以很好地與傳統(tǒng)的基于注意力機制的方面級情感分析模型融合,提升了情感分類的準確率.
本文研究了自監(jiān)督的注意力機制算法,提出了用于方面級情感分類的改進的自注意力模型ATAE-LSTM(+AS),克服了當前ABSA模型中注意力機制的缺陷,如過度關(guān)注具有情感極性的高頻情感詞、對低頻的情感詞缺乏足夠關(guān)注度,導(dǎo)致情感詞的注意力權(quán)重分配不合理,影響了情感分類模型的性能.因此,本文采用了一種改進的注意力機制,將它應(yīng)用于傳統(tǒng)ATAE-LSTM模型中,在3種公開基準數(shù)據(jù)集上的實驗結(jié)果表明:本文的方法有效提高了原始的方面情感分類模型的性能.