点击上方,选择星标或置顶,每天给你送干货!
阅读大概需要10分钟
跟随小博主,每天进步一丢丢
继续之前的ABSA之旅
这篇文章作者的思路也是将target和context进行交互获取句子的准确表达,利用的模型是attention。与上面几个模型不同的在于,这里考虑了target可能存在好几个word组成的短语,另外添加了一层对于target的attention操作用于计算权重。提出了Interactive Attention Networks(IAN), 整体模型框架如下:
同样数据集选用的也是SemEval 2014 Task 4,
EMNLP 2018的一篇论文,作者分析了先前提出的ABSA任务模型的不足:
于是提出了一种解决ABSA问题的多粒度注意力网络(Multi-grained Attention Network, MGAN),主要的改进有:
模型如下,可以分为四个部分:
输入embedding层,使用的是预训练好的Glove,获得定长的aspect和context向量表示。
将上一步获得的aspect和context向量矩阵送入双向LSTM网络来捕获输入中词与词之间的关联,得到一个sentence contextual output
和aspect contextual output
。然后这里就可以把这两个矩阵进行交互了,但是作者又另外考虑了在上下文中与aspect word距离不同的word应该有不同的权重,引入了「position encoding mechanism」:context中与aspect相距为l的单词的权重
为:
「注意,aspect中的词的权重设置为0。」 于是最终得到的优化后的sentence contextual output
为
前面的部分可以说跟之前的工作大同小异,重点在于接下来的「多粒度注意力层」。
「(1)Coarse-grained Attention」
粗粒度attention的话跟之前的attention是一样的,
「(2)Fine-grained Attention」
细粒度attention的目的是刻画aspect对context或者context对aspect词与词之间的影响关系。首先定义H和Q元素之间的相似矩阵U,注意U的形状为[N * M],U中每个元素 表示context中的第i个单词和aspect中的第j个单词之间的相似度,
在这一层将上述步骤得到的attention表示拼接起来,作为最终输入句子的向量表示并送入softmax层分析情感得分。
模型选用的损失函数为:
其中第一项为交叉熵损失,第二项为单独设计的aspect alignment loss,第三项为正则化项。这里需要重点说一下aspect alignment loss。该损失作用于C-Aspect2Context attention部分,C-Aspect2Context attention是用于确定与特定的aspect相关性最高context中的单词。加上了这个损失,在训练过程中模型就会通过与其他aspect比较而更加关注对自己更重要的context word。
举个栗子,在句子I like coming back to Mac OS but this laptop is lacking in speaker quality compared to my $400 old HP laptop
中,通过与不同的aspect Mac OS
相比,speaker quality
应该更关注词语lacking
,而更少关注like
。
对于aspect列表中的任一对aspect 和 ,首先求出它们对context中某一特定单词的attention权重差的平方,然后乘上 和 之间的距离 :
这篇文章的思路好像跟上一篇很像,模型可以分为四个部分:
定义长度为n的句子 和长度为m的target
Interactive Attention Networks for Aspect-Level Sentiment Classification(Ma/IJCAI2017): https://arxiv.org/pdf/1709.00893.pdf
[2]Multi-grained Attention Network for Aspect-Level Sentiment Classification: https://www.aclweb.org/anthology/D18-1380
[3]Aspect Level Sentiment Classification with Attention-over-Attention Neural Networks: https://arxiv.org/abs/1804.06536
- END -