Seq2Seq

传统的自然语言处理任务(如文本分类、序列标注)以静态输出为主,其目标是预测固定类别或标签

现实许多应用需要模型动态生成新的序列,例如

  • 机器翻译
  • 文本摘要
  • 问答系统
  • 对话系统

这些任务具有两个关键共同点:

  • 输入和输出均为序列
  • 输入与输出序列动态可变

模型结构

由一个编码器(Encoder)和一个解码器(Decoder)构成

  • 编码器负责提取序列的语义信息,并将其压缩为一个固定长度的上下文(Context Vector)
  • 解码器则基于该向量,逐步生成目标序列

编码器

编码器主要由一个循环神经网络构成(RNN、LSTM、GRU

在模型处理输入序列时,循环神经网络会依据接收每个token的输入,并在每个时间步更新隐藏状态。每个隐藏状态都携带了截至到当前位置为止的信息。随着时间序列推进,信息不断积累,最终会在最后一个时间步形成一个包含整句话信息的隐藏状态。

这个最后的隐藏状态就会作为上下文向量(context vector),传递给解码器,用于指导后续的序列生成

解码器

解码器也是主要由一个循环神经网络构成(RNN、LSTM、GRU

在每个时间步,模型都会根据前一时刻的隐藏状态和上一步生成的token,预测当前的输出。这种“将前一步的输出作为下一步输入”的方式被称为自回归生成(Autoregressive Generation),它确保了生成结果的连贯性