[关闭]
@songying 2018-10-23T15:43:08.000000Z 字数 1786 阅读 1266

Neural Machine Translation by Jointly Learning to Align and Translate

Attention


值得一看的paper

Abstract

在本文中,我们推测,采用一个 fixed-length 的向量是提升 encoder-decoder 结构performance的一个瓶颈。我们尝试将 soft-attention融入到该模型中,实现了很好的结果。

Introduction

现有的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要好很多,对长句尤其如此。

Background: NMT

翻译的目的就是 , 其中, x是源句,y是目标句子。NMT模型通常包含两部分:encoder 和 decoder。

2.1 RNN Encoedr-Decoder

源句: , 常见的方法是使用RNN将源句压缩为一个向量:

  • : t时刻的隐层状态
  • c: 隐层状态生成的向量
  • f和q: 是非线性函数

而一个decoder 通常是根据上下文向量 c与之前所有预测好的词 来预测下一个词


其中, 。 在RNN上, 条件概率可以表示为:

  • g: 非线性函数
  • : RNN的隐层状态

3. Learning to align and translate

3.1 Decoder: General Description


其中, 时刻的RNN隐层状态, 计算公式:


与上面的encoder-decoder不同, 此时的上下文向量c是变化的。 此时的上下文向量 取决于 一组的向量 ,这些向量是encoder形成的。
每一个向量 包含了更关注第个词的整个输入序列的信息,我们在下一章详细介绍是怎么计算的。

上下文词向量 可以通过所有 下面的公式来获得:

  • s: RNN的隐层状态

其中, a是一个对齐模型, 该模型模型衡量了原句的 位置和译句的位置在多大程度上匹配。 对齐模型a是一个前馈神经网络, 跟encoder,decoder一起训练。

3.2 Encoder: Bidirectional RNN for Annotating Sequences

我们采用双向RNN来作为 我们的encoder, 我们的输出向量 :

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注