彭祝亮,劉博文,范程岸,王 杰,肖 明,,廖澤恩
(1.廣東工業大學 自動化學院 廣東省物聯網信息技術重點實驗室,廣州 510006; 2.廣州大學 廣東省現代視聽信息工程技術研究中心,廣州 510006)
在網絡上發表意見和表達情感的現象已經非常普遍。對社交網絡文本信息中蘊涵的觀點和情感進行分析,挖掘其情感傾向,有助于更高效正確地作出決策[1-2]。基于方面的情感分析(Aspect-Based Sentiment Analysis,ABSA)是目前挖掘社交網絡文本信息的重要方法,可進行細粒度的情感分析,比普通情感分析方法更優越。
近年來,基于深度學習的方法在自然語言處理領域具有許多成功案例[3]。文獻[4]提出了基于特定方面的關系分類模型,文獻[5]提出了基于特定目標的句子對建模模型,文獻[6]提出了基于方面情感分析的深度分層網絡模型。在訓練過程中,這些方法可以提取出特定方面的特征信息,但在通常情況下每次僅能處理一個特定方面。
然而,基于方面情感分析需要對句子中不同方面的情感極性進行判斷,不僅需要利用句子的上下文信息,還需要利用特定方面的情感信息[7]。例如,句子“great food but the service was dreadful”,在“food”方面是積極情感,而在“service”方面則是消極情感。因此,在同一個句子中,針對不同的方面會有不同的情感極性,甚至是相反的情感極性。此外,如果一個句子包含多個不同的方面,現有方法需要多次重復輸入,在結合了注意力機制的模型中,由于不同的方面共用一套注意力參數,因此在情感極性模糊或含有隱含情感等情況下,難以對特定方面的隱藏情感特征進行有效關注。
針對上述問題,本文提出一種基于雙向長短記憶(Bidirectional Long Short-Term Memory,BLSTM)和方面注意力模塊的方面情感分析方法。利用雙向LSTM對輸入樣本進行編碼,然后使用多個方面注意力模塊進行解碼。每次輸入句子時,對句子中不同方面同時進行情感極性分類,以解決傳統方法每次只能處理一個特定方面的問題。此外,每個方面注意力模塊各自具有對應的方面信息,并且相互獨立地進行注意力參數的學習和調整,使模型在情感極性表達不清晰的情況下能充分挖掘特定方面的隱藏特征。
機器學習方法已廣泛應用于基于方面的情感分析任務[8-9],但需要對文本進行大規模預處理,并實施復雜的特征工程。而深度學習方法也能夠應用于文本分類等多種自然語言處理任務,效果優于機器學習方法,并且極大地減輕了模型對人工規則與特征工程的依賴,因此成為解決方面情感分析問題的主流方法。
深度學習與方面信息或注意力機制結合后,能夠在方面情感分類任務上取得更好的分類性能,并且無需依賴句法分析等外部知識。如文獻[10]提出一種基于門控機制的卷積神經網絡GCAE模型,應用方面信息,對不同方面進行特定向量化處理,并將方面信息與文本上下文的關聯程度作為文本的特征表示,從而提升了處理速度與分類效果。文獻[11]使用一種基于多注意力機制的卷積神經網絡來解決方面情感分析問題,該網絡結合了3種注意力機制,使模型能通過多種渠道獲取文本有關特定方面的情感特征,判別出對應的情感極性。此外,文獻[12]提出了一種基于注意力機制的長短記憶(Long Short-Term Memory,LSTM)網絡模型,在輸入層和LSTM隱藏層上加入了方面信息,并在LSTM隱藏層上使用注意力機制以高度關注有關特定方面的特征信息,從而在方面情感分析任務中得到較好的情感分類效果。然而,這些模型每次只能處理一個方面,并且不同方面共用一套注意力參數,因此不能有效提取特定方面的隱藏特征。
傳統方法普遍使用LSTM網絡來提取文本的上下文信息,因為LSTM網絡是對循環神經網絡模型(Recurrent Neural Network,RNN)的改進[13],能解決RNN模型的長依賴問題,但LSTM網絡只能保存序列前面的信息,方向較為單一。BLSTM網絡[14]是LSTM網絡的進一步優化,不僅可以保存序列前面的信息,也可以獲取序列后面的信息,從整體上能夠有效提取文本的上下文信息。圖1展示了一個沿著時間展開的BLSTM網絡,其中每個時間步t的輸入為xt。在BLSTM網絡中,把前向LSTM和后向LSTM的隱藏層輸出拼接起來作為網絡的最后輸出ht。

