张瑾晖 方面级情感分析--基于Attention机制模型的演进
新闻来源:IR实验室       发布时间:2019/7/18 0:00:00

  方面级情感分析是情感分析中的一个经典任务。泛化地讲,该任务是针对情感目标进行的情感分析。情感词的目标不同,情感词表达的情感极性也可能不同。该任务可以拆解为两个阶段:首先找出句子中包含的所有方面,然后对所有方面做情感极性的预测。针对该任务的深度学习模型经历了一个线索比较明确的演进过程。本文将对方面级情感分析任务做一个简介,然后梳理该任务模型的演进过程,重点讲解发表于EMNLP 2018的Multi-grained Attention Network。

1. 任务介绍

方面级情感分析任务可以形式化地表示成已知一个二元组(target, context),求该二元组对应的情感极性。其中,target表示情感针对的目标;context是target所在的上下文,一般是整个评论句子;target是context中的子串;情感极性一般有positive、negative、neutral三种。该任务的经典描述可以参见SemEval-2014 Task 4、SemEval-2015 Task 12、SemEval-2016 Task 5。本文忽略了该任务的第一个阶段,即假设文本中的所有方面都是给定的,只需要预测每个方面对应的情感极性。

举例如下。

image.png

图1 任务举例

在该例中,两个方面是已知的,即picture quality和battery life。模型可以将两个方面与上下文中的相关情感词联系起来,从而得到两个方面各自的情感极性。

需要注意的是,例中的两个方面都由两个单词组成,但是两个单词在方面中起到的作用并不是同等重要的。在“picture quality”中,“picture”对方面的描述更重要。此外,上下文各个单词对于某个方面情感极性推断的重要程度,也是不同的。很明显,例子中,“amazing”和“too short”对预测起到的作用要更大。如果模型能够对上面两点做有效建模,将会对结果有较好的提升。

2. 语料介绍

该任务比较经典的语料有SemEval-2014 Task 4中Restaurant、Laptop两个领域的语料,以及由Dong等人[1]构建的Twitter语料。对前两个语料做预处理,只保留positive、negative、neutral三个标签。三个语料的规模如图2。

image.png

图2 语料规模

3. 模型演进

下面对2016年以来该任务中具有代表性的模型做简单梳理。

3.1 TD-LSTM

模型结构[2]如图。

image.png

图3 TD-LSTM

    作者使用两个LSTM,一个从前到后输入左侧文本+target,另一个从后到前输入右侧文本+target。然后,作者将两个LSTM最后一个时间步的隐态向量拼接起来,送入softmax进行分类。

    LSTM对最近处理的单词会有一个较大的权重,作者利用这个特点,对target做了一个定性的强调,相比使用LSTM取得了不错的效果。

3.2 ATAE-LSTM

模型结构[3]如图。

image.png

图4 ATAE-LSEM

作者在两处引入了target信息:在输入部分,将target向量与每个单词的词向量拼接起来;在隐态部分,将target向量与每个时间步的隐态向量做Attention,得到文本的加权表示r。

在该模型中,作者使用Attention机制对文本各个单词做了定量的强调。

3.3 IAN

模型结构[4]如图。

image.png

图5 IAN

之前的研究都是引入target信息对文本进行建模,本文作者认为,target中不同单词的重要程度也是不同的,有必要使用Attention对target进行建模。因此,作者提出了交互式的Attention网络,使用target/context信息对context/target做Attention,最后将两者加权后的表示拼接起来送入分类层。

3.4 GCAE

模型结构[5]如图。

image.png

图6 GCAE

该文的作者独树一帜,在CNN中使用了一个类似Attention的机制。作者在一个卷积核的计算中引入了target信息,然后将该卷积核计算的结果作为门控,与并行计算的另一个卷积核的结果相乘。

该模型效果较好,同时由于使用了CNN,所以可以并行计算。

4. MGAN

    本节将对发表于EMNLP 2018的Multi-grained Attention Network做详细讲解。

