对上节问题的改进:
- 使用单项RNN作为编码器,只考虑了历史信息,如果可以考虑到未来信息的话,效果会更好,因此:可使用双向RNN来解决“过去”与“未来”相结合的问题。
- 对于C的问题,一般来说可以直接拿最后一个时刻的hidden输出(一般来说,最后一个时刻的输出一定程度上能够表示整个句子);另外一种做法是,不仅仅使用最后一个时刻的hidden output,还用其他时刻的输出。同时对每个时刻的hidden output给出一个权重。
Local Attention
- Global attention的思想是计算每个目标端词和每个源语言端词的对齐概率,这也许会称为一种缺点,尤其针对长句子,这种方法代价很大。
- Local attendtion对某一时刻的输出生成一个它在源语言段的对齐位置p_i,接着在源语言端取窗口[p_i-D, p_i+D],上下文向量c_i则通过计算窗口内的hidden state的加权平均得到。通过local-p和local-m可以来确定对齐位置p_i
local-m(Monotonic alignment)
local-p(Predictive alignment)
attention模型与encoder-decoder模型的区别在于:attention模型不要求编码器将所有输入信息都编码进一个固定长度的向量之中。相反,此时编码器需要将输入编码成一个向量序列,而解码的时候,每一步都会选择性的从向量序列中挑选一个加权后的向量进行进一步处理。这样,在每产生一个输出的时候,都能够做到充分利用输入序列携带的信息。
近年来,增强学习的加入,是的模型的准确率又得到了进一步的提高。(最大的奖励或者最小的惩罚)
Golbal与Local方法应混合使用,以达到最好效果。
基于Pivot的联合训练可以用于零资源语言翻译。