Seq2Seq(序列到序列)
一种将输入序列转换为输出序列的神经网络架构,由Encoder(编码输入)和Decoder(生成输出)两部分组成。最初用于机器翻译,是Transformer出现之前序列任务的主流方案。
Seq2Seq(序列到序列)
一句话理解
Seq2Seq 是一种"输入一个序列,输出另一个序列"的架构模式——输入一句英文,输出一句中文;输入一段文字,输出一个摘要。
架构结构
text
输入序列 → [Encoder] → 上下文向量 → [Decoder] → 输出序列
- Encoder:将整个输入序列压缩成一个固定长度的上下文向量(context vector)
- Decoder:基于这个上下文向量,逐步生成输出序列
早期 Seq2Seq(Sutskever et al., 2014)的 Encoder 和 Decoder 都用 RNN/LSTM 实现。
核心瓶颈
信息瓶颈:不管输入序列多长,都要压缩到一个固定维度的向量里。句子越长,信息丢失越严重——就像把一篇文章的所有内容塞进一条推文。
注意力机制的引入
Bahdanau et al. (2015) 提出了注意力机制来缓解这个瓶颈:Decoder 在生成每个输出 token 时,可以回头看 Encoder 的所有隐藏状态,而不是只依赖最后一个压缩向量。
这个想法直接启发了 Transformer——Transformer 把注意力从"辅助模块"升级为"唯一核心",完全抛弃了 RNN 骨架。
历史地位
Seq2Seq 是 Transformer 的前身。理解 Seq2Seq 的局限性(顺序处理、信息瓶颈),才能理解 Transformer 为什么要彻底重新设计。