聊聊RNN与seq2seq
seq2seq模型也称为Encoder-Decoder模型。顾名思义,这个模型有两个模块——Encoder(编码器)和Decoder(解码器)。编码器对输入数据进行编码,解码器对被编码的数据进行解码。此时编码器编码的信息浓缩了翻译所必需的信息,解码器基于这个浓缩的信息生成目标文本。
这里的数据一般指时序数据,即按时间顺序记录的数据列,具有可比性和结构化性。
编码器
以RNN为例,设计一个编码器结构如下
编码器利用RNN将时序数据转换为隐藏状态h。这里的RNN使用的是LSTM模型,编码器输出的向量h是LSTM层的最后一个隐藏状态,其中编码了翻译输入文本所需的信息。
解码器
LSTM层会接收编码器层最后隐藏状态输出的向量h。上一个层的输出预测会作为下一个层的输入参数,如此循环下去。
这一分隔符(特殊符号)。这个分隔符被用作通知解码器开始生成文本的信号。另外,解码器采样到 出现为止,所以它也是结束信号。也就是说,分隔符 可以用来指示解码器的“开始/结束”。
整体结构
连接编码器和解码器后的seq2seq整体结构如下,可以看出seq2seq是组合了两个RNN的神经网络。
对于seq2seq序列模型更多解释可看 博客