肖澤管,陳清亮,2+
1.暨南大學 計算機科學系,廣州510632
2.云趣科技-暨南大學人工智能聯(lián)合研發(fā)中心,廣州510632
屬性級情感分析(aspect based sentiment analysis,ABSA)是一種細粒度的情感分類任務(wù)。與識別篇章、句子的整體情感傾向的粗粒度任務(wù)不同,屬性級情感分析的目標是識別句子中包含的不同屬性的情感傾向。例如,給定句子“我們?nèi)コ粤送聿?,雖然服務(wù)不錯,但是不好吃?!?,屬性級情感分析要識別出句子中包含的兩個屬性“晚餐”和“服務(wù)”的情感傾向分別是負向和正向。
解決屬性級情感分析的傳統(tǒng)方法是結(jié)合人工設(shè)計的特征和機器學習算法,例如支持向量機、隱馬爾科夫模型等。隨著深度學習的發(fā)展,越來越多的深度學習模型被提出用于屬性情感分析。Ruder 等人提出使用層次長短期記憶模型利用長評論里不同句子之間的情感關(guān)聯(lián)來進行屬性級情感分析。Tang 等人提出結(jié)合記憶網(wǎng)絡(luò)和注意力機制的方法。近些年來,屬性級情感分析的研究重點在如何利用注意力機制更好地建模屬性與情感表達的關(guān)系,提出了基于不同形式注意力機制的模型。
然而,基于注意力機制的模型卻忽視了使用語法信息,這會導致模型難以正確匹配屬性和對應(yīng)情感表達。例如,在句子“我們?nèi)コ粤送聿?,雖然服務(wù)不錯,但是不好吃?!敝?,屬性“晚餐”的對應(yīng)情感表達是“不好吃”,但由于缺乏句子的句法信息,基于注意力的模型可能會錯將“不錯”作為對應(yīng)“晚餐”的情感表達。一方面,現(xiàn)有的屬性級情感分析標注數(shù)據(jù)集較小,基于注意力的模型很難從較小的數(shù)據(jù)集中學習到通用的語法知識;另一方面,屬性級情感分析往往面臨多個屬性、多種情感傾向的復雜語境,情感表達也隨著語言的發(fā)展更加復雜。于是,引入更多的語法信息成為提高模型準確率的關(guān)鍵。本文提出一種融合多種類型語法信息的神經(jīng)網(wǎng)絡(luò)模型,有效解決基于注意力機制的模型在多個屬性、多種情感傾向的復雜語境下的不足。首先,本文提出將預訓練模型BERT(bidirectional encoder representations from transformers)作為語法信息的來源。自BERT 提出以來,大量工作使用它的最后一層的輸出作為上下文相關(guān)詞表示輸入到模型,而忽略了使用中間層。Jawahar 等人通過實驗得出結(jié)論,BERT 的不同層學習到的知識有顯著偏好:低層偏向?qū)W習短語結(jié)構(gòu)信息,中層偏向?qū)W習句法信息,高層偏向?qū)W習語義信息。這啟發(fā)本文使用BERT 的中間層引入短語結(jié)構(gòu)、句法等多種語法信息解決屬性級情感分析的復雜語境問題。然后,本文使用依存句法樹引入句子結(jié)構(gòu)信息。句子的依存句法樹含有顯性的結(jié)構(gòu)信息,如圖1 所示,屬性“晚餐”在依存句法樹中離與它相關(guān)的情感表達“不好吃”更近,而在句子的線性形式中,“不錯”比“不好吃”更靠近屬性“晚餐”。在這種情況下,基于注意力機制的模型難以正確匹配屬性和情感表達的關(guān)系,尤其是模型使用基于詞和屬性的距離的位置編碼時,正確的情感表達“不好吃”的重要性會進一步減小。為了有效利用這種顯性的結(jié)構(gòu)信息,本文利用基于依存句法樹的多層圖卷積神經(jīng)網(wǎng)絡(luò)學習屬性的向量表示。為了同時利用BERT 中間層的語法信息和依存句法樹的句法結(jié)構(gòu)信息,本文提出一種利用多種類型語法信息的模型,將BERT 中間層的輸出作為指導信息,每一層圖卷積神經(jīng)網(wǎng)絡(luò)(graph convolutional networks,GCN)的輸入由上一層GCN 的輸出和該層指導信息結(jié)合而成,然后再進行圖卷積操作。屬性在最后一層GCN 的輸出作為最終的特征,進行情感傾向分類。
圖1 依存句法樹例子Fig.1 Example of dependency tree
本文的貢獻可以總結(jié)為以下三點:
(1)提出使用BERT 的中間層輸出,引入多種類型語法信息,能夠更好地自動抽取特征。
(2)提出一種同時利用BERT 和依存句法樹兩種語法信息來源的模型,將BERT 中間層的語法信息作為指導信息,指導每層GCN。
(3)在SemEval 2014 Task4 Restaurant、Laptop 和Twitter 三個數(shù)據(jù)集上的實驗結(jié)果表明,本文方法超越了很多基準模型。
BERT是在大規(guī)模無標注文本上預訓練的語言模型,基于它的微調(diào)模型在句子級情感分類、詞性標注等自然語言處理問題上都取得了非常好的效果。BERT 由多層Transformer Encoder疊加組成,每層Transformer Encoder 的輸出都作為下一層Transformer Encoder 的輸入。一般認為BERT 最后一層的輸出擁有豐富的上下文詞相關(guān)信息,因此通常把它用來代替Word2vec、Glove作為模型的輸入詞向量。Jawahar等人通過大量實驗發(fā)現(xiàn),BERT 的不同層學習到的知識有顯著偏好。BERT 的低層傾向于學習短語語法和句子長度等信息,中層傾向于學習主謂一致、詞序是否正確等語法信息,而高層傾向于學習上下文相關(guān)語義信息。
GCN可以看作卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)在圖數(shù)據(jù)上的遷移。對于一張圖,圖中的每個節(jié)點都能用一個向量來表示,GCN用圖中每個節(jié)點的一跳鄰居節(jié)點來更新所有節(jié)點的表示。在開始時,每個節(jié)點被初始化為初始狀態(tài),而后GCN 對圖中每個節(jié)點的表示進行更新,這時圖中每個節(jié)點即可獲得它們所有一跳鄰居節(jié)點的信息。疊加使用層GCN,則每個節(jié)點可以獲得跳鄰居節(jié)點的信息。經(jīng)典的GCN 結(jié)構(gòu)和流程如圖2所示。使用基于依存句法樹的GCN 可以直接匹配屬性和情感表達,緩解冗余信息的干擾。
圖2 圖卷積網(wǎng)絡(luò)Fig.2 Graph convolutional network
依存句法樹是一種把句子按照詞語之間依存關(guān)系重新組織的樹形結(jié)構(gòu)。詞語之間用有向邊相連,有向邊的頭稱為支配詞,有向邊的尾代表從屬詞,它們之間的關(guān)系叫作依存關(guān)系。圖1 是句子“我們?nèi)コ粤送聿?,雖然服務(wù)不錯,但是不好吃?!笔÷粤艘来骊P(guān)系的依存句法樹。
屬性級情感分析需要精準匹配句子中屬性與其對應(yīng)的情感表達,因此正確建模句法信息非常重要。早期,研究人員提出使用依存句法樹直接獲得句法信息,并使用遞歸神經(jīng)網(wǎng)絡(luò)建模節(jié)點的情感信息流動。近些年,隨著圖神經(jīng)網(wǎng)絡(luò)(graph neural networks,GNN)的發(fā)展,研究人員開始探索將依存句法樹和GNN 結(jié)合解決屬性級情感分析。Huang 等人提出使用基于依存句法樹的多層圖注意力網(wǎng)絡(luò)(graph attention network,GAT)學習屬性表示,同時利用長短期記憶模型(long short-term memory,LSTM)跟蹤不同GAT 層的屬性表示。Sun 等人提出在使用雙向LSTM(bi-directional LSTM,BiLSTM)得到上下文相關(guān)詞表示的基礎(chǔ)上使用基于依存句法樹的圖卷積神經(jīng)網(wǎng)絡(luò)(GCN)學習屬性的表示。在此基礎(chǔ)上,Zhang等人利用注意力機制匹配GCN 學習到的屬性表示和相關(guān)的情感表達。
給定一個句子={,,…,w},其中含有個詞和一個由個連續(xù)詞組成的代表屬性的子字符串={w,w,…,w}。屬性級情感分析的目標是識別出該屬性在句子中的情感傾向。
本文提出的融合多種語法類型信息的模型架構(gòu)如圖3 所示。
圖3 模型結(jié)構(gòu)Fig.3 Model architecture
本文將BERT當作一個語法知識的提取器,將BERT 學習到的語法知識當作指導信息,與每一層GCN 的輸入結(jié)合。BERT 的輸入采用了雙句的形式:“[CLS]句子[SEP]屬性[SEP]”。BERT 不同層學習到的語法知識有區(qū)別但相鄰層區(qū)別不大,為了充分利用BERT 又使每一層GCN 的指導信息有差異化,本文選取BERT的第1、5、9和12共4層的輸出作為GCN 的指導信息。當輸入的某個詞被分解為多個子詞時,只使用它的第一個子詞對應(yīng)的輸出。于是BERT 產(chǎn)生的指導信息為:
給定句子=[,,…,w],本文使用Glove 將其映射到對應(yīng)的詞向量:
接著將詞向量輸入到雙向LSTM 中,得到上下文相關(guān)詞表示H:
其中,H∈R是雙向LSTM 的輸出。
為了能夠利用來自依存句法樹的句法結(jié)構(gòu)信息,本文使用基于依存句法樹的多層GCN。句子的依存句法樹被當作無向圖,并給圖中每個節(jié)點增加了連接到自己的邊。第一層GCN 的節(jié)點表示初始化為雙向LSTM 的隱藏狀態(tài)與其對應(yīng)的BERT 指導信息的結(jié)合,其后每一層GCN 的輸入由前一層GCN的輸出和相應(yīng)BERT 指導信息結(jié)合。而后,節(jié)點表示經(jīng)過卷積操作進行更新:
其中,∈{2 ,3,4},∈{1 ,2,3,4},G表示第層GCN的指導信息,W、W是可學習的參數(shù)。 d是第個節(jié)點的度,是圖的鄰接矩陣,W和b是可學習的參數(shù)。由于選取了BERT 中的四層作為指導信息,GCN 的層數(shù)也有四層。把屬性=[w,w,…,w]在最后一層GCN 的輸出表示求平均作為屬性的最終表示,然后輸出到情感分類層。
將GCN 層得到的屬性表示h經(jīng)過全連接層映射到與情感類別個數(shù)相同的維度,再使用Softmax 將全連接層的輸出正則化,得到模型對每個類別的分類概率:
其中,W和b是可學習的參數(shù)。
模型使用帶L2 正則化的交叉熵作為損失函數(shù),使用隨機梯度下降法進行優(yōu)化:
其中,表示訓練數(shù)據(jù)集,表示訓練樣本,代表樣本真實標簽。代表L2 正則化系數(shù),代表整個模型的參數(shù)。
本文提出的模型在三個數(shù)據(jù)集上進行了實驗,包 括SemEval 2014 Task4 Restaurant、Laptop和Twitter 數(shù)據(jù)集。所有的實驗都剔除了數(shù)據(jù)集中標簽為“沖突”的樣本,只使用標簽為“正向”“中性”“負向”三類樣本。表1 顯示三個數(shù)據(jù)集的樣本劃分情況,采用了和開源數(shù)據(jù)集的原始論文相同的劃分。
表1 數(shù)據(jù)集樣本劃分Table 1 Statistics of datasets
為了全面評估本文提出的模型,本文將其與多個基線模型進行對比。IAN(interactive attention networks)分別用兩個LSTM 生成句子和屬性的初始表示,然后使用從句子到屬性的注意力機制和從屬性到句子的注意力機制得到上下文相關(guān)的屬性和句子表示,最后將兩個表示進行拼接作為特征得到最后的分類結(jié)果。AOA(attention over attention)用行Softmax 和列Softmax 建模句子和屬性交互關(guān)系。AEN-BERT使用多頭自注意力機制生成句子和屬性的表示,并使用標簽平滑處理中立樣本。CDT(convolution over a dependency tree)用BiLSTM 得到上下文相關(guān)詞表示后使用一層圖卷積神經(jīng)網(wǎng)絡(luò),最后將屬性的表示作為特征分類。TD-GAT-BERT(target-dependent graph attention network)用多層GCN 學習屬性表示,并使用LSTM 建模多層GCN 的屬性表示。ASGCN(aspect-specific graph convolutional network)和ASGCN-BERT在CDT 的基礎(chǔ)上使用從屬性表示到句子的注意力機制。ASGCN-BERT 模型用BERT 最后一層代替ASGCN 模型的輸入層和雙向LSTM 層。BERT-SPC 模型用“[CLS]”字符在BERT最后一層的輸出作為特征微調(diào)的模型。
本文使用開源工具spaCy(https://github.com/explosion/spaCy)生成依存句法樹,將生成的依存句法樹作為圖,忽略邊的類型。BERT模型使用開源工具Transformers(https://github.com/huggingface/transformers)實現(xiàn)。實驗中,Glove詞向量的維度d為300,雙向LSTM的隱藏狀態(tài)維度d為300。BERT使用uncased BERTbase模型,隱藏狀態(tài)維度為768,共有12層。Batch大小設(shè)置為32,BERT 模型學習率設(shè)為0.000 02,其他模塊學習率為0.001。學習率隨訓練步數(shù)線性逐漸增加,在第3 個epoch 達到頂峰,然后線性逐漸下降。使用0.02 的權(quán)重衰減系數(shù)和0.2 的dropout 概率。模型參數(shù)用Xavier 方法初始化為均勻分布,然后用Adam優(yōu)化算法訓練模型。本文使用了和Zhang 等人相似的實驗設(shè)置,實驗結(jié)果取隨機抽取的10 個隨機種子的平均結(jié)果,每次實驗最多訓練30 個epoch,并使用早停法,當連續(xù)3 次驗證準確率不增加時,提前結(jié)束訓練(early stopping)。
本文使用準確率(Accuracy)和Macro-F1 值來評估模型。表2 給出了8 個基線模型和本文提出的模型在3 個數(shù)據(jù)集上的實驗結(jié)果,“—”代表原始論文中缺少結(jié)果。模型后標有“*”表示實驗結(jié)果引用自原始論文。
從表2 中可以看出,本文提出的模型在3 個領(lǐng)域的數(shù)據(jù)集上都取得了很好的效果。在Restaurant 數(shù)據(jù)集和Twitter 數(shù)據(jù)集上,本文方法比所有基線模型都好,準確率分別比次優(yōu)模型提高了0.1%和1.4%,Macro-F1 分別提高了1.8%和1.6%。在Laptop 數(shù)據(jù)集上,本文方法也取得了相當好的效果,準確率比最好的TD-GAT-BERT 模型低1%,而Macro-F1 則達到了最好。
表2 實驗結(jié)果Table 2 Experimental results %
對比4 個使用了BERT 的基線模型,本文提出的模型比其他模型有更好的效果,表明同時使用BERT中間層具有的短語結(jié)構(gòu)信息、語法信息和依存句法樹的句法結(jié)構(gòu)信息等多種語法信息可以更好地幫助解決屬性級情感分析問題。
為了分析來自BERT 不同層的語法信息和來自依存句法樹的句法結(jié)構(gòu)信息對模型效果的影響,本文對模型的兩個變種模型進行了實驗,結(jié)果如表2 所示。模型名字的下標表示使用的層數(shù),Ours代表該模型使用BERT 的第1,5,9 層作為指導信息,并且使用了三層GCN;Ours代表該模型僅使用BERT 的第12 層作為指導信息,并使用一層GCN。
基線模型CDT 可以看作沒有使用任何BERT 指導信息的本文提出的模型的變種。從表2 可以看到,在多個數(shù)據(jù)集上Ours和Ours的效果都遠遠好于沒有使用任何BERT 指導信息的CDT。Ours相比BERT-SPC 在所有數(shù)據(jù)集上效果都有提升,說明使用依存句法樹具有的句法結(jié)構(gòu)信息可以一定程度增強模型的效果。而Ours在與Ours 對比時,它在所有數(shù)據(jù)集上的效果都稍差,這顯示了BERT 低層和中層的語法信息也能夠有效提升分類效果。只使用BERT低層和中層作為指導信息的Ours也能取得不錯的效果,但是在所有實驗中效果都比Ours差一些。分析認為有以下幾點原因:第一,雖然BERT 的低層相較于高層捕獲了更多的短語結(jié)構(gòu)信息,但是它的12層輸出作為上下文相關(guān)的詞向量,仍然具有一定的感知短語結(jié)構(gòu)信息的能力,這一點從Jawahar 等人的工作的圖1 可以看出;第二,由于模型使用了依存句法樹,Ours可以一定程度上彌補沒有使用BERT的中層的句法信息的不足;第三,BERT 高層學習到的語義信息在該問題中相比于其他層更重要。從實驗結(jié)果可以看出,沒有使用基于依存句法樹的GCN和BERT 中間層作為指導信息的BERT-SPC 模型也取得了相當好的效果。
為了驗證本文提出的模型在處理復雜語境和復雜情感表達方面更有優(yōu)勢,分析了6 個樣本實例,結(jié)果如表3 所示。每個句子中,當前分類的屬性被方括號括起來并加粗,其后給出了實例的真實標簽、AENBERT 分類結(jié)果和本文提出的模型的分類結(jié)果。
表3 實例分析Table 3 Case study
可以看出,在多屬性、多情感的復雜語境下AEN-BERT 無法準確匹配當前屬性與其對應(yīng)情感表達的關(guān)系,而誤把其他屬性的情感表達當作分類依據(jù)。比如,在第一個句子中,AEN-BERT 將“飲料”的情感傾向誤分類為正向,而真正為正向情感傾向的屬性是“菜單”;同樣的,在第二個句子中,AEN-BERT把屬性“餐館”的情感表達當作了“食物”的情感表達,因此將“食物”的情感傾向誤分類為正向。在第三、第四和第五個句子中,AEN-BERT 也犯了同樣的錯誤。而本文提出的模型在面對這種復雜語境時可以匹配不同屬性對應(yīng)的情感表達,因此表現(xiàn)比AENBERT 更好。例如,在第三和第四個句子中即使有“很慢”和“很差”這種強烈情感傾向,本文提出的模型也沒有被干擾,最終做出了正確的判斷。值得注意的是,由于模型具有短語結(jié)構(gòu)信息,在第二個句子中,它可以判斷復雜情感表達“prefer not”的情感傾向為負向。在對第六個樣本分類時,兩個模型都將情感誤分類為正向。句子中包含一個賓語從句,屬于復雜句型。經(jīng)過檢查,句子的依存句法樹解析基本正確,因此導致誤分類可能的原因是GCN 層數(shù)較多,使得“fast”的信息最終傳遞到了屬性,影響了最后的分類。
針對屬性級情感分析現(xiàn)有方法的不足,本文提出了利用多種類型語法信息的模型,同時利用了BERT 中間層語法信息和依存句法樹的句法結(jié)構(gòu)信息。首先,將句子輸入BERT 以獲得指導信息。然后,將經(jīng)過詞嵌入層和雙向LSTM 的詞表示與指導信息結(jié)合,再輸入到基于依存句法樹的GCN 層。經(jīng)過多層具有指導信息的GCN,最后將屬性的向量表示作為特征進行情感傾向分類。實驗結(jié)果表明本文提出的模型可以很好地解決屬性級情感分析任務(wù)。
本文提出的模型使用了依存句法樹,但沒有解決生成的依存句法樹有錯誤的問題,這會導致模型把與屬性的情感傾向不相關(guān)信息考慮到最終的分類決策中,這會對模型的效果造成一定影響。將來的工作將重點集中在通過修補或變形依存句法樹來緩解錯誤帶來的影響。