seq2seq

这篇论文可以看作是 sequence to sequence 论文的升级版,首先我们回顾一下 seq2seq 模型

这里 f 可以是一个 LSTM

这里 q 的运算可以是取最后一个 hidden state $h_{T_x}$

我们的目标是最大化概率:

这里面的 c 对于每一个条件概率都是一样的

在 RNN 中,上面的条件概率可以写成是:

这里面 s 是 RNN 中的 hidden state

Decoder

承接上面的我们先来研究 decoder,把 encoder 放到后面

在这篇论文中,我嗯的目标函数变成了:

条件概率是

我们发现这里面的 $c_i$ 对于每一个 RNN 循环都是不同的,$c_i$ 其实是 encoder 每一层的加权

权重是通过 softmax 得到的

每一层的 encoder 中的 $h_j$ 对于第 i 层的 decoder 的影响可以下面公式来计算

论文里面 a 的计算方式为:

Encoder

正向做一遍 RNN 得到 $(\overrightarrow{h_1},…,\overrightarrow{h_T} )$

反向做一遍 RNN 得到 $(\overleftarrow{h_1},…,\overleftarrow{h_T} )$

最后将两个得到的 hidden state 每个对应的位置拼接起来,就形成了我们想要的结果 :

Setting

  • 使用 SGD 训练,minibatch 是 80 个 sentence
  • 模型训练完以后,做预测的时候使用 beam search

这是最后将权重可视化以后的结果,高亮区域 (i,j) 表示,输出的 $j^{th}$ 单词的和输入的 $i^{th}$ 单词关系密切

Rederence

Bahdanau, D., et al. (2014). “Neural machine translation by jointly learning to align and translate.” arXiv preprint arXiv:1409.0473.