4.1 Abstract

对ABSA(Aspect Based Sentiment Analysis)任务,作者提出了一种多粒度的attention network。

ABSA任务中,现有的模型主要使用粗粒度的attention。如果某个方面包含多个单词或者有很长的上下文,那么就可能会有信息丢失。因此,作者做了以下几点改进:

1、 提出了一种细粒度的attention,它可以获取aspect和context之间单词级别的相互影响。

2、 用细粒度和粗粒度的attention组成多粒度attention网络。

3、 已有的工作都是对一个aspect及其context进行训练。作者设计了一个aspect alignment loss来描述具有相同上下文的aspect之间的相互影响。作者通过实验,证明aspect alignment loss的确可以带来有用的额外信息。

4.2 Introduction

对于ABSA任务中attention的使用,作者进行了分析。

attention可以更好地建模aspect的影响,让模型把更多的注意力放在context中重要的单词上。已有的工作主要通过相加取平均得到aspect vector,然后通过attention学习context的权重。在IAN中,作者提出了一种双向的互动attention,分别使用context和aspect的平均embedding,对aspect和context学习权重。

对于上面的这种attention,作者提出了两点不足。

首先,上述工作都是粗粒度的attention,都是用求和取平均得到的embedding来引导权重的学习。但是应该注意到,简单的求和取平均可能会导致信息的丢失,尤其是对那些由多个单词组成的aspect或者有较长上下文的aspect。

作者举了一个例子,这里说明大概意思。对较长的context取average vector,可能会丢失信息,导致对aspect权重学习的效果不好;对aspect取average vector,得到的vector可能会使模型学习的context权重偏离aspect的核心词,如speaker quality中的quality。

其次,已有的工作都是把aspect和它的上下文视作单独的instance,分别训练每个instance,这些工作都忽略了具有相同上下文的instances之间的联系。具有相同上下文的aspect之间的相互影响可能会带来额外的有用信息。

用简单的情况做解释。假设一个句子中有两个aspect,它们分别关注context中的两个单词A和B。如果两个aspect对应的情感极性是相反的,并且其中一个aspect重点关注了context中的单词A而较忽视单词B,那么另一个aspect的关注程度就应该相反。

为解决上面的两个问题,作者提出了多粒度的attention网络。

为了更好地利用aspect级别的交互信息,作者还为目标函数设计了aspect alignment loss,以增强context相同而情感极性不同的aspect对context权重学习的差异性。

4.3 Our Approach

    首先说明符号的使用。

l  句子s长度N

l  s中有k个aspect

l  aspect的长度为M

l  词向量维度dv

l  词典大小V

l  LSTM隐态维度d

4.3.1 Input Embedding Layer

分别获取context和aspect的词向量矩阵dv*N、dv*M。

4.3.2 Contextual Layer

把获得的两个词向量矩阵过双向LSTM,得到context对应的隐态矩阵H(2d*N)以及aspect对应的隐态矩阵Q(2d*M)。

作者还使用相对位置权重来改进context的隐态矩阵H。假设aspect是一个整体,context中某个单词 j 与aspect相隔L个单词,那么单词 j 的相对位置权重计算如下:

image.png

所以H可以优化为:

image.png

4.3.3 Multi-grained Attention Layer

作者设计了细粒度attention,这种attention可以刻画aspect/context中的每个单词对context/aspect中每个单词的重要程度。作者把细粒度和粗粒度的attention权重拼接起来获得文本最终的表示。

此外,作者认为,考虑aspect之间的关联性可以引入额外的有用信息,因此作者设计了aspect alignment loss,用来增强同context不同情感极性的aspect的权重分布差异。

(1)Coarse-grained Attention

C-Aspect2Context

对aspect的embedding做average pooling,用得到的average embedding引导context权重的学习。

image.png

image.png

C-Context2Aspect

对context的embedding做average pooling,用得到的average embedding引导aspect权重的学习。

image.png

(2)Fine-grained Attention

