楊春霞,宋金劍,姚思誠
(1. 南京信息工程大學 自動化學院,江蘇 南京 210044;2. 江蘇省大數據分析技術重點實驗室,江蘇 南京 210044;3. 江蘇省大氣環境與裝備技術協同創新中心,江蘇 南京 210044)
近年來,互聯網上評論呈爆發式增長,越來越多的研究人員投入到情感研究當中。情感分析作為自然語言處理(Natural Language Processing,NLP)的一項重要任務,它分析用戶對產品或事件的評論,并提供用戶關于產品或事件的情感。
相對篇章級及句子級情感分析預測文本整體情感極性來說,方面級情感分析(Aspect-Based Sentiment Analysis,ABSA)旨在預測用戶評論中具體方面或目標的情感極性,其關鍵在于提取方面詞與上下文間的關系。現如今雖然一些基于依存樹的模型在方面級情感分析中取得了不錯的效果[1-2],但為了進一步提高模型性能,一些研究對依存樹進行了修剪。Wang等[3]提出了一種修剪方法,該方法以方面詞為Root,且僅保留原始樹中與方面詞直接相關的節點,其余節點使用n:con(1)表示方面詞與間接相關節點間的距離來代替,并取得了不錯的效果,這初步表明修剪依存樹對提高分類效果有一定幫助。但這樣的修剪方式難免會將部分有用信息刪除,因此如何實現依存樹中信息保留與刪除間的平衡是依存樹修剪的難點。
依存樹具有類似于圖形的結構,Zhang等[4]在利用圖卷積網絡(Graph Convolutional Networks,GCN)[5]提取依存樹中結構信息時,取得了不錯的效果。但現有的效果最好的GCN只能捕捉圖形中豐富的鄰域信息[6],而無法獲取全局信息。因此,如何讓GCN在獲取局部信息的同時又能捕捉全局信息是現階段研究的一個熱點問題。
基于以上問題,本文提出一種基于多頭自注意力的圖卷積網絡(Multi-Head Self-Attention-based Graph Convolutional Networks,MSGCNs)模型。
本文的主要貢獻如下:
第一,考慮到現有的依存樹修剪方法存在刪除原始樹上部分重要信息的情況,本文提出在依存樹上使用多頭注意力機制[7],讓模型自動學習如何有選擇地關注對分類任務有用的相關子結構,將原始依存樹轉變為完全連接的邊加權圖,實現了原始依存樹中信息保留與刪除間的平衡。
第二,本文在GCN中引入緊密連接[8],改變了原始GCN只能獲取局部信息的現狀,進而實現了對依存樹中全局信息的提取。
第三,本文在3個公開數據集上進行實驗,并與相關模型進行對比,實驗結果表明,本文提出的模型性能較相關模型均有所提升。
方面級情感分析是情感分析中的細粒度分類任務,旨在識別句子中特定方面或目標的情感極性。早期的方法主要集中于機器學習[9-10],這些方法的性能很大程度上取決于特征標注,而特征標注需要花費大量的人力和物力。近年來,神經網絡因為不需要人為地構造特征,可直接對含有豐富語義信息的低維詞向量進行編碼而逐漸成為情感分類的主流。
依存樹能夠捕捉特殊句式中的句法信息,能為句法依賴信息的傳播提供最有效的路徑。Yang等[1]利用依存樹上的相對距離計算方面詞與上下文間的注意力權重,提高了情感分類效果;Phan等[2]在進行方面詞提取時,融入句法依存信息,使得提取效果有了顯著提升。雖然這些模型通過引入句法信息取得了不錯的效果,但為了進一步提高模型性能,一些研究對依存樹進行了修剪。Tai等[11]將依存樹與LSTM相結合,生成了一種樹結構的LSTM,可用于學習單詞與短語間的依賴信息;Miwa和Bansal[12]將原始依存樹修剪成僅包含以兩個實體的最近公共祖先(The Lowest Common Ancestor,LCA)為根的子樹,但這種修剪方式過于激進,使得某些關鍵信息(如否定關系)被遺漏;為了彌補這一點,Zhang等[13]提出了一種以依賴路徑為中心的修剪方法,該方法將LCA子樹中距離依賴路徑為K的詞加以保留,其他部分去除,初步實現了保留相關信息(如否定和連接)和盡可能多地去除無關內容間的平衡。盡管這些修剪方式在一定程度上提高了分類效果,但還是丟失了依存樹中原有的部分重要信息。基于此,本文在依存樹上使用多頭自注意力以端到端的形式學習所有邊的權重,將原始依存樹轉變為完全連接的邊加權圖,充分地保留和加強了句中單詞間的聯系。
GCN擅于捕獲圖結構上的信息,但研究表明,深層GCN只能獲取豐富的鄰域信息,無法提取全局信息[6]。為此,Xu等[14]嘗試在GCN上添加額外循環層,并取得了一定的效果。然而,這種方法只適用于層數小于6層的GCN,因此捕捉到的全局信息也十分有限。Huang等[8]在進行圖像處理任務時,為了從多層CNN網絡中獲取圖像深層信息,提出了一種新的連接方式——緊密連接,該方法連接簡單且有利于深層網絡間信息的交換,受其啟發,本文嘗試在圖卷積網絡中引入緊密連接并結合依存樹的修剪方法來進一步提高GCN捕獲信息的能力。
本文提出的MSGCNs模型的結構如圖1所示,主要由以下四部分組成。

