序列到序列模型

序列到序列模型(Sequence-to-Sequence Model,Seq2Seq)是一类将输入序列映射为输出序列的深度学习架构,广泛应用于机器翻译、文本摘要、语音识别等任务。

核心架构

Seq2Seq 模型采用 编码器-解码器(Encoder-Decoder) 结构:

  • 编码器(Encoder):读取输入序列,将其编码为一个上下文表示(context vector),捕获输入序列的语义信息。
  • 解码器(Decoder):根据编码器生成的上下文表示,逐步生成目标输出序列,每一步生成一个 token。

演化历程

Seq2Seq 模型经历了多种神经网络架构的迭代:

基于前馈神经网络的 Seq2Seq

早期的序列到序列建模尝试使用前馈神经网络,但由于前馈网络无法自然地处理变长序列,且缺乏时序建模能力,实际效果有限。

基于 RNN 的 Seq2Seq

使用循环神经网络(RNN)作为编码器和解码器,能够自然地处理变长序列。编码器 RNN 逐步读取输入并将最终隐状态作为上下文向量;解码器 RNN 以此为初始状态逐 token 生成输出。然而,RNN 存在长距离梯度消失问题,且编码器必须将整个输入序列压缩为一个固定长度的向量,成为性能瓶颈。

基于注意力的 Seq2Seq

在基于 RNN 的 Seq2Seq 中引入注意力机制,解码器在生成每个目标 token 时可以动态地关注编码器不同位置的信息,而非仅依赖单一的上下文向量。这极大地缓解了信息瓶颈问题,并显著提升了长序列的处理能力。注意力机制最早正是为解决 Seq2Seq 的信息压缩问题而提出的。

基于卷积神经网络的 Seq2Seq

使用卷积神经网络(CNN)替代 RNN 构建编码器和解码器,利用卷积的层级结构捕获局部依赖关系,同时可以实现序列内部的并行计算。CNN 的层级结构天然适合捕获局部模式,但需要多层堆叠才能覆盖长距离依赖。

基于 Transformer 的 Seq2Seq

完全基于自注意力机制的 Transformer 架构,抛弃了循环与卷积结构,实现了最先进的序列到序列建模性能,成为现代 Seq2Seq 任务的主流方案。

应用场景

  • 机器翻译:将源语言句子翻译为目标语言句子
  • 文本摘要:将长文档压缩为简短摘要
  • 语音识别:将语音信号序列转换为文本序列
  • 对话系统:将用户输入映射为系统回复
  • 图像描述:将图像特征序列转换为自然语言描述

链接到