陶林娟,華庚興,李 波
華中師范大學計算機學院,武漢 430079
在情感分析任務中,依據情感評價主體的粒度大小不同,可以將其分為篇章級情感分析、句子級情感分析以及方面級情感分析三類[1]。其中,方面級情感分析是一項評價主體粒度最小的情感分析任務,其在自然語言處理(natural language processing,NLP)領域中有著廣泛應用[2]。
方面級情感分析的目的是得到句子中特定方面詞的情感傾向,情感傾向的結果一般有積極的、消極的以及中立的三種。其中,句子中特定的方面詞指的是某個主體的某一方面的屬性,比如對于電腦這個主體,其屬性可以是價格、外觀以及性能等。因此在現實生活中,即使是對于同一事物,如果從不同的屬性角度進行評價,結果也可能是截然不同的。例如“Price was higher when purchased on MAC when compared to price showing on PC when I bought this product”。這是一句關于電腦的評論,兩個方面詞分別是“price purchased on MAC”和“price showing on PC”,評論者對于“price purchased on MAC”的評價是消極的,而對于“price showing on PC”的評價卻是積極的。可以發現,在句子中存在多個主體時或者存在一個主體的多個屬性時,包含的情感會比較復雜,此時篇章級別情感分析和句子級別情感分析無法確切概括篇章或者句子的情感。而方面級別的情感分析方法只關注特定方面詞,更加適用于現實中的情況,這也是方面級情感分析逐漸受到關注的原因[3]。
在方面級情感分析中,早期的解決方法是使用人工提取到的特征(如人工得到的情感詞典)結合傳統的機器學習方法來進行方面級情感分類[4-5]。然而上面這種方法不僅會消大量的人力物力,人工提取特征的質量也會對方面級情感分類的效果有很大的影響,造成不確定性,這種方法的缺點比較突出[6]。隨著研究工作的深入,深度學習模型因其表征自動學習的優點常被用于方面級情感分析任務中,比如經常使用循環神經網絡RNN[7]和標準注意力機制[8]來學習上下文和方面詞的語義特征以及它們之間的關系,這種方法能夠克服人工提取情感特征的缺陷[9-10]。鑒于深度學習方法的優點,深度學習已成為方面級情感分析中主流的研究方法[11]。
在方面級情感分析任務中,對該任務進行改進的關鍵在于準確地找到并表征與方面詞相關的上下文內容。針對此問題,此前提出的許多解決方案多關注注意力機制的設計與改進。與上述工作不同,本文從詞語表征和文本特征提取兩個方面進行改進,提出了基于位置增強詞向量和GRU-CNN 模型的方面級情感分析模型(aspect-level sentiment analysis based on locationenhanced word embeddings and GRU-CNN model,LWGC)來實現句子中的詞語表征以及提取出上下文中與特定方面詞相關的情感信息,并根據獲取的相關信息得到方面級情感分析的結果。本文的主要工作及貢獻有:
(1)基于BERT模型和方面詞位置信息得到適用于方面級情感分析任務的詞向量表示。將預訓練BERT模型[12]訓練得到的詞向量作為輸入表示,使詞向量的表示更加完整豐富;之后加入位置權重度量公式,該公式以選定的方面詞為中心,方面詞左右兩邊的上下文則隨著遠離方面詞權重依次減少;由位置度量公式得到的位置權重系數與預訓練得到的詞向量表示對應相乘,得到位置增強的詞向量表示。
(2)提出了適用于方面級情感分析任務的GRUCNN模型。GRU-CNN網絡首先通過GRU提取文本的時序語義特征,再使用CNN 提取文本的局部語義特征。由于文本是具有時序特征的數據,且本文所使用的數據集數量較少,所以這里提出使用參數較少的門控循環神經網絡GRU;同時考慮到和方面詞相關的情感信息往往位于方面詞的附近,而CNN 適合對短語進行建模,非常適合于方面詞情感特征的提取,因此提出使用CNN進行方面詞附近局部信息的提取。本文后續部分的實驗證明了這種組合提取方式對于方面級情感分析任務的有效性。進一步,本文在GRU-CNN網絡之上聯合使用注意力機制,對GRU-CNN網絡所提取到的特征進行注意力建模,捕捉其中的關鍵特征信息用于方面級情感分類任務中。
情感分析任務起初是針對句子級別的情感分析和篇章級別的情感分析。在早期,基于深度學習的情感分析研究工作多使用循環神經網絡(如長短時記憶網絡LSTM)來獲取整個句子的向量表征,再通過softmax 層得到情感分類的結果[13]。
隨著人們對情感分類的主體進一步細化,出現了更加細粒度的情感分類——方面級情感分析。在方面級情感分析任務中,每個句子中也許會有多個評價主體,同時每個主體對應的情感也不盡相同。因此,在實現方面級情感分類時,不能再將整個句子的信息不經篩選地都用于獲取方面級情感分類的類別。對于方面級情感分類任務,所設計的模型應該能夠重點關注到上下文中和方面詞相關的詞語。因此近年來許多研究主要集中在注意力機制的改進和設計上,以此獲得上下文中和特定方面詞情感有關的詞語。
Wang 等[3]提出在方面級情感分析模型中加入注意力機制,該模型首先在輸入詞向量時加入方面詞的平均池化表示,同時使用方面詞平均池化表示對上下文進行注意力建模使得模型能夠重點關注到與方面詞情感有關的部分,最后將加權后的表示向量經過softmax 得到分類的結果。
Ma 等[14]首先提出交互式注意力機制建模,該模型首先對上下文和方面詞都單獨建模,之后通過交互式方式學習上下文和方面詞的注意力權重,得到方面詞和對應上下文新的權重化表示,從而能夠很好地表示方面詞和其對應上下文,提高情感分類的效果。
上述研究工作確實取得了不錯的效果,但是模型本身仍然著重于從注意力機制角度進行改進,卻未考慮到從其他方面進行改進。受到Li 等[15]和Zhang 等[16]的啟發,本文認為方面詞與對應上下文之間的相對位置信息對于方面級情感分析來說具有重要價值。一般來說,與特定方面詞的情感相關的上下文語句大多集中在該方面詞的附近。因此,本文提出基于方面詞相對位置的權重度量公式。位置權重度量公式以方面詞為基準,而方面詞左右兩邊的詞語距離該方面詞越遠則賦予其越小的權重。最后將上下文中每個詞語的詞向量表示與其位置權重系數對應相乘,那么方面詞附近的詞語由于被賦予的權重較高就會有更大的影響力,這樣經過位置關系處理的句子詞向量表示就是特定于某個方面詞的句子表示。本文所提出的位置權重度量方法可以使模型重點關注方面詞附近的語句,有利于提高方面級情感分類的性能。
在詞向量方面,早期的情感分類模型一般使用Word2Vec[17]和GloVe[18]模型得到句子的詞語表征,這兩種編碼方式存在一些局限性,比如無法表達一詞多義問題。在BERT 模型問世之后,研究者們開始使用BERT進行詞語編碼[19],由于BERT模型優秀的詞語表達能力,其在多達11項NLP任務中都刷新了最好成績。完整的BERT預訓練模型規模較大、參數眾多,從頭訓練十分耗費時間和資源,因此大多數情況下通過參數微調方式將BERT模型應用于具體的下游任務。
受上述啟發,本文提出使用BERT模型結合位置權重度量公式來得到位置增強的詞向量表示,接著使用GRU-CNN 網絡來提取文本的語義表征以最終實現方面級的情感分析。
本文所提出的模型主要由幾個神經網絡層構成,包括詞語表示層、文本特征提取層、注意力層以及一個情感分類層。如圖1 所示是本文所提出LWGC 模型的總體結構。在詞語表示層部分,本模型首先通過預訓練BERT 模型獲取基礎的詞向量表示,再將本文所提出的位置權重度量公式與基礎詞向量進行結合,得到位置增強詞向量的表示;在文本特征提取層部分,本模型設計了一種GRU-CNN網絡來聯合提取文本特征,首先使用GRU 網絡來提取序列數據中的特征,在GRU 網絡之上接著使用CNN網絡來提取文本的局部特征。之后根據方面詞對上下文進行注意力建模,最后將在注意力層所得的結果通過softmax 函數進行方面級情感分類,得到情感分類的結果。

