seq2seq(sequence to sequence)模型是NLP中的一个经典模型。最初由Google开发,并用于机器翻译。它基于RNN网络模型构建,能够支持且不限于的应用包括:语言翻译,人机对话,内容生成等。Seq2Seq,就如字面意思,输入一个序列,输出另一个序列。这种结构最重要的地方在于输入序列和输出序列的长度是可变的。
- Seq2Seq 属于 Encoder-Decoder 的大范畴
- Seq2Seq 更强调目的,Encoder-Decoder 更强调方法
seq2seq模型结构和特点
seq2seq指的是从序列A到序列B的一种转换。主要是一个由编码器(encoder)和一个解码器(decoder)组成的网络。编码器将输入项转换为包含其特征的相应隐藏向量。解码器反转该过程,将向量转换为输出项,解码器每次都会使用前一个输出作为其输入。
搭建encoder+decoder训练模型
encoder模型在进行训练后,需要把自身的state导出。作为decoder模型的输入,所以需要定制LSTM的两个参数:return_state和return_sequences