陳佳偉,韓 芳,王直杰
(東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,上海201620)
基于特定目標(biāo)的情感分析(Aspect-Based Sentiment Classification,ABSC)是一種細(xì)粒度的自然語(yǔ)言處理任務(wù),是情感分析領(lǐng)域[1]一個(gè)重要的分支。
傳統(tǒng)的機(jī)器學(xué)習(xí)方法[2-3]主要基于特征工程,然而這類方法需要大量的人力和物力來設(shè)計(jì)特征,并且需要獲得足夠多的語(yǔ)料來構(gòu)造詞典。支持向量機(jī)(Support Vector Machine,SVM)[2]在該領(lǐng)域取得了可觀的性能。然而,與大多數(shù)傳統(tǒng)的機(jī)器學(xué)習(xí)方法類似,這種方法過于繁瑣,不適合手工設(shè)計(jì)特征。另外,當(dāng)數(shù)據(jù)集發(fā)生變化時(shí),方法的性能也會(huì)受到很大影響。因此,基于傳統(tǒng)機(jī)器學(xué)習(xí)的方法通用性差,難以應(yīng)用于多種數(shù)據(jù)集。
由于基于神經(jīng)網(wǎng)絡(luò)的方法具有很強(qiáng)的捕獲原始特征的能力,因此近年來的研究工作越來越多地與神經(jīng)網(wǎng)絡(luò)相結(jié)合。詞嵌入[4]是基于深度神經(jīng)網(wǎng)絡(luò)方法的基礎(chǔ),它將自然語(yǔ)言表示為連續(xù)的低維向量,通過對(duì)向量的操作來學(xué)習(xí)自然語(yǔ)言的交 互 特 性 。 Word2Vec(Word to Vector)[5]、PV(Paragraph Vectors)[6]和 GloVe(Global Vectors)[7]等便是預(yù)訓(xùn)練好的詞向量。為了將目標(biāo)詞融入到模型中,Tang 等[8]提出TD-LSTM(Target-Dependent Long-Short Term Memory)模型來擴(kuò)展長(zhǎng)短期記憶(Long-Short Term Memory,LSTM)模型,分別使用兩個(gè)單向LSTM 對(duì)目標(biāo)詞的左上下文和右上下文進(jìn)行建模。隨著注意力機(jī)制模型成功應(yīng)用于機(jī)器翻譯[9],目前已經(jīng)有一些研究使用注意力機(jī)制生成特定目標(biāo)的句子表示[10-12],還有一些研究根據(jù)目標(biāo)詞轉(zhuǎn)換句子表示[13]。除了基于注意力機(jī)制的模型,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)已經(jīng)被用于捕獲上下文中描述特定目標(biāo)的多詞短語(yǔ)的語(yǔ)義特征。多注意力卷積神經(jīng)網(wǎng)絡(luò)(Multi-ATTention Convolutional Neural Network,MATT-CNN)14]將多種注意力機(jī)制與CNN 結(jié)合,能獲取更深層次的情感特征信息。門控卷積網(wǎng)絡(luò)(Gated Convolutional network with Aspect Embedding,GCAE)[15]采用CNN 和門控機(jī)制有效地選擇給定目標(biāo)詞的情感特征,且該模型可以并行計(jì)算,提升了訓(xùn)練速度。
大多數(shù)之前的工作存在以下幾個(gè)問題:第一,句子的建模依賴于循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)(如LSTM、門控循環(huán)單元(Gated Recurrent Unit,GRU)和注意力機(jī)制。然而,RNN 很難并行化,并且需要大量的內(nèi)存和計(jì)算量;另外,RNN 缺乏在長(zhǎng)時(shí)間范圍內(nèi)捕獲語(yǔ)義依賴關(guān)系的能力。第二,盡管注意力機(jī)制能關(guān)注到句子的重要部分,但是不善于捕捉句子中上下文單詞和目標(biāo)之間的句法依賴關(guān)系,導(dǎo)致模型將語(yǔ)義依賴關(guān)系不相關(guān)的上下文詞作為給定目標(biāo)的描述。例如“Its size is ideal and the weight is acceptable”,基于注意力機(jī)制的模型通常會(huì)把a(bǔ)cceptable 作為目標(biāo)size 的描述。為了解決這個(gè)問題,He 等[16]在注意力權(quán)重上施加句法約束,但沒有充分發(fā)揮句法結(jié)構(gòu)的作用。
基于此,本文提出基于自注意力門控圖卷積網(wǎng)絡(luò),并在3個(gè)公開數(shù)據(jù)集上對(duì)模型的效果進(jìn)行了驗(yàn)證,實(shí)驗(yàn)結(jié)果表明,本文模型能有效地解決上文所提到的問題。本文的主要工作如下:
1)采用多頭自注意力機(jī)制對(duì)目標(biāo)和句子編碼,從而獲取其隱藏語(yǔ)義特征和兩者之間的語(yǔ)義關(guān)聯(lián),摒棄RNN 編碼并且減少訓(xùn)練參數(shù)。
2)在對(duì)句子進(jìn)行依存句法分析的基礎(chǔ)上,采用兩個(gè)圖卷積網(wǎng)絡(luò)(Graph Convolutional Network,GCN)分別對(duì)句子和目標(biāo)抽取句法信息并且捕獲詞的依存關(guān)系,解決長(zhǎng)距離詞依賴機(jī)制。
3)將預(yù)訓(xùn)練的BERT(Bidirectional Encoder Representations from Transformers)應(yīng)用到此次任務(wù)中,相比非BERT 模型獲得了更好的效果。
本文提出的基于自注意力門控圖卷積網(wǎng)絡(luò)的結(jié)構(gòu)如圖1所示,主要包括詞嵌入層、自注意力編碼層、圖卷積層、門控單元和輸出層。
圖1 自注意力門控圖卷積網(wǎng)絡(luò)Fig. 1 Self-attention gated graph convolutional network
詞嵌入層把句子轉(zhuǎn)換成模型的輸入;自注意力編碼層編碼句子和目標(biāo),進(jìn)行語(yǔ)義特征的預(yù)提取;圖卷積層捕捉上下文詞和目標(biāo)的句法依賴關(guān)系,非目標(biāo)掩碼獲取目標(biāo)的特征表示;門控單元提取情感特征。詞嵌入層有兩種:GloVe 嵌入層和BERT嵌入層。
1.2.1 GloVe嵌入層
定義 M ∈ Rdemb×|V|為預(yù)訓(xùn)練的GloVe 嵌入矩陣,其中demb是詞向量的維度,|V|是單詞個(gè)數(shù)。然后把每一個(gè)單詞wi∈ R1×|V|映射為其相應(yīng)的詞向量ei∈ Rdemb×1,該詞向量是詞嵌入矩陣M中的列向量。
1.2.2 BERT嵌入層
BERT[17]嵌入層是一個(gè)預(yù)訓(xùn)練的Seq2Seq 語(yǔ)言理解模型,使用預(yù)訓(xùn)練的BERT 生成序列的詞向量。BERT 層有足夠的能力抓取文本的語(yǔ)義特征。為了獲得更好的效果,模型在訓(xùn)練過程中進(jìn)行微調(diào),采用兩個(gè)獨(dú)立的BERT 嵌入層分別建模句子特征和目標(biāo)特征。
為了更好地編碼句子和目標(biāo)的語(yǔ)義特征,采用Transformer結(jié)構(gòu)[18]中提出的一種新的注意力機(jī)制——多頭自注意力機(jī)制表示句子和目標(biāo)。多頭自注意力機(jī)制執(zhí)行多個(gè)注意力功能來計(jì)算每個(gè)上下文單詞的注意力分?jǐn)?shù)。與其他自注意力機(jī)制相比,縮放點(diǎn)積注意(Scaled Dot product Attention,SDA)更快,而且在計(jì)算時(shí)更有效,故本文使用SDA 作為注意力函數(shù)。
假設(shè)XSDA是通過嵌入層嵌入的輸入表示。SDA 定義如下:
其中:Q、K 和V 分別是上層隱狀態(tài)乘以它們各自的權(quán)重矩陣這些權(quán)重矩陣在學(xué)習(xí)的過程中是可訓(xùn)練的。維度 dq、dk、dv等于 dh/h,其中 dh是隱狀態(tài)的維度。把每個(gè)頭學(xué)習(xí)到的注意力表示拼接再乘以矩陣WMH進(jìn)行轉(zhuǎn)換。在本文模型中,注意力頭的個(gè)數(shù)h設(shè)置為12。假設(shè)Hi是每個(gè)注意力頭學(xué)習(xí)到的表示,有:
其中:“;”表示向量的拼接,WMH∈ Rhdv×dh。另外,tanh 激活函數(shù)用來增強(qiáng)MHSA編碼器語(yǔ)義表示的學(xué)習(xí)能力。
1.4.1 依存句法分析
句法是指句子的各個(gè)組成部分的相互關(guān)系,依存句法分析是句法分析中的一種方法。依存句法分析通過分析語(yǔ)言單位內(nèi)成分之間的依存關(guān)系揭示其句法結(jié)構(gòu),主張句子中核心動(dòng)詞是支配其他成分的中心成分,而它本身卻不受其他任何成分的支配,所有受支配成分都以某種依存關(guān)系從屬于支配者。本文使用spaCy 對(duì)句子進(jìn)行依存句法分析,示意結(jié)果如圖2所示。
圖2 依存句法分析圖Fig. 2 Dependency syntax analysis graph
1.4.2 圖卷積
為了解決句法約束和長(zhǎng)距離依賴機(jī)制,本文在對(duì)句子進(jìn)行依存句法分析的基礎(chǔ)上建立圖卷積網(wǎng)絡(luò)(GCN)[19]。具體地,同時(shí)對(duì)文本和目標(biāo)采用圖卷積操作以充分考慮兩者的句法約束關(guān)系和長(zhǎng)距離詞依賴機(jī)制。GCN可以被認(rèn)為是對(duì)傳統(tǒng)CNN 編碼非結(jié)構(gòu)化數(shù)據(jù)局部信息的一種改進(jìn)。具體地說,通過對(duì)給定句子構(gòu)建依存樹獲得依存矩陣A ∈Rn×n,其中n 是圖的節(jié)點(diǎn)個(gè)數(shù)。為了方便,定義第l 層的第i 個(gè)節(jié)點(diǎn)的輸出為,其中代表節(jié)點(diǎn)i 的初始化狀態(tài)。對(duì)于一個(gè)L 層的圖卷積網(wǎng)絡(luò),l ∈ [1,2,…,L]是節(jié)點(diǎn)i的最終狀態(tài)。為了讓節(jié)點(diǎn)更好地了解上下文,本文把預(yù)抽取的特征作為節(jié)點(diǎn)的特征輸入GCN,然后用歸一化因子的圖卷積運(yùn)算[10]更新每個(gè)節(jié)點(diǎn)的表示,具體過程如下所示:
其中,F(xiàn)( · )是位置編碼函數(shù),用于減少依存句法分析過程中產(chǎn)生的噪聲和偏差,增強(qiáng)目標(biāo)周圍詞的重要性。位置編碼函數(shù)如下所示:
其中,qi∈ R 是第 i 個(gè)單詞的位置權(quán)重。L 層 GCN 的最終輸出是
為了獲取目標(biāo)特征,對(duì)非目標(biāo)詞的隱狀態(tài)向量進(jìn)行掩碼操作,并且保持目標(biāo)詞狀態(tài)不變:
帶有目標(biāo)嵌入的門控單元(Gated Tanh-ReLU Unit,GTRU)在每個(gè)位置t 與兩個(gè)卷積神經(jīng)元相連。情感特征ci的計(jì)算如下:
其中:va是圖卷積層后經(jīng)過非目標(biāo)掩碼后的目標(biāo)特征向量。式(12)和(13)包含兩個(gè)相同的卷積操作:特征ai通過ReLU激活函數(shù)接收目標(biāo)信息va,ai∈[0,1],表示目標(biāo)與該位置文本的語(yǔ)義相似度;si∈[ ]-1,1 為該位置卷積后的情感。
本文的模型包括使用GloVe 作為詞嵌入和使用BERT 預(yù)訓(xùn)練語(yǔ)言模型對(duì)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行微調(diào)。對(duì)于前者,把整個(gè)句子作為模型的輸入;對(duì)于后者,把“[CLS]+整個(gè)句子+[SEP]+目標(biāo)+[SEP]”作為句子建模的輸入,把“[CLS]+整個(gè)句子+[SEP]”作為目標(biāo)建模的輸入。
模型采用帶交叉熵?fù)p失和L2正則化的標(biāo)準(zhǔn)梯度下降法進(jìn)行訓(xùn)練:
實(shí)驗(yàn)配置:CPU 為 Inteli7 8700K,RAM 為 8 GB,GPU 為Nvidia GTX 1080,GPU 加 速 庫(kù) 為 CUDA 8.0.61,CUDNN6.0.21,實(shí) 驗(yàn) 系 統(tǒng) 為 ubuntu16.04,開 發(fā) 環(huán) 境 為Pytorch,開發(fā)工具為PyCharm,開發(fā)語(yǔ)言為Python。
本文在以下3 個(gè)數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn):SemEval 2014 數(shù)據(jù)集[20],包括餐廳評(píng)論和筆記本電腦評(píng)論;ACL 推特評(píng)論數(shù)據(jù)集[21]。這些數(shù)據(jù)集帶有三種情感標(biāo)簽:積極、中性和消極。每個(gè)數(shù)據(jù)集的訓(xùn)練集和測(cè)試集數(shù)量如表1所示。
表1 數(shù)據(jù)集信息Tab. 1 Dataset information
本文實(shí)驗(yàn)中,GloVe 詞嵌入在訓(xùn)練過程中參數(shù)沒有更新,但是本文使用預(yù)訓(xùn)練的BERT 對(duì)模型進(jìn)行微調(diào)。GloVe 詞嵌入維度為300,BERT維度為768,隱藏層的維度設(shè)置為300,使用Adam 作為優(yōu)化器,學(xué)習(xí)率為1× 10-3,BERT 層在微調(diào)的過程中需要極小的學(xué)習(xí)率,設(shè)置為2 × 10-5。另外,圖卷積的層數(shù)設(shè)置為2,門控單元中卷積核的大小設(shè)置為3、4、5,卷積核的個(gè)數(shù)為100。本文采用準(zhǔn)確率acc 和調(diào)和平均F1 來評(píng)估模型的性能。
為了全面評(píng)價(jià)和分析本文模型的性能,在上述3 個(gè)數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),并與多種基線模型進(jìn)行對(duì)比。實(shí)驗(yàn)結(jié)果表明,本文模型MSAGCN 和MSAGCN-BERT 的準(zhǔn)確率較高,尤其是基于BERT的MSAGCN-BERT模型?;€模型如下:
1)LSTM[22]利用最后一層隱狀態(tài)向量預(yù)測(cè)情感極性。
2) ATAE-LSTM (ATtention-based LSTM with Aspect Embedding)[10]利用注意力機(jī)制幫助模型關(guān)注與目標(biāo)方面更相關(guān)的上下文。同時(shí),該模型在每一個(gè)詞的嵌入中都加入了目標(biāo)信息,通過學(xué)習(xí)上下文和目標(biāo)之間的隱藏關(guān)系來增強(qiáng)模型性能。
3)IAN(Interactive Attention Networks)[11]通過兩個(gè) LSTM網(wǎng)絡(luò)分別生成目標(biāo)和上下文的表示,并利用交互注意力機(jī)制建模目標(biāo)和上下文之間的關(guān)系。
4)GCAE[15]通過兩個(gè)卷積層各自建模目標(biāo)信息和情感信息,兩個(gè)門控單元根據(jù)給定的目標(biāo)控制情感的流向,最終對(duì)情感作出判別。
5)ASGCN(Aspect-Specific Graph Convolutional Network)[23]利用LSTM建模上下文信息,并以此作為節(jié)點(diǎn)特征輸入圖卷積網(wǎng)絡(luò)抽取目標(biāo)特征,并結(jié)合注意力機(jī)制獲得最終上下文表示。
6)注意力編碼網(wǎng)絡(luò)(Attentional Encoder Network,AEN)[24]通過注意力機(jī)制編碼上下文和目標(biāo),通過特定目標(biāo)注意力層抽取帶有目標(biāo)信息的句子表示,并將其與上下文和目標(biāo)表示拼接從而進(jìn)行交互學(xué)習(xí)。
7)BERT-SPC[24]預(yù)訓(xùn)練 BERT 模型的句子匹配分類任務(wù),該模型將輸入序列轉(zhuǎn)換為“[CLS]+句子+[SEP]+目標(biāo)+[SEP]”。
為了保證實(shí)驗(yàn)結(jié)果的準(zhǔn)確性,本次實(shí)驗(yàn)的模型(包括基線模型)均運(yùn)行在相同的實(shí)驗(yàn)環(huán)境下。各模型的準(zhǔn)確率acc和F1 值的結(jié)果如表2 所示。其中,F(xiàn)1 為準(zhǔn)確率和召回率的調(diào)和平均。
表2 各模型的準(zhǔn)確率和F1值對(duì)比 單位:%Tab. 2 Comparison of accuracy and F1 value of each model unit:%
從表2 的實(shí)驗(yàn)結(jié)果可以看出,相較于基線模型,本文提出的模型在三個(gè)數(shù)據(jù)集上的效果都有一定程度的提升,MSAGCN-BERT 模型相較于其他基線模型效果得到了顯著的提升,充分說明預(yù)訓(xùn)練BERT 模型在本次任務(wù)中的重要性。相較于BERT-SPC模型,MSAGCN-BERT模型在三個(gè)數(shù)據(jù)集上準(zhǔn)確率提高了2~4個(gè)百分點(diǎn),說明了針對(duì)BERT下游任務(wù)設(shè)計(jì)特定網(wǎng)絡(luò)結(jié)構(gòu)是非常重要的。但是,相較于ASGCN 模型,MSAGCN模型在筆記本數(shù)據(jù)集上的效果有所下降,經(jīng)過分析,可能的原因是筆記本數(shù)據(jù)集對(duì)于句法依賴機(jī)制不是特別敏感。
使用循環(huán)神經(jīng)網(wǎng)絡(luò)建模句子和目標(biāo)的模型(如LSTM、ATAE-LSTM、IAN)效果總體上不夠理想,原因是模型很難記住長(zhǎng)距離信息。同時(shí),使用注意力機(jī)制的模型(如ATAELSTM、IAN)效果也沒有獲得明顯的提升,原因是當(dāng)句子包含多個(gè)目標(biāo)且目標(biāo)屬性類似時(shí),注意力機(jī)制可能會(huì)關(guān)注到其他目標(biāo)的相關(guān)信息。使用卷積神經(jīng)網(wǎng)絡(luò)的模型(如GCAE)效果相較于循環(huán)神經(jīng)網(wǎng)絡(luò)模型效果有所提升,原因是CNN 善于捕捉語(yǔ)義特征,但是由于缺乏對(duì)長(zhǎng)距離詞依賴機(jī)制的考慮,模型效果同樣不盡如人意。注意力編碼網(wǎng)絡(luò)(AEN)避免了遞歸計(jì)算,但由于沒有對(duì)嵌入的隱藏語(yǔ)義進(jìn)行建模,其整體性能并不好,最后一層注意力機(jī)制的結(jié)果本質(zhì)上是單詞嵌入的線性組合。
為了進(jìn)一步研究本文模型各部分對(duì)性能的影響程度,對(duì)模型進(jìn)行了消融實(shí)驗(yàn),結(jié)果如表3所示。
從表3 的實(shí)驗(yàn)結(jié)果可以看出,消融后的模型在準(zhǔn)確率acc和F1評(píng)價(jià)指標(biāo)兩方面效果都不如原模型。這一結(jié)果表明,所有這些被丟棄的部分對(duì)于提高模型性能都是非常重要的。首先,在每個(gè)圖卷積層前取消對(duì)句子和目標(biāo)表示的位置編碼(MSAGCN w/o pos),結(jié)果顯示模型在三個(gè)數(shù)據(jù)集上準(zhǔn)確率acc和F1值都有輕微下降,表明目標(biāo)周圍的上下文詞的語(yǔ)義對(duì)最終的結(jié)果是重要的。另外,用LSTM 網(wǎng)絡(luò)(MSAGCN-LSTM)取代自注意力機(jī)制編碼句子和目標(biāo),結(jié)果顯示模型效果在三個(gè)數(shù)據(jù)集上普遍下降。最后,對(duì)句子建模取消圖卷積操作(MSAGCN w/o cgcn)以及直接利用卷積對(duì)目標(biāo)抽取特征(MSAGCN w/o tgcn),結(jié)果顯示模型效果相較于原模型有明顯的下降;同時(shí)發(fā)現(xiàn),本次的消融比前兩次的效果有了進(jìn)一步的下降,表明利用圖卷積獲取句子依存信息對(duì)最終的情感分析結(jié)果起到了關(guān)鍵性作用。
表3 消融實(shí)驗(yàn)結(jié)果對(duì)比 單位:%Tab. 3 Comparison of ablation results unit:%
為了驗(yàn)證本文提出的模型是否比結(jié)合注意力機(jī)制的RNN 模型更輕量級(jí),將本文模型的大小和基線模型中結(jié)合注意力機(jī)制的RNN模型進(jìn)行對(duì)比,結(jié)果如表4所示。由于BERT本身具有模型大的特性,本文提出的基于BERT 的模型大小也會(huì)相應(yīng)變大。ATAE-LSTM、IAN、ASGCN 都是基于注意力的RNN模型,因?yàn)镽NN編碼后的句子的所有隱藏狀態(tài)必須同時(shí)保存在記憶單元中才能執(zhí)行注意力機(jī)制,所以這些模型的記憶優(yōu)化將更加困難,模型更大。
表4 模型大小對(duì)比Tab. 4 Model size comparison
針對(duì)RNN 結(jié)合注意力機(jī)制的網(wǎng)絡(luò)模型所產(chǎn)生的訓(xùn)練參數(shù)多且缺少對(duì)相關(guān)句法約束和長(zhǎng)距離詞依賴機(jī)制解釋的問題,本文提出了基于自注意力門控圖卷積網(wǎng)絡(luò)模型解決特定目標(biāo)情感分析任務(wù)。本文的模型避免了類似RNN 結(jié)構(gòu)的重復(fù)計(jì)算,利用自注意力捕獲目標(biāo)和其上下文詞之間的交互語(yǔ)義,同時(shí)執(zhí)行多個(gè)注意力功能捕獲更加豐富的不同層面的語(yǔ)義信息。另外,考慮到距離目標(biāo)詞更近的上下文對(duì)該目標(biāo)的情感重要程度更高,模型對(duì)句子采用位置編碼。本文將編碼后的句子作為特征并結(jié)合句子依存結(jié)構(gòu)進(jìn)行兩次圖卷積操作:一次作為句子的更深層次語(yǔ)義表示;另一次再通過掩碼機(jī)制過濾掉非目標(biāo)詞特征,只保留高級(jí)別目標(biāo)特征,從而捕捉到上下文詞和目標(biāo)的句法依賴關(guān)系。利用門控機(jī)制提取與目標(biāo)詞有關(guān)的情感特征。還將預(yù)訓(xùn)練的BERT 語(yǔ)言模型應(yīng)用于此任務(wù),進(jìn)一步增強(qiáng)了模型的性能。實(shí)驗(yàn)和分析驗(yàn)證了本文模型的有效性。如何利用神經(jīng)網(wǎng)絡(luò)中大規(guī)模的情感詞匯以及如何將外部常識(shí)融入神經(jīng)網(wǎng)絡(luò)獲得更好的情感分析效果是我們未來的研究工作。