Skip to content

前馈网络

1. 基本概念

前馈网络是 一种逐层传播信息、没有循环和跳跃的神经网络,在 Transformer 中通常被称为 Position-wise Feedforward Network

在标准 Transformer 里,FFN 位于每个注意力层(Self-Attention/Linear Attention)之后,主要作用是非线性变换和特征交互

公式表示为:

FFN(x)=W2σ(W1x+b1)+b2
  • xRd :输入向量(一个 token 的 embedding)。
  • W1Rdhidden×db1Rdhidden:第一层权重和偏置。
  • σ():非线性激活函数(ReLU、GELU 等)。
  • W2Rd×dhiddenb2Rd:第二层权重和偏置。
  • 输出维度与输入相同(d),方便残差连接。

2. 为什么叫 Position-wise

  • Position-wise 意味着 FFN 对每个 token 独立处理,不跨 token 做计算。
  • 如果有序列 X=[x1,x2,...,xn],则 FFN 对序列中每个 xi 计算:
FFN(X)=[FFN(x1),FFN(x2),...,FFN(xn)]
  • 这种设计允许并行化计算,加速训练。

核心理解是:

Self-Attention 负责跨 token 的依赖捕获,FFN 负责每个 token 内部特征的非线性组合和扩展。两者结合,模型既能学习长程依赖,又能丰富 token 表示。

1. Self-Attention vs FFN

  • Self-Attention:属于 交互式(Cross / Interaction)范式
    • 每个 token 的输出依赖于整个序列(通过 QKᵀ 计算权重),实现 token 之间的长程依赖
    • 本质是 全局聚合信息,强调序列间的交互。
  • Feedforward Network(前馈网络):属于 非交互 / 独立(Independent / Local / Point-wise)范式
    • 每个 token 独立计算,不依赖其他 token。
    • 本质是 特征维度变换和非线性映射,强调每个 token 内部的表达增强。

直观理解:

  • Attention 是“横向”操作,跨 token 信息流动 → Cross / Interaction
  • FFN 是“纵向”操作,单 token 内部变换 → Point-wise / Independent