圖1 MSGCNs模型結構
(1)詞嵌入: 將數據集中的樣本轉化為詞向量的形式,并根據相應的依存樹生成鄰接矩陣。
(2)緊密連接層: 以前一層的輸出作為輸入,并通過GCN和緊密連接的組合來獲取圖結構中的局部信息和全局信息。
(3)注意力引導層: 以第一個緊密連接層的輸出作為輸入,并通過多頭自注意力機制,將原始依存樹轉變為N個完全連接的邊加權圖,以便第二個緊密連接層從修剪后的依存樹中獲取更多的結構信息。
(4)線性組合層: 以N個緊密連接層的輸出作為輸入,經過該層篩選出更具代表性的句子表示。

(1)


(2)
其中,W(l)是權重矩陣,b(l)是偏差向量,ρ是激活函數RELU,Aij是鄰接矩陣中表示節點i與節點j之間關系的值,其取值范圍只能是{0,1}。


圖2 緊密連接(子層數為L)
(3)
另外,每個緊密連接由L個子層組成,每個子層的隱藏維度dhidden由層數L和輸入特征維度d決定,即dhidden=d/L。例如,當層數為3,輸入維度為300時,每個子層的隱藏維度就是dhidden=d/L=300/3=100。最后,將每個子層的輸出連接起來,以形成新的表示,且其維度與輸入特征維度d相同。顯而易見,該方法提高了參數效率。
由于緊密連接的加入,GCN的計算公式應當加以修改。考慮到本文在依存樹修剪前也使用了緊密連接,因此第一個緊密連接層中的GCN計算修改如式(4)所示。
(4)其中,W(l)∈dhidden×d(l),d(l)=d+dhidden×(l-1)。經過依存樹修剪,鄰接矩陣A發生了變化,所以第二個緊密連接層中的GCN計算修改如式(5)所示。
其中,Q、K、V分別表示查詢向量、鍵向量和值向量;Wq∈d×d、Wk∈d×d和Wv∈d×d是權重矩陣,bi是偏差向量;H表示第一個緊密連接層的輸出表示第t個頭的注意力引導矩陣;式子用于縮放QKT,因為過大的內積會導致softmax的結果非0即1。圖3是一個原始鄰接矩陣轉變為多個注意力引導矩陣的示例。從圖中可以看出,原始鄰接矩陣只包含各個節點間的連接信息,而注意力引導矩陣能夠包含各節點間的作用關系。通過兩個矩陣的比較,可以發現有些間接關聯的節點間可能包含更多的有用信息。因此,讓模型自動學習如何有選擇地關注對分類任務有用的相關子結構是十分有必要的。

