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