《Interactive Attention Networks for Aspect-Level Sentiment Classification》笔记

写在前面

网上对这篇论文的解读非常少,质量也不高,笔者在读的时候,顺手做了下笔记,分享出来。笔者在读的过程中,感觉这篇论文偏实际应用,虽然暂时没有找到源码,但是复现起来也是比较容易的。

论文下载地址

《Interactive Attention Networks for Aspect-Level Sentiment Classification》,这篇论文大致是讲利用attention机制将target和context联系起来,用于多层次语义分类。

多层次语义情感分类的解释是,如:

a group of friendly staff, the pizza is not bad, but the beef cubes are not worth the money!

这句话里,对staff,pizza, beef的情感是不同的,一句话里面的情感是多层次的。

上面的三个名词都是target,这段话上下文就是是指context.

本文认为Aspect-level的情感分类任务中,target与context应该具有交互性,即context应该是target-specific的,target也应该是context-specific的,传统模型中将二者分开建模或只针对其一,本文利用attention实现二者交互。

我关注的更多的应该就是这里面的attetion机制是如何将上述target和context结合的。

Itroduction里面有些传统的做法,比如词袋,情感词库,SVM…这些方法都很容易遇到瓶颈,现在的做法一般都是利用深度学习进行多层次语义分析。

2011年的一篇论文解释了为何传统的方法会遇到很大的瓶颈(40% errors),主要是因为之前的方法都没有有效的利用target信息。之后就有大量论文关注target的作用,但是这些论文都忽视了target与context的关系。

作者的观点是:

In our opinion, only the coordination of targets and their contexts can really enhance the performance of sentiment classification.

举例如下,观察下面两个句子的short:

“The picture quality is clear-cut but the battery life is too short
Short fat noodle spoon, relatively deep some curva

很显然,在上个context上下文short对于target battery是负面的,下面一个context上下文中,short对于target spoon是中性的.

所以结合short与具体的context的关系才能得到正确的语义情感分类。

那么,应该如何建模?

  1. target和形容它的context其实是可以互相推理的,所以两种虽然建模可以分开,但是模型学习的时候是通过两者之间的交互关系来学习的。
  1. target和context不止一个单词,比如target:”picture quality”和context:”clear-cut”。这里的picture的重要度比quality重要,涉及到不同权重,自然而然就引入了attention机制。这篇论文也是第一个提出要将target与context分别计算attention weights的。

基于上述两种思想,作者提出了一种interactive attention network(IAN)模型,该模型基于LSTM,与attention机制.框架图结构如下:

《《Interactive Attention Networks for Aspect-Level Sentiment Classification》笔记》 image

从框架图分析论文设计的IAN模型的构造,target和context两方面分别输入相应的word embeddings,再将WE输入到LSTM网络中,获得隐藏层输出,再利用target和context隐藏层的输出平均值,结合attetion机制,生成attention weights.最终target attention weights和context attention weights串联起来作为softmax函数的输入,得到分类结果。

word embedding

本文的word embedding采用的是预先训练好的词向量(从读者我的经验来说,一般都是选用预先训练好的词嵌入集,然后fine-tuning得到最终的word-embedding)

LSTM

LSTM没有变形,就是传统的方法:

《《Interactive Attention Networks for Aspect-Level Sentiment Classification》笔记》 image

最后得到隐藏层输出[ht1,ht2,…htm],[hc1,hc2,…,hcn]

得到初始的target和context表示

方法就是平均所有的隐藏层数值:

《《Interactive Attention Networks for Aspect-Level Sentiment Classification》笔记》 image

attention 机制

见图中推导过程:

《《Interactive Attention Networks for Aspect-Level Sentiment Classification》笔记》 image

其中,cr和tr就是target和context的最终向量表示

分类器输入

先将cr和tr串联,然后加权和输入tanh,再将结果输入softmax,根据概率最大的得出属于的情感倾向:

《《Interactive Attention Networks for Aspect-Level Sentiment Classification》笔记》 image

模型训练

模型训练需要训练的参数包括LSTM的参数,attention中分数函数的[Wa,ba],softmax层的[Wt,bt]和word embedding.

损失函数用的是带L2正则项的交叉熵函数。

然后反向传播开始训练把..为防止过拟合,使用dropout.

实验结果

IA方法与之前的几种方法对比,效果提升明显

如下图:

《《Interactive Attention Networks for Aspect-Level Sentiment Classification》笔记》 image

超参设置

《《Interactive Attention Networks for Aspect-Level Sentiment Classification》笔记》 image

实际案例分析

这里用到的一个句子是:

the fish is fresh but the variety of fish is noting out of ordinary.

这句话有两个target “fish”和”variety of fish”

下图展示了IAN计算的target与context对应的attention weights:

《《Interactive Attention Networks for Aspect-Level Sentiment Classification》笔记》 image

颜色越深的attention weights值越大,可以看出:

  1. 介词,连接词等attention weights小
  2. 不同的target对应的context AW不同,对应正确
  3. context能反过来对target的词的AW产生影响,比如variety的AW就比较高

写在最后

之后有一篇论文比这篇效果更好《Aspect Level Sentiment Classification with Deep Memory Network》,原因可能是它用了多次hop,提取到了更抽象的内容,本篇论文只做了一次attention,学习到的东西有限。

    原文作者:bupt_周小瑜
    原文地址: https://www.jianshu.com/p/0c9d987141b6#comments
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