阅读大概需要13分钟
转载:AINLP
作者:高开远
学校:上海交通大学
研究方向:自然语言处理
继续:【论文串烧】基于特定实体的文本情感分类总结(PART I)
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的单词的权重w_{j}为:
注意,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 a_{i}和 a_{j},首先求出它们对context中某一特定单词的attention权重差的平方,然后乘上a_{i}和 a_{j}之间的距离d_{ij}:
这篇文章的思路好像跟上一篇很像,模型可以分为四个部分:
定义长度为n的句子
和长度为m的target
,
,
;
与以往大多数RNN+Attention的思路不同,作者在这篇论文里给出了注意力编码网络(Attentional Encoder Network,AEN),避免了RNN系模型的缺点(难以并行化,需要大量数据/内存/计算);同时提到先前的工作大都忽略了标签不可信问题(label unreliability issue),这里在损失函数中引入了标签平滑正则项。模型整体框架如下
有两种embedding的方式
[CLS] + context + [SEP]
和 [CLS] + target +[SEP]
注意力编码层和LSTM层的作用一样,都是计算输入的语义表示得到隐状态矩阵。这一层包括两个子模块:
将attention encoder后得到的关于context和aspect信息的向量表示h_{t}和h_{c}再做一次attention操作得到具有更多交互信息的向量,然后与h_{t}和h_{c} pool以后的向量拼接得到最终的输入表示送入softmax层进行情感分析
前面提到为了解决标签不可信任问题(比如中性情感是一种非常模糊的情感表达,具有中性情感标签的训练样本就是属于不可信任的),引入了一种新的损失计算Label Smoothing Regularization (LSR)
,关于LSR的深入理解这里不详细说了可以参考知乎问题:Label Smoothing Regularization_LSR原理是什么?
作者非常nice地开源了论文对应的代码库:songyouwei/ABSA-PyTorch 而且里面还有很多其他模型的实现。赞!
作者提出用attention去提取context和aspect之间的语义相关性存在一定的缺陷,并列举了一个例子:
“This dish is my favorite and I always get it and never get tired of it.” 这句话中,attention机制会提取出相对于dish不相关的词语比如"never","tired"等。
于是提出可以利用CNN来取代attention来提取context中相对重要的信息,同时对朴素CNN进行了进一步的处理使其适合该任务,提出了Target-Specific Transformation Networks (TNet)
将文本的上下文信息融入到word的向量表示中是非常重要的
模型再往上一层是Transformation Layer,是由多个CPT模块叠加而成。单独的CPT模块结构如下所示
在这里插入图片描述
CPT分为两个部分,Target-Specific Transformation(target转换机制)和Context-Preserving Mechanism(上下文保存机制)
- Adaptive Scaling:与LSTM中门控机制类似的自适应保存机制,通过门控单元来控制当前层和上层输出到下层的信息。
作者对于卷积层提出了利用观点词与目标词的距离的改进措施。作者为每一个位置计算一个位置特征
其中C是超参,相当于设置了一个窗口,在这个窗口范围内进行计算。k是target第一个词的位置,m是target的长度,i是当前词的位置。
然后将距离特征融合到词特征上:
再进行卷积和最大池化的操作
最后送入softmax层进行情感判定
原文链接:
https://blog.csdn.net/Kaiyuan_sjtu/article/details/89811824
推荐阅读:
【一分钟论文】 NAACL2019-使用感知句法词表示的句法增强神经机器翻译 【一分钟论文】Semi-supervised Sequence Learning半监督序列学习