Seq2Seq
Seq2Seq
传统的自然语言处理任务(如文本分类、序列标注)以静态输出为主,其目标是预测固定类别或标签
现实许多应用需要模型动态生成新的序列,例如
- 机器翻译
- 文本摘要
- 问答系统
- 对话系统
这些任务具有两个关键共同点:
- 输入和输出均为序列
- 输入与输出序列动态可变
模型结构
由一个编码器(Encoder)和一个解码器(Decoder)构成
- 编码器负责提取序列的语义信息,并将其压缩为一个固定长度的上下文(Context Vector)
- 解码器则基于该向量,逐步生成目标序列
编码器
编码器主要由一个循环神经网络构成(RNN、LSTM、GRU)
在模型处理输入序列时,循环神经网络会依据接收每个token的输入,并在每个时间步更新隐藏状态。每个隐藏状态都携带了截至到当前位置为止的信息。随着时间序列推进,信息不断积累,最终会在最后一个时间步形成一个包含整句话信息的隐藏状态。
这个最后的隐藏状态就会作为上下文向量(context vector),传递给解码器,用于指导后续的序列生成
解码器
解码器也是主要由一个循环神经网络构成(RNN、LSTM、GRU)
在每个时间步,模型都会根据前一时刻的隐藏状态和上一步生成的token,预测当前的输出。这种“将前一步的输出作为下一步输入”的方式被称为自回归生成(Autoregressive Generation),它确保了生成结果的连贯性
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 WereAsh!
评论
ValineDisqus




