衡紅軍,楊鼎誠
(中國民航大學 計算機科學與技術學院,天津 300300)
方面級情感分析任務作為自然語言處理中重要的方向之一,引起了眾多學者的廣泛關注。而該任務能夠做精做強的關鍵點就在于計算出哪些上下文與方面詞最相關[1]。早期的學者專家們相信注意力機制[2]能夠更好地關注到句子中的重要部分,因此不斷尋求一個能夠將注意力更好地融合進模型的方式,但這些方法缺少句法約束,獲取到的特征有限,且難以處理多方面詞樣本。隨著圖神經網絡[3]的火熱,相關工作者為探究詞匯之間的句法關系,嘗試將句法依存樹所包含的句法信息融合到模型之中,這就需要用到圖神經網絡強大的計算能力,從而獲取更好地文本表示,但現(xiàn)有方法缺少詞法信息,當存在一些出現(xiàn)頻率較低的關鍵詞時,模型針對其學習不足,容易導致模型分類錯誤。知識圖譜作為結構化的知識庫,其中所蘊含的單詞與單詞間的詞義關聯(lián)恰恰能滿足這一需求。因此將知識圖譜中獲取的詞法信息與句法依存樹中獲取的句法信息相結合來進行文本的編碼能更容易獲取到文本所表達的準確情感,增強模型的魯棒性。
因此,本文提出一種詞法句法相結合的方法,利用句法依存樹和知識圖譜中的相關信息對句子進行建模。主要工作如下:
(1)模型利用BERT預訓練模型對句子進行編碼,獲取帶有上下文信息的初步文本表示;
(2)模型利用重構句法依存樹中的句法信息和知識圖譜中的詞法信息對文本表示進行增強,并利用加權模塊對方面詞相關的上下文進行加權;
(3)模型將融合句法信息的文本表示與融合詞法信息的文本表示結合起來,得到融合詞法句法信息的最終文本表示,并以此獲取句子的情感極性。
(4)經過在3個公開的數(shù)據(jù)集上進行的模型效果比較實驗,我們發(fā)現(xiàn)本文所提模型在方面級情感分析任務中表現(xiàn)出了可行性和有效性。
注意力機制通過文本特征度量其重要性,廣泛應用于自然語言處理任務中。Ma等[4]提出了交互式注意力網絡(interactive attention networks,IAN),利用注意力機制讓方面詞和上下文兩種計算結果相互鏈接,從而得到相互關聯(lián)的文本表示,獲得更緊密的特征關聯(lián)。Peng等[5]將注意力機制與循環(huán)神經網絡(recurrent neural network,RNN)相結合,通過多層的注意力計算獲得更加有效的句子的文本表示。Huang等[6]提出一種交叉注意力網絡模型(attention over attention neural network,AOA),該模型通過分別對方面詞和上下文進行特征提取,能夠同時將二者重要的部分提取出來,并通過計算獲取到更好的文本表示。Song等[7]提出(attentional encoder network,AEN),旨在利用多頭注意力解決長距離依賴問題。
基于注意力的方法缺乏遠距離單詞依賴與句法約束,因此研究者開始利用句法依存樹和圖神經網絡建模。Sun等[8]注意到了在視覺任務中大熱的圖卷積神經網絡(graph convolution network,GCN),他們利用句法依存樹生成圖結構數(shù)據(jù),并利用該數(shù)據(jù)進行圖卷積計算,獲取到融入句義的方面詞表示,從而得到了準確的結果。Zhang等[9]提出句法樹卷積模型(convolution over a dependency tree,CDT),該模型則重點運用了注意力機制,巧妙地將注意力與圖卷積網絡相結合,利用圖卷積得到的結果作為注意力得分來區(qū)分上下文重要程度。Zhao等[10]也將視線落在了注意力機制與圖網絡的融合上,并提出了圖卷積情感依存網絡(sentiment dependencies with graph convolutional networks,SDGCN),該網絡創(chuàng)新性地使用了位置信息對上下文進行加權,隨后對加權后的文本表示做圖卷積計算以獲得更準確更相關的上下文信息。Wang等[11]想到了句法依存樹中關系過分冗余,容易影響極性判斷,因此他們嘗試進行剪枝重構,從而只對方面詞關聯(lián)的信息予以保留,提出了關系圖注意力網絡(relatio-nal graph attention network,RGAT),得到了不錯的分類結果。
給定一個句子S={w1,w2,…,wa1,…,wam,…,wn},其中A={wa1,wa2,…,wam} 為句中的方面詞,n表示句子S的長度,m表示方面詞A的長度。該問題需要研究者簡建立起一個模型,這個模型可以通過提取句子特征的方式將句子S中所表達的針對方面詞A的情感極性提取出來,將該句所表達的情感準確地分析出來。本文中實驗主要針對三分類任務進行,即需要分類的極性包括:積極、中性、消極。
本文所提出的模型主要由三部分組成:文本表示層、編碼層和解碼層。同時,該模型編碼層又可分為:句法信息編碼部分和詞法信息編碼兩部分,整體模型結構如圖1所示。

