Hope is a dangerous thing, but I have it.


【论文阅读】Multi-grained Attention Network for Aspect-Level Sentiment Classification (EMNLP 2018)

这是这周组会要讲的论文,虽然和我做的方向不太相关,但是emnlp和ACL上面有很多aspect-level的论文,并且他也有一个复杂的attention机制,想看看有没有什么可以借鉴的。

Basic Information

  • Name: Multi-grained Attention Network for Aspect-Level Sentiment Classification
  • Authors: Feifan Fan, Yansong Feng, Dongyan Zhao
  • URL: http://aclweb.org/anthology/D18-1380
  • Cite: Fan F, Feng Y, Zhao D. Multi-grained attention network for aspect-level sentiment classification[C]//Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing. 2018: 3433-3442.

Task & Contributions

这篇文章主要针对的是aspect-level的情感分析问题,这也是情感分析问题中的一个经典问题。针对这个问题,这篇文章主要有以下三个贡献:

  1. 提出了一个multi-grained attention network,即多粒度的注意力网络,平衡了细粒度(fine-grained)的attention和粗粒度(coarse-grained)的attention之间的关系。
  2. 对原来的loss函数进行了修改,添加了aspect的约束,使得同一个句子对应于不同sentiment的aspect得到的attention最大化,即使得aspect关注的单词尽可能不同。
  3. 实验证明了方法的有效性。

Method

对于给定的一个context,这里也就是一个句子,由N个单词组成。这个句子对应的有k个aspect,每个aspect 都有一个对应的sentiment。其中aspect是句子中的单词组成的序列。这个结构是一个句子和它对应的第i个aspect,这个aspect有M个单词。
   通过GloVe得到单词的embedding,然后分别输入双向LSTM中得到输出。在context部分,添加了一个location encoding,即认为与aspect越近的单词越重要。得到的aspect的表示Q是一个2dM的矩阵,context的表示H是一个2dN的矩阵。
    然后接了一个multi-grained attention层,这个层分为两部分,coarse-grained和fine-grained。首先是coarse-grained attention,这是2017年已经提出来的,就是一个双向attention结构,分为aspect2context和context2aspect两部分。以aspect2context为例,就是先对aspect的输出做一个average pooling,得到aspect的平均表示,并计算出context中每个单词关于这个平均表示的attention,即每个单词对这个aspect的重要性,然后相乘再求和得到一个总体表示。context2aspect是和这个对称的操作。这是粗粒度的attention部分,也就是aspect与context两个中间总有一个是平均的整体表示。中间就是细粒度的attention部分,是求得aspect和context单词之间的联系。这里使用到了一个alignment matrix,这是一个N * M的矩阵,表示context和aspect单词之间的相似性。再有了这个相似性矩阵之后,同样也分为context2aspect和aspect2context两部分,但是这两部分的计算又有所不同,在aspect2context部分,是通过考虑与文本单词与aspect 中每个单词相似性的最大值找到对这个aspect重要的词,然后求出一个表示。而context2aspect部分是利用相似性矩阵,用aspect将每个单词计算出来,然后得到文本的总体表示。细粒度的attention和粗粒度的attention相比就是将计算attention的部分全都细分到了单词的层面,而不仅仅是针对aspect或者context整体。
    然后将得到的四个总体表示级联,并经过一个softmax层,求得结果。
    这个方法得另一个贡献就是修改了损失函数,添加了一个aspect alighment loss。损失函数的思想就是针对这个context对应的具有不同sentiment的aspect,两两之间求一个aspect2context得到的attention的平方差,并使得最大化,使得每个aspect尽可能关注与它相关的词。

Experimet

根据本文的方法,实验主要分为三个部分:

  1. 和现有的state-of-art方法的对比。
  2. 和本文方法去掉一些(fine-grained attention, coarse-grained attention, aspect alighment loss)部分的对比。
  3. 以及aspect alighment loss作用的可视化。