写在前面
网上对这篇论文的解读非常少,质量也不高,笔者在读的时候,顺手做了下笔记,分享出来。笔者在读的过程中,感觉这篇论文偏实际应用,虽然暂时没有找到源码,但是复现起来也是比较容易的。
《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的关系才能得到正确的语义情感分类。
那么,应该如何建模?
- target和形容它的context其实是可以互相推理的,所以两种虽然建模可以分开,但是模型学习的时候是通过两者之间的交互关系来学习的。
- target和context不止一个单词,比如target:"picture quality"和context:"clear-cut"。这里的picture的重要度比quality重要,涉及到不同权重,自然而然就引入了attention机制。这篇论文也是第一个提出要将target与context分别计算attention weights的。
基于上述两种思想,作者提出了一种interactive attention network(IAN)模型,该模型基于LSTM,与attention机制.框架图结构如下:
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没有变形,就是传统的方法:
image最后得到隐藏层输出[ht1,ht2,...htm],[hc1,hc2,...,hcn]
得到初始的target和context表示
方法就是平均所有的隐藏层数值:
imageattention 机制
见图中推导过程:
image其中,cr和tr就是target和context的最终向量表示
分类器输入
先将cr和tr串联,然后加权和输入tanh,再将结果输入softmax,根据概率最大的得出属于的情感倾向:
image模型训练
模型训练需要训练的参数包括LSTM的参数,attention中分数函数的[Wa,ba],softmax层的[Wt,bt]和word embedding.
损失函数用的是带L2正则项的交叉熵函数。
然后反向传播开始训练把..为防止过拟合,使用dropout.
实验结果
IA方法与之前的几种方法对比,效果提升明显
如下图:
image超参设置
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:
image颜色越深的attention weights值越大,可以看出:
- 介词,连接词等attention weights小
- 不同的target对应的context AW不同,对应正确
- context能反过来对target的词的AW产生影响,比如variety的AW就比较高
写在最后
之后有一篇论文比这篇效果更好《Aspect Level Sentiment Classification with Deep Memory Network》,原因可能是它用了多次hop,提取到了更抽象的内容,本篇论文只做了一次attention,学习到的东西有限。
网友评论