杜春濤 王 丹
(北方工業大學信息學院 北京 100144)
方面級情感分析是一種旨在識別特定目標在上下文中情感極性的深層次分析。情感極性的判別不僅由文本內容決定,而且與所涉及的特定方面密切相關[1]。例如句子“this voice quality is bad,but the battery's life is long”,對于方面詞“voice quality”,它的極性為正,而對于方面詞“battery's life”,它的極性為負。可以看出一個句子中不同方面詞會對文本情感極性判斷產生不同的影響[2]。
近年來,越來越多的研究者關注方面級情感分析。早期的研究采用支持向量機結合情感詞典、語義句法等分析文本的情感傾向。但傳統基于規則的方法依賴于情感詞典,存在一定的局限性。隨著深度學習技術的發展,研究人員開始廣泛使用神經網絡分析文本,相對基于特征的支持向量機而言,神經網絡可以更好地捕獲方面詞和文本之間的語義關系[3]。
注意力機制已成功應用于機器翻譯[4]和閱讀理解[5]等任務中,許多研究利用這一優勢,在方面級情感分類任務中獲得出色表現。Wang 等[6]提出ATAE-LSTM 模型,使用長短期記憶網絡(LSTM)對輸入語句和方面詞建模,注意力機制獲取上下文和方面詞之間的語義特征信息。Tang 等[7]提出了基于注意力機制的MemNet 模型,該模型由多個具有共享參數的計算層組成,每一層都是基于內容和位置的注意力模型。Chen等[8]在MemNet的基礎上提出了基于注意力機制的RAM 模型。以上方法意識到方面詞的重要性,但僅粗略考慮了方面詞與上下文之間的語義相關性,忽略了方面詞和上下文的詞級交互信息。
當一個方面詞出現在句子中,它的鄰近詞要比其它距離較遠的詞受到更多關注。Gu 等[9]使用上下文詞和目標之間的絕對位置信息對句子編碼,但當句子成分復雜或上下文長度變長時,位置編碼是無效的。例如,句子“The food tastes good but price is a bit expensive”,方面詞為“price”,如果按照絕對位置編碼,“price”與“good”之間的距離為2,“price”與“expensive”之間的距離為4,則“good”比“expensive”對判斷方面詞情感極性有更大的貢獻,但從語義角度理解,這顯然是不合理的。
針對以上問題,本文提出了基于位置信息多注意交互模型,使用多注意力機制獲取上下文和方面詞之間的交互信息,充分考慮了方面詞和上下文之間的語義相關性。此外,本文還引入了外部依存句法樹來表示詞之間的依存關系,將位置信息嵌入到詞向量中,生成上下文的特定向量表示。在SemEval 2014 和Twitter 數據集上的實驗表明,該模型能有效地預測文本特定方面的情感極性。
方面級情感分析是情感分析領域一個細分任務,旨在識別句子中特定方面的情感極性,屬于細粒度級文本分類任務。
深度學習在情感分析任務中取得了較好效果,越來越多的研究者利用深度學習技術解決特定方面情感分析問題。Wang等[10]利用長短期記憶網絡(Long Short-Term Memory,LSTM)解決句子中詞語的時序關系以及單詞之間的交互性問題,有效提高了情感分析的準確度。Zhang等[11]使用兩種門控循環神經網絡分析文本,一種用于捕獲文本中句法和語義信息,另一種對文本中目標和上下文信息進行交互建模,得到隱藏層向量表示。Graves等[12]提出使用遞歸神經網絡進行文本分類,采用雙向循環結構對文本建模,將深度網絡中的多層次表示和上下文相結合。Tang 等[13]用目標依賴長短期記憶模型(Target-Dependent LSTM,TD-LSTM)分析文本情感極性,該方法用兩個LSTM 網絡對語句進行編碼,并作為最終方面詞的情感表達。這些基于神經網絡的模型在情感分類任務中取得了一定效果,但單純基于神經網絡的模型無法很好地捕捉到復雜語句中相對距離較遠的情感極性詞或詞語與方面詞之間的語義關系[14]。
注意力機制被廣泛應用于計算機視覺和自然語言處理領域,通過對文本向量的語義編碼分配不同權重,來區分句子中的關鍵信息。Ma 等[15]提出了交互注意網絡(Interactive Attention Networks,IAN)交互式學習上下文詞和方面詞的注意權重。但此注意力機制只考慮了粗粒度級,僅通過簡單的方面詞/上下文平均向量來進行上下文/方面詞的注意權重學習,可能對長方面詞或上下文造成一定的信息損失。
為了解決以上問題,本文使用雙向GRU 分別對上下文和方面詞建模,提取其中的語義信息,得到方面詞和上下文詞的隱藏狀態表示,然后使用交互注意模塊捕捉方面詞和上下文之間的相關性信息。實驗表明,此方法能更好地判斷情感極性。
給定一個由n 個單詞組成的句子s=[w1,w2…wn]和方面詞t=[t1,t2…tn],目標是預測文本在方面詞上的情感極性(積極,消極,中性)。本文提出的模型結構如圖1 所示,主要有四部分組成:詞嵌入層、雙向GRU層、多注意交互層和輸出層。