圖3 注意力引導層
2.4 線性組合層由于MSGCNs模型使用的注意力與常規的多頭自注意力存在一定的區別,因此需要一個線性組合層來對N個不同緊密連接層的輸出表示進行過濾篩選,從而獲取最具表現力的句子表示hcomb,計算方法如式(10)所示。hcomb=Wcombhout+bcomb(10)其中,Wcomb∈(d×N)×d是權重矩陣,bcomb是偏差向量;hout表示N個緊密連接層輸出的串聯連接,即hout=[h(1);…;h(N)]∈d×N。2.5 最大池化層評論中部分方面詞由多個單詞組成,但每個單詞的重要性并不相同,因此本文在方面詞隱藏表示上使用最大池化函數,以提取最具代表性的方面詞表示ha,具體如式(11)所示。ha=f(hei)(11)其中,hei為hcomb中第i個方面詞的隱藏表示,f()是最大池化函數(d×N→d×1)。2.6 模型訓練將方面詞表示ha輸入softmax函數中,計算其在不同情感類別中的概率。然后通過不斷減小最小交叉熵損失函數的值來調節模型參數,損失函數如式(12)所示。
(12)

本文在SemEval 2014數據集和Twitter數據集上進行模型性能評估,其中SemEval2014數據集由Restaurant和Laptop兩個領域的用戶評論組成,數據樣本的情感極性分為積極(positive)、消極(negative)、中性(neutral)三種。表1展示了三個數據集在訓練集和測試集中每個情感類別的分布情況。

表1 Restaurant、Laptop和Twitter數據集信息
本文實驗環境如表2所示。

表2 實驗環境
MSGCNs模型的相關參數設置如表3所示,本文選用GloVe預訓練的詞向量進行詞嵌入表示,向量維度為300,方面詞嵌入、詞性嵌入和位置嵌入維度均為30,訓練過程使用隨機梯度下降(SGD)來進行參數優化,為防止過擬合,訓練過程中使用input_dropout和gcn_dropout。

表3 實驗參數設置
為了驗證模型的有效性,本文采用準確率(Accuracy,Acc)和F1作為評價指標。具體如式(13)~式(16)所示。
其中,TP表示正確預測的正樣本數目;FP表示錯誤預測的負樣本數目;FN表示錯誤預測的正樣本數目;TN表示正確預測的負樣本數目;P表示精確率;R表示召回率。
(1)Feature-based SVM[16]: 一種融合了N-gram特征、解析特征和情感詞典特征的支持向量機模型,在方面級情感分類中仍然保持著一定的優勢。
(2)AEN-Glove[17]: 使用基于多頭自注意力的編碼器分別對上下文和方面詞進行建模,并再次利用多頭注意力機制將兩者融合的情感分類模型。
(3)LCF-Glove-CDW[18]: 在AEN模型的基礎上添加了上下文特征動態加權層,從而能夠提取局部上下文重要信息的情感分類模型。
(4)ASP-GCN[18]: 利用多層GCN來捕捉依存樹上句法信息和依存信息,并進行情感分類的模型。
(5)LSTM+SynATT[19]: 將方面表示構造成方面詞嵌入的加權和,并利用注意力機制對句子的句法結構進行建模。
(6)R-GAT[3]: 通過對原始依存樹進行重構和修剪,生成一種面向方面詞的依存樹,并利用圖注意力來編碼新的依存樹用于情感預測。由于本文使用Stanford解析器來構建依存樹,因此選取Stanford解析器下的R-GAT實驗結果進行對比。
從表4中可以看出,在Restaurant數據集和Laptop數據集上,本文模型的準確率分別比基線模型中表現最好的LCF-Glove-CDW和R-GAT提升了0.9%和0.24%;在Twitter數據集上,本文模型準確率又比基線模型中表現最好的AEN-Glove和R-GAT提升了0.64%。因此,本文模型性能優于基線模型。