圖1 LWGC模型的總體結構示意圖Fig.1 Overall structure diagram of LWGC model
在詞語表示層部分,利用BERT預訓練網絡獲得句子詞向量表征,所得到的詞向量表征與位置度量公式相結合得到位置增強詞向量表示。
輸入部分由兩部分組成:一個上下文序列wc={w1,w2,…,wn}和一個方面詞序列was={wr+1,wr+2,…,wr+m}(0 ≤r≤n-m)。方面詞序列是上下文序列的子序列,wi(1 ≤i≤n)表示組成句子的單詞。
對于上述輸入文本序列,首先要做的是將其轉化為計算機可以理解的形式。與之前提出的大多數方面級情感分析模型不同,LWGC模型使用BERT語言模型來獲取輸入句子的詞語表征,由于BERT模型具備在通用大規模文本數據集上學得的語義知識,引入BERT模型可以得到更加準確的詞向量表示。此外,本文在對應方面詞的位置再拼接方面詞的詞向量表示,其余位置使用零填充,這樣能夠標示出方面詞的位置。故本文稱拼接的向量為方面詞指示向量,方面詞指示向量就是用來區分上下文和方面詞的。因此LWGC 模型中的輸入詞向量表示如下:
其中,上下文序列wc經過BERT 模型編碼后得到詞嵌入向量Bc,方面詞序列was經過BERT模型編碼后的方面詞指示向量是Bas。
根據方面級情感分類的特點,與其情感態度相關的詞語大多出現在方面詞的附近。例如“The food did take a few extra minutes to come,but the cute waiters’jokes and friendliness made up for it”,句中與方面詞“food”有關的語句“take a few extra minutes”都在其附近的位置。為了使得模型能夠重點考慮方面詞附近的部分,本文在這里添加一個位置函數,使得隨著上下文遠離方面詞賦予其越來越小的權重。位置權重公式如下所示:
其中,句子長度為n,方面詞長度為m,下標從1 開始,s和e分別表示句子中方面詞開始和結束的位置。t為超參數,t越大會使得方面詞附近的語句有更大的影響。那么,位置增強的詞向量yi(1 ≤i≤n)可表示為:
其中,pi是由位置度量公式得來的,xi是輸入句子表征x中第i個詞的表示向量。
本節將經過位置增強后的句子表示向量y={y1,y2,…,yn}作為文本特征提取層的輸入,分別通過門控循環單元(GRU)、卷積神經網絡(CNN)提取文本語義特征。
根據本文所使用的數據集規模較小的特點,在這里使用結構相對簡單的GRU網絡來獲取文本向量的序列語義信息。輸入表示中已經包含了方面詞的信息,所以這里通過GRU 網絡得到特定方面詞的上下文語義表示。其結果如下所示:
式中,gru表示GRU 網絡,hi-1和hi代表連續時刻的兩個隱狀態向量,z(z∈Rd×n)是GRU網絡得到的結果,d和n分別是詞向量的嵌入維度和句子長度。
本文通過GRU 網絡得到句子的時序信息,接著使用卷積神經網絡提取局部上下文信息,兩者互為補充。
與CNN 用于圖像處理操作不同的是,為了利用每個單詞的完整含義,對文本進行卷積操作一般使用一維卷積,使用卷積核在句子所構成的二維矩陣的整行上滑動,可以得到在滑動窗口內提取的句子局部特征。本文中CNN 對文本處理的過程如圖2 所示,假設輸入CNN中的文本序列的表示為z=[z1,z2,…,zn],u∈Rd×k表示卷積核矩陣,卷積核矩陣是可學習的參數矩陣,其中k(k<n)是卷積核窗口大小,d是BERT詞嵌入的維度大小,卷積網絡層利用卷積核與每個長度為k的子序列分別進行卷積,從而得到文本序列的局部特征。為了保持文本矩陣的維度不變,本文使用零填充的寬卷積方式,一般來說寬卷積就是在輸入矩陣高和寬的兩側填充零元素,一維卷積為了保留完整的詞語信息,詞向量維度不需填充,這里只需使用零填充增加句子長度這一維度。每次卷積操作的公式表示如下所示:

圖2 CNN對文本的處理過程Fig.2 Processing process of CNN
其中,f是激活函數,zi:i+k-1表示對應的文本句子中第i個詞到第i+k-1 個詞所構成的局部文本特征矩陣,“·”運算代表內積操作。對整個句子序列進行卷積操作得到特征映射Ci=[c1,c2,…,cn]T,Ci∈Rn。
使用注意力機制能夠計算出每個輸入對于特定方面詞的注意力權值,本文使用注意力機制可以使模型重點關注到和方面詞相關的上下文語句。
在自然語言處理領域中,關于注意力機制的運算原理如圖3 所示:把源句子當做是由許多的

圖3 注意力機制Fig.3 Attention mechanism
本文把輸入句子和方面詞指示向量拼接為源句子,得到
其中,W1∈Rd×d和w∈Rd是可學習的參數,S∈Rd。
最后,上文得到的句子表示再通過情感分類器獲得方面級情感的分類結果:
其中,W2∈R3×d和b是情感分類層可學習的參數。同時,本文通過交叉熵損失函數來學習模型參數。
數據集。為了對模型的有效性進行驗證,本文使用2014 年國際語義評測大會(SemEval)中的Task4 數據集[20],該數據集包含Restaurant 和Laptop 兩類領域的評論數據,是方面級情感分析中很常用的數據集,該數據集在相關的研究中得到了廣泛應用。這些數據集包含積極的(positive)、消極的(negative)以及中性的(neutral)三類情感傾向。這兩個數據集中的數據分布情況如表1所示。

