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结构,则编码器得到的特征向量将包含大量的最后一个时间片的特征,而早期时间片的特征会在大量的计算过程中被抹掉。
参考文献
最后更新于