楊春霞,姚思誠,宋金劍
(1.南京信息工程大學自動化學院,江蘇 南京 210044;2.江蘇省大數(shù)據(jù)分析技術重點實驗室,江蘇 南京 210044;3.江蘇省大氣環(huán)境與裝備技術協(xié)同創(chuàng)新中心,江蘇 南京 210044)
互聯(lián)網(wǎng)方便了用戶發(fā)表自己對事件、產品的看法與評價,這些文本語料為情感分析提供了數(shù)據(jù)基礎[1,2]。與篇章級情感分析相比,方面級情感分析任務ABSA(Aspect-Based Sentiment Analysis)旨在識別給定目標實體的方面以及對每個方面表達的情感進行判斷,屬于細粒度情感分析,也被稱為基于特征的意見挖掘[3]。本文主要進行方面級情感判斷,例如:“Great food but the service was dreadful”,在這里“food”或“service”都可以是方面詞,如選定“food”作為方面詞,它的意見詞就是“great”,情感極性是積極的。
方面級情感分析分為文本表示與特征提取兩部分。文本表示通常采用word2vec[4]將單詞映射成向量,特征提取主要使用LSTM(Long Short-Term Memory)等序列結構模型。隨著預訓練模型的發(fā)展,以BERT(Bidirectional Encoder Representations from Transformer)[5]為代表的預訓練模型越來越受到重視。BERT是一種在大型文本語料庫上訓練得到的通用語言理解模型。Jawahar等[6]通過10個句子級的探測任務證明了BERT在中高層可以學習到句法特征與語義特征。這意味著將方面級情感分析作為BERT的下游任務是可行的。
方面級情感分析數(shù)據(jù)集一般取自大眾評論,表述偏口語,語法結構簡單,很多樣本中同時有多個方面詞與多個意見詞,模型可能錯誤地將與目標方面詞無關的意見詞作為判斷情感極性的線索,而真正相關的意見詞總是比不相關的意見詞與目標方面詞的距離更近。盡管序列結構的模型在自然語言處理各類任務上都有了很大的進展,但無法有效利用這種結構信息,而基于圖神經(jīng)網(wǎng)絡的模型能在詞共現(xiàn)圖中捕獲這種特殊的結構特征,且有更好的推理能力[7]。為此本文提出了BCGN(BERT Co- occurrence Gated graph neural Network)模型,主要貢獻如下:(1)提出了一種新的意見詞捕捉策略,改善了多方面詞、多意見詞混淆的問題;(2)將自注意力模型應用在圖神經(jīng)網(wǎng)絡上,相比傳統(tǒng)注意力模型能更有效地捕捉并融合每個節(jié)點多個特征空間的信息;(3)結合BERT預訓練模型,在3個方面級情感分析數(shù)據(jù)集上進行實驗并與主流模型進行比較,結果表明本文提出的模型在性能上優(yōu)于主流模型。
早期方面級情感分析主要基于統(tǒng)計與規(guī)則的方法,例如使用WordNet建立詞與詞的聯(lián)系,采用情感詞典和規(guī)則處理情感分析任務。Ding等[8]提出了一種基于詞典的整體方法,利用預設的詞典和自然語言表達的語言習慣來處理方面級情感分析問題,模型性能優(yōu)于之前的詞典模型。
隨著詞嵌入的發(fā)展,文本表示逐漸從獨熱表示(one-hot representation)轉變?yōu)榉植际奖硎?distribution representation),意思相近的詞在映射成向量后有著較高的相似度,一定程度上解決了獨熱表示語義鴻溝與維度爆炸的問題,使用深度學習挖掘語義,并將方面級情感分析看成一個分類任務成了主流方法。Tang等[9]提出了基于LSTM的TC-LSTM(Target-Connection Long Short-Term Memory)模型與TD-LSTM(Target-dependent Long Short-Term Memory)模型,構建了上下文與方面詞的聯(lián)系,相較于標準的LSTM有更好的效果。Fan等[10]提出了一種新的多粒度注意力網(wǎng)絡MGAN(Multi-Grained Attention Network),使用細粒度的注意力機制捕捉方面詞與上下文之間的單詞級交互關系,增強了上下文與方面詞的聯(lián)系。
在引入了BERT預訓練模型后分類準確率有了更大的提升,Song等[11]將上下文與方面詞作為句子對輸入BERT,通過實驗驗證了BERT在方面級情感分析任務上的有效性。
也有研究人員對圖結構的文本展開研究,Yao等[12]將整個語料庫建模為異構圖并通過圖卷積網(wǎng)絡學習單詞和文檔嵌入,文檔與單詞之間通過TF-IDF作為邊的權重,單詞與單詞之間的關聯(lián)權重基于全局詞共現(xiàn)。這種結構的圖有助于模型在半監(jiān)督任務中學到幾類不同的文檔間差異,在文本分類任務上取得了較好的結果。陳俊杰等[7]將原始文本處理成詞共現(xiàn)圖與文本序列,詞共現(xiàn)圖上采用圖卷積獲得節(jié)點特征,文本序列輸入雙向LSTM獲得隱層表示,最后將2部分拼接,有效地利用了結構信息。Liang等[13]提出了一種新的端到端ABSA多任務學習的依存句法知識增強交互體系結構,能夠充分利用句法知識。Huang等[14]提出了一種目標相關圖注意力網(wǎng)絡TD-GAT(Target-Dependent Graph ATtention network)用于方面級情感分類,明確地利用了句法圖中詞與詞之間的依賴關系,相比序列模型有更好的效果。
本模型主要由4部分組成:BERT預訓練模型、詞共現(xiàn)圖、門控圖神經(jīng)網(wǎng)絡GGNN(Gated Graph Neural Network)及自注意力網(wǎng)絡。網(wǎng)絡結構如圖1所示。
Figure 1 Diagram of BCGN model圖1 BCGN模型圖
(1)BERT預訓練模型:輸入序列文本,輸出單詞的節(jié)點信息向量h0。
(2)詞共現(xiàn)圖:根據(jù)詞與詞同時出現(xiàn)在一個窗口的次數(shù)構建圖,作為門控層的鄰接矩陣A。
(3)門控圖神經(jīng)網(wǎng)絡:根據(jù)詞共現(xiàn)圖更新節(jié)點信息,從而捕捉特定方面詞的情感,輸出更新后的節(jié)點信息ht+1,t∈[0,K-1]用于區(qū)分不同層次的節(jié)點信息向量,圖1中K表示執(zhí)行的次數(shù)。
(4)自注意力網(wǎng)絡:對更新后的節(jié)點信息ht+1進行自注意力計算,進一步捕捉全局特征信息。
本文使用BERTbase對方面詞與上下文交互建模,具體流程如圖2所示。
Figure 2 Pretraining model of BERT圖2 BERT預訓練模型
圖2中的T代表輸入的文本,[CLS]與[SEP]為BERT中的標記符。[CLS]可以作為整個句子的語義表示,因此通常用于分類任務;當下游任務輸入的是句子對時,需要在2個句子間加入[SEP]分隔句子[5]。所以,本文模型在輸入BERT預訓練模型前將每條樣本預處理成“x=[CLS]+上下文+[SEP]+方面詞”的形式。C代表[CLS]經(jīng)過嵌入后的分類向量,S代表[SEP]經(jīng)過嵌入后的分隔向量,E代表經(jīng)過BERT詞嵌入得到的文本表示,之后通過Transformer層[15]提取上下文信息,得到包含上下文與方面詞交互注意力的節(jié)點信息H,如式(1)所示:
H=BERT(x)
(1)
詞共現(xiàn)圖的特點是能夠快速且有效地表示文本結構信息,在增大窗口或加深圖神經(jīng)層數(shù)后也能捕捉遠距離的單詞關系。具體可以表示為G=(V,ε),V表示一個數(shù)據(jù)樣本中所有不重復的單詞集合,ε反映了2個單詞之間的內在聯(lián)系,這種聯(lián)系是無向的。權重值取決于單詞與單詞出現(xiàn)在一個固定大小滑動窗口的次數(shù)。鄰接矩陣A的構建如式(2)所示:
(2)
其中,*W表示2個單詞出現(xiàn)在同一個窗口中的次數(shù),i和j表示來自同一個樣本的不同單詞。
在處理文本時考慮去除包括“the”“was”在內的停用詞,以增強單詞連接的有效性。圖3是以數(shù)據(jù)集Restaurant中的一個樣本“Great food but the service was dreadful”為例構建的詞共現(xiàn)圖(窗口大小為3)。
Figure 3 Example of word co-occurrence graph construction圖3 詞共現(xiàn)圖構建示例
可以看到,在這個例子中有2個方面詞和2個情感極性不同的意見詞,且每個相關意見詞都在對應方面詞的附近,滿足“就近原則”。如圖3中的“food”與“great”直接相連,第1層的門控圖神經(jīng)網(wǎng)絡就能將“great”的語義信息融入“food”,而“dreadful”即使能在第2層門控圖神經(jīng)網(wǎng)絡中融入“food”,但其權重也遠低于“great”的。
門控圖神經(jīng)網(wǎng)絡[16]是一種基于空間域GRU的模型,它將鄰居節(jié)點信息作為輸入,自身節(jié)點信息作為隱層狀態(tài)。這里采用2層門控圖神經(jīng)網(wǎng)絡使模型能夠融合更多高階鄰居信息。
每個節(jié)點進入門控神經(jīng)網(wǎng)絡后根據(jù)鄰接關系融合相鄰節(jié)點信息,從而更新自身節(jié)點表示。具體計算如式(3)~式(7)所示:
at+1=AhtWa
(3)
zt+1=σ(Wzat+1+Uzht+bz)
(4)
rt+1=σ(Wrat+1+Urht+br)
(5)
h~t+1=tanh(What+1+Uh(rt+1⊙ht)+bh)
(6)
ht+1=h~t+1⊙zt+1+ht⊙(1-zt+1)
(7)
其中,at+1代表t+1層中根據(jù)詞共現(xiàn)圖融合的節(jié)點隱層向量,ht代表BERT中輸出的節(jié)點信息向量,Wα代表對應的可訓練的權重矩陣。式(4)和式(5)中rt+1與zt+1代表t+1層的重置門向量與更新門向量,σ(·)代表sigmoid函數(shù),Wz和Uz代表重置門中的權重矩陣,bz代表重置門中的偏置向量,Wr和Ur代表更新門中的權重矩陣,br代表更新門中的偏置向量。這2個門是門控圖神經(jīng)網(wǎng)絡的核心,決定每個節(jié)點是否要接受鄰居節(jié)點的信息。在經(jīng)過足夠的訓練后,這2個門能夠識別一個詞是否是相關意見詞,是否在情感極性分類中起到了關鍵作用。本文的模型正是通過這個機制對方面詞附近的意見詞信息進行融合,強化局部信息,改善意見詞混淆問題,從而得到更準確的節(jié)點表示。式(6)中通過更新門選擇性更新ht,得到準更新節(jié)點h~t+1,其中,⊙代表對應元素相乘,Wh和Uh代表對應的權重矩陣,bh代表對應的偏置向量。最終將h~t+1選擇性重置,得到更新后的節(jié)點信息ht+1。
門控圖神經(jīng)網(wǎng)絡根據(jù)詞共現(xiàn)圖融合節(jié)點信息后,輸出到自注意力層。自注意力層通過計算相似度的方式獲得節(jié)點與節(jié)點之間的注意力,且能夠捕捉不連續(xù)的、長距離依賴的語義信息。另一方面自注意力[15]可以通過多個注意力頭學習到節(jié)點不同子空間的相關信息,以進一步融合全局信息,使得特征更平滑,計算公式如式(8)~式(11)所示:
(8)
(9)
(10)
Φ={φ1,φ2,…,φn}=concat(head1,…,headm)WO
(11)
本文模型在池化時僅提取目標方面詞對應的節(jié)點信息Φasp送入softmax函數(shù),損失函數(shù)采用帶正則的交叉熵損失函數(shù),如式(12)和式(13)所示:
(12)
(13)
本文在SemEval-2014任務4的2個數(shù)據(jù)集[17]與Twitter數(shù)據(jù)集[18]上評測本文所提模型的性能,并在REST15[19]、REST16[20]上驗證本文所提模型的通用性。數(shù)據(jù)集相關信息如表1所示。
感情上的事,誰能說得清楚?風影開始看著紅琴笑,他什么也不說,只是瞅著她笑,有點兒像佛拈花微笑。這種笑意味深長,是憐憫她?是鄙夷她?是睥睨她?是譏諷她?抑或是善意地勸導她,開悟她?
Table 1 Statistical information of datasets
本文選取3類模型作為基線模型:(1)使用RNN與CNN的深度學習模型TNET-LF;(2)使用句法依存信息的模型CDT、TD-GAT和DREGCN;(3)基于BERT的模型BERT-SPC和BERT-AEN。
TNET-LF:該模型采用CNN層提取來自雙向RNN層的詞表示特征。在這2個層之間添加了一個組件來生成句子特定目標的單詞表示,同時在RNN層還保留了原始的上下文信息[21]。
CDT:該模型使用雙向LSTM對句子的依存樹進行編碼,再用圖卷積網(wǎng)絡對嵌入信息進行增強,最后輸出到非線性層進行分類[22]。
TD-GAT:該模型使用依賴關系圖直接從目標方面的句法上下文傳播情感特征,并使用該特征進行分類[14]。
DREGCN:該模型采用了端到端ABSA多任務學習的依存句法知識來增強交互體系結構。利用設計良好的依賴關系嵌入圖卷積網(wǎng)絡來充分利用句法知識[13]。
BERT-SPC:該模型將方面級情感分析看成句子對任務輸入BERT預訓練模型,最后提取[CLS]標記對應的分類特征向量送入非線性層分類[11]。
BERT-AEN:該模型使用基于注意力的編碼器對上下文和方面詞進行建模,并引入了標簽正則化,最后通過非線性層進行分類[11]。
4.3.1 實驗環(huán)境
本文實驗基于PyTorch深度學習框架,具體訓練環(huán)境配置如表2所示。
Table 2 Experimental environment
為了提高模型的收斂速度,本文模型對BERT層與圖神經(jīng)網(wǎng)絡層設置了不同的學習率,具體的超參數(shù)設置如表3所示。
Table 3 Parameters setting
4.4.1 評價指標
準確率accuracy:預測正確的樣本占全體樣本的比例,即在所有類別中真正例(TP)和真假例(TN)占所有樣本的比例,如式(14)所示:
(14)
宏平均F1值(MacroF1):在所有類別中求出平均精確率MacroP與平均召回率MacroR,再對精確率與召回率求調和平均值。這個指標綜合考察了模型分類的精確率(查準率)與召回率(查全率),值的大小取決于二者中較小的值,屬于綜合評價指標,如式(15)所示:
(15)
4.4.2 實驗結果
本文在SemEval-2014任務4中的2個數(shù)據(jù)集與Twitter數(shù)據(jù)集上進行實驗,并對比6個基線模型,實驗結果如表4所示。本文模型的分類結果的混淆矩陣如圖4所示。
Figure 4 Confusion matrix圖4 混淆矩陣
圖4的混淆矩陣直觀展示了模型在不同類別上的分類情況,4個子圖分別展示了模型在Restaurant、Laptop、Twitter及總體數(shù)據(jù)上的混淆矩陣情況。其中0、1、2分別表示消極、中性、積極的情感極性。圖4d總體數(shù)據(jù)混淆矩陣顯示,被模型預測為積極的1 285個樣本中(第3列),有124個數(shù)據(jù)樣本實際為中性樣本,僅有43個數(shù)據(jù)樣本實際為消極樣本,這表明本文模型在積極這個情感極性上有較好的分類性能。
從表4可以看出,本次實驗中宏平均F1值相比準確率提升幅度更大,在3個數(shù)據(jù)集上分別提升了2.79%,0.93%和0.45%,說明本文模型在多個情感極性上既能查得準,也能查得全。
本文模型在Restaurant數(shù)據(jù)集上的分類效果最好,在Laptop上其次,原因是評論者在撰寫餐廳評論時語法簡單,更加遵循“就近原則”。另外,SemEval-2014任務4的2個數(shù)據(jù)集中的積極情感占比都超過了50%,更易區(qū)分,因此所有模型在其上面都有比較好的分類結果。所有模型在Twitter數(shù)據(jù)集上分類準確率都不高,這是由于Twitter數(shù)據(jù)集的方面詞對應的實體不同,不同的樣本句式差異較大,并包含了一些網(wǎng)絡流行語、反諷等,因此分類準確率較低。
使用了句法依存樹的模型CDT在前2個數(shù)據(jù)集上的分類效果相比于TNET-LF模型的有了較高的提升,說明在方面級情感分析任務上使用圖神經(jīng)網(wǎng)絡以及對句法結構解析樹進行編碼是有效的。同時,BERT-SPC模型在2個數(shù)據(jù)集上也有較好的分類效果,原因是BERT在預訓練階段對大量通用文本語料進行過無監(jiān)督學習,詞表示的語義信息更加豐富。BERT-AEN采用的對方面詞與上下文的建模有助于模型捕捉2個部分的內在聯(lián)系,因此也有較高的準確率。TD-GAT與DREGCN都是在句法關系圖上使用圖神經(jīng)網(wǎng)絡,并通過BERT預訓練模型增強分類性能,與本文模型在設計思路上類似,但本文模型在準確率上仍比二者高了1%~3%,這說明利用詞共現(xiàn)圖表示特殊的語法結構相比使用句法圖表示有更好的效果。
4.4.3 對比分析
為了得到模型參數(shù)的最優(yōu)值,本文選取了不同的參數(shù)進行對比分析,實驗結果如圖5、圖6和表5所示。
如圖5所示,詞共現(xiàn)窗口大小在2到3時準確率會提升。當窗口大小大于3時,準確率會下降,這是因為節(jié)點間的連接過于緊密反而會增大模型收斂的難度。
圖6展示了注意力頭數(shù)與門控層數(shù)(step)的關聯(lián)關系,以及它們對準確率的影響(在Restaurant數(shù)據(jù)集上)。通過實驗可知,門控層數(shù)為1到2時,隨著注意力頭數(shù)的增加,模型的性能更好,這說明多個注意力頭可以學習到節(jié)點不同子空間的相關信息,有助于提高模型的分類效果。另一方面,增加門控層層數(shù)與增加注意力頭數(shù)能夠提升模型分類準確率的本質原因是相同的,即提升網(wǎng)絡的復雜度,使模型獲得了更豐富的特征,但當門控層網(wǎng)絡已經(jīng)很復雜時,再增加注意力頭數(shù)會使得整個模型難以收斂,因此在3層門控層時,隨著注意力頭數(shù)的增加,模型準確率反而下降了。
Table 4 accuracy and MacroF1 of models
Figure 5 Relationship between window size and accuracy圖5 窗口大小與準確率關系圖
Figure 6 Relationship numbers of attention heads and gated layers圖6 注意力頭數(shù)量與門控層數(shù)關系圖
從表5可以看出,提取方面詞節(jié)點輸入softmax層的準確率高于平均池化與最大池化的,原因是平均池化與最大池化會重新引入無關信息,使之在多意見詞樣本中引起誤差,從而影響整體的分類準確率。
Table 5 Experimental results of different pooling methods
本文對模型的各個組件在Laptop數(shù)據(jù)集上進行了消融分析,結果如表6所示。
Table 6 Ablation results of different models
本文嘗試了將門控層數(shù)設置為零的實驗,此時本文模型退化為僅使用BERT與自注意力網(wǎng)絡,即在BERT-SPC模型基礎上增加一個自注意力層。模型的準確率與BERT-SPC的接近但低于本文模型的,這說明使用門控圖神經(jīng)網(wǎng)絡對模型準確率的提高有一定幫助。此外,在BCGN中去除了自注意力層后模型準確率有一定下降,這是因為部分樣本不滿足“就近原則”,額外的一層自注意力層起到了特征平滑的作用。使用兩層門控圖神經(jīng)網(wǎng)絡在方面級情感分析任務上能取得最佳效果,因為單層的門控圖神經(jīng)網(wǎng)絡無法捕捉高階鄰居節(jié)點信息。以Laptop數(shù)據(jù)集中的一個樣本“Did not enjoy the new Win 8 and touchscreen functions”為例,預處理后的句子為[not enjoy new Win 8 touchscreen functions],“Win 8”是該樣本的方面詞,“enjoy”是意見詞,在第1層GGNN時方面詞“Win 8”會選擇性融合包括“enjoy”在內的4個詞,而“enjoy”會選擇性融合包括“not”在內的3個詞,這顯然會誤導分類結果,因為第1層時“not”未融入方面詞,但在第2層GGNN時“not”已經(jīng)融入“enjoy”進行修正從而正確融入方面詞,隨著多次迭代訓練后模型能自動選擇正確的意見詞信息。
最后,本文從3個數(shù)據(jù)集中選取6條數(shù)據(jù)樣本驗證模型在多意見詞樣本上的分類性能,結果如表7所示。
從表7可以看出,當意見詞有2種情感極性時,本文模型依靠結構信息能夠捕捉正確的意見詞,相比其它模型可靠性更高。
Table 7 Sample analysis
4.4.4 模型通用性驗證
為了驗證BCGN在方面級情感分析任務上的通用性,本文對數(shù)據(jù)樣本進行擴充,在REST15與REST16數(shù)據(jù)集上進行測試,并和基線模型TNET-LF以及僅在Restaurant上訓練的模型BCGN*進行對比分析,實驗結果如表8所示。
Table 8 Experimental results of different models
實驗結果表明,BCGN在新的樣本集上仍有較高的分類準確率與宏平均F1值;直接遷移的模型BCGN*在未經(jīng)訓練的情況下也有不低的分類性能,這證明了BCGN能有效提取文本的特征,準確地判別給定方面詞的情感極性,在方面級情感分析任務上有一定的通用性。
本文提出了一種基于詞共現(xiàn)的方面級情感分析模型,一方面通過BERT捕捉方面詞與上下文之間的語義關系,得到帶有交互注意力的節(jié)點信息;另一方面引入圖結構信息,并在構建圖時為每個數(shù)據(jù)樣本建立獨立的圖,通過門控圖神經(jīng)網(wǎng)絡捕捉鄰近方面詞的意見詞,改善了意見詞混淆問題。在SemEval-2014的2個數(shù)據(jù)集與Twitter數(shù)據(jù)集上驗證了模型的有效性。由于本文模型的結構信息是對所有數(shù)據(jù)樣本構建圖,而方面級情感分析的幾個數(shù)據(jù)集樣本量較小,文本長度也在80個詞以內,因此運行成本較低,但在長文本或大數(shù)據(jù)集上運行時可能對設備有較高要求,因此在后續(xù)的工作中,需優(yōu)化共現(xiàn)圖的存儲方式,減少內存占用。