聊聊RNN与seq2seq

发布时间 2023-10-31 11:25:31作者: 又见阿郎

seq2seq模型也称为Encoder-Decoder模型。顾名思义,这个模型有两个模块——Encoder(编码器)和Decoder(解码器)。编码器对输入数据进行编码,解码器对被编码的数据进行解码。此时编码器编码的信息浓缩了翻译所必需的信息,解码器基于这个浓缩的信息生成目标文本。

这里的数据一般指时序数据,即按时间顺序记录的数据列,具有可比性和结构化性。

编码器

以RNN为例,设计一个编码器结构如下
image.png
编码器利用RNN将时序数据转换为隐藏状态h。这里的RNN使用的是LSTM模型,编码器输出的向量h是LSTM层的最后一个隐藏状态,其中编码了翻译输入文本所需的信息。

解码器

image.png

LSTM层会接收编码器层最后隐藏状态输出的向量h。上一个层的输出预测会作为下一个层的输入参数,如此循环下去。

这一分隔符(特殊符号)。这个分隔符被用作通知解码器开始生成文本的信号。另外,解码器采样到出现为止,所以它也是结束信号。也就是说,分隔符可以用来指示解码器的“开始/结束”。

整体结构

连接编码器和解码器后的seq2seq整体结构如下,可以看出seq2seq是组合了两个RNN的神经网络。
image.png

对于seq2seq序列模型更多解释可看 博客