【情感分析】基於Aspect的情感分析模型總結(一)
- 2020 年 3 月 3 日
- 筆記
轉載自:NewBeeNLP
0. 寫在前面
前面我們有實戰過文本分類的一些模型演算法,什麼?太簡單?!Ok,再開一個坑,接下去整一個稍微複雜點的,情感分析。當然一般的情感分析也是一個分類任務,就可以參考之前文本分類的思路,我們這一系列要看的是「Aspect Based Sentiment Analysis (ABSA)」,關於這一任務的比賽也非常多,可見十分實用呀。enjoy

1. A glance at ABSA
在介紹具體演算法之前,先來看一下什麼是 ABSA?可以粗暴翻譯為基於方面的情感分析,本質就是對句子中不同對象可能會存在不同的情感傾向,例如:「I bought a new camera. The picture quality is amazing but the battery life is too short」
,這句話中對於target=picture quality
,情感是正的;而對於target=battery
,情感就是負的了。ABSA 任務的目的就是去找出給定句子中的不同 target 的情感傾向。
如果大家還不是很清楚的話,可以再參考一下這裡:「一個關於ABSA的PPT介紹[1]」。
Effective LSTMs for Target-Dependent Sentiment Classification(COLING2016)[2]
在這篇論文裡面作者主要是介紹了三種基於LSTM的模型,來解決 ABSA 任務:
- LSTM
- Target-Dependent LSTM
- Target-Connection LSTM
2.1 LSTM
第一種方法就是直接使用 NLP 中的萬金油模型 LSTM,在該模型中,target words 是被忽略的,也就是說跟普通的對文本情感分析的做法沒有區別,最終得到的也是這個句子的全局情感,可想而知最後的效果一般般。具體做法就是對句子中的 token 進行 embedding 處理作為模型的輸入,經過一次一次的計算隱層和輸入之後得到一個句子表示 ,接著對這個向量進行 softmax 計算概率, 其中 C 是情感類別種類。

2.2 TD-LSTM
為了解決上面 LSTM 忽略目標詞的問題,提出了 Target-Dependent LSTM (TD-LSTM) 模型,如下圖所示。

其基本思想是對於一個 target-word,充分考慮其上下文資訊,具體來說使用了兩個 LSTM,從左往右的和從右往左的,分別對 target word 的左邊和右邊的資訊建模。接著將兩個 LSTM 得到的隱狀態 和 concat 一下,也就得到了關於這個詞的句子情感表示,然後一樣也是送入到 softmax 進行分類。除了 concat 作者也提到可以嘗試進行 sum 或者 average。
2.3 TC-LSTM
Target-Connection LSTM (TC-LSTM) 在 上一節TD-LSTM 的基礎上進一步加強了 target-word 與句子中每個 token 的關聯,看模型框架就會很清晰,

可以看出,這裡在模型輸入的時候多加入了一部分:,這樣就可以加強 target 與句子的交互,使得最後的表示更為確切。那麼這個 是怎麼得到的呢?其實就是簡單地對 target words 的向量表示進行平均化處理得到一個向量。
2.4 實驗結果比對

Attention-based LSTM for Aspect-level Sentiment Classification(EMNLP2016)[3]
這是在上一篇論文之後發的文章,指出前者的不足之處:
❝However, those models can only take into consideration the target but not aspect information which is proved to be crucial for aspect-level classification.
作者這裡提到了兩個概念:target 和 aspect。我們可以認為 target 是包含在句子中出現的詞,而 aspect 屬於預先定義的比較 high-level 的類別刻畫。基於以上,提出了兩種模型:
- Attention-based LSTM (AT-LSTM)
- Attention-based LSTM with Aspect Embedding (ATAE-LSTM)
3.1 Aspect Embedding
對於 ABSA 問題,aspect 資訊對於最終的情感判別是非常重要的。因此作者對每個 aspect 都學習一個相應的 aspect embedding 來表示,
3.2 AT-LSTM
我們已經學習出了 aspect embedding,那麼如何把它結合進模型里呢?這裡使用的是超級火的注意力機制,如下圖所示

為了更好地理解上述模型,首先回顧一下傳統注意力機制,也就是 key-value-query 模型,簡單來說就可以理解為是一種加權和,具體可以參考理解 Attention 機制原理及模型[4]。這裡可以認為key=H
, value=H
, query=aspect embedding
,整個 attention 的過程可以用數學表示為:
其中 r 表示各 hidden state 帶權重後的表示,然後最終句子的表示為:
得到句子的表示後再進行情感分析:
3.3 ATAE-LSTM
為了進一步利用 aspect embedding 的資訊,類似於上一節中 TC-LSTM 中的思想,即將 aspect embedding 與 word embedding 共同組合成模型的輸入。模型的其他部分與 AT-LSTM 相同。

