在 Seq2Seq 模型中,编码器和解码器各负责什么功能?

在 Seq2Seq 模型中,编码器和解码器各负责什么功能?

编码器与解码器的功能分工

整体数据流

输入序列 x₁ x₂ x₃ <EOS> ↓ ↓ ↓ ┌─────────────────┐ │ 编码器 │ ← "理解"输入 │ (Encoder RNN) │ └────────┬────────┘ │ 上下文向量 c ← 输入序列的语义压缩 │ ┌────────┴────────┐ │ 解码器 │ ← "生成"输出 │ (Decoder RNN) │ └────────┬────────┘ │ 输出序列 y₁ y₂ y₃ <EOS>

编码器:将变长输入压缩为固定向量

核心功能:理解输入序列,将其语义信息编码为上下文向量 c。

逐步编码: h₁ = f(h₀, x₁) ← 读取第一个 token h₂ = f(h₁, x₂) ← 结合历史记忆读取第二个 h₃ = f(h₂, x₃) ← ... c = h_T ← 最后一步隐藏状态 = 整个序列的语义摘要

具体职责:

职责说明
序列读取逐个 token 读入输入序列,维护隐藏状态作为"运行记忆"
语义压缩将任意长度的输入序列压缩为一个固定维度的向量 c
信息承载c 需要编码输入序列的全部关键信息(语义、结构、顺序)
双向编码(可选)常用 BiLSTM/BiGRU,使 c 同时包含前向和后向上下文

关键约束:无论输入序列多长,输出 c 的维度固定(如 256/512 维),这是信息瓶颈所在。


解码器:从固定向量展开为变长输出

核心功能:以上下文向量 c 为起点,自回归地逐步生成输出序列。

初始化: s₀ = c ← 用上下文向量初始化解码器隐藏状态 第1步: s₁ = f(s₀, <SOS>) ← 输入起始符,生成第一个词 y₁ = softmax(W · s₁) ← 输出概率分布,取概率最高(或采样) 第2步: s₂ = f(s₁, y₁) ← 上一步生成的词作为当前输入 y₂ = softmax(W · s₂) 第3步: s₃ = f(s₂, y₂) y₃ = softmax(W · s₃) ...直到生成 <EOS> 停止

具体职责:

职责说明
状态初始化用编码器输出的 c 初始化解码器的隐藏状态
自回归生成每步以上一步输出为输入,逐步生成下一个 token
长度决定自行决定输出何时结束(生成<EOS>即停止)
分布输出每步输出词表上的概率分布,通过 argmax 或采样得到具体词

训练 vs 推理的关键差异

训练(Teacher Forcing): s₁ = f(c, <SOS>) → y₁ 输入: <SOS> s₂ = f(s₁, y₁*) → y₂ 输入: 真实标签 y₁*(而非预测 ŷ₁) s₃ = f(s₂, y₂*) → y₃ 输入: 真实标签 y₂* ↑ 每步用真实标签,梯度稳定,收敛快 推理(自回归): s₁ = f(c, <SOS>) → ŷ₁ 输入: <SOS> s₂ = f(s₁, ŷ₁) → ŷ₂ 输入: 自己的预测 ŷ₁ s₃ = f(s₂, ŷ₂) → ŷ₃ 输入: 自己的预测 ŷ₂ ↑ 误差逐步累积,可能偏离正确轨道

编码器与解码器的对比

维度编码器解码器
角色理解输入生成输出
输入完整输入序列上下文向量 c + 上一步输出
输出上下文向量 c逐步生成的 token 序列
方向通常双向(BiRNN)单向(因果,只能看已生成部分)
长度由输入决定由模型自行决定(遇<EOS>停止)
信息流逐步压缩:T 个 token → 1 个向量逐步展开:1 个向量 → T’ 个 token
参数独立的权重矩阵独立的权重矩阵(与编码器不共享)

信息瓶颈与注意力机制的引入

基本 Seq2Seq 中,编码器的全部输出仅为一个向量 c,解码器只能通过这一个"窗口"访问输入信息:

无注意力: 编码器: x₁ x₂ x₃ x₄ x₅ → c(一个向量) 解码器: c → y₁ y₂ y₃ y₄ ← 生成 y₄ 时仍只能访问 c,早期信息已模糊 有注意力: 编码器: x₁ x₂ x₃ x₄ x₅ → h₁ h₂ h₃ h₄ h₅(保留所有隐藏状态) 解码器: 每步动态计算 cₜ = Σ αₜᵢ · hᵢ ← 生成 y₄ 时可重点"回看" h₂

注意力机制让解码器在每一步都能动态聚焦于编码器的不同位置,而非依赖单一压缩向量,这是从 Seq2Seq 到 Transformer 的关键演进。


总结

编码器负责"读":将变长输入序列逐步编码为固定维度的上下文向量 c,是信息从序列到向量的压缩过程。解码器负责"写":以 c 为起点,自回归地逐步生成变长输出序列,是信息从向量到序列的展开过程。两者通过 c 连接,参数独立,各自承担理解与生成的职责。基本架构中 c 是唯一的信息桥梁,这一瓶颈催生了注意力机制,最终演化为 Transformer。