序列到序列(常缩写为seq2seq)是一类用于自然语言处理及其他序列转换任务的机器学习方法。该框架将一个序列转换为另一个序列,例如将英语句子翻译成法语、根据图像生成描述,或从较长的文本中生成摘要。该框架最初由谷歌大脑的越南计算机科学家、机器学习先驱Lê Viết Quốc开发,现已成为许多现代AI系统(包括大型语言模型和对话代理)的基础。
seq2seq的核心思想是使用两个神经网络:一个编码器,负责处理输入序列并将其信息压缩为固定长度的向量(或一组上下文向量);以及一个解码器,负责根据该表示逐步生成输出序列。这一架构于2014年首次提出,此后随着注意力机制和Transformer模型的引入而不断演进,以解决诸如瓶颈问题和缺乏并行化等局限性。
历史根源
seq2seq的概念根源可追溯至信息论和机器翻译的噪声信道模型。早在1947年,机器翻译先驱Warren Weaver就曾指出:“人们自然会想,翻译问题是否可以视为密码学问题。当我看到一篇俄语文章时,我会说:‘这实际上是用英语写的,只是用某种奇怪的符号编码了。我现在要做的就是解码。’”这一观点将翻译视为编码-传输-解码的过程,直接启发了编码器-解码器结构。
在2010年代初期,研究人员开始开发基于神经网络的编码器-解码器模型,用于序列转换任务。通常被认为是seq2seq开创者的两篇论文均发表于2014年。一篇由Ilya Sutskever、Oriol Vinyals和Quoc V. Le撰写,他们供职于谷歌大脑;另一篇由Kyunghyun Cho、Bart van Merriënboer、Dzmitry Bahdanau和Yoshua Bengio撰写,他们来自蒙特利尔大学和雅各布斯大学。这些论文提出使用循环神经网络(RNN),特别是长短期记忆网络(LSTM),同时作为编码器和解码器。
瓶颈问题与注意力机制
最初的seq2seq模型使用固定长度的编码向量,这带来了“瓶颈”问题:对于较长的输入序列,由于难以将所有细节压缩到一个向量中,信息往往会丢失。为了解决这一问题,Bahdanau等人于2014年引入了注意力机制。他们的模型名为RNNsearch,允许解码器在解码过程中“搜索”源句子,从而有效地回看输入的相关部分。注意力机制对编码器的隐藏状态进行加权求和,为每个解码步骤生成上下文向量,从而通过让解码器直接访问所有输入位置来解决瓶颈问题。
Transformer革命
基于RNN的seq2seq模型的一个显著局限是难以并行化,因为循环处理本质上是顺序的。2017年,Vaswani等人发表的Transformer架构解决了这一问题,他们用自注意力Transformer块(称为“编码器块”)取代了循环编码器,并用交叉注意力因果掩码Transformer块(称为“解码器块”)取代了循环解码器。这使得在并行硬件上的训练速度大大加快,并促成了诸如大型语言模型和生成式AI系统等大规模模型的发展。
架构
seq2seq架构由两个主要组件构成:编码器和解码器。
编码器
编码器处理输入序列(通常是词元或单词的序列),并捕获其关键信息。在基于RNN的编码器中,这些信息存储在网络的隐藏状态中。借助注意力机制,编码器还会为每个输入位置生成一组隐藏状态,用于计算上下文向量。编码器可以是双向的,即从两个方向读取输入,以更好地捕获上下文。
解码器
解码器接收编码器生成的上下文向量和隐藏状态,并自回归地生成输出序列,即一次生成一个元素。在每一步中,它会考虑先前生成的元素、上下文向量以及输入信息,以预测下一个元素。在带有注意力机制的模型中,上下文向量和解码器的隐藏状态会被拼接,形成注意力隐藏向量,作为下一步的输入。解码器通常使用因果掩码,以防止在训练过程中窥视未来的词元。
训练与预测
在seq2seq模型的训练与预测之间存在细微差别。训练时,输入和输出序列都是已知的,因此可以使用一种称为“教师强制”的技术。在教师强制中,解码器每一步的输入是训练数据中的参考输出词元,而不管模型预测的是什么。这加速了收敛并稳定了训练过程。
在预测(推理)时,参考输出不可用,因此解码器必须使用自己先前生成的词元作为下一步的输入。这可能导致错误累积,因为序列早期的错误会向后传播。为了缓解这一问题,通常会使用束搜索等技术,探索多个候选序列并选择最可能的一个。
应用
seq2seq模型已被应用于广泛的任务。在机器翻译中,它们促成了2016年谷歌翻译向谷歌神经机器翻译的升级。其他应用包括图像描述生成,其中编码器处理图像(通过卷积神经网络),解码器生成文本描述;对话模型(如聊天机器人);语音识别,将音频序列映射为文本;以及文本摘要,将长文档压缩为简洁摘要。该架构也是许多现代基于Transformer的模型的基础,这些模型被用于人工智能系统。
优先权争议
关于seq2seq的发明存在一场显著的优先权争议。Tomáš Mikolov以开发word2vec和RNNLM而闻名,他声称自己曾构思过使用神经语言模型处理句子对,并在看到第一句后生成翻译,他认为这等同于seq2seq机器翻译。他表示,自己在谷歌大脑期间曾向Ilya Sutskever和Quoc Le提及这一想法,但他们在2014年的论文中未予致谢。Sutskever等人的论文被广泛认为是seq2seq的关键开创之作,但Mikolov的贡献在研究界仍是一个争议话题。
遗产与影响
seq2seq对机器学习领域产生了深远影响。它引入了编码器-解码器范式,现已成为序列转换任务的标准。最初为seq2seq开发的注意力机制,后来成为Transformer架构的基本组成部分,而Transformer架构正是现代大型语言模型(如OpenAI、Anthropic和Google DeepMind所开发的模型)的动力来源。seq2seq的原理也应用于专用硬件和云服务中,例如AWS Trainium和Azure,这些服务针对此类模型的训练和推理进行了优化。截至2020年代初期,seq2seq仍是深度学习课程和研究中的核心概念,尽管许多生产系统已转向基于Transformer的架构,这些架构正是建立在seq2seq的基础之上。