表1 數據集的統計特征Table 1 Statistical characteristics of datasets
需要注意的是,盡管某一句子中可能會有多個方面詞,但本文所用數據集中每一個句子用特殊符號$T$標注了其中一個方面詞。因此,在使用該數據集時可以直接確定每次需要考慮的情感主體,不必考慮其他的方面詞。
實驗參數設置。在訓練過程中使用Adam 算法來優化模型,學習率設置為2E-5。模型其他參數設置為BERT詞向量嵌入維度是768、隱藏層維度是768、dropout設為0.1、批處理大小設置為16、權重衰減率為0.01。位置度量函數中的超參數t從{1,2,2.5,3}中選擇。
評價指標。使用分類的準確率Acc以及F1-score作為本文模型的評價指標。
準確率Acc是指預測為正確的數量占總數的比重,公式如下:
在上式中,TP 代表本身是正例且也被判定為正例,TN代表本身是負例并且也被判定為負例;FP 代表實際為負例但被判定為正例;FN 表示本身為正例但被判定為負例。
而F1-score則是精確率(precision)和召回率(recall)的調和平均,F1-score 的數值越大說明模型質量越高。精確率是指正確地預測為正的樣本占全部預測為正樣本的比例,召回率是指正確地預測為正的樣本占全部實際為正樣本的比例。指標F1-score的計算公式如下:
本文使用以下基準模型作為對比來評估所提出模型的效果,這些基線模型是:
TD-LSTM[7]:該模型中包含左右兩個LSTM,把方面詞及其前面的部分作為左LSTML 的輸入,逆序把方面詞及其后面的部分作為右LSTMR 的輸入,再將兩個網絡的最后一個隱藏向量串接起來,最后通過softmax分類器分類。
TC-LSTM[7]:與TD-LSTM 模型僅有的不同是在輸入詞向量后面拼接方面詞的平均池化向量。
ATAE-LSTM[3]:LSTM的輸入部分是由句子中每個詞語表征與方面詞的平均池化向量拼接,通過LSTM得到的句子語義表示再次和方面詞平均池化向量拼接,最后通過注意力機制、softmax 分類器得到情感分類的結果。
IAN[14]:分別根據方面詞和上下文的平均池化表示對上下文和方面詞進行交互注意力建模,再將以上兩個通過注意力機制的結果進行拼接以獲取方面級情感分類的結果。
HAG[1]:通過上下文對方面詞建模獲取方面詞新的表示,再使用新的方面詞表示反過來對上下文建模,得到新的上下文表示;模型還加入門機制以在上下文中選擇出對于方面詞情感分類有用的信息。
ASGCN-AOADG[21]:通過LSTM對上下文進行建模,使用圖卷積神經網絡引入句法信息,最后通過注意-過度注意(AOA)機制,自動關注與方面詞相關的句子部分。
MCRF-SA[22]:在輸入部分拼接方面詞指示向量,添加位置衰減函數使模型重點關注方面詞附近的上下文,接著使用結構化的多條件隨機場注意力來捕獲與特定方面詞有關的上下文。
AEN-BERT[23]:模型引入BERT結構,同時采用基于注意力的編碼器對上下文和方面詞進行建模。
IAGCN-BERT[24]:模型利用BiLSTM 和修正動態權重層對文本建模,使用圖卷積網絡對句法信息加以編碼,最后利用交互注意力重構上下文和方面術語的表示。
在實驗結果表2中,將以上提到的模型作為基線模型。依據本領域中已有文獻的一般做法,各個基線模型的實驗結果均直接來自對應論文中給出的最優實驗結果。

