机器学习之旅

论文笔记:Word Attention for Sequence

2018-06-27  本文已影响2人  是neinei啊

论文地址:Word Attention for Sequence to Sequence Text Understanding
代码:ლ(′◉❥◉`ლ)木有
论文来源:AAAI2018

作者信息.png

一句话总结:

1.Background

1.1. 基于seq2seq 模型的注意力机制

自然语言处理领域的大多数任务都可以用基于RNN的seq2seq框架处理,例如机器翻译,文本摘要,对话系统等,而自从Bahdanau等人于2014年提出注意力机制之后,注意力机制现在已经成为了seq2seq的一个重要组成单元。
attention机制存在的优点主要有以下两点:

例如:I love you在解码"爱"的时候,很明显“love"的权重是应该大于"i"和"you"的。

具体来说,在解码第t个word时:


  1. 这里的 ‘Aa' 是一个attetnion 得分函数,有以下三种形式(下文里的Query代表s,Key代表h):

    本文用的是第三种:


2.然后归一化得到对于source sequence的每一个时刻rnn输出的隐藏状态的attention。


这里需要注意的是不论是在计算attention的时候,还是已经得到attention vector计算context vextor的时候,都是用的 也就是在当前的关注机制中,给定encoder的结构,上下文向量建立在RNN隐藏状态向量上,RNN隐藏状态向量充当源句子的前缀子字符串的表示。

1.2 Motivation

以往的attention机制都是基于encoder的RNN隐藏状态向量得出的,hidden state vector已经经过了RNN的处理,融合或者丢失了一些原本word的信息。所以原始的attention 机制不能直接有选择性地利用source中的word embedding的信息。

1.3 Contribution

2.模型

2.1 word attention

word attention.jpg

word attention model的整体架构

绿色的部分是编码器,黄色的部分是解码器,现在在decoder 第i个输出,也就是
图中编码器上层红色部分
代表attention vector,也就是[a1,a2,...aeos]其中每个ai都是一个标量,代表1.2中我们是介绍的基于RNN hidden state算出的注意力权重, 是每个hidden state与他的attention相乘得到的context vector。
图片绿色部分下层蓝色代表的就是我们用word attention算出的attention和基于word attention得到的context vector。

计算公式和原来的attention基本相同,只是hidden state换成了word embedding向量。





已经有了context vector(还是两个),我们该如何得到decoder i时刻的hidden state 以及i时刻的输出呢?


f函数的具体设置类似于GRU,如下公式

在这里的第2-4公式中, 两种attention mechanism得到的context vector是相同权重的,也就是1,然而,平等对待它们可能并不是最优的,因为不同的decoder侧单词可能依赖于不同层次的源端信息:它们中的一些可能优先使用sequence级别的源端上下文信息也就是基于hidden state的attenion得到的context vector,诸如包含在短语中的一些组合语义,而其他可能需要更具体和干净的单词上下文来获取更低级别的信息。因此,作者建议使用门单元来动态控制每个解码步骤的上下文数量。

2.2 门控机制

contextual 门控机制通过自适应控制subsequence level的
和word level的
的权重,可以实现子序列级别和字级源端信息的更好平衡 。具体而言,在第i个解码步骤中,contextual 门控机制检查两种context vector,结合RNN隐藏状态si-1和最后生成的词yi-1,输出一个门矢量oi来决定接受两种context的信息的权重。

word embedding的dimension是n,decoder hidden state的维度是m,所以



3.实验

上一篇下一篇

猜你喜欢

热点阅读