【情感分析】基於Aspect的情感分析模型總結(二)

轉載自:NewBeeNLP

繼續之前的ABSA之旅

Interactive Attention Networks for Aspect-Level Sentiment Classification(IJCAI2017)[1]

這篇文章作者的思路也是將target和context進行交互獲取句子的準確表達,利用的模型是attention。與上面幾個模型不同的在於,這裡考慮了target可能存在好幾個word組成的短語,另外添加了一層對於target的attention操作用於計算權重。提出了Interactive Attention Networks(IAN), 整體模型框架如下:

1.1 IAN

  1. 輸入包括n個單詞的「context」: 和m個單詞的「target」 :
  2. 對輸入進行embedding層後輸入到LSTM網路中得到各個隱狀態表示;
  3. 對所有隱狀態求平均分別得到target和context的隱狀態表示,以此作為後續attention兩者的交互:
  4. 分別計算attention權重得分:
  5. 根據單詞權重計算target和context的最終表示:
  6. 將 和 拼接起來作為整個輸入句子的向量表示,並送入softmax計算類別概率

1.2 試驗分析

同樣數據集選用的也是SemEval 2014 Task 4,

Multi-grained Attention Network for Aspect-Level Sentiment Classification[2]

EMNLP 2018的一篇論文,作者分析了先前提出的ABSA任務模型的不足:

  • 使用的attention mechanism都是屬於粗粒度的(簡單地求和操作),如果對於target word和context都很長的話會引入額外的損失;
  • 另外,先前的工作都是將aspect和context視作是單獨的instance進行訓練,沒有考慮到具有相同上下文的instance之間的關聯,而這些關聯很有可能會帶有額外的資訊。

於是提出了一種解決ABSA問題的多粒度注意力網路(Multi-grained Attention Network, MGAN),主要的改進有:

  • 「細粒度注意力機制(fine-grained attention mechanism):」 單詞級別(word-level)的target和context之間的交互,可以減少粗粒度attention的損失;
  • 「多粒度注意力機制 (multi-grained attention network):」 粗粒度attention和細粒度attention結合;
  • 「aspect alignment loss:」 在目標函數中加入aspect alignment loss,以增強context相同而情感極性不同的aspect對context權重學習的差異性。

模型如下,可以分為四個部分:

  1. Input embedding layer
  2. contextual layer
  3. multi-grained attention layer
  4. output layer

2.1 Input Embedding Layer

輸入embedding層,使用的是預訓練好的Glove,獲得定長的aspect和context向量表示。

2.2 Contextual Layer

將上一步獲得的aspect和context向量矩陣送入雙向LSTM網路來捕獲輸入中詞與詞之間的關聯,得到一個sentence contextual outputaspect contextual output。然後這裡就可以把這兩個矩陣進行交互了,但是作者又另外考慮了在上下文中與aspect word距離不同的word應該有不同的權重,引入了「position encoding mechanism」:context中與aspect相距為l的單詞的權重 為:

「注意,aspect中的詞的權重設置為0。」 於是最終得到的優化後的sentence contextual output

2.3 Multi-grained Attention Layer

前面的部分可以說跟之前的工作大同小異,重點在於接下來的「多粒度注意力層」。

「(1)Coarse-grained Attention」

粗粒度attention的話跟之前的attention是一樣的,

  • C-Aspect2Context:對aspect矩陣Q進行求平均pool得到一個向量表示,將其與context矩陣H交互做attention,
  • C-Context2Aspect:這一步是跟C-Aspect2Context對稱的

「(2)Fine-grained Attention」

細粒度attention的目的是刻畫aspect對context或者context對aspect詞與詞之間的影響關係。首先定義H和Q元素之間的相似矩陣U,注意U的形狀為[N * M],U中每個元素 表示context中的第i個單詞和aspect中的第j個單詞之間的相似度,

  • F-Aspect2Context刻畫的是對於每一個aspect word,context對其的影響程度。首先求出矩陣U中每一行最大的值,然後對其歸一化操作得到和為一的權重分布後加權求和得到新的H表示
  • F-Context2Aspect刻畫的是對於每一個context word,aspect對其的影響程度。首先對U中每一行做歸一化操作,得到N個和為1 的權重表示,然後用N個長為M的向量去和矩陣M逐元素加權求和,最後將這N個新的表示相加取平均,得到aspect最後的細粒度表示。

24 Output Layer

在這一層將上述步驟得到的attention表示拼接起來,作為最終輸入句子的向量表示並送入softmax層分析情感得分。

2.5 Loss Function

模型選用的損失函數為:

其中第一項為交叉熵損失,第二項為單獨設計的aspect alignment loss,第三項為正則化項。這裡需要重點說一下aspect alignment loss。該損失作用於C-Aspect2Context attention部分,C-Aspect2Context attention是用於確定與特定的aspect相關性最高context中的單詞。加上了這個損失,在訓練過程中模型就會通過與其他aspect比較而更加關注對自己更重要的context word。

舉個栗子,在句子I like coming back to Mac OS but this laptop is lacking in speaker quality compared to my $400 old HP laptop中,通過與不同的aspect Mac OS相比,speaker quality應該更關注詞語lacking,而更少關注like

對於aspect列表中的任一對aspect 和 ,首先求出它們對context中某一特定單詞的attention權重差的平方,然後乘上 和 之間的距離 :

2.6 試驗分析

Aspect Level Sentiment Classification with Attention-over-Attention Neural Networks[3]

這篇文章的思路好像跟上一篇很像,模型可以分為四個部分:

  1. word embedding
  2. Bi-LSTM
  3. Attention-over-Attention
  4. Final Classification

3.1 Attention-over-Attention(AOA)

定義長度為n的句子 和長度為m的target

  1. 經過雙向LSTM得到的隱狀態表示為矩陣 , ,
  2. 接著計算兩者的交互矩陣 ;
  3. 通過對交互矩陣做基於列的softmax和基於行的softmax可以得到target-to-sentence attention 和sentence-to-target attention
  4. 對beta向量求平均,也就獲得target-level attention:
  5. 最後再做一次sentence層面的attention:

3.2 試驗分析

Over~PART III馬上達到戰場

本文參考資料

[1]

Interactive Attention Networks for Aspect-Level Sentiment Classification(Ma/IJCAI2017): https://arxiv.org/pdf/1709.00893.pdf

[2]

Multi-grained Attention Network for Aspect-Level Sentiment Classification: https://www.aclweb.org/anthology/D18-1380

[3]

Aspect Level Sentiment Classification with Attention-over-Attention Neural Networks: https://arxiv.org/abs/1804.06536

END