Multi-Head Attention 在 Transformers 中的工作原理

AI 基础Multi-HeadAttention…openstarry.com

Multi-Head Attention 在 Transformers 中的工作原理

单个注意力头只能捕捉一种关系模式。Multi-Head Attention 通过并行运行多组独立的注意力计算,让模型同时从不同角度理解输入。

从单头到多头:为什么需要多个注意力头?

回顾 Self Attention,每个词会生成一组 Q、K、V 向量。但语言是复杂的——同一个词在不同语境下需要关注不同的信息。

句子:"苹果发布了新 iPhone,股价大涨"

单头 Attention 可能只捕捉到:
  "苹果" → "发布"(语法关系)

但忽略了:
  "苹果" → "iPhone"(产品关系)
  "苹果" → "股价"(商业关系)
  "发布" → "新 iPhone"(修饰关系)

Multi-Head Attention 的解决方案:让多个注意力头各自独立计算,每个头学习关注不同方面的信息。


多头注意力的计算过程

Step 1: 线性投影生成多组 Q、K、V

# 假设 h=8 个头,d_model=512,d_k=64
# 每个头的维度 = 512 / 8 = 64

# 对每个头 i(i=1 到 8):
Q_i = x @ W_Q_i  # [batch, seq_len, 64]
K_i = x @ W_K_i  # [batch, seq_len, 64]
V_i = x @ W_V_i  # [batch, seq_len, 64]

Step 2: 并行计算 8 组 Attention

# 每个头独立计算注意力
for i in range(8):
    attn_i = softmax(Q_i @ K_i.T / sqrt(64)) @ V_i
    # 每个头输出 [batch, seq_len, 64]

Step 3: 拼接 + 线性变换

# 拼接所有头的输出
concat = [attn_1, attn_2, ..., attn_8]  # [batch, seq_len, 512]

# 最终线性变换
output = concat @ W_O  # [batch, seq_len, 512]

直觉理解:多头的分工

可以把多头注意力想象成一个团队协作:

头 1(语法专家):关注词与词之间的语法关系
  "猫" → "吃"(主谓关系)

头 2(语义专家):关注词之间的语义关联
  "苹果" → "iPhone"(产品关联)

头 3(位置专家):关注相邻词的关系
  "新" → "iPhone"(修饰关系)

头 4(远距离专家):关注长距离依赖
  "苹果" → "股价"(跨句关联)

... 每个头都从不同角度理解同一句话

为什么除以 √d_k?

这是 Scale Dot-Product Attention 中的关键细节。当 d_k 较大时,点积结果的方差也会很大,导致 Softmax 输出趋向 one-hot 分布(梯度消失)。

# 不缩放的情况
Q · K^T = [8.2, 7.5, 9.1, 6.8]  # 方差大
softmax → [0.05, 0.02, 0.88, 0.05]  # 几乎 one-hot

# 缩放后(d_k=64, √64=8)
Q · K^T / 8 = [1.03, 0.94, 1.14, 0.85]  # 方差缩小
softmax → [0.25, 0.24, 0.28, 0.23]  # 分布更平滑

Transformer 中的位置编码

Self Attention 有一个天然缺陷:它不知道词的顺序。"猫吃鱼" 和 "鱼吃猫" 对 Attention 来说是一样的。因此需要加入位置编码(Positional Encoding):

# 正弦位置编码
PE(pos, 2i)   = sin(pos / 10000^(2i/d_model))
PE(pos, 2i+1) = cos(pos / 10000^(2i/d_model))

# 最终输入 = 词嵌入 + 位置编码
input = token_embedding + positional_encoding

多头注意力的实际效果

研究者通过可视化注意力权重发现:

这种层次化的特征学习,使得 Transformer 能够从浅到深逐步理解语言。


总结

Multi-Head Attention 的核心思想:通过多个独立的注意力头并行计算,让模型从不同维度同时理解输入信息,最终融合形成更全面的表示。这是 Transformer 成功的关键设计之一。

以 AI 之力,筑未来之境

现在注册,立即免费获赠 200 次大模型调用权益

免费注册 →