标题:【Transformer 核心】多头注意力(Multi-Head Attention):让模型看多类关系
摘要:
多头注意力是自注意力的升级:并行做多次自注意力,每个头关注不同类型的依赖(语法/语义/位置),最后拼接融合,显著提升表达能力。
一、核心思想
把 Q/K/V 分成 hhh 个头,每个头独立做自注意力:
- 头1:关注语法关系
- 头2:关注语义相似
- 头3:关注位置远近
- ......
最后把所有头的输出拼接,再做一次线性融合。
二、计算流程
- 线性投影:Q,K,V→hQ,K,V \to hQ,K,V→h 个子空间
- 每个头独立计算自注意力
- 拼接所有头输出
- 最后一次线性变换融合
公式简化:
MultiHead(Q,K,V)=Concat(head1,...,headh)WO \text{MultiHead}(Q,K,V) = \text{Concat}(\text{head}_1,...,\text{head}_h)W^O MultiHead(Q,K,V)=Concat(head1,...,headh)WO
headi=Attention(QWiQ,KWiK,VWiV) \text{head}_i = \text{Attention}(QW_i^Q, KW_i^K, VW_i^V) headi=Attention(QWiQ,KWiK,VWiV)
三、作用
- 多视角建模:每个头捕捉不同类型依赖
- 增强表达:融合多种注意力结果,提升模型能力
- 稳定训练:多子空间分散注意力,降低过拟合
小结:
多头注意力 = 多个自注意力专家并行工作 + 结果融合,让 Transformer 能同时关注多种关系,是大模型强大的关键。