Recurrent Attention Network on Memory for Aspect Sentiment 阅读笔记

原文链接 http://chenhao.space/post/10f4e02b.html

论文题目:Recurrent Attention Network on Memory for Aspect Sentiment Analysis

来源:ACL 2017 https://www.aclweb.org/anthology/D17-1047/

作者:Peng Chen, Zhongqian Sun, Lidong Bing∗, Wei Yang, AI LabTencent Inc.

Introduction

Aspect sentiment analysis (具体来说,本篇论文做的是Aspect-Term Sentiment Analysis (ATSA) ) 的目的是从一句评论中识别出一个具体的意见目标(a specific opinion target)的情感极性。

例如:“I bought a mobile phone, its camera is wonderful but the battery life is short”,这里有三个意见目标:“camera”, “battery life”, 和 “mobile phone”。

这句话对“camera”的情感是正向的,对“battery life”是负向的,对“mobile phone”的情感是mixed sentiment。

简单的情况下,可以从句法上相邻的观点词去对⽬标进⾏识别它的情感,如 “wonderful” for “camera”。

但是,在更多的情况下,观点词会包含在复杂的上下⽂中,如 “Its camera is not wonderful enough”。

还有一点,句子的结构对于目标的情感分析也是一个挑战,如 “Except Patrick, all other actors don’t play well”,这里对Patrick的情感应是正向的。

基于单注意力的方法不能克服这种困难,因为一个注意力关注多个单词可能会隐藏每个被关注单词的特征( attending multiple words with one attention may hide the characteristic of each attended word)。

Model

模型分为五块:input module, memory module, position-weighted memory module, recurrent attention module, and output module

Model

BiLSTM for Memory Building

这里的 forward LSTM 和 backward LSTM 其实是可以有好几层的(论文中用的是2层)。

可以参考 https://arxiv.org/abs/1506.02078

下面给出 forward LSTM 的计算公式

image-20191105111102215

如果有 L L L 层堆叠成的 BiLSTM ,最后生成的记忆是 M ∗ = { m 1 ∗ , . . . , m t ∗ , . . . m T ∗ } M^*=\{m_1^*,...,m_t^*,...m_T^*\} M={m1,...,mt,...mT} ,其中 m t ∗ = ( h t L → , h t L ← ) m_t^*=(\overrightarrow{h_t^L},\overleftarrow{h_t^L}) mt=(htL ,htL )

Position-Weighted Memory

上述的模块中⽣成的记忆对于⼀个评论中的多个⽬标是相同的,这对于去预测这些⽬标各⾃的情感是不够灵活的。

为每个⽬标⽣成定制的记忆,具体来说,距离⽬标的单词越近,它的记忆权重就越⾼。我们把距离定义为单词与⽬标之前的词数。

对于在位置 t t t 的词的权重计算为:
w t = 1 − ∣ t − τ ∣ t m a x \Large w_t=1-\frac{|t-τ|}{t_{max}} wt=1tmaxtτ
t m a x t_{max} tmax 是输入句子的长度,我们也可以用 u t = t − τ t m a x \Large u_t=\frac{t-τ}{t_{max}} ut=tmaxtτ 来计算每个词与目标词的相对偏移(relative offset)。

我们的目标是要得到加权后的记忆 M = { m 1 , . . . , m t , . . . , m T } \large M=\{m_1,...,m_t,...,m_T\} M={m1,...,mt,...,mT} ,其中 m t = ( w t ⋅ m t , u t ) \large m_t=(w_t·m_t,u_t) mt=(wtmt,ut)

加权记忆旨在对较近的情感词进⾏加权,⽽循环注意模块可以关注到远距离的情感词。因此,它们结合起来可以得到一个更好的预测结果。

Recurrent Attention on Memory

要准确预测一个目标的情感,关键是要:

  1. 从位置加权记忆中正确提取出相关信息(correctly distill the related information from its position-weighted memory)
  2. 适当地制造作为情感分类信息的输入(appropriately manufacture such information as the input of sentiment classification)

对于第一点,论文中用 multiple attention 去处理;

对于第二点,论文中用一个循环网络(GRU)与attention后的结果非线性结合。

GRU的一般结构如下:

A gated recurrent unit neural network.

下面是论文中给的公式:

image-20191105151940963

e t − 1 \large e_{t-1} et1 e 0 e_0 e0初始化为0向量)就相当于隐藏状态 h t − 1 \large h_{t-1} ht1 i t A L \large i_t^{AL} itAL 是当前输入信息(它来自memory M)。

attention score of each memory slice (这里就是attention的过程)计算如下
g j t = W t A L ( m j , e t − 1 [ , v τ ] ) + b t A L \Large g_j^t = W_t^{AL}(m_j,e_{t-1}[,v_τ])+b_t^{AL} gjt=WtAL(mj,et1[,vτ])+btAL
v τ \large v_τ vτ 就是目标词的word embedding, [ , v τ ] [,v_τ] [,vτ] 表示当attention的结果依赖产品的特殊方面时,我们需要加上目标词的 v τ v_τ vτ,因为产品不同方面对意见词有不同的偏好,如手机电池:寿命短;摄像:高清。

将 attention score 归一化:
α j t = e x p ( g j t ) ∑ k e x p ( g k t ) \Large \alpha_j^t = \frac{exp(g_j^t)}{\sum_kexp(g_k^t)} αjt=kexp(gkt)exp(gjt)
最后,输入到GRU的是 e t − 1 e_{t-1} et1 i t A L i_t^{AL} itAL
i t A L = ∑ j = 1 T α j t m j \Large i_t^{AL}=\sum_{j=1}^T \alpha_j^t m_j itAL=j=1Tαjtmj

Loss function

Loss function = 交叉熵损失函数 + L2正则项

image-20191105160314467

其中, C C C 是情感分类的种类集合, D D D 是训练集, y y y 是one-hot编码(其实就是label), f ( x ; θ ) f(x;\theta) f(x;θ) 是模型预测的情感分布。

Experiments

实验的数据集

实验结果

The impacts of attention layers

multiple attentions vs single attention

Conclusion

尽管多重注意机制有可能合成复杂句子的特征,但强制该模型对记忆(memory)给予固定数量的attention在某些情况下是不合理的。因此,如果没有更多有用的信息可以从内存中读取,我们需要一种机制来自动停止注意力进程。我们还可以尝试其他记忆加权策略,以更清晰地区分一个评论中的多个目标。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值