表2 實驗結果Table 2 Experimental results單位:%
如表2 所示是上述基線模型與本文LWGC 模型的對比實驗結果。
對表2 的實驗結果進行分析,盡管TD-LSTM 模型在提取語義特征時考慮了方面詞信息,但是沒有使用注意力機制,模型不能重點關注到和方面詞相關的上下文信息,可以看出TD-LSTM模型的效果相對來說較差。
ATAE-LSTM 模型中加入了單層注意力,通過方面詞對句子上下文進行注意力建模,相比TD-LSTM 有了一定的提升。IAN模型接著對注意力機制進行改進,提出交互注意力機制,進一步提高了方面級情感分類準確率。
不同于IAN將兩個注意力機制分開建模,HAG模型提出的是層次注意力機制,層次注意力機制使得上下文和方面詞的表示更加準確,也加深了上下文和方面詞之間的聯系,因此效果上比ATAE-LSTM模型要好很多。
MCRF-SA模型提出在結構化注意力模型中加入多條件隨機場,同時考慮到方面級情感分析的特點加入了位置衰減函數,模型效果相比之前也得到了較好的提升。
本文提出的LWGC模型在詞語表征部分使用BERT模型和位置權重度量公式得到位置增強詞向量;然后在文本特征提取方面通過GRU-CNN 網絡得到句子的語義表示。在SemEval2014 Task4 數據集上的實驗結果表明,LWGC 取得了良好的實驗效果。LWGC 模型比MCRF-SA 模型在Restaurant 數據集上準確率提高了2.68 個百分點,F1 值提高了5.16 個百分點;在Laptop 數據集上LWGC模型比MCRF-SA模型準確率提高了2.71個百分點,F1值提高了2.28個百分點。可以看出,本文提出的模型在兩個公開數據集上的效果均要明顯高出之前的模型。
本部分包含LWGC模型的一些變體,以驗證LWGC模型組成部分的有效性。LWGC是本文提出的模型,表3是針對LWGC模型的消融實驗結果。