定义一个H和Q之间的相似度矩阵image.pngimage.png表示context中第i个单词与aspect中第j个单词的相似度。image.png计算方法如下:

image.png

Wu是可训练的权重矩阵,“;”表示向量的拼接。

下面使用矩阵U计算两个方向上的attention权重。

F-Aspect2Context

F-Aspect2Context刻画了context各个单词对于aspect的重要程度,单词越重要,对情感极性的影响就越明显。

首先取U中每一行的最大值,再将这些最大值归一化,得到和为1的N个attention权重,然后加权求和,就得到H新的表示。

image.png

image.png

注意这一步的作用是刻画context中各个单词对于aspect的重要程度,所以在第一步取最大值即可,不必在意context的当前词与aspect中哪个单词更相似。

F-Context2Aspect

F-Context2Aspect刻画了aspect中各个单词对于context的重要程度。

首先对U矩阵中的每一行做归一化操作,得到每行的M个和为1的权重。然后将每行的权重对Q做加权求和,得到N个新的aspect表示。最后将这N个新的表示相加取平均,得到aspect最后的细粒度表示。

image.png

image.png

4.4 Output Layer

最后将两个粗粒度表示、两个细粒度表示拼接起来,得到8d的m向量送入分类层:

image.png

4.5 Model Training

为了强调同context不同情感极性的aspect之间的权重差异性,作者为C-Aspect2Context attention weights设计了aspect alignment loss。

在该loss的限制下,某个aspect会与相关的aspect作比较,然后再关注context中重要的部分。

作者先计算了不同aspect之间的语义距离。

image.png

注意,这里使用的是粗粒度的attention,所以公式中的Q代表average pooling之后某个aspect的表示,设句子中有K个aspect,那么就会有K个Q。

image.png

设计的loss如上。先求某两个aspect对同一context单词的权重差,然后平方,乘以两个aspect之间的语义距离,再对所有context单词做相同运算,最后求和;最后在K个aspect之间两两做相同的运算,求和,得到aspect align loss。

总的loss由三部分组成:

image.png

4.6 Experiments

作者设计实验验证了以下两点:

1.aspect和context之间的单词级别交互可以减少信息的丢失并提升模型性能。

2.具有同context不同情感极性的aspect之间的联系可以带来额外有用的信息。

5. 总结

分析上述模型的演进过程,可以得到下面的几点结论。

1.Attention可能是aspect based sentiment analysis热门的一个原因。

各个模型的基本思想都是利用Attention,充分挖掘target与context之间的信息,优化表示。

2.基于Memory Network也有一些研究,但是目前关注不多。

3.对于ABSA任务,除了Attention,还可以有其他的思路,比如引入额外信息、多任务、迁移、自建语料等。

参考文献

[1]Li Dong, Furu Wei, Chuanqi Tan, Duyu Tang, Ming Zhou, and Ke Xu. 2014. Adaptive recursive neural network for target-dependent twitter sentiment classification. In Proceedings of ACL, pages 49–54.

[2]Duyu Tang, Bing Qin, Xiaocheng Feng, and Ting Liu. 2016a. Effective lstms for target-dependent sentiment classification. In Proceedings of COLING, pages 3298–3307.

[3]Yequan Wang, Minlie Huang, xiaoyan zhu, and LiZhao.2016. Attention-based lstm for aspect-level sentiment classfication. In Proceedings of EMNLP, pages 606–615.

[4]Dehong Ma, Sujian Li, Xiaodong Zhang, and Houfeng Wang. 2017. Interactive attention networks for aspect-level sentiment classfication. In Proceedings of IJCAI, pages 4068–4074.

[5]Xue W , Li T . 2018. Aspect Based Sentiment Analysis with Gated Convolutional Networks. In Proceedings of ACL.

[6]Feifan Fan, Yansong Feng, Dongyan Zhao. 2018. Multi-grained Attention Network for Aspect-Level Sentiment Classification. In Proceedings of EMNLP.