在自然语言处理的很多应用中,输入和输出都可以是不固定长度的序列。以机器翻译为例,例如:
法语输入:Jane visite l’Afrique en septembre.(长度5)
英语输出:Jane is visiting Africa in September.(长度6)
Seq2Seq就是处理这种输入和输出不固定长度问题的模型,全称Sequence to Sequence 模型,应用于机器翻译,语音识别,自动对话等应用。
模型本质上用到了两个循环神经网络(可以是传统RNN,LSTM和GRU等),分别叫做编码器和解码器。编码器用来分析输入序列,解码器用来生成新的输出序列。
两个循环神经网络结构是共同训练的。
上图左边是编码器,右边是解码器。
编码器:
编码器的作用是把一个不定长的输入序列变换成一个定长的上下文变量c,并在该背景变量中编码输入序列信息。常用的编码器是循环神经网络。
为词嵌入向量。循环神经网路将上个时刻的隐状态