机器翻译(MT)以及一些机器人对话问题的特点就是输出是单词序列而不是单个单词。 输出序列的长度可能与源序列的长度不同
为了解决这个问题,主要采用的是Sequence to Sequence模型
模型主要由两个部分组成,一个编码器(encoder)和一个解码器(decoder)。编码器和解码器一般都是由RNN类网络构成,常用LSTM。这是由于使用RNN可以自适应输入输出,这里就不多提了。后面的网络都会以LSTM为例进行说明。
编码器主要指的是将句子编码成一个能够映射出句子大致内容的固定长度的向量
解码器,这里就是将由编码器得到的固定长度的向量再还原成对应的序列数据,一般使用和编码器同样的结构,也是一个RNN类的网络。
实际操作过程会将由编码器得到的定长向量传递给解码器,解码器节点会使用这个向量作为隐藏层输入和一个开始标志位作为当前位置的输入。得到的输出向量能够映射成为我们想要的输出结果,并且会将映射输出的向量传递给下一个展开的RNN节点。
模型训练:
训练时encoder的输入为英文原始文本对应的词向量
decoder的第一个输入为编码器得到的隐藏向量和开始文本bos,后面是对应正确的文本词向量作为输入