序列到序列是机器学习中把一种序列映射为另一种序列的神经网络框架,通常由编码器和解码器两部分组成,因此也称编码器-解码器架构。它最初用于机器翻译,把源语言句子编码成向量再由解码器逐词生成译文,后来被推广到文本摘要、语音识别、对话生成等任务,是深度学习处理变长序列输入输出问题的基础范式。
定义
序列到序列是一类神经网络架构,其任务是在给定一个输入序列的条件下生成另一个序列,输入与输出之间不要求长度相等,也不要求符号在时间上一一对应。该架构把任务拆成理解与生成两个阶段,分别交给编码器和解码器负责。编码器把变长的输入序列压缩成固定维度的内部表示,这一向量称作上下文向量;解码器以该向量为条件,逐步生成目标序列的词元。
编码器和解码器可以选用不同的网络结构。早期实现普遍使用循环神经网络及其门控变体,如长短期记忆网络和门控循环单元,也有研究用卷积神经网络替代循环结构。按输出方式划分,解码器每预测一个位置,都要依据编码结果和已经生成的部分重新计算概率分布,因此整个生成过程是自回归的。
原理
编码器逐位置读取输入序列并更新隐藏状态,形式可写作 $h_t = f_{enc}(x_t, h_{t-1})$,其中 $x_t$ 是第 $t$ 步的输入词元,$h_{t-1}$ 是上一步的隐藏状态。处理到序列末尾时,最后的隐藏状态 $h_T$ 被当作整个输入的语义表示,即上下文向量 $c$。输入序列通常以专门的终止符号结尾,用来告诉网络输入已经结束。
解码器同样是一个循环网络,其隐藏状态由上一隐藏状态、上一步生成的词元和上下文向量共同决定,即 $s_t = f_{dec}(y_{t-1}, s_{t-1}, c)$;当前步的输出概率则通过 softmax 在词表上归一化得到。训练时把输入序列与目标序列成对送入,以最大化条件对数似然为目标,用反向传播更新编码器与解码器的全部参数。
生成阶段无法像训练那样一次性得到全部答案,需要逐步搜索。常用的做法是每一步取概率最大的词元,即贪心搜索,或者同时保留若干条候选路径并按累计概率剪枝,即束搜索;生成过程一直持续到输出终止符号为止。
把全部输入信息挤进单一的固定向量,会随序列变长而丢失细节,这一问题被称为信息瓶颈。注意力机制对此作了改进:解码的每一步都计算一组权重,对编码器各个位置的隐藏状态加权求和,得到该步专用的上下文向量,形式为 $c_t = \sum_i \alpha_{t,i} h_i$,权重经 softmax 归一化。这样解码器不必只依赖最后一个隐藏状态,可以按需回看输入的不同部分。
发展历程
2013 年,卡尔赫布伦纳与布隆索姆提出用卷积神经网络编码、循环神经网络解码的结构,这一尝试被视为神经机器翻译的开端,但其解码端仍受长距离依赖的困扰。[1]
2014 年,屈昆亨·佐等人提出门控循环单元以及编码器-解码器模式,用门控机制缓解循环网络的训练困难。[2] 同年,伊利亚·苏茨克韦尔、奥里奥尔·维尼亚尔斯与郭格·黎发表了使用多层长短期记忆网络的端到端方法,在 WMT-14 英法翻译任务上取得 34.8 的 BLEU 分数,高于当时基于短语的统计机器翻译系统在同一数据集上的 33.3。[3] 他们还发现把源语句子的词序颠倒后再输入编码器,能明显改善效果。[4]
2015 年,巴赫达瑙、佐与本吉奥引入注意力机制,让解码器在生成每个目标词时动态计算语义向量,而不是依赖单一固定向量,神经翻译模型由此首次在性能上与基于短语的统计系统相当。[5] 实验显示,未加注意力的模型在源句超过约 30 个词元后质量急剧下降,而带注意力的模型在更长句子上仍能保持表现。[2]
2016 年,谷歌发布基于多层循环神经网络的机器翻译系统,把当时的多项神经翻译技术整合并部署到线上服务。[5] 2017 年,Vaswani 等人提出 Transformer,其编码器和解码器完全由自注意力机制搭建,不再使用循环结构,序列各位置可并行计算,成为此后序列到序列模型的主流实现。[6]
应用
机器翻译是序列到序列最经典的应用场景,系统接收源语言句子并直接输出目标语言译文,不依赖预先设计的人工特征。[7] 同一框架也被用于文本摘要,把长文档压缩成简短文摘,以及对话生成,根据用户输入生成回应。
当输入不再是文本时,这一架构经改造同样适用。图像描述任务用卷积网络把图片编码成特征序列,再由解码器逐词输出说明文字;语音识别则先处理音频,再生成对应文本。[8] 此外,表格转文本、自动问答等任务也沿用类似思路。[9]
局限
基础版本的编码器-解码器把输入的全部内容压缩进一个固定维度向量,无论输入多长都只能容纳这么多信息,因此输入变长时性能明显下降,这一容量不匹配被称为信息瓶颈。[10] 加入注意力可以缓解,但不能完全消除长序列上的困难。
以循环网络为骨架的实现还有一个固有限制:隐藏状态必须按时间顺序逐步计算,无法在训练时把整条序列并行处理,与卷积和自注意力结构相比训练效率偏低。[11] 同时,循环单元在长距离上容易出现梯度消失或梯度爆炸,需要门控机制加以抑制。
采用自注意力的模型虽然并行性更好,但解码阶段仍需从左到右逐词生成,不能一次算出全部输出。注意力权重常被当作模型决策的依据,但有研究指出,同一个输出可能对应多种注意力分布,权重与基于梯度的特征重要性也不总是一致,因此注意力图更适合作为诊断参考,而非对模型推理的因果解释。[2] 此外,词表固定的模型难以处理未登录词,通常需要借助子词切分来减小影响。[12]
参见
参考资料
- Machine Translation with RNN [引用日期2026-10-14]
- Classical Foundations of ANN [引用日期2026-10-14]
- Sequence to Sequence Learning with Neural Networks [引用日期2026-10-14]
- Sutskever et al [引用日期2026-10-14]
- \[ z_t = \sigma(W_x x_t + U_z h_{t-1}) \] [引用日期2026-10-14]
- 编码器-解码器架构 [引用日期2026-10-14]
- nvidia.com 上的网页 [引用日期2026-10-14]
- CS 4894: INTRODUCTION TO DEEP LEARNING AND COMPUTER VISION [引用日期2026-10-14]
- google.com 上的网页 [引用日期2026-10-14]
- 1.3_attention_birth [引用日期2026-10-14]
- RNN-based encoder-decoder models [引用日期2026-10-14]
- huggingface.co 上的网页 [引用日期2026-10-14]