行业资讯
多头注意力(Multi-Head Attention)的作用是什么?为什么需要“多头“?
多头注意力Multi-Head Attention核心结论多头注意力将 Q、K、V 投影到h 个不同的子空间中并行计算注意力再拼接融合使模型能够同时从多个表示维度和语义层面捕捉依赖关系。一、单头的局限单头注意力只有一个投影矩阵组 (W_Q, W_K, W_V)所有注意力计算在同一个表示空间中进行单头注意力: Q X · W_Q (n × d) K X · W_K (n × d) V X · W_V (n × d) Attention(Q, K, V) softmax(Q·K^T / √d) · V → 一个 n×n 注意力矩阵问题在于一个注意力矩阵只能学习一种关注模式。句子: The animal didnt cross the street because it was tired 单头可能只学到一种关系: → it 关注 animal (指代消解) → 但无法同时关注 it 与 tired 的语义关系 → 也无法同时关注 didnt 与 cross 的语法关系二、多头如何解决计算流程输入 X (n × d_model) │ ├──→ Head_1: Q_1X·W_Q^1, K_1X·W_K^1, V_1X·W_V^1 (n × d_k) │ → Attention(Q_1, K_1, V_1) softmax(Q_1·K_1^T/√d_k)·V_1 → head_1 (n × d_v) │ ├──→ Head_2: Q_2X·W_Q^2, K_2X·W_K^2, V_2X·W_V^2 (n × d_k) │ → Attention(Q_2, K_2, V_2) → head_2 (n × d_v) │ ├──→ ... │ └──→ Head_h: Q_hX·W_Q^h, K_hX·W_K^h, V_hX·W_V^h (n × d_k) → Attention(Q_h, K_h, V_h) → head_h (n × d_v) Concat(head_1, ..., head_h) (n × h·d_v n × d_model) │ └──→ · W_O (d_model × d_model) │ 最终输出 (n × d_model)维度分配d_model 512, h 8 每个头: d_k d_v d_model / h 512 / 8 64 每个头在 64 维子空间中计算注意力 8 个头拼接后 8 × 64 512 d_model 总参数量与单头相同 (W_Q, W_K, W_V 各 h 个小矩阵 vs 一个大矩阵)三、为什么需要多头1. 多子空间表示不同的投影矩阵将输入映射到不同的表示子空间每个头可以学习不同的关注模式Head 1: 关注语法关系 → didnt ↔ cross (否定动词) Head 2: 关注指代消解 → it ↔ animal (代词指代) Head 3: 关注语义相似性 → tired ↔ animal (状态归属) Head 4: 关注位置邻近性 → the ↔ street (限定词名词) Head 5: 关注长距离依赖 → animal ↔ tired (主语表语) Head 6: 关注句法结构 → cross ↔ street (动宾) Head 7: 关注否定语义 → didnt ↔ tired (否定影响) Head 8: 关注全局上下文 → 均匀关注所有词2. 类比卷积神经网络的多通道CNN: 多个卷积核 → 不同核捕捉不同特征 (边缘/纹理/形状) → 多通道特征图 → 更丰富的表示 Multi-Head: 多个注意力头 → 不同头捕捉不同依赖模式 → 多视角注意力 → 更全面的理解3. 增强模型表达能力单头: 1 个注意力分布 → 1 种软对齐 → 表达能力有限 多头: h 个注意力分布 → h 种软对齐 → 组合后表达力指数级增长 例: 8 个头各自二选一 → 2^8 256 种组合模式4. 计算效率不增加单头 (d_model512): Q·K^T: (n×512)·(512×n) n²×512 次乘法 8头 (每头 d_k64): 每头 Q_i·K_i^T: (n×64)·(64×n) n²×64 次乘法 8头总计: 8 × n²×64 n²×512 次乘法 → 总计算量相同但获得了 8 个不同子空间的表示四、实验证据Transformer 原论文Attention Is All You Need的可视化分析不同头确实学到了不同的注意力模式: Head 5-5 (第5层第5头): 学习到远距离的指代消解关系 Head 5-6 (第5层第6头): 学习到相邻词的句法依赖 Head 6-5 (第6层第5头): 学习到分隔符上的特殊关注 → 头的多样性是真实存在的不是冗余五、头数选择的影响h 1: 退化为单头注意力表达力不足 h 4: 适中每头维度较大 (d_k128) h 8: Transformer 默认值平衡性好 h 16: 每头维度较小 (d_k32)可能信息不足 h 32: 某些头可能冗余或退化 (attention collapse)头数 h每头维度 d_k特点1512单一模式表达力弱864默认值平衡1632头多但每头信息量低3216部分头冗余收益递减六、完整公式MultiHead(Q,K,V)Concat(head1,…,headh)WO \text{MultiHead}(Q, K, V) \text{Concat}(\text{head}_1, \dots, \text{head}_h) W^OMultiHead(Q,K,V)Concat(head1,…,headh)WOheadiAttention(QWiQ,KWiK,VWiV) \text{head}_i \text{Attention}(QW_i^Q, KW_i^K, VW_i^V)headiAttention(QWiQ,KWiK,VWiV)Attention(Q,K,V)softmax(QKTdk)V \text{Attention}(Q, K, V) \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)VAttention(Q,K,V)softmax(dkQKT)V其中投影矩阵维度W_i^Q ∈ ℝ^{d_model × d_k} W_i^K ∈ ℝ^{d_model × d_k} W_i^V ∈ ℝ^{d_model × d_v} W^O ∈ ℝ^{h·d_v × d_model} 通常 d_k d_v d_model / h一句话总结多头注意力通过将 Q、K、V 投影到h 个独立子空间并行计算注意力再融合使模型能同时捕捉语法、语义、指代等多种依赖模式在不增加总计算量的前提下显著增强了表示能力是 Transformer 区别于单头注意力的关键设计。
郑州网站建设
网页设计
企业官网