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

情感分析連載系列第四期,雖遲但到!

Aspect Level Sentiment Classification with Deep Memory Network(EMNLP2016)[1]

文章借鑑了來自QA領域的記憶網絡解決ABSA問題。Memory Network提出的目的之一就是爲了解決RNN、LSTM等網絡的記憶能力較差的問題。它維護了一個外部的記憶單元用於存儲之前的信息,而不是通過cell內部的hidden state。如果有同學不太熟悉Memory Network,後續會整理一篇更爲詳細的解讀,稍安勿躁。

整體解決方案如下圖所示

1.1 Embedding

輸入是一個原始句子,需要將其映射到向量空間後輸入到模型中。常規操作,將context word和aspect word分別用向量表示

1.2 Attention

包括了兩部分:content attention和location attention

content attention

就是傳統的Key Value Query的形式

location attention

我們從直觀上來看,通常情況下,與aspect word距離較近的context word對於相應aspect的情感傾向的判斷更重要。於是就有了location attention。所謂的location attention其實就是把context word的位置信息加入到memory中。文中定義了四種方式來encode位置信息:

  • 「方式一:」

  • 「方式二:」

  • 「方式三:」  作爲模型的一個參數,隨機初始化,通過梯度下降學習得到。

  • 「方式四:」 與方式三類似,加了一層sigmoid。

1.3 Loss

CODE HERE[3]

Recurrent Attention Network on Memory for Aspect Sentiment Analysis(Tencent AI Lab/EMNLP 2017)[4]

論文采用多層注意力機制結合記憶網絡去捕獲句子中target word 與context word之間的聯繫。整體框架如下,主要分爲

  • input module,

  • memory module,

  • position-weighted memory module,

  • recurrent attention module,

  • output module.

2.1 BLSTM for Memory Building

在上一篇的論文中的記憶網絡只是簡單地將word embedding作爲memory,並不能準確識別例如Except Patrick, all other actors don’t play well這類的實體情感。於是在本文中引入雙向LSTM來捕獲這之間的深層次關聯。如果有L層BLSTM疊加,最終得到的memory vector表示爲

2.2 Position-Weighted Memory

當然,作者認爲target word在輸入句子中的位置信息也非常重要,更靠近target word的context word應該具有更高的重要性。

2.3 Recurrent Attention on Memory

這一部分的目的就是利用之前計算好的memory來表示出情感,然後用於分類。和上一篇論文一樣,使用GRU和堆疊的attention。

Aspect Based Sentiment Analysis with Gated Convolutional Networks(ACL2018)[5]

針對ABSA任務,之前研究效果較好的模型都是採用了LSTM+attention機制,這類模型過於複雜且參數較多訓練起來比較費時。

LSTM processes one token in a step. Attention layer involves exponential operation and normalization of all alignment scores of all the words in the sentence. Moreover, some models needs the positional information between words and targets to produce weighted LSTM, which can be unreliable in noisy review text.

因此作者提出一種基於門控機制的可並行訓練的CNN模型。

  • 將原始輸入embedding後送入包含兩個卷積操作的卷積層,第一個卷積對句子提取sentiment feature,第二個卷積額外加上了aspect embedding提取aspect feature,而且兩者使用的非線性激活函數也不一樣

  • 將上述得到的兩個輸出按位相乘,

    以上是針對Aspect-Category Sentiment Analysis(ACSA),如果是Aspect-Term Sentiment Analysis(ATSA)問題呢,我們沒有給定的aspect詞,每個句子需要預測的target term都不同,這時候可以用另外一個CNN來提取target term的representation

CODE HERE[6]


本文參考資料

[1]

Aspect Level Sentiment Classification with Deep Memory Network(Tang/EMNLP2016): https://arxiv.org/abs/1605.08900

[2]

Memory Networks論文串燒: https://blog.csdn.net/Kaiyuan_sjtu/article/details/90489213

[3]

CODE HERE: https://github.com/ganeshjawahar/mem_absa

[4]

Recurrent Attention Network on Memory for Aspect Sentiment Analysis(Tencent AI Lab/EMNLP 2017): https://www.aclweb.org/anthology/D17-1047

[5]

Aspect Based Sentiment Analysis with Gated Convolutional Networks(Xue/ACL2018): https://www.aclweb.org/anthology/P18-1234

[6]

CODE HERE: https://github.com/wxue004cs/GCAE

- END -

個人微信:加時請註明 (暱稱+公司/學校+方向)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章