attention+RNN做文本情感分类《Recurrent Attention Network on Memory for Aspect Sentiment Analysis》

原文链接
本文发表于自然语言处理领域顶级会议 ACL 2017
代码链接

摘要

本文提出了一种基于多重attention的可以捕捉长距离情感特征的框架,该框架对无关信息具有更强的鲁棒性,并且将多重attention的结果与RNN进行非线性组合,从而模型能够提取更加复杂的特征。实验表明本文提出的框架效果不错。

模型

我们假设输入句子是一个序列 s={s1,s2,...,sτ1,sτ,sτ+1,...,sT} s = { s 1 , s 2 , . . . , s τ − 1 , s τ , s τ + 1 , . . . , s T } 本文的目标是预测target word sτ s τ 的情感。为了简单起见,本文是手工标注了一个目标,必要时,我们将阐述如何处理短语模板目标。
本文的模型如下图所示:
attention+RNN做文本情感分类《Recurrent Attention Network on Memory for Aspect Sentiment Analysis》_第1张图片
首先将句子的embedding输入到一个双向LSTM中,得到每个隐含层的输出,但是这些输出对于每个词来说对情感的权重设置是相同的,这对预测target情感十分不利,作者认为离target word越近的词,对情感的影响应该越大,越远的词影响就越小,因此每个hidden state都会乘上一个权重,离target word 越近则该权重越大。
对于在句子中的第 t t 个词,它的权重计算方法如下公式所示:

wt=1|tτ|tmax w t = 1 − | t − τ | t m a x

其中 tmax t m a x 为输入句子的最大长度
接着对这些hidden state做attention,与别的论文不同的地方在于,本文做了多层attention,每次attention的专注点不同,首先初始化一个全零的query,然后与所有的加了权重的hidden state做attention后一起送入GRU(hidden state做attention后作为GRU的input,query作为GRU的init state),然后得到的output再作为下一个attention的query,再与所有的加了权重的hidden state做attention后一起送入GRU…….一直这样做多层attention,得到最后的输出在过一个全连接的softmax层,得到最终输出。

你可能感兴趣的:(自然语言处理)