圖1 模型整體結構
模型首先使用BERT[12]預訓練模型做詞嵌入,從而將句子S的特征表示V計算出來。首先使用特殊標記[CLS]和[SEP]與原始句子構建句子序列X=[CLS]+S+[SEP]+A+[SEP]作為BERT的輸入,在BERT的輸入中[CLS]和[SEP]分別出現(xiàn)在句首和句尾,表示單句的起始和結束。隨后,將該序列X送入BERT預訓練模型并獲取模型最終生成的隱藏向量。最終,句子S被向量V={v1,v2,…,va1,…,vam,…,vn} 表示。
在編碼層,模型將文本表示層生成的文本表示向量V分別應用于句法依存部分和詞法信息部分進行編碼操作,以獲取方面詞和上下文的關聯(lián)。
2.4.1 句法信息編碼


圖2 一個剪枝并重構句法依存樹的例子(句中的方面詞是stuff)
在完成依存樹重構之后,將這些依賴關系映射為低維向量表示,再將其送入關系圖注意力網絡(R-GAT)中,以此來獲取融入句法依存關系的句子特征表示。R-GAT網絡計算方式如式(1)~式(4)所示
(1)
(2)
(3)
(4)


2.4.2 詞法信息編碼
在該部分,模型使用senticnet6[13]作為外部知識庫。senticnet是一個開源的專用于情感分析的知識圖譜,提供了一組語義、情感、極性關聯(lián)的100 000多個自然語言概念。在該知識圖譜中,每個單詞擁有一個[-1,1]的情感分數(shù),同時,還擁有5個密切相關的單詞和2個關聯(lián)的概念原語。作為一個新興的知識圖譜,senticnet在增強文本表示方面取得了不錯的成績。
在編碼過程中,首先利用句子的原始句法依存關系構建適用于圖神經網絡的鄰接矩陣A∈Rn×n。在構建領接矩陣時,以往的工作[8-10]大部分使用spacy工具作為依存分析工具。但spacy獲取到的依存樹較為簡單,只包含基本的句法依存關系,容易忽略一些深層的,方面詞關聯(lián)的依存信息。因此本文使用Stanford corenlp tookit作為句法依存分析工具,以保證模型獲取到的句法信息是完整的。對該領接矩陣構建方式如式(5)、式(6)所示
(5)
weighti,j=score(wi)+score(wj)
(6)
其中,通過在情感詞典senticnet中查詢來獲取單詞wi的情感分數(shù)score(wi)。此外,因為負數(shù)會導致模型計算出現(xiàn)偏差,在這里將每個查詢得到的score(·)數(shù)值加1來去掉這種偏差;為了讓與方面詞相關聯(lián)的節(jié)點擁有更大的權重,在方面詞關聯(lián)的矩陣位置額外加1;此外Ai,j=Aj,i。
這樣,就得到了圖神經網絡需要用到的、擁有自環(huán)的無向語義圖。此外,在我們分析一句話的情感極性時,通常會關注其中單詞所處的位置,因此將單詞所處的位置信息融入文本表示中也會使文本表示更加準確。同時,與方面詞鄰近的幾個單詞往往更會表達對方面詞的情感,因此此處利用單詞的位置對它的文本表示進行加權從而獲得具有位置信息的文本表示vp,具體計算方式如式(7)所示
(7)
式中:vi表示句子中第i個單詞wi的向量表示,τ表示方面詞的位置,N表示該句文本長度。
在完成上述過程后,將節(jié)點的向量表示與生成的語義圖送入圖卷積神經網絡(GCN)中。在這里模型使用4層圖卷積網絡對該語義圖進行編碼,每個節(jié)點在更新過程中將匯集鄰接節(jié)點的特征信息,并與自身信息進行融合,從而獲取融合外部詞義知識與節(jié)點關聯(lián)的語義信息。每個單詞在GCN網絡的第l層中文本表示的計算方式如式(8)~式(10)所示
(8)
(9)
(10)


