@songying
2018-10-23T15:43:08.000000Z
字数 1786
阅读 1266
Attention
在本文中,我们推测,采用一个 fixed-length 的向量是提升 encoder-decoder 结构performance的一个瓶颈。我们尝试将 soft-attention融入到该模型中,实现了很好的结果。
现有的NMT模型都是将句子先encoder成一个 fixed-length 向量,然后再用decoder输出翻译。一个潜在的问题是 encoder-decoder 方法并不能将所有必要的信息压缩到一个 fixed-length 向量中。这可能导致神经网络难以处理长句,尤其是比training corpus中的句子长的句子。
为了解决这个问题,我们提出了一个扩展,它同时进行对齐和翻译。每次我们的模型生成新的翻译词时,它在原句那些最有可能包含有关信息的位置上进行搜索。The model then predicts a target word based on the context vectors associated with these source positions and all the previous generated target words.
这个方法最重要的特点是,它没有尝试将原句的所有部分编码到固定长度的向量,而是它把原句编码到一系列向量,然后在解码的时候灵活的选用这组向量的子集。
在本文中,我们的方法的performance比传统的encoder-decoder要好很多,对长句尤其如此。
翻译的目的就是 , 其中, x是源句,y是目标句子。NMT模型通常包含两部分:encoder 和 decoder。
源句: , 常见的方法是使用RNN将源句压缩为一个向量:
- : t时刻的隐层状态
- c: 隐层状态生成的向量
- f和q: 是非线性函数
而一个decoder 通常是根据上下文向量 c与之前所有预测好的词 来预测下一个词 。
- g: 非线性函数
- : RNN的隐层状态
其中, 是 时刻的RNN隐层状态, 计算公式:
上下文词向量 可以通过所有 下面的公式来获得:
- s: RNN的隐层状态
其中, a是一个对齐模型, 该模型模型衡量了原句的 位置和译句的位置在多大程度上匹配。 对齐模型a是一个前馈神经网络, 跟encoder,decoder一起训练。
我们采用双向RNN来作为 我们的encoder, 我们的输出向量 :