Aspect Level Sentiment Classification with Deep Memory Network
問題:這個memory只是當前sentence,這怎麼能利用前一句或者後一句的信息呢。
來源:EMNLP2016
問題:aspect level 情感分析
作者:simple
鏈接:《Aspect Level Sentiment Classification with Deep Memory Network》學習筆記 - 西土城的搬磚日常 - 知乎專欄來源:知乎
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。摘要
採用多層LSTM,每一層都是一個有額外記憶的attention模型,實驗表明,本模型優於SVM和LSTM以及,基於attention的LSTM,而且9層的網路比LSTM速度更快。
比如在句子"great food but the service was dreadful"里,對於food這個aspect的是positive,而對於service是negative。
一. aspect level情感分析相關工作
- SemEval-2014 Task 4: Aspect Based Sentiment Analysis
- NRC-Canada-2014: Detecting Aspects and Sentiment in Customer Reviews (Kiritchenko et al., 2014. SemEval)
- DCU: Aspect-based Polarity Classification for SemEval Task 4 (Wagner etal., 2014 SemEval)
- Adaptive Recursive Neural Network for Target-dependent Twitter Sentiment Classification (Dong et al..,2014. ACL)
- Aspect specificsentiment analysis using hierarchical deep learning (Lakkaraju et al., 2014. NIPS)
- Target-dependent twitter sentiment classification withrich automatic features (Vo and Zhang, 2015. IJCAI);
- Target-Dependent Sentiment Classification with Long Short Term Memory (Tang et al., 2015a) attention-based LSTM
- PhraseRNN: Phrase Recursive Neural Network for Aspect-based Sentiment Analysis ((Nguyen and Shirai, 2015. EMNLP)
- Effective LSTMs for Target-Dependent Sentiment Classification
2、3:傳統SVM分類器方法實現aspect level的情感分析;
4、5、6、7、8:神經網路方法實現aspect level的情感分析。分類器方法
將情感分析作為一個文本分類問題,用機器學習的方法訓練文本分類器。分類器的性能極大依賴於文本特徵、情感詞典等信息。目前效果比較好的是SVM。
神經網路方法
利用神經網路學習低維文本特徵,獲取文本的語義表示。
神經網路的問題
傳統的神經網路如LSTM能明確地獲取上下文信息,但是不能確定一個aspect比較重要的上下文線索。標準的LSTM以序列的方式工作,對上下文中的每個詞採用相同操作,很難剝啄那些詞比較重要。
例子:great food but the service was dreadful!
在這個句子里,對於「food」這個aspect來說,要判斷它的情感傾向,「great」是一個重要的線索,「dreadful」基本沒什麼用。同樣的對於「service」這個aspect來說,「dreadful」比較重要,「great」就沒有什麼作用了。
解決辦法
使用attention memory的層級神經網路,學習每個context word的重要性,並利用此信息來作為句子的文本表示。此過程完全不依賴語法分析器和情感詞典。
二. memory network
本文想法來源於最近在問答領域比較火的memory network,這是Weston在14年提出的想法,Sainbayar Sukhbaatar在15年提出了讓memory network進行end to end的訓練方法,以及採用多層神經網路利於提取更加抽象的evidence,並在QA上取得了較好的效果。
關於memory network的相關內容可參考下面兩篇論文:
- [Weston et al.2014] MEMORY NETWORKS
- [Sukhbaatar et al.2015] End-To-End Memory Networks
Memory network包括:一個memory m,四個component I,G,O,R
- m:一組vector
- I:把輸入input轉化成feature representation
- G:根據新的輸入input更新老的memory
- O:根據current memory和當前輸入input得到output representation
- R:根據output representation得到模型輸出
輸入:一系列sentence:,和question q
task:根據這些sentence得到q的答案- I每次讀一個sentence ,encode得到vector representation;
- G根據當前的sentence representation更新memory;
- 所有sentence都處理完得到完整的memory m,存儲這些sentence的語義信息;
- Encode question q得到;
- O根據從memory m選擇related evidence得到一個輸出向量o;
- R根據o得到最終的輸出。
三. 本文模型
問題定義
給一個句子s = {w1, w2, ..., wi, ... wn},包含n個單詞,其中wi是aspect word,每個詞都用詞向量來表示。
方法概述
給定句子和aspect word1、map each word into its embedding vector
這些word vectors包括context vectors和aspect vectors。aspect vectors: aspect vectors是aspect word的embedding的平均值。
context word vectors:
即sentence中除了aspect word之外的所有詞的word embedding堆疊到一起,這就是模型中的memory。
2、computational layer
- 模型包括多個computational layers,每個computational layer包括一個attention layer和一個linear layer;
- 第一個computational layer,attention layer的輸入是aspect vector,輸出memory中的比較重要的部分,linear layer的輸入是aspect vector。第一個computational layer的attention layer和linear layer的輸出結果求和作為下一個computational layer的輸入;
- 其它computational layer執行同樣的操作,上一層的輸出作為輸入,通過attention機制獲取memory中較重要的信息,與線性層得到的結果求和作為下一層的輸入,各層共享參數;
- 最後一層的輸出作為結合aspect信息的sentence representation,作為aspect-level情感分類的特徵,送到softmax。
Content Attention
attention機制的基本想法是在計算高級別的representation時,對lower position的詞進行加權。本模型則是使用attention模型來計算句子和某個aspect相關的representation,context word一方面對句子的語義貢獻未必相同,另一方面對於不同的aspect的情感傾向的重要性也是不一樣的。
輸入:external memory - m R(d*k) Vaspect R(d*1)
輸出:vet
優點:能夠根據mi和aspect的語義相關度安排其對應權值;attention model是可差分的,便於end-to-end更新。
Location Attention
除了考慮context word mi和aspect的內容相關度以外,也不能忽略location信息,畢竟距離aspect更近的單詞理論上更重要。將location of acontext word定義成距離aspect的距離。
作者定義了四種模型來encode位置信息:
Model 1:(參考[Sukhbaatar et al.2015])
n:句子的長度,k:hop number,:location ofModel 2: Model1的簡化,距離越遠,重要性越小。
Multiple Hops
如下面論文里提到的,單獨一個層就是一個簡單的加權平均的計算層,不足以解決語言中的複雜問題,多層能提取更抽象的語義信息。
- [Weston et al.2014] MEMORY NETWORKS
Sentiment Classification
- 最後一層的輸出當做特徵
- 送入softmax層
- 採用交叉熵損失函數
四. 實驗
數據集
使用SemEval 2014里的兩個領域的數據,並且去掉數量較少的第四類conflict。
和其他方法比較
1. Majority
2. Feature-based SVM using ngram features, parse features and lexicon features (Kiritchenko et al., 2014)
3. LSTM TDLSTM 考慮aspect,使用雙向LSTM TDLSTM+ATT 對於隱藏層向量使用attention機制。
4. ContextAVG 本模型的簡化版本,context word vector做平均。
TDLSTM+ATT的效果不好:由於其只選擇了word sequence的語義混合,並不合適於重點關注contexts的某些部分。而使用本文中的memory network則不使用對word sequence的ran計算元,直接應用attention機制在context word representations。
運行時間
4、Location Attention4個模型的對比
根據上圖可以看出:
- 隨著computational layers的增多,分類準確率有提升;
- 在computational layer數大於5的時候,四個模型準確率相差不大;
- model 2計算量最小,準確率也不差。
計算單元層數和location信息的作用分析
從Table 4和Table 5可以看出:
- 增加computational layer可以提取更abstractive的evidence(針對某個特定的aspect),更好的區分不同context word對特定aspect的貢獻;
- 引入location信息可以更好地捕獲針對特定aspect更重要的context信息。
錯誤分析
考慮location en-hanced model (Model 2):1. 非組合型的情感表達-比如"dessert was also to die for",die for的情感並不是die和for的情感的疊加;2. 有些複雜的情感詞包含多個詞-比如"ask for theround corner table next to the large window";3. 情感關係比如否定詞、對比和條件-比如"butdinner here is never disappointing, even if the pricesare a bit over the top"。
五. 相關工作
Aspect Level Sentiment Classification
The aspect wordin this work is given as a part of the input.
Compositionality in Vector Space
Attention and Memory Networks
就是把低level的representation當做memory,attention機制需要設計對低level的representation如何加權。
六. 結論
1、作者將memory network的思想用在aspect-level的情感分析上,通過上下文信息構建memory,通過attention捕獲對於判斷不同aspect的情感傾向較重要的信息,在實驗數據集上取得了較好的結果。和RNN、LSTM等神經網路模型相比,本文提出的模型更簡單計算更快。
2、將content信息和location信息結合起來學習context weight是一種比較適合aspect-level的情感分析的方法,對模型性能有較大提升。
3、多層計算單元可以學到更多更abstractive的信息,可以提升模型性能。
下一步計劃將句子的結構加入神經網路中學習。
推薦閱讀:
※全面理解word2vec
※lightgbm演算法優化實際案例分享
※《集異璧》作者侯世達瘋狂吐槽谷歌翻譯,AI讓譯者失業?還早著呢!
※【3】談談激活函數?
TAG:機器學習 |