Multi-Head 注意力:多套问法并行

01-注意力与基础 核心 约 20 分钟 #多头注意力#Multi-Head#子空间 更新 2026-10-02
当前状态:未学
本文基于模型知识整理(生成时未联网核对),多头机制建议对照原论文 §3.2.2 复核。

一句话定义

Multi-Head 注意力把 Q/K/V 各投影到 h 个低维子空间(d_model → h×d_head),在每个子空间独立做注意力,再把 h 个输出拼接回原维度——多套"提问方式"并行:有的头盯句法、有的头盯共指、有的头看相邻位置,各司其职后信息融合。

为什么重要

单头注意力的 softmax 是"平均化"的——所有信息被一个权重分布混合,多任务会互相干扰;多头让模型在同一层同时维护多种关系(句法头/共指头/位置头——注意力可视化研究反复观察到这些功能分工)。多头是"容量"与"分工"的结构化表达,也是模型可解释性研究的主要对象。

前置知识

kp-002(缩放点积注意力)。

核心概念

  • 计算流程:

$$\text{head}_i=\text{Attention}(XW_i^Q,XW_i^K,XW_i^V)$$ $$\text{MultiHead}(X)=\text{Concat}(\text{head}_1,\dots,\text{head}_h)W^O$$ 每头维度 d_head = d_model/h(如 512/8=64),拼接后经输出矩阵 W^O 融合。

  • 多头≠总计算量增加:分头降低每头维度(d_model 恒定切分),总 QKV 参数与单"大维度注意力"相同——多头是同预算下的结构化分工,不是加法。
  • 头的功能分化(实证):可视化研究发现的典型头型——位置头(只看相邻/前一词)、句法头(动词→宾语)、共指头(代词→先行词)、稀有词头(拷贝低频 token)。不同层分工不同:底层偏局部句法、高层偏语义。
  • 多头冗余与剪枝:实验表明部分头可剪除而不明显掉点(冗余容量)——这也是压缩(kp-024)与结构化剪枝的对象。
  • MQA/GQA 预告(推理优化 kp-023):让多个 Q 头共享一组 KV 头——牺牲少量质量换取推理时 KV Cache 大幅缩小,是现代 LLM 的标配改造。

原理与机制

为什么"低维多头"优于"单头全维":单头 softmax 强制"一个分布管所有任务"——句法与语义权重互相拉扯(softmax 行只能有一个加权和);多头允许每头独立分布,h 种关系并行表达再融合。类比 kp-030 线代:把 d_model 维空间切成 h 个子空间,每个子空间有自己的"相关性几何"。

输出投影 W^O 的作用:拼接只是并排;W^O(h·d_head × d_model)学"如何融合各头的结论"——可以加权、可以让某些头主导。可学习融合是多头优于"简单平均"的关键。

与 CNN 多通道的类比:多头≈多个注意力通道,每头有自己的"感受野模式"——这也是 ViT(kp-020)能把注意力当卷积替身的部分原因。

图示

X (n × 512)
  ├─ 头1 (64维): 句法头  → Attention₁
  ├─ 头2 (64维): 共指头  → Attention₂
  ├─ ⋯ 头8 (64维): 位置头 → Attention₈
  ↓ Concat (n × 512)
  ↓ ×Wᴼ (融合)
输出 (n × 512)
总参数与单头全维注意力相同 (切分不增量)

直观类比

单头注意力像"一个人同时盯句法和语义"——顾此失彼;多头像"一个编辑部":语法编辑、事实核查、风格编辑各审一遍稿件(并行子空间),主编(W^O)汇总意见出终稿。人多不贵(总预算相同),但分工产出质量高得多。

实例或案例

  • BERT 的头分析(Clark et al. 2019):直接可视化出句法头/共指头/位置头——多头分工的最著名实证。
  • 指示向量头(induction head):两层组合的"复制前面 pattern"头——被提出作为 ICL(kp-029)的机制候选。
  • Llama 的 GQA:32 个 Q 头共享 8 组 KV——推理加速的工业改造(kp-023)。

常见误区

  • 误区一:"多头=集成多个 Transformer"。只是同一层内的子空间并行;参数共享同一输入 X,不训练多个模型。
  • 误区二:"头数越多必然越好"。头过多则每头维度过小(表达能力不足),且冗余头浪费内存;典型 h=8~32、d_head≥64。
  • 误区三:"每个头的功能是设计者指定的"。分工是训练自发涌现的(事后可观察);指定头功能的方式是给特定头加先验/约束的研究方向而非默认行为。

与其他知识点的关系

  • kp-002:单头机制本体。
  • kp-023:MQA/GQA 推理优化。
  • kp-029:induction head 与 ICL 机制。
  • kp-008:FFN 与注意力在 Block 中的分工(混合 vs 加工)。

自测题

  1. d_model=512、h=8:每头维度与总注意力参数(相对单头全维)?

答:d_head=64;参数量与单头 512 维注意力相同(Q/K/V/O 各 512×512)——切分不加预算。

  1. 为什么需要输出矩阵 W^O?

答:拼接只是并排罗列;W^O 学习跨头的线性融合(加权/选择),是"分工后整合"的可学习环节。

  1. 举例说明"头自发分工"的实证证据。

答:BERT 头可视化中的句法头(动词→宾语高权重)、共指头(代词→先行词)、位置头(只看前一词)——训练后自然涌现。

延伸阅读

  • Vaswani 等 2017 §3.2.2。
  • Clark 等, "What Does BERT Look At?"(2019,头功能分析)。
  • Elhage 等, "A Mathematical Framework for Transformer Circuits"(2021,induction head 与头的组合理论)。