【情感分析】基于Aspect的情感分析模型总结(二)

2020 年 3 月 2 日 深度学习自然语言处理

点击上方,选择星标置顶,每天给你送干货

阅读大概需要10分钟

跟随小博主,每天进步一丢丢


转载自:NewBeeNLP


继续之前的ABSA之旅

Interactive Attention Networks for Aspect-Level Sentiment Classification(IJCAI2017)[1]

这篇文章作者的思路也是将target和context进行交互获取句子的准确表达,利用的模型是attention。与上面几个模型不同的在于,这里考虑了target可能存在好几个word组成的短语,另外添加了一层对于target的attention操作用于计算权重。提出了Interactive Attention Networks(IAN), 整体模型框架如下:

1.1 IAN

  1. 输入包括n个单词的 「context」 和m个单词的 「target」
  2. 对输入进行embedding层后输入到LSTM网络中得到各个隐状态表示;
  3. 对所有隐状态求平均分别得到target和context的隐状态表示,以此作为后续attention两者的交互:
  1. 分别计算attention权重得分:
  1. 根据单词权重计算target和context的最终表示:
  1. 将  和  拼接起来作为整个输入句子的向量表示,并送入softmax计算类别概率

1.2 试验分析

同样数据集选用的也是SemEval 2014 Task 4,

Multi-grained Attention Network for Aspect-Level Sentiment Classification[2]

EMNLP 2018的一篇论文,作者分析了先前提出的ABSA任务模型的不足:

  • 使用的attention mechanism都是属于粗粒度的(简单地求和操作),如果对于target word和context都很长的话会引入额外的损失;
  • 另外,先前的工作都是将aspect和context视作是单独的instance进行训练,没有考虑到具有相同上下文的instance之间的关联,而这些关联很有可能会带有额外的信息。

于是提出了一种解决ABSA问题的多粒度注意力网络(Multi-grained Attention Network, MGAN),主要的改进有:

  • 「细粒度注意力机制(fine-grained attention mechanism):」 单词级别(word-level)的target和context之间的交互,可以减少粗粒度attention的损失;
  • 「多粒度注意力机制 (multi-grained attention network):」 粗粒度attention和细粒度attention结合;
  • 「aspect alignment loss:」 在目标函数中加入aspect alignment loss,以增强context相同而情感极性不同的aspect对context权重学习的差异性。

模型如下,可以分为四个部分:

  1. Input embedding layer
  2. contextual layer
  3. multi-grained attention layer
  4. output layer

2.1 Input Embedding Layer

输入embedding层,使用的是预训练好的Glove,获得定长的aspect和context向量表示。

2.2 Contextual Layer

将上一步获得的aspect和context向量矩阵送入双向LSTM网络来捕获输入中词与词之间的关联,得到一个sentence contextual output aspect contextual output 。然后这里就可以把这两个矩阵进行交互了,但是作者又另外考虑了在上下文中与aspect word距离不同的word应该有不同的权重,引入了「position encoding mechanism」:context中与aspect相距为l的单词的权重  为:

「注意,aspect中的词的权重设置为0。」 于是最终得到的优化后的sentence contextual output 为 

2.3 Multi-grained Attention Layer

前面的部分可以说跟之前的工作大同小异,重点在于接下来的「多粒度注意力层」

「(1)Coarse-grained Attention」

粗粒度attention的话跟之前的attention是一样的,

  • C-Aspect2Context:对aspect矩阵Q进行求平均pool得到一个向量表示,将其与context矩阵H交互做attention,
  • C-Context2Aspect:这一步是跟C-Aspect2Context对称的

「(2)Fine-grained Attention」

细粒度attention的目的是刻画aspect对context或者context对aspect词与词之间的影响关系。首先定义H和Q元素之间的相似矩阵U,注意U的形状为[N * M],U中每个元素  表示context中的第i个单词和aspect中的第j个单词之间的相似度,


  • F-Aspect2Context刻画的是对于每一个aspect word,context对其的影响程度。首先求出矩阵U中每一行最大的值,然后对其归一化操作得到和为一的权重分布后加权求和得到新的H表示
  • F-Context2Aspect刻画的是对于每一个context word,aspect对其的影响程度。首先对U中每一行做归一化操作,得到N个和为1 的权重表示,然后用N个长为M的向量去和矩阵M逐元素加权求和,最后将这N个新的表示相加取平均,得到aspect最后的细粒度表示。

24 Output Layer

