《Recurrent Attention Network on Memory for Aspect Sentiment Analysis》笔记
论文题目:《Recurrent Attention Network on Memory for Aspect Sentiment Analysis》
论文链接:https://aclanthology.org/D17-1047
论文采用了多级注意力机制以及记忆网络,对于以往提出的网络,都不能很好提取综合较分散的特征信息,例如:“Except Patrick, all other actors don’t play well”,dont’t play well对Patrick产生了积极的情感,单一的attention机制不能较好的提取出这样距离较远的信息,且一次注意多个单词可能会隐藏每个注意单词的特征。
针对以上问题,文章提出了一个新的分析框架,框架图如下:
Input Embedding
框架有五层,首先是embedding层,将单词转换为相应向量,采用glove或word2vec的方法进行转换,获取向量列表{v1,vt,vT}。
BLSTM for Memory Building
作者使用Deep Bidirectional LSTM (DBLSTM)来建立记忆体,在时间步t,正向LSTM不仅输出隐藏状态
h
t
l
⃗
\vec{h^l_t}
htl 还会保存一个内存向量
c
t
l
⃗
\vec{c^l_t}
ctl 在其隐藏状态中,公式如下:
再将输入文本向量反向输入反向LSTM,计算过程同上,最后获得内存向量M*= {m∗ 1, . . . , m∗t, . . . , m∗ T},其中m∗t = ( h t L ⃗ , h t L ← \vec{h^L_t},\overleftarrow{h^L_t} htL,htL)
再采用一个双向lstm结构来获取上下文信息,作为内存,再根据每个单词与目标单词距离的远近进行加权,
Position-Weighted Memory
然后根据单词与目标的相对位置对上面得到的内存向量进行加权,使同一句话中的不同目标拥有自己定制的记忆,用下列公式计算。
直观理解就是一个词距离目标向量越近其对应权重越高,wt更大,将内存向量乘以权重得到加权记忆向量M = {m1, . . . , mt, . . . , mT} ,其中mt= (wt·m∗t, ut),ut=1-wt。所以该模块的作用就是增强距离目标词较近的单词的权重
Recurrent Attention on Memory
这个模块主要有两个作用,首先是通过多级注意力机制来从加权记忆中正确提取相关信息,再是通过递归网络,将attention与gru非线性结合起来作为情感分析的输入。比如前文给出的例子“Except Patrick, all other actors don’t play well”,利用多级注意力机制使except和dont play well受到不同的关注,再将其结合起来分析得到对于patrick是积极情感。
该模块由多个episode e组成,每次使用gru来更新e的值,公式如下
e0最初是0向量,每个加权记忆片的注意力得分计算如下。
其中vt是目标向量。再进行平滑计算
得到 i t A L i^{AL}_t itAL 作为gru的输入
整个模型的计算就大致如上,实验结果显示该方法比唐都钰提出的Memnet在semvel所有数据集的表现都要好,通过还设置attentionlayer层数为自变量得到为3层时综合效果最好。
该篇文章主要创新是在多层注意力模型与记忆网络的结合,形象地来理解整个框架就是运作机制,就像人在阅读的过程中注意到不同的信息,将其存入记忆,最后将多个注意力信息综合起来,其相比memnet就是多加入了记忆模块,可以注意到较分散的特征信息。但感觉整个模型没有突出目标向量,同时也没有考虑上下文对目标向量的影响。