表3 消融實驗結果Table 3 Ablation experimental results 單位:%
GRU-CNN與GRU-CNN-A模型均使用GRU和CNN提取文本特征,區別在于模型輸入時GRU-CNN拼接方面詞的平均池化向量,GRU-CNN-A拼接的是方面詞指示向量,這種拼接方式會隱含方面詞的位置信息。GRUCNN、GRU-CNN-A這兩個模型和LWGC模型最大的區別在于沒有使用BERT預訓練詞向量以及位置函數。
BERT-CNN-G 模型是把LWGC 模型中的CNN 和GRU 互換位置,先通過CNN 提取局部特征,然后使用GRU網絡提取文本序列信息。LWGC-A模型是在LWGC的基礎之上在輸入時拼接了方面詞指示向量。
如表3展示了在Restaurant和Laptop兩個公開數據集上的消融實驗結果。
從表3 可以看出,GRU-CNN-A 比GRU-CNN 模型在Restaurant 數據集上的準確率提高了1.25 個百分點,F1 值提高了1.63 個百分點;在Laptop 數據集上準確率提高了2.6個百分點,F1值提高了5.37個百分點。這說明了在方面級情感分析中使模型能夠準確區分方面詞和上下文位置的重要性。
GRU-CNN、GRU-CNN-A 這兩個模型與LWGC 模型最大的區別在于LWGC 模型使用了BERT 語言模型作為詞向量的編碼方式,這一改變使得模型的效果有了顯著提升,也說明了準確豐富的詞向量編碼方式對于方面級情感分析的作用十分重大。
通過表3還可以發現,在Restaurant數據集上BERTCNN-G 模型比LWGC 模型效果略好,但是在Laptop 數據集上LWGC模型的效果要明顯好于BERT-CNN-G模型,準確率提高了1.1 個百分點,F1 值提高了1.12 個百分點,說明在Laptop數據集上依次使用GRU、CNN網絡的特征提取方式更合適。
從模型的效果上來看,LWGC-A模型并沒有LWGC模型那么好,也許是因為LWGC模型中已經加入了位置度量函數。即使在LWGC 模型的基礎上拼接方面詞指示向量得到LWGC-A,由于這兩個模塊中都包含有位置信息,作用類似,所以即使重復利用位置信息也不會有太大的效果變化。
為了更清晰地看到注意力機制在本模型中的作用,本章節將上下文關于特定方面詞的注意力權重進行可視化。如圖4 所示,是例句“It is super fast and has outstanding graphics.”中每個單詞對于方面詞“graphics”的注意力權重可視化的圖,其中區域塊內顏色越深表示注意力權值越大,可以獲得模型更高的關注。

圖4 上下文注意力可視化Fig.4 Visualization of contextual attention
從圖4中可以看出,對于方面詞“graphics”影響最大的是描述詞“outstanding”,同時“has”以及“graphics”這兩個和方面詞關系次之的單詞也受到了一定的關注,而對于其他不太相關的單詞則關注較少或者直接忽略。這說明了本文模型中的注意力機制可以正確地關注到和某方面詞相關的情感信息,證明了注意力機制對于方面級情感分析任務的有效性。
本文提出了基于位置增強詞向量和GRU-CNN 模型的方面級情感分析方法。該模型使用BERT 模型得到輸入句子的詞向量表示,然后結合位置權重度量公式分配位置權重得到位置增強的詞向量表示,使得模型充分考慮方面詞附近的語句;之后再將得到的位置增強詞向量通過GRU-CNN網絡得到句子的語義表示,最后使用注意力機制對上下文建模,使模型更加關注與方面詞情感極性有關的語句,根據這些語句進行方面級別的情感預測。最終的實驗結果證明了本文提出的LWGC 模型的有效性。
目前,用于方面級情感分析的數據集規模普遍偏小,下一步計劃擴充一部分相關領域的方面級情感分類數據集,然后建立特定領域的情感詞向量表示,將其應用于后續的情感分類任務中。