本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Sequence-to-Sequence工作原理
通常,用于 sequence-to-sequence建模的神经网络由几层组成,包括:
-
一个嵌入层。在此层中,输入矩阵是以稀疏的方式编码的输入标记 (例如,单热点编码),映射到密集的特征层。这是必需的,因为与简单的 one-hot-encoded向量相比,高维特征向量更能编码有关特定标记(文字语料库)的信息。标准做法是使用预训练的词向量(如FastText
或 Gl ove)初始化此嵌入层,或者随机初始化该词向量并在训练期间学习参数。 -
一个编码器层。将输入标记映射到高维特征空间之后,序列会通过编码器层传递,从而将 (整个序列的) 输入嵌入层中的所有信息压缩为固定长度的特征向量。通常,编码器由 RNN-型网络组成,例如长短期记忆 (LSTM) 或门控循环单元 (GRU)。(Colah 的博客
详细解释LSTM。) -
一个解码器层。解码层采用此编码的特征向量,并生成标记的输出序列。该层通常也使用RNN架构(LSTM和GRU)构建。
在给定源序列的情况下,对整个模型进行联合训练,使目标序列的概率最大化。该模型首先由 Sutskever
关注机制。编码器-解码器框架的缺点是,由于固定长度编码的特征向量可以包含多少信息的限制,模型性能会随着源序列长度的增加而降低。为了解决此问题,2015 年 Bahdanau 等人提出了关注机制
有关更多详细信息,请参阅 Luong 等人编写的白皮书基于关注的神经机器翻译的有效方法