多头注意力
概述
多头注意力(Multi-Head Attention)在 h 个独立子空间中并行执行 Self-Attention机制,再拼接并线性变换,使模型同时捕获不同类型的语义关系,是 Transformer架构 的标准注意力形式。
关键内容
核心公式
$$\text{MultiHead}(Q,K,V)=\text{Concat}(head_1,\dots,head_h)W_O$$
每个 head 独立执行缩放点积注意力:
$$head_i = \text{Attention}(QW_Q^i, KW_K^i, VW_V^i)$$
每个 head 的投影维度通常为 $d_k = d_{model}/h$,保持总计算量与单头相当。
为什么需要多头
单头注意力在单一表示子空间内学习关系。多头机制让模型在不同子空间里同时学习:
- 语法依赖:主语-谓语关系
- 指代关系:代词与先行词
- 局部邻近关系:相邻词的搭配
- 语义相关性:语义上相似的词汇
不同 head 自动分工,捕获互补的上下文信息。
计算复杂度
多头注意力的总复杂度与单头相同(子空间维度缩小 h 倍,但有 h 个 head):
来源
- raw/ChatGPT-Chat/ChatGPT-Self-Attention机制解析/01-解释Transformer架构中的Self-Attention机制,并说明其计算复杂度.md — Multi-Head Attention 章节
- raw/articles/ai-papers/machine-learning/14_transformer_2017.md — 多头注意力公式 + 不同头专长观察
相关
- Self-Attention机制 — extends(多头注意力扩展自单头自注意力)
- Transformer架构 — part_of(MHA 是 Transformer 编码器/解码器的核心组件)
- 缩放点积注意力 — part_of(每个头内部使用缩放点积注意力)