3.4 注意力結果可視化

3.5 試驗分析
論文使用的數據集是 SemEval 2014 Task 4[5]。


Learning to Attend via Word-Aspect Associative Fusion for Aspect-based Sentiment Analysis(AAAI2018)[6]
對於上一節的 ATAE-LSTM,作者認為仍然存在以下不足:
- 不是讓注意力層專註於學習上下文詞的相對重要性,而是給注意力層增加了對aspect和上下文詞之間的關係進行建模的負擔;
- 除了對順序資訊進行建模之外,LSTM的參數現在還承擔了額外的負擔,即,它還必須學習aspect和單詞之間的關係。ATAE-LSTM中的LSTM層在一個由sapect embedding主導的序列上進行訓練,這將大大增加模型的訓練難度;
- 簡單的拼接會使ATAE-LSTM中LSTM層的輸入加倍,這會增加LSTM層參數成本, 影響記憶體佔用量,計算複雜性和存在過擬合風險。
針對以上提出了 Aspect Fusion LSTM (AF-LSTM),模型整體框架如下:

4.1 Word-Aspect Fusion Attention Layer
在輸入經過 embedding 層和 LSTM 層之後進入到 Word-Aspect Fusion Attention Layer,這也是該模型的重點。
- 「Normalization Layer(optional):」 在隱狀態矩陣和 aspect vector 進行交互之前可以選擇性地對其進行正規化操作,可以選用 Batch Normalization;
- 「Associative Memory Operators:」 用於計算 context word 和 aspect word 之間的關係。有兩種:circular correlation 和 circular convolution
- circular correlation
也可以用傅里葉變化得到:
circular convolution

3.「Learning Attentive Representations:」 將 aspect 和 context 進行 fusion 之後得到的向量表示進行 attention 操作
4.2 試驗分析

Targeted Aspect-Based Sentiment Analysis via Embedding Commonsense Knowledge into an Attentive LSTM(AAAI-18)[1]
作者在對先前論文review之後給出了幾個仍未解決的問題:
- target包含多個實體或單詞時,現有的研究都是認為各部分重要性一致並且簡單地計算平均值作為向量表示;
- 使用hierarchical attention建模得到的target和情感詞之間的關聯是一個黑箱;
- 未引入包含更多資訊的外部知識
- 全局的attention會編碼與任務不相關的資訊
對此,文章給出了三個解決方案:
- 創建多層attention模型來分別明確計算目標詞(target)和整個句子;
- 將外部知識引入傳統LSTM網路;
- 將常識性情感知識融入深層神經網路。
整體框架如下所示,主要包括兩個組分:「sequence encoder」和「hierarchical attention」

- 「word embedding:」 原始句子 變為向量表示
- 「sequence encoder:」 將向量送入雙向LSTM得到每一個詞的隱狀態表示
- 「Target-Level Attention:」 對句子中的所有target實例(如上圖中的棕色框框)做self-attention獲得target word attention representation;
- 「Sentence-Level Attention:」 把步驟3得到的target words attention 向量和步驟2得到的所有隱狀態向量給contact起來,再做一次attention;
- 「Output:」 將步驟4得到的attention向量經過一個dense層和一個softmax層,得到最終的分類概率輸出。
「Commonsense Knowledge:SenticNet」
引入外部知識庫SenticNet,含有50000個實例,每個實例對應一系列情感屬性。情感屬性提供了每個實例的表示,也將各個aspect與其情感鏈接起來。

「Sentic LSTM」
為了能夠有效利用secticnet,本文對LSTM做了延伸:輸入門中情感概念的存在可以防止記憶細胞受到與已有知識衝突的輸入標記的影響。同樣,輸出門使用這些知識過濾存儲在記憶網路中的無關資訊,調控模型是否使用情感知識。

本集Over~期待馬上會有的PART II.
本文參考資料
[1]
一個關於 ABSA 的 PPT 介紹: https://www.iaria.org/conferences2016/filesHUSO16/OrpheeDeClercq_Keynote_ABSA.pdf
[2]
Effective LSTMs for Target-Dependent Sentiment Classification(Tang/COLING2016): https://arxiv.org/abs/1512.01100
[3]
Attention-based LSTM for Aspect-level Sentiment Classification(Wang/EMNLP2016): https://www.aclweb.org/anthology/D16-1058
[4]
理解 Attention 機制原理及模型: https://blog.csdn.net/Kaiyuan_sjtu/article/details/81806123
[5]
SemEval 2014 Task 4: http://alt.qcri.org/semeval2014/task4/
[6]
Learning to Attend via Word-Aspect Associative Fusion for Aspect-based Sentiment Analysis(Tay/AAAI2018): https://arxiv.org/pdf/1712.05403.pdf