表4 不同模型分類結果
AEN-Glove和LCF-Glove-CDW是基于多頭注意力的模型,相對于其他基線模型而言效果較好,這表明多頭注意力能更好地提取方面詞與上下文間的關系,進而也說明本文模型使用多頭注意力將原始鄰接矩陣轉變為注意力引導矩陣是合理的。
ASP-GCN模型、LSTM+SynATT模型以及R-GAT模型考慮了評論中的句法信息,并且在一定的程度上優于其他模型,其中ASP-GCN模型的性能優于LSTM+SynATT模型,這表明GCN比LSTM更擅于提取依存樹中的句法信息。本文模型同樣使用了GCN,實驗效果在ASP-GCN模型的基礎上又有了很大提升,這說明在GCN中引入緊密連接對提高分類效果是有一定幫助的。另外,本文模型實驗效果好于R-GAT,說明本文依存樹修剪方法在一定程度上優于R-GAT。
為了進一步驗證修剪依存樹和引入緊密連接的有效性,以Twitter數據集為例,對本文模型進行消融實驗,實驗結果如表5所示。其中,GCNs表示在原始依存樹上使用多層GCN進行情感分類;GCNs+DC表示在GCNs基礎上引入緊密連接;MT+GCNs表示在修剪過的依存樹上使用多層GCN完成分類任務。
由表5可知,GCNs+DC的準確率和F1分別比GCNs提高了1.76%和2.38%,這說明緊密連接的引入能有效促進GCN對全局信息的提取,進而提高情感分類效果;MT+GCNs在準確率和F1上分別比GCNs提高了0.62%和0.97%,這表明本文的修剪策略對提高分類效果是有一定幫助的;MSGCNs在GCNs+DC的基礎上,將準確率和F1又分別提升了0.8%和0.38%,這表明同時考慮依存樹的修剪和緊密連接的引入,能進一步提高分類效果。因此,本文模型中的每個模塊都是不可或缺的,都是對模型的整體效果有直接作用的。

表5 消融實驗結果
由于緊密連接的引入,使得分類效果提升最為明顯,因此有必要對緊密連接的子層數L進行研究。由于三個數據集中的樣本存在一定的差異性(如Restaurant數據集中的句子比較符合語法規范,而Laptop數據集和Twitter數據集中的樣本一般短小且有些不符合語法規范),因此有必要針對各個數據集進行實驗,以找出每個數據集上的最優參數值L。以Restaurant數據集為例,進行一系列的實驗。在實驗中,其他參數設置保持不變,L的取值應是緊密連接層輸入維度(dhidden=300)的約數,否則無法實現子層的劃分;此外,設置過于龐大的L值也會出現過擬合的情況,因此子層數L的取值范圍設為{2,3,4,5,6}(2)當L=1時,緊密連接不會對GCN產生任何的影響。
實驗結果如表6和圖4所示。表6顯示的是子層數L在各個數據集上的最優參數值;圖4 展示的是Restaurant數據集的分類效果隨子層數L所變化的折線圖。其中,每個折線圖中的黑實線表示當第一層的子層數取某一固定值時,分類效果隨第二層子層數變化而變化的折線;同理,灰實線表示第二層子層數固定時,分類效果隨第一層子層數的變化而改變的折線。從圖4可以發現,分類效果大體上隨著L的增大而逐步上升,這初步表明取較大的L值對提高分類效果有一定的幫助。此外,從表6發現,盡管最優參數L并不都是取最大值,但至少某一層的參數設置為5或6,這也進一步說明取相對較大的L能一定程度地促進情感分類效果。

表6 不同數據集上的最優子層數



圖4 Restaurant數據集實驗結果


圖4 (續)
為了提高方面級情感分類的分類效果,本文提出了MSGCNs模型。首先,使用多頭自注意力機制將原始依存樹轉變為完全連接的邊加權圖,然后利用融合了緊密連接的GCN進行局部和全局信息的提取,最后通過池化層篩選出最具代表性的方面詞表示。通過相關實驗證明,本文模型性能較對比模型均有明顯提升;本文的依存樹修剪策略和緊密連接的引入均能有效提高模型精度,且兩者結合使用效果最佳。
由于本文模型只在公開的英文數據集上進行實驗,而沒有涉及中文數據集和個人數據集,所以在下一步的工作中將考慮如何在中文數據集和個人爬取數據集上使用本文模型并加以改進。