圖1 基于位置信息多注意交互模型
詞嵌入層包含句子嵌入和方面詞嵌入。首先給定句子s=[w1,w2…wi…wn],其中n 為文本單詞的長度,方面詞t=[wi,wi+1…wi+m-1],其中m為方面詞的長度。通過詞嵌入算法Global Vectors for Word Representation(Glove)[16]將每個單詞映射為一個多維的連續值詞向量,然后通過查找嵌入矩陣Mv×d得到句子嵌入[v1;v2;…;vn]∈Rn×d和方面詞嵌入[vi;vi+1;…vi+m-1]∈Rm×d,其中v表示詞匯表的大小,d表示嵌入維數。
當一個方面詞出現在句子中,距離方面詞較近的詞對方面詞的情感極性影響更大,本文引入依存句法樹表示詞之間的依存關系。例如,“This food tastes good but price is a bit expensive”這句話,目標詞為“price”,使用開源庫spacy構建依存句法樹,如圖2 所示。每個詞作為一個節點,使用弗洛伊德(Floyd)計算每個節點到第一個目標節點的最短距離,將其作為位置索引,最短距離索引序列表示為P=[4,3,2,3,3,0,1,4,3,2],其對應的位置嵌入是通過查找位置嵌入矩陣D∈Rd×n得到的,該矩陣隨機初始化,并在訓練過程中更新,其中d 表示嵌入位置的維數,n表示句子的長度。

圖2 依存句法樹
文本向量由詞向量和位置嵌入向量組成,使用雙向GRU 獲取方面詞和上下文信息,得到隱藏層向量表示。GRU 性能類似于LSTM,但具有更少的參數和更低的計算復雜度。GRU 有兩個門,分別為更新門和重置門,更新門用于控制前一時刻的狀態信息被帶入到當前狀態的程度,值越大說明前一時刻的狀態信息被帶入的越多。重置門用于控制忽略前一時刻狀態信息的程度,值越小說明忽略得越多。在某一時刻,GRU的隱藏狀態計算如下:
其中,rt表示更新門,zt表示重置門,ht-1表示上一時刻隱藏狀態,xt表示輸入序列信息,W和U為權重矩陣,σ是Sigmoid 函數。雙向GRU 編碼器的輸出結合前向隱藏層和后向隱藏層,其中n是句子的長度。
傳統方法只考慮了粗粒度級的層次注意,通過使用簡單的平均池化方面向量(文本向量)來學習上下文(方面)的注意權重,這會對上下文語義造成一定的信息損失。例如,“This Mac OS is lacking in speaker quality compared to my HP laptop”,方面詞為“speaker quality”,“quality”比“speaker”對語境影響大,因此更應該注重“quality”,如果使用平均池化的方式表示方面詞信息,則不會達到預期效果,這種情況下,使用最大池化表示方面詞可能會更好。本文使用多注意交互模型獲取詞級注意力權重,最后將注意力向量的三個部分結合起來得到最終向量表示。
3.3.1 方面注意模塊
方面詞處理是為了最大化整個短語的信息,這在某些情況下顯然是準確的。使用最大池化機制獲取方面詞的最大池化向量,注意力機制捕獲最大池化向量和上下文向量中的重要信息。方面詞最大化輸出qmax∈R2d對于上下文中的每個單詞hi,可以計算它的注意力值αi,公式如下:
其中s1是計算上下文詞對方面詞的重要性權重,w1∈R2d×2d代表權重矩陣,m1∈R2d是結合上下文的權重組合。
3.3.2 文本注意模塊
與上面的模塊類似,使用平均池機制來獲得上下文平均向量havg,并計算方面短語中每個詞的權重,最后方面詞的權重組合如下:
其中s2用于計算每個方面詞對上下文詞的重要性權重,βi是上下文平均向量對方面詞的注意力得分,w2∈R2d×2d代表權重矩陣,m2∈R2d是結合方面詞的權重組合。
3.3.3 交互注意模塊
用hi和qi來表示上下文和方面詞的向量表示,計算交互矩陣I=hi·qi,每個值表示上下文和方面詞之間的詞對相關度。句子中每個詞的權重計算如下:
其中αij表示方面詞到句子的注意力,βij表示句子到方面詞的注意力,m3∈R2d是句子中每個詞的重要權重。
本文將三個注意向量連接為最終的向量表示k=[m1;m2;m3],其中k∈R6d,“;”表示特征向量的組合,被送到softmax層決定方面詞的情感極性。
其中k 和b 分別是權重矩陣和偏置,模型利用端到端的反向傳播,使用L2 正則化交叉熵作為損失函數,p 表示句子的真實分類,表示每個分類的預測值,損失目標定義如下:
其中i 代表句子索引,j 代表三種分類索引,λ表示L2正則化系數。
為了驗證模型的有效性,本文在SemEval 2014(包括Restaurant和Laptop數據集)和Twitter數據集進行評估。該數據集均包含Positive、Neural和Negative 三種情感傾向。數據集的基本統計情況如表1 所示。實驗中使用預訓練好的300 維Glove 詞向量,超過的詞被初始化為0,隱藏層維數為300,詞嵌入層、位置嵌入層設置為150,學習率為0.01,dropout設為0.5,正則化系數為0.001。