圖1 BLSTM網絡結構Fig.1 Structure of bidirectional LSTM network
對于普通情感分析,文獻[15]建立了一種RNN-Capsule網絡模型,該模型在每個情感分類上都使用不同且獨立的Capsule網絡,目的是使每個Capsule網絡都能捕捉到該分類的重要特征,同時進行情感分類判斷。該文獻提出的Capsule網絡類型與文獻[20]中的Capsule網絡結構不同。
受文獻[12,15]啟發,本文建立一種基于BLSTM和方面注意力模塊的網絡模型用于方面情感分析任務。相比文獻[15],本文模型并未直接進行分類,而是同時處理模型中多個不同方面,通過使用多個方面注意力模塊,使句子中的不同方面能同時輸入模型中。另外,與文獻[12]模型相比,本文模型的每個方面注意力模塊具有獨立的方面信息和注意力參數,能夠提取特定方面的隱藏特征,從而對不同方面的情感極性進行更有效的識別。
本文提出的BLSTM-AAM網絡模型整體框架是一個編碼解碼結構,如圖2所示。編碼部分由輸入層和BLSTM層組成,解碼部分由多個方面注意力模塊組成。該情感分類方法的處理步驟如下:
1)輸入層:對輸入樣本進行去停用詞、去特殊字符等預處理,然后進行詞嵌入,得到每個詞的詞向量表示。
2)BLSTM層:將輸入層輸出的詞向量作為BLSTM網絡的序列化輸入,使模型分別從2個方向上提取文本的語義特征,獲得每個時間步上的隱藏層狀態和句子的整體表示。
3)方面注意力模塊:將BLSTM層輸出的隱藏層狀態與方面信息相結合,并進行注意力操作,獲取有關特定方面的文本表示。
4)輸出層:有關特定方面的文本表示經過全連接層和softmax函數后,得到最終分類結果。

圖2 BLSTM-AAM模型結構Fig.2 Structure of the BLSTM-AAM model


(1)
圖2中的解碼部分由多個方面注意力模塊組成,其中模塊數量N與數據集的方面總個數相同,即一個方面注意力模塊對應一個特定的方面。當輸入句子包含有多個方面時,編碼得到的輸出H將被分別送入對應的方面注意力模塊中。在每個方面注意力模塊中各有一個對應的方面信息,即方面向量va,i。在訓練時每個方面注意力模塊各自獨立地執行注意力計算,因此方面注意力模塊會提取有關該方面的隱藏特征。方面注意力模塊結構如圖3所示,具體可分為3個部分:注意力部分,概率部分與重構部分。

圖3 方面注意力模塊結構Fig.3 Structure of aspect attention module
2.3.1 注意力部分
注意力部分主要對輸入矩陣H進行注意力操作,使模型在特征提取時,能特別關注特定方面的特征信息,得到有關特定方面的文本表示。首先將方面向量va,i與輸入矩陣H中的每個隱狀態進行拼接,再進行注意力計算,最后通過加權平均,獲得有關特定方面的文本表示vc,i。計算方法如下:
et,i=tanh(Wa,i[ht;va,i]+ba,i)
(2)
(3)
(4)

2.3.2 概率部分
概率部分主要計算每個分類的概率。將有關特定方面的文本表示vc,i送入全連接層,通過softmax函數輸出待分類樣本在每個情感分類上的概率,如下式所示:
pi=softmax(Wp,ivc,i+bp,i)
(5)

