Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation

Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation

简介

在很多时序分类(Temporal Classification)的应用中,输入数据X和输出数据Y的标签长度并不相等,而且不存在单调的映射关系,例如机器翻译,对话系统等等。为了解决这个问题,作者提出了RNN Encoder-Decoder模型,RNN Encoder-Decoder是由两个RNN模型级联而成的,通过Encoder将输入数据编码成特征向量,再通过Decoder将特征向量解码成输出数据。

这篇论文的第二个贡献就是GRU(Gated Recurrent Unit)的提出,GRU和LSTM均是采用门机制的思想改造RNN的神经元,和LSTM相比,GRU更加简单,高效,且不容易过拟合,但有时候在更加复杂的场景中效果不如LSTM,算是RNN和LSTM在速度和精度上的一个折中方案。

论文的实现是对SMT中短语表的rescore,即使用MOSES(SMT的一个开源工具)根据平行语料产生短语表,使用GRU的RNN Encoder-Decoder对短语表中的短语对进行重新打分。

详解

1. RNN Encoder-Decoder

1.1 编码

RNN Encoder-Decoder的编码过程是先是通过一个RNN将变长的输入序列转换成固定长度的特征向量,再通过RNN将特征向量解码成需要的输出,如图1.

图1:RNN Encoder-Decoder by Cho K

1.2 解码

另外一篇著名的Seq2Seq的论文 几乎和这篇论文同时发表,在Seq2Seq中,编码器得到的特征向量仅用于作为解码器的第一个时间片的输入,结构如图2

图2:RNN Encoder-Decoder by Sutskever I

2. GRU

图3:GRU的结构

GRU的两个门机制是可以通过SGD和整个网络的参数共同调整的。

3. 总结

RNN Encoder-Decoder模型的提出和RNN门机制的隐层单元(LSTM/GRU)在解决长期依赖问题得到非常好的效果是分不开的。因为解码器使用的是编码器最后一个时间片的输出,加入我们使用的是经典RNN结构,则编码器得到的特征向量将包含大量的最后一个时间片的特征,而早期时间片的特征会在大量的计算过程中被抹掉。

参考文献

[1] https://zhuanlan.zhihu.com/p/28297161

最后更新于