表1 數據集統計
為了驗證本文模型的有效性,將其與以下模型進行對比:
ATAE-LSTM 模型[6]:使用長短期記憶網絡對輸入語句和方面詞建模,注意力機制獲取上下文和方面詞的重要信息。
MemNet 模型[7]:多次應用注意力機制學習上下文的重要特征,根據最后的句子表示預測特定目標的情感極性。
RAM 模型[8]:使用LSTM 對輸入向量產生記憶片段,然后對記憶片段與目標的相對位置進行加權計算,最后在GRU 網絡的輸出上應用softmax 預測方面詞的情感。
TD-LSTM 模型[13]:使用兩個LSTM 網絡對文本和上下文進行編碼,根據最后的向量表示預測情感傾向。
IAN 模型[15]:使用LSTM 獲取目標和上下文的隱藏向量,然后使用注意力機制交互式學習上下文詞和方面詞的注意權重。
在實驗中采用分類準確率和F1 值作為評價指標。實驗結果如表2所示。

表2 對比模型的比較結果
從實驗結果中可以看到,TD-LSTM 模型的性能偏差,主要原因是根據目標詞的位置分割句子,導致句子的語義不完整,因此不能充分考慮文本信息。基于LSTM 的ATAE-LSTM 和IAN 模型在三個數據集上的表現都優于TD-LSTM,原因是引入了注意力機制,使模型能夠更好地捕捉方面詞和上下文之間的重要信息,因此具有更好的性能。
從表2 可以看到,本文的方法在三個數據集上的表現都是最好的。本文提出的MAIP 模型在IAN基礎上,充分考慮到不同距離的詞對方面詞情感極性的影響,在詞向量中加入位置信息,然后使用雙向GRU 捕捉更加豐富和完整的語義信息,注意力機制提取上下文和方面詞之間的交互信息,有助于判斷方面詞的情感傾向。與IAN 模型相比,MAIP模型在Laptop和Restaurant數據集上準確率分別提高了3.3%和3%,F1 值分別提高了4%和3%,說明MAIP模型具有更好的方面級情感分析效果。
本文用依存句法樹表示詞之間的關系,使用Floyd 計算方面詞與上下文詞之間的最短距離,本文稱之為依存距離。為了驗證位置信息的重要性,進行了以下實驗:
APE:用絕對距離作為位置信息。
NPE:不加入位置信息。
SDPE:用依存距離作為位置信息。實驗結果如表3所示。

表3 位置信息的影響
從表3 可以看到,添加依存位置信息的實驗在數據集上的效果優于無位置信息和絕對位置信息,說明依存位置信息可以有效地表示方面詞和上下文詞之間的位置關系,位置信息對情感分析的結果具有很大影響。此外,不添加位置信息有時會比添加絕對位置信息更準確,一方面,位置嵌入對維度非常敏感,因為它包含多個維度的信息,很難找到一個維度來表示絕對位置距離。另一方面,上下文信息是相互關聯的,當距離變長,使用表面位置信息編碼會變得不準確。
該模型使用多個注意力機制實現詞級交互,為了驗證每一部分的有效性,本文做了以下實驗,結果如表4所示。

表4 不同模塊的作用
W-Aspect-model:模型只考慮上下文注意模塊和交互注意模塊,無方面注意模塊。
W-Context-model:模型只考慮方面注意模塊和交互注意模塊,無上下文注意模塊
W-Interaction-model:模型只考慮方面詞注意模塊和上下文注意模塊,無交互注意模塊。
從表4 可以清楚地觀察到,每個模塊都有助于模型的提升,其中影響最大的是交互注意模塊。實驗表明,多注意交互模型能獲取方面詞和上下文中深層次語義信息,為單詞分配不同的權重,有效地實現了詞級之間的交互。
本文主要研究細粒度級情感極性,提出了基于位置感知多注意交互模型。模型用依存句法樹表示詞之間的依存關系,使用Floyd 計算文本詞到目標的最短距離,將位置信息嵌入到詞向量中,使目標詞的位置信息得到充分利用。利用多注意交互模型學習方面詞和上下文之間的語義信息,捕捉方面詞和上下文之間的相關性。為了驗證模型性能,在三個數據集上進行測試,實驗結果表明,該模型優于目前其它方法。下一步研究將結合句子的語義信息和語法結構,以進一步提升情感分類效果。