在對向量在H做掩碼操作之后,得到的該向量Hmask已經獲取到了深層次的詞法和句法信息,這已經能夠讓模型充分理解句子并抽取出與方面詞最為關聯(lián)的情感表達詞,進而分析出針對該方面詞的情感極性。最后,我們需要讓模型理解該向量的組成方式,因此需要把這種抽取后的信息融合到原始文本表示中,將最有效的信息抽取出來,其計算方式如式(11)~式(13)所示
(11)
(12)
(13)
其中,方面詞與單詞wt的相關系數(shù)使用βt表示上,αt表示方面詞在整個句子中的重要系數(shù),最終得到的向量K={k0,k1,…kn} 即為詞法信息編碼后的整個句子的文本表示。
最后,利用句法信息編碼層以及詞法信息編碼層所得到的特征表示D和K相互拼接獲得模型最終分辨情感極性的依據(jù)O=D‖K。
最終,初始文本表示通過句法信息編碼和詞法信息編碼分別獲得了融合了句法信息的特征表示D以及融合了語義信息的特征表示K。之后通過全連接層對該文本表示做特征整理,即可將情感傾向性抽取出來,之后在經過softmax歸一化層將最大的分類結果提取出來就得到了最終的情感極性P
P=softmax(wpO+bp)
(14)
本文模型使用的損失函數(shù)為交叉熵損失
(15)

實驗采用了SemEval 2014任務4中的LAPTOP14數(shù)據(jù)集、RESTAURANT14數(shù)據(jù)集和ACL組織發(fā)布的TWITTER評論數(shù)據(jù)集,使用本文方法完成模型的訓練和測試,從而檢驗模型在方面級情感分析任務中的表現(xiàn)。數(shù)據(jù)集中包含了多條帶有主觀情感的句子,同時數(shù)據(jù)集還針對每個句子提供了其中的方面詞和正確的情感傾向,包括積極、中性、消極3種。所用到的數(shù)據(jù)集中的數(shù)據(jù)分布見表1。

表1 數(shù)據(jù)集分布
在本文實驗中,我們評價模型的分類時結果使用準確率(accuracy)和F1值(macro-F1)衡量
(16)
(17)
(18)
(19)
其中,TP、FP、TN、FN分別表示真正例、假正例、真反例、假反例的樣本數(shù)量。
本文中的所有實驗均在同一臺服務器上運行,該服務器硬件配置為Intel i9-9900k CPU,RTX2080Ti 11G GPU,64 G內存,操作系統(tǒng)為Ubuntu18.04。同時本文實驗使用python3.8.0版本以及pytorch1.9.1版本的軟件環(huán)境。
在模型的計算過程中,我們首先使用google提供預訓練好的bert-base-uncased模型,將我們輸入到模型的原始文本序列X轉化為初步的文本表示。同時模型使用學習率0.000 05進行梯度下降計算,并利用Adam優(yōu)化器優(yōu)化模型表現(xiàn),并通過0.2的dropout丟棄過擬合數(shù)據(jù)。同時為了讓模型計算的結果更為準確,關系圖注意力網絡的層數(shù)使用6層和圖卷積神經網絡的層數(shù)使用4層,同時兩個網絡的都是用768維度的向量作為輸出維度,以此來讓后續(xù)計算更便捷。在對句法樹進行剪枝時,將關聯(lián)的跳數(shù)為4及以下的依存關系保留下來。模型單次訓練的batchsize為16,單次驗證使用的batchsize為48。
IAN[4]:讓兩個注意力機制相交互的方法還從未有人提出,并且擁有著不錯的計算結果。
RAM(recurrent attention network on memory)[5]:將記憶網絡融合進多層次注意力機制中,讓模型能夠注意到遠距離的單詞信息。
AOA[6]:既關注到了句子中的重要部分同時也關注到了方面詞中的重要部分。
AS-GCN(aspect specific graph convolutional network)[9]:將注意力機制與圖卷積神經網絡相結合來獲取上下文中用于表達方面詞情感的重要單詞,同時使用兩個子模型ASGCN-DG與ASGCN-DT對GCN中使用有向圖或無向圖對文本編碼是否存在差異進行了深入探究。
SD-GCN[10]:關注到方面詞對分析上下文的重要性,利用注意力機制將他們融合起來,并使用GCN進一步抽取特征。
R-GAT[11]:提出句法樹的剪枝方法并利用關系圖注意力機制編碼。
TD-BERT[14]:使用BERT編碼,并著眼于利用方面詞表示做情感分類。
SA-GCN-BERT[15]:使用一種選擇注意力去尋找方面詞表示中的重要部分。
AEN-BERT(attentional encoder network)[16]:利用普通注意力機制和多頭注意力機制相疊加,得到了不錯的效果。
SD-GCN-BERT:模型結構同SD-GCN,編碼時使用BERT代替LSTM。
R-GAT-BERT:模型結構同R-GAT,編碼時使用BERT代替LSTM。
Dual-GCN-BERT(dual graph convolutional networks)[17]:利用自注意力機制通過自我學習構建包含語義信息的圖結構數(shù)據(jù),利用損失函數(shù)來修正該語義信息數(shù)據(jù),并將該語義信息和句法依存樹中的句法信息相結合。
最終的實驗結果見表2。