在这一层将上述步骤得到的attention表示拼接起来,作为最终输入句子的向量表示并送入softmax层分析情感得分。

2.5 Loss Function

模型选用的损失函数为:

其中第一项为交叉熵损失,第二项为单独设计的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权重差的平方,然后乘上  和  之间的距离 

2.6 试验分析


Aspect Level Sentiment Classification with Attention-over-Attention Neural Networks[3]

这篇文章的思路好像跟上一篇很像,模型可以分为四个部分:

  1. word embedding
  2. Bi-LSTM
  3. Attention-over-Attention
  4. Final Classification

3.1 Attention-over-Attention(AOA)

定义长度为n的句子  和长度为m的target 

  1. 经过双向LSTM得到的隐状态表示为矩阵  ,  
  2. 接着计算两者的交互矩阵  ;
  3. 通过对交互矩阵做基于列的softmax和基于行的softmax可以得到target-to-sentence attention 和sentence-to-target attention
  1. 对beta向量求平均,也就获得target-level attention:
  1. 最后再做一次sentence层面的attention:

3.2 试验分析


Over~PART III马上达到战场

本文参考资料

[1]

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 -




投稿或交流学习,备注: 昵称-学校(公司)-方向,进入DL&NLP交流群。
方向有很多: 机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等
记得备注呦


麻烦点个好看
登录查看更多
1

相关内容

Attention机制最早是在视觉图像领域提出来的,但是真正火起来应该算是google mind团队的这篇论文《Recurrent Models of Visual Attention》[14],他们在RNN模型上使用了attention机制来进行图像分类。随后,Bahdanau等人在论文《Neural Machine Translation by Jointly Learning to Align and Translate》 [1]中,使用类似attention的机制在机器翻译任务上将翻译和对齐同时进行,他们的工作算是是第一个提出attention机制应用到NLP领域中。接着类似的基于attention机制的RNN模型扩展开始应用到各种NLP任务中。最近,如何在CNN中使用attention机制也成为了大家的研究热点。下图表示了attention研究进展的大概趋势。
基于多头注意力胶囊网络的文本分类模型
专知会员服务
78+阅读 · 2020年5月24日
Transformer文本分类代码
专知会员服务
117+阅读 · 2020年2月3日
注意力机制模型最新综述
专知会员服务
270+阅读 · 2019年10月20日
细粒度情感分析任务(ABSA)的最新进展
PaperWeekly
18+阅读 · 2020年1月3日
基于图卷积文本模型的跨模态信息检索
专知
9+阅读 · 2019年8月3日
一文读懂深度学习文本分类方法
AINLP
15+阅读 · 2019年6月6日
论文解读 | 基于递归联合注意力的句子匹配模型
赛尔推荐 | 第13期
哈工大SCIR
5+阅读 · 2018年5月4日
基于深度学习的文本分类?
数萃大数据
9+阅读 · 2018年3月4日
现代情感分析方法
算法与数学之美
14+阅读 · 2018年1月12日
情感分析的新方法,使用word2vec对微博文本进行情感分析和分类
数据挖掘入门与实战
22+阅读 · 2018年1月6日
基于注意力机制的图卷积网络
科技创新与创业
73+阅读 · 2017年11月8日
Arxiv
25+阅读 · 2018年1月24日
VIP会员
相关VIP内容
基于多头注意力胶囊网络的文本分类模型
专知会员服务
78+阅读 · 2020年5月24日
Transformer文本分类代码
专知会员服务
117+阅读 · 2020年2月3日
注意力机制模型最新综述
专知会员服务
270+阅读 · 2019年10月20日
相关资讯
细粒度情感分析任务(ABSA)的最新进展
PaperWeekly
18+阅读 · 2020年1月3日
基于图卷积文本模型的跨模态信息检索
专知
9+阅读 · 2019年8月3日
一文读懂深度学习文本分类方法
AINLP
15+阅读 · 2019年6月6日
论文解读 | 基于递归联合注意力的句子匹配模型
赛尔推荐 | 第13期
哈工大SCIR
5+阅读 · 2018年5月4日
基于深度学习的文本分类?
数萃大数据
9+阅读 · 2018年3月4日
现代情感分析方法
算法与数学之美
14+阅读 · 2018年1月12日
情感分析的新方法,使用word2vec对微博文本进行情感分析和分类
数据挖掘入门与实战
22+阅读 · 2018年1月6日
基于注意力机制的图卷积网络
科技创新与创业
73+阅读 · 2017年11月8日
Top
微信扫码咨询专知VIP会员