20160429 Neural Machine Translation by jointly learning to align and translate

Neural Machine Translation by jointly learning to align and translate
By Dzmitry Bahdanau, KyungHyun Cho, Yoshua Bengio

Abstract

Neural machine translation 希望用Neural Network完成machine translation task,最近提出的Neural machine translation大都属于Encoder-Decoder家族的一种模型,它将source sentence编码成一个固定长度的向量,而解码器可以从这个向量生成译文。但一般的Neural machine translation仅使用一个固定长度的向量来表达source sentence的所有内容,作者认为这是性能瓶颈,因此提出一种自动搜索source sentence与预测词中相关部分的模型。

Intro

Neural machine translation企图建立和训练一个可以阅读句子和正确翻译的Large neural network,该方法的潜在问题是需要用一个固定长度的向量压缩所有必须的信息。这种方法在长句中的性能受损严重,为了解决这一问题,本文提出对Encoder-Decoder方法的拓展,使其在生成词语时,对源句子中相关信息最丰富的位置进行搜索。

从概率学角度,translation相当于对与给定的输入句子x,找到最大可能的目标句子y,即${argmax}_yp(y|x)$。

对于RNN Encoder-Decoder,encoder将输入序列$\mathbf{x}=(x_1,…,x_{T_x})$转化为向量$c$。常用的方法为:$h_t = f(x_t,h_{t-1})$ 和 $c = q(\{h_1,…,h_{T_x}\})$,其中$h_t$为在时间$t$的Hidden state。
对于Decoder,我们希望根据已经预测到的词$\{y_1,…,y_{t’-1}\}$和context vector $c$预测下一个单词$y_{t’}$,因此可表达成联合概率分布:$p(\mathbf{y}) = \prod_{t=1}^{T}p(y_t | \{y_1,…,y_{t-1}\},c)$。对于RNN,$p(y_t | {y_1,…,y_{t-1}},c) = g(y_{t-1},s_t,c)$。

Learning to align and translate

本文提出新的Neural machine translation架构,利用Bidirectional RNN作为Encoder,并且希望Decoder在解码过程中能模拟在源句中搜索关键信息。
在新的模型中,定义条件概率为:$p(y_i | {y_1,…,y_{i-1}},\mathbf{x}) = g(y_{t-1},s_i,c)$,其中$s_i=f(s_{i-1},y_{i-1},c_i)$为RNN的Hidden state。
Context vector $c_i$需要根据一系列的annotations$(h_1,…,h_{T_x})$来构建,而annotations需要通过encoder对输入序列进行映射而获得。$h_i$相当于获得了这个输入序列中第$i$个词在整个序列上的影响程度。
Context vector $c_i$由这些annotations的加权和获得:$c_i=\sum_{j=1}^{T_x}\alpha_{ij}h_j$,其中权值$\alpha_{ij}$为$\alpha_{ij}=\frac{exp(e_{ij})}{\sum_{k=1}^{T_x}exp(e{ik})}$,$e_{ij}=a(s_{i-1},h_j)$为alignment model来对输入位置为j的词和输出位置为i的词进行匹配打分,且设a为一个feedforward neural network。$\alpha_{ij}$相当于从$x_j$到$y_i$的概率。Annotation的加权和可以看作是expected annotaion,也即$c_i$。
在Encoder方面,使用的是双向RNN,将前向的hidden state和后向的hidden state拼接在一起形成一个长向量$h_j$。

总结

Attention model在NLP上提出后,许多应用都参考这个模型进行尝试,比如说visual attention,还有各种各样的。在自己的研究中发现这个模型的限制有可能在于RNN的使用上,因为目前大部分RNN结构都是属于顺序结构的RNN,那么对于一些不具有顺序结构的内容有没有办法找出一种适应性的context encoding的方法呢,如果有的话这个模型就可以进一步拓展到具有任意结构的内容上面了。