自注意力机制与多头注意力机制

自注意力机制与多头注意力机制

0
18
浏览
Self-Attention
Self-Attention

一、自注意力机制(Self-Attention)

  1. 核心思想
自注意力机制通过计算同一序列内元素之间的相关性权重,动态捕捉全局依赖关系。与传统注意力机制(关注外部序列)不同,它聚焦于输入内部的关联性。
  1. 计算流程
输入:序列 X=[x1,x2,…,xn]X=[x1,x2,…,xn](每个xixi为词向量) 输出:加权后的上下文向量 Z=[z1,z2,…,zn]Z=[z1,z2,…,zn]
步骤分解
  1. 线性变换:生成Q(Query)、K(Key)、V(Value)矩阵
  2. Q=XWQ,K=XWK,V=XWVQ=XWQ,K=XWK,V=XWV
  3. (WQ,WK,WVWQ,WK,WV为可学习参数矩阵)
  4. 注意力得分计算
  5. Attention(Q,K,V)=softmax(QKTdk)VAttention(Q,K,V)=softmax(dkQKT)V
    1. 缩放因子 dkdk:防止点积值过大导致softmax梯度消失
    2. 得分矩阵:QKTQKT的每个元素表示词与词之间的关联强度
  6. 加权聚合 通过softmax归一化权重后,对Value矩阵加权求和,得到每个位置的上下文向量。
  7. 示例解释
以句子 “The animal didn’t cross the street because it was too tired” 为例:
  • “it”对”animal”和”street”的注意力权重: 模型通过自注意力自动判断”it”指代”animal”(而非”street”),权重分配更高。
  1. 优势
  • 长距离依赖:直接建模任意两个词的关系,解决RNN的梯度消失问题。
  • 并行计算:矩阵运算可一次性处理整个序列,加速训练。

二、多头注意力机制(Multi-Head Attention)

  1. 设计动机
单一自注意力机制可能无法充分捕捉不同语义子空间的信息。多头注意力通过并行多个独立的注意力头,增强模型对复杂模式的捕捉能力。
  1. 实现步骤
  2. 拆分头部 将Q、K、V矩阵按维度拆分为hh个头(如8头):
  3. Qi=QWiQ,Ki=KWiK,Vi=VWiV(i=1,2,…,h)Qi=QWiQ,Ki=KWiK,Vi=VWiV(i=1,2,…,h)
  4. 每个头的维度降为原始维度的1/h1/h(如原始维度512 → 每个头64维)。
  5. 独立计算注意力 每个头独立进行自注意力计算:
  6. headi=Attention(Qi,Ki,Vi)headi=Attention(Qi,Ki,Vi)
  7. 拼接与线性变换 将多个头的输出拼接后,通过线性层整合信息:
  8. MultiHead(Q,K,V)=Concat(head1,…,headh)WOMultiHead(Q,K,V)=Concat(head1,…,headh)WO
  9. (WOWO为输出投影矩阵)
  10. 多头的作用
  • 语义子空间分化:不同头可关注语法、指代、情感等不同层面的特征。 示例
    • 头1:捕捉句法结构(如主谓关系)
    • 头2:识别指代消解(如”it”指代谁)
    • 头3:提取情感极性词汇关联
  1. 数学表达
MultiHead(Q,K,V)=∑i=1hsoftmax(QiKiTdk)ViWOMultiHead(Q,K,V)=i=1∑hsoftmax(dkQiKiT)ViWO
  1. 优势
  • 信息多样性:多视角建模增强表达能力。
  • 鲁棒性:减少对单一注意力模式的依赖,降低过拟合风险。

三、自注意力 vs 多头注意力对比

特性 自注意力(Single-Head) 多头注意力(Multi-Head)
计算维度 单一全局注意力 多个子空间注意力并行
参数量 较少(无头部拆分) 较多(线性投影参数增加)
表达能力 可能遗漏复杂模式 捕捉多样化语义关系
典型应用 简单任务或资源受限场景 绝大多数Transformer模型(如BERT)

四、技术挑战与优化

  1. 计算复杂度问题
  • 问题:自注意力计算量为 O(n2)O(n2),长序列(如1000词)处理成本高。
  • 解决方案
    • 稀疏注意力:限制每个词仅关注局部窗口(如Longformer)
    • 分块计算:将序列切分为块并行处理(如Reformer)
  1. 位置信息增强
  • 问题:自注意力本身对词序不敏感,依赖位置编码。
  • 改进方向
    • 相对位置编码(如Transformer-XL)
    • 旋转位置编码(RoPE)(如LLaMA、GPT-NeoX)

五、实际应用示例

  1. 机器翻译
  • 编码器-解码器注意力:解码器通过多头注意力对齐源语言与目标语言词位。
  1. 文本摘要
  • 自注意力:识别原文中关键句子的重要性权重,指导生成摘要。
  1. 图像分类(ViT)
  • 多头注意力:将图像分块后,建模不同图像块间的空间关系。

总结

  • 自注意力是Transformer的核心创新,通过动态权重分配实现全局依赖建模。
  • 多头注意力通过并行多个子空间注意力,显著提升模型对复杂语义的捕捉能力。
  • 两者共同构成了大模型(如GPT、BERT)的基础,推动NLP、CV等领域的突破。未来发展方向包括降低计算复杂度增强可解释性

留下一个答复

请输入你的评论!
请在这里输入你的名字