为什么 Transformer 的 FFN 要先“升维”再“降维”?这种“瓶颈结构”到底在做什么?

36 阅读2分钟

🌟 1. 直觉:FFN 是每个 token 的“独立思考专家”

在 Transformer 中,自注意力机制(Self-Attention)负责让各个 token 互相交流、聚合上下文信息
但光有交流还不够——每个 token 还需要自己消化信息、提炼特征

这时候,FFN 就登场了:

  • 它对序列中的每个位置(token)单独处理(不跨位置交互);
  • 但它在特征维度上做复杂的非线性变换
  • 相当于给每个 token 配了一个“私人顾问”,帮它从高维视角重新理解自己。

✅ 关键直觉:Attention 负责“听别人说”,FFN 负责“自己想”

而这个“自己想”的过程,为什么要先扩展到更高维(比如 2048 维),再压缩回原维(比如 512 维)?

答案是:为了提供一个“表达缓冲区”——让模型有更多空间进行非线性组合和特征解耦。


🧠 2. 类比:FFN 像一个“思维拓展白板”

想象你是一个侦探,刚听完目击者的证词(相当于 Attention 汇总了上下文)。
现在你要独自分析案情:

  1. 拿出一张超大白板(升维)
    ——把所有线索、假设、可能性都写上去,哪怕看起来杂乱。
    (高维空间允许你枚举大量组合:“如果凶手穿红鞋 + 雨天 + 无伞 → 可能是A”)
  2. 划掉不可能的假设,圈出关键逻辑链(ReLU 激活)
    ——大部分想法被否定(置零),只留下几个有力推理路径。
    (稀疏激活 = 只关注当前最相关的几条规则)
  3. 总结成一页简报交给上级(降维)
    ——把白板上的复杂推理浓缩成清晰结论。
    (回到原始维度,便于后续模块使用)

✅ 类比总结:FFN = 给每个 token 一块“思维白板”,让它在高维空间自由联想,再提炼精华。


🎯 三者融合:一句话理解 Transformer 中的 FFN

Transformer 的 FFN 通过“升维→非线性激活→降维”的结构,为每个 token 提供一个独立的高维推理空间,使其能在不依赖其他位置的情况下,对自身语义进行深度非线性增强和特征重组。