Paper link: http://leoncrashcode.github.io/Documents/EACL2017.pdf
Code link: https://github.com/vipzgy/AttentionTargetClassifier
Source: 2017EACL
Author: jasminexjf
Time: 2019-06-25
一、introduction of this blog
本文主要重现了论文Attention Modeling for Targeted Sentiment,这篇论文由Jiangming Liu创作并发表在EACL2017。通过阅读本文,你将会学习到:
- 如何去建立target实体和它上下文(context)的关系
- 三种不同的Attention模型的对比
- 如何用Pytorch实现该论文
二、task and problem
Targeted Sentiment Analysis是研究target实体的情感极性分类的问题。只根据target实体,我们没有办法判断出target实体的情感极性,所以我们要根据target实体的上下文来判断。那么,第一个要解决的问题就是:如何建立target实体和上下文之间的关系。
在这篇论文之前,已经有了很多种做法。
在Vo and Zhang(2015)的论文中提出的方法是:把一个句子拆分成了三部分,target部分,left context部分和right context部分(如图所示)
在Zhang et al.(2016)的论文中提出,用三个gated神经元来控制target,left context和right context之间的交互。
在Tang et al. (2016)的论文中提出的方法是:把target的embedding向量与它的上下文的embedding向量连接成为一个特殊的向量,然后使用递归神经网络分别对left context和right context进行编码。
以上两种方法都对解决第一个问题作出了很大的贡献,但是以上方法仍然没有明确的表示出每一个单词对target实体情感极性贡献的大小。所以第二个问题就是让机器学习到上下文中每个词对target实体的情感极性的贡献度。
先简单的介绍一下注意力机制。从视觉的角度来说,注意力模型就无时不刻在你身上发挥作用,比如你过马路,其实你的注意力会被更多地分配给红绿灯和来往的车辆上,虽然此时你看到了整个世界;比如你很精心地偶遇到了你心仪的异性,此刻你的注意力会更多的分配在此时神光四射的异性身上,虽然此刻你看到了整个世界,但是它们对你来说跟不存在是一样的。那么在判断target实体的情感极性上,如下面这句话:
She began to love [miley ray cyrus]1 since 2013 :)
首先分析这句话,miley ray cyrus就是target实体,1代表情感是积极的。假设我们的视线是一种资源,我们只能把资源分配给更能表达情感的词上面。‘since 2013’对情感的表达没有任何意义,我们把资源分给没有任何意义的词就是一种浪费,也是十分的不合理的。而‘love’和‘:)’这种能表达情感的词就会吸引我们更多的注意力。于是left context和right context就可以由加权和来表示:
left context = 0.1 * 'she' + 0.1 * 'began' + 0.1 * 'to' + 0.7 * 'love'
right context = 0.1 * 'since' + 0.1 * '2013' + 0.8 * ':)'
三、model
本文提出了3种模型,分别是:BILSTM-ATT;BILSTM-ATT-C; BILSTM-ATT-G这三种模型。这三者都需要经过word embedding层和BILSTM层:
对于输入句子经过embedding层得到