一. 背景
在机器翻译任务中,常常需要利用编码器将源句子编码为固定长短的向量,并利用解码器逐个时间步生成另一种语言的句子对应的向量。这种模型即可定义为一个Encoder-Decoder模型。
二. Seq2seq模型
Seq2Seq模型是最早提出的Encoder-Decoder模型,本质上是利用RNN作为编码器整合整个源句子的信息,同时利用RNN作为解码器逐步生成出翻译出的目标句子。
Encoder部分利用RNN模型将输入序列转换成一个Context向量(取RNN最后一个位置的输出向量),Decoder在Context向量初始化后利用RNN模型生成整个目标序列。
Seq2Seq最早由谷歌提出,并用在机器翻译任务中。模型结构很简单,可用下图表示
对于序列输入 ,可通过RNN得到输出
RNN训练时需要目标序列的每一个输出 与每一个输入
都需要对齐(alignment),即对于序列输入通过RNN模型后,会得到相同长度的输出,一个输入词对应一个输出词。但如何处理机器翻译中源序列和目标序列之间的长度不相同的问题呢?
三. Transformer
Transformer模型本质上也是一种Encoder-Decoder模型,只是Transformer对序列处理时,不是按照每个时间步Time Step处理,而 是并行地对整个句子进行处理,极大地提高了模型训练的速度。模型的细节在博客[]详细描述。
参考资料
[1] Sequence to Sequence Learning with Neural Networks
[2] Attention is All You Need
[3] Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation
[4]