2.3.3 重構部分
重構部分主要對有關特定方面的文本表示vc,i進行重構,目的是構造出包含文本全局信息、特定方面信息和情感分類信息的文本表示,該文本表示可以看作是句子整體表示vs在特定方面的某一情感分類下的新表示。具體方法是使用概率部分生成的分類概率對vc,i進行重構,產生多個重構文本表示ri=[ri,1,ri,2,…,ri,C],計算過程如下:
ri,j=pi,jvc,i
(6)

BLSTM-AMM網絡模型的訓練是在Ubuntu16.04系統下進行的,使用的CPU為Intel Core i7-9700k 3.6 GHz,內存大小為16 GB,GPU為NVIDIA GeForce GTX1080Ti,編程語言為Python3.6,開發工具為Pycharm,深度學習框架為Pytorch0.4.0。本文使用反向傳播算法來訓練模型,并通過最小化式(7)所示的損失函數來優化模型。該損失函數由2個折頁損失函數組成,第1個折頁損失函數J(θ)的目的是在每個方面注意力模塊輸出中,最大化實際情感類別的概率,同時最小化其他類別的概率。第2個折頁損失函數U(θ)的目的是在每個方面注意力模塊輸出中,使實際情感類別的重構文本表示與句子的整體表示vs相似,同時使其他重構文本表示與句子的整體表示vs不相似。計算方法如下:
L(θ)=J(θ)+U(θ)
(7)
(8)
(9)
其中,k為第k個樣本,yk,i為第k個樣本在第i個方面的實際情感類別。
為了驗證本文的網絡模型,采用SemEval2014任務4、SemEval2015任務12和SemEval2016任務5數據中的restaurants領域數據集進行實驗。將這三部分數據整理合并后稱為Restaurant-Merge數據集。該數據集分為訓練集和測試集,訓練集有3 611個樣本,測試集有1 630個樣本。數據中每個句子涉及一個或多個不同方面,方面情感分類任務需要對不同的方面判斷其情感極性。在Restaurant-Merge數據集中,共有5個方面和3種情感極性。實驗數據統計如表1所示。

表1 實驗數據統計Table 1 Statistics of experimental data
在實驗中,詞向量采用word2vec技術[16]進行初始化,其中每個詞向量為300維。對于未登錄詞和方面向量,采用均勻分布U(-0.25,0.25)進行隨機初始化。訓練過程采用文獻[17]提出的Adam更新規則。此外為了防止過擬合,在訓練過程中使用了dropout機制。其他參數如表2所示。

表2 參數設置Table 2 Parameter setting
將本文提出的BLSTM-AAM模型和經典情感分析模型在Restaurant-Merge數據集上進行對比實驗,以驗證該方法的有效性。對比模型具體如下:
1)SVM:文獻[8]提出的基于情感特征的SVM模型,在方面情感分析任務上的分類效果優于之前提出的方法。
2)LSTM:基于文獻[18]提出的LSTM網絡模型,可以保留句中詞語的時序關系,獲取詞語間一定的語法和語義信息。
3)Bi-LSTM:文獻[19]提出的BLSTM網絡模型,能同時捕捉詞語的前后時序關系,獲得詞語間的前后依賴關系。
4)AE-LSTM:文獻[12]提出的加入了方面信息的LSTM網絡模型,在訓練過程中針對特定方面進行學習和調參。
5)ATAE-LSTM:文獻[12]提出的融合了方面信息和注意力機制的LSTM網絡模型,在訓練過程中高度關注特定方面,能有效識別情感極性。
6)BLSTM-AAM:本文提出的網絡模型,能對多個方面同時進行情感分類,并充分提取特定方面的隱藏特征。
將6個網絡模型在Restaurant-Merge數據集上分別進行二分類和三分類對比實驗,驗證本文方法的有效性。實驗中采用精確率、查全率和F1作為實驗指標。實驗結果如表3和表4所示。