表2 實驗結果(最佳效果加粗顯示)
由表2數(shù)據(jù)可知,以注意力機制為主的模型從語義結構建模,利用上下文與方面詞的交互關注到了方面詞關聯(lián)的部分語義信息,但缺少句法信息的約束,從而缺少全局的句子信息,導致錯判某些單詞對方面詞的影響?;诰浞ㄒ来鏄涞哪P碗m考慮到了句法信息對整個句子的影響,但直接使用原有的依存樹會導致網絡學習到很多無用信息,導致最終的文本表示較差。ASGCN考慮到GCN結果的復雜性,利用方面詞表示作為注意力權重,使結果有了顯著提升。同時,使用BERT作為文本編碼結果相較于LSTM有了顯著提升。SD-GCN則利用到了位置信息去獲取方面詞關聯(lián)上下文,但樹結構學習到很多無用信息,干擾依然較大。R-GAT雖對句法依存樹進行了基于方面詞的重構,但仍缺少外部知識對詞義做出額外解釋。Dual-GCN利用自注意力機制抽取語義信息的方法未能獲取到深層次的詞義信息,而是只獲取到句子中單詞的關聯(lián),這種關聯(lián)可能是句法中不存在的,從而對分類結果產生干擾。
本文模型在3個數(shù)據(jù)集上相較于基線模型結果都有所提升,原因在于用到了重構的句法依存樹更好地獲取句法信息,同時利用了外部知識構建了融合詞法信息的圖矩陣,通過圖卷積網絡獲取到了深層語義信息,并在對圖卷積網絡的輸出結果進行了篩選以減少無用信息的融合。該結果驗證了句法信息和詞義信息對模型辨別關鍵依賴單詞的重要性,同時也改善了模型在遇到出現(xiàn)次數(shù)較少的單詞時辨別其情感傾向的能力。
但本文模型在laptop數(shù)據(jù)集中的表現(xiàn)要略差于Dual-GCN模型,其原因可能在于本文模型在生成最終文本表示僅僅將兩向量做拼接,而忽略了其間的差異性,致使錯誤的文本表示影響了另一方正確的文本表示;而該模型則利用損失函數(shù)修正了兩部分的差異性。
3.4.1 詞法與句法的影響
本小節(jié)針對模型中句法依存部分和詞法信息部分的有效性做出了實驗。詞法句法消融實驗結果如圖3所示。

圖3 詞法句法消融實驗結果
圖中僅詞法表示僅使用詞法信息編碼;僅句法表示僅使用句法信息編碼。結果表明,將句法信息與詞法信息相結合,能夠更好捕獲方面詞相關聯(lián)的情緒信息。
3.4.2 加權模塊的影響
本小節(jié)針對詞法信息部分中位置權重模塊和掩碼加權模塊進行了消融實驗,以驗證該模塊的有效性,加權模塊消融實驗結果如圖4所示。

圖4 加權模塊消融實驗結果
從上述實驗結果中可以發(fā)現(xiàn),利用位置信息對文本表示進行加權能夠對絕大多數(shù)句子中方面詞相關的情感詞做出更好的約束,從而獲取更準確的情感極性;只保留GCN輸出中方面詞部分并作為注意力權重分配給原始文本表示,能夠將上下文中冗余的信息丟棄,并利用原始的文本表示作為分類依據(jù),從而得到更好的分類結果。
3.4.3 GCN層數(shù)影響
本小節(jié)對圖卷積網絡層數(shù)做出了測試,以探究編碼層數(shù)對編碼結果的影響。GCN層數(shù)影響實驗結果如圖5所示。

圖5 GCN層數(shù)對比實驗結果
從圖中所示結果可以得知,GCN在層數(shù)為4時能夠使模型分類結果最佳。這是因為使用的層數(shù)較少時,GCN的特征抽取結果過于淺顯,而所獲取到的淺層次信息無法準確判斷復雜句式中的情感極性;相反在使用過多層的GCN時,GCN在計算過程中游走路線重復,導致某些節(jié)點特征被聚合了多次,從而引起模型判斷錯誤的情況,致使最終結果不佳,此外還會導致產生梯度爆炸和梯度消失等問題。
為了將詞法句法信息結合起來提升方面級情感分析任務的準確率,本文引入知識圖譜,提出一種詞法句法相結合的圖神經網絡模型。模型利用重構的句法樹獲取文本句法信息,利用知識圖譜加權矩陣獲取文本詞法信息,最終將兩重信息融合并進行情感分類。實驗指標在3個公開數(shù)據(jù)集上獲得了一定的提升,也驗證了詞法句法信息對方面級情感分類任務的重要性。
雖然本文模型取得了不錯的效果,但仍存在GCN輸出結果冗余、重構依存樹無法完全覆蓋方面詞關聯(lián)上下文的問題,未來將從這些方面入手,進一步提升模型分類的能力。