NLPCC20@基于图注意网络的句子成分感知细粒度情感分析模型SCAN

论文信息

论文全名
Sentence Constituent-Aware Aspect-Category Sentiment Analysis with Graph Attention Networks
论文会议:NLPCC2020
论文地址
https://arxiv.org/abs/2010.01461
论文代码
https://github.com/l294265421/SCAN


论文背景

这篇论文的研究领域是自然语言处理(NLP)中的细粒度情感分析ACSA(aspect category sentiment analysis)。简单来说就是给出一个句子以及句子中的一个aspect,求这个aspect对于这个句子的情感极性。下图给出一个例子。
在这里插入图片描述
图中有两个aspect分别是memory和battery life,此外还给出了句子的语义依存关系。对于memory的情感极性是negative而对于battery life的情感极性是positive。
这篇论文的背景是大部分的论文都是直接用给定的aspect来定位与aspect相关的情感词。这种做法存在不合理的地方,因为句子中可能存在多个aspect与多个情感词,直接用aspect来定位的话可能会使两个不相干的aspect与情感词关联起来。因此,这篇论文提出了一种句子成分感知神经网络(sentence constituent-aware network),其中包括两个图注意力网络模块与一个交互式的loss函数。


论文方法

首先给出论文模型图
在这里插入图片描述
1.大概思路:SCAN和之前博文中推荐过的MIMLLN[1]论文有点像,都是包含两个模块,分别是ACD和ACSA模块。ACD模块作用是识别句子中蕴含的aspect,ACD是一个附加任务。对于一个给定的aspect,loss帮助ACD任务来找到那些可以预测出该aspect的结点,之后通过ACSA任务根据这些结点来预测句子针对这个aspect的情感极性。下面举个例子
在这里插入图片描述
从图中可以看出,ACD任务从句子”Great taste bad service”中找到两个单词”taste”和”service”,”taste”可以推理出aspect “food”, “service”可以推理出aspect ”service”。之后ACSA任务分别预测出情感极性为positive与negative。
SCAN包含两个图注意力神经网络(GAT),分别对应ACD和ACSA两个任务。给定一个句子,作者首先用Berkeley Neural Parser[2]来生成语义依存关系树,之后两个GAT根据语义依存关系树分别为两个任务分别生成结点表示。ACD任务的GAT主要关注于那些可以推测出aspect的单词,而ACSC的GAT主要关注于情感单词。
2.word embedding layer & LSTM layer
Word embedding 用的是斯坦福的Glove
3.语义依存关系树上的图注意力网络
这篇论文中的图,即包括每个单词,也包括单词组成的结构。如下图所示
在这里插入图片描述
一个图有n+m个结点,其中n代表n个单词,m代表内部结点。对于图,每个叶子结点(具体的单词结点)都与LSTM中对应的隐含层状态相对应。GAT聚合结点邻居的隐含层状态来更新结点表示。上图所示的句子的图注意力网络如下图所示:
在这里插入图片描述
SCAN中的GAT用的是多头attention,公式如下:
在这里插入图片描述
将以上的GAT过程简写为
在这里插入图片描述
其中A为图的邻接矩阵,论文分别对ACD和ACSA使用了GAT
在这里插入图片描述
4.Attention层
这个层输入为ACD任务的GAT输出,作用是对应所有预先定义的aspect categories输出attention value。例如,对于第j个aspect category,attention value计算公式为
在这里插入图片描述
5.Preduction 层-ACD
根据上一步得到的attention value来生成针对ACD任务的句子表示,例如,对于第j个aspect category,句子表示公式为
在这里插入图片描述
之后第j得到的表示再用来预测所有预先定义的aspect category。
在这里插入图片描述
6.prediction层-ACSA
ACSA任务中使用的是ACD任务产生的attention value,举个例子,对于第j个aspect category,预测的输出公式为
在这里插入图片描述
7.loss function
对于ACD任务的loss函数为
在这里插入图片描述
针对ACD任务,论文还设计了一种interactive loss(iLoss)如下图所示,可以看出iLoss的公式的后半部分是ACD loss公式的一种特殊情况,对应的是ACD标签为0的时候,iLoss的作用是当SCAN针对一个aspect输出的表示可以预测出其他aspect时会惩罚SCAN(也就是增大loss值)
在这里插入图片描述
ACSA任务的loss函数为
在这里插入图片描述
最终的loss函数为
在这里插入图片描述


实验数据

在这里插入图片描述
在这里插入图片描述


参考文献

[1] Multi-Instance Multi-Label Learning Networks for Aspect-Category Sentiment Analysis (EMNLP 2020), arxiv.org/abs/2010.02656
[2] Kitaev, N., Klein, D.: Constituency parsing with a self-attentive encoder. In: ACL (Volume 1: Long Papers) (2018)


最后欢迎大家关注公众号NLP学习者,大家一起学习
在这里插入图片描述

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值