表3 不同模型在數據集上的二分類結果Table 3 Binary classification results of differentmodels on the dataset %

表4 含有不同方面的典型句子舉例Table 4 Examples of sentences with different aspects
由表3結果可知,沒有加入任何特征的LSTM模型,在數據集上積極與消極的平均F1值比基于特征的SVM模型提升了1.82%,說明深度學習方法在特征提取和學習方面比傳統機器學習方法更有優勢。對比LSTM模型和Bi-LSTM模型可以看出,在精確率相差不大的情況下,Bi-LSTM模型在消極分類下的查全率比LSTM模型提升了3.19個百分點,說明雙向循環神經網絡比單向循環神經網絡更能捕捉消極情感的信息。對比LSTM、AE-LSTM和ATAE-LSTM這3個模型可得,加入方面信息或使用注意力機制,能有效判斷不同方面的情感極性,因為模型在訓練過程中能高度關注特定方面的特征。最后,對比本文提出的BLSTM-AAM模型和ATAE-LSTM模型可以看出,BLSTM-AAM模型的積極與消極分類F1值比后者分別提升了0.75個與2.24個百分點,這表明使用多個方面注意力模塊能充分提取特定方面的隱藏特征,從而提升情感分類效果,驗證了本文模型的有效性。
在實驗中,本文截取了幾個含有不同方面的典型句子,分析LSTM、Bi-LSTM、AE-LSTM、ATAE-LSTM和BLSTM-AAM這5個模型的分類結果。分類結果如表4所示。由表4分類結果可知,句子1中不同方面的情感極性相同,5種模型對此都能進行正確分類。句子2和句子3中不同方面的情感極性不同,基礎模型LSTM和Bi-LSTM不能對此進行正確分類,而AE-LSTM、ATAE-LSTM和BLSTM-AAM這3個模型能很好地識別出不同方面的情感。這是因為基礎模型在同一個句子中不能分別關注不同方面的特征,使不同方面出現相同的情感極性,導致錯誤的結果。而加入方面信息或注意力機制的模型能夠分別關注不同方面的特征,從而得到正確的結果。
為了在方面情感分析任務中進一步比較本文的BLSTM-AAM模型和其他網絡模型的分類效果,下文實驗加入Restaurant-Merge數據集中的中性情感樣本,進行三分類對比實驗。其中,中性情感樣本通常是由情感極性表達不清晰的句子組成。實驗結果如表5所示。

表5 不同模型在數據集上的三分類結果Table 5 Three-way classification results of differentmodels on the dataset %
由表5可知,Bi-LSTM模型的消極與中性分類F1值比LSTM模型分別提升了3.29%和5.08%,這表示除了消極情感,雙向循環神經網絡還能更準確地捕捉中性情感的信息。對比Bi-LSTM、AE-LSTM和ATAE-LSTM這3個模型可以得出,在消極分類效果相差不多的情況下,加入方面信息或使用注意力機制能明顯改善中性分類效果,使F1值分別提升了5.38%和6.25%。最后,本文提出的BLSTM-AAM模型的三分類F1值比ATAE-LSTM模型分別提升了1.45%、2.37%和4.68%,中性分類效果同樣得到了明顯改善。這表明本文提出的方法能有效地處理具有情感極性模糊與表達不清晰等特征的句子。
本文提出了一種結合BLSTM網絡與方面注意力模塊的情感分類方法,建立BLSTM-AAM模型,使用多個方面注意力模塊同時對不同方面進行訓練,進行情感分類,解決了傳統方法每次只能處理一個方面的問題。此外,每個方面注意力模塊具有自己的方面信息,相互獨立地進行注意力參數的學習與調整,使模型在情感極性模糊的情況下仍能有效地提取特定方面的隱含情感特征。實驗結果驗證了本文方法的有效性。未來研究將結合語義理解與語法知識,以進一步提升情感分類效果。