2. 注意力分数

2. Attention Scoring Function

1. 基本思想

  • 注意力机制的核心:根据查询(query,q)和(key,ki)的相关性分配权重,从所有值(value,vi)中"加权取信息"。
  • 定义:注意力机制通过给每个值 vi 分配权重 α(q,ki),加权求和得到输出:
f(q)=i=1mα(q,ki)vi
  • 其中 α(q,ki) 是 attention 权重,由分数 a(q,ki) 经过 softmax 得到:

    α(q,ki)=exp(a(q,ki))j=1mexp(a(q,kj))

2. 拓展到高维度

  • 假设:查询 qRqm 对键值对 (k1,v1),,(km,vm),其中 KiRk, ViRv
  • 注意力池化层f(q,(k1,v1),,(km,vm))=i=1mα(q,ki)viRv,
  • 注意力分数
α(q,ki)=softmax(a(q,ki))=exp(a(q,ki))j=1mexp(a(q,kj))R.
  • 其中 α(q,ki) 是衡量 qki 相似度的函数。

3. 常见打分函数

  1. 加性注意力(Additive Attention)

    • 可学习参数WqRh×dqWkRh×dkwvRh
    • 打分公式a(q,k)=wvtanh(Wqq+Wkk)R
    • qK 连接后输入单隐层 MLP,隐层单元数为 h
  2. 缩放/点积注意力(Scaled Dot-Product Attention)

    • 条件:若 qKi 长度相同(q,KiRd)。

    • 打分公式(未缩放):

      a(q,k)=qk
    • 缩放点积注意力(Transformer常用):

      • 归一化防止大数值带来训练不稳定
      a(q,k)=qkd
    • 向量化版本

      • 输入:QRn×d, KRm×d, VRm×v
      • 注意力评分
      a(q,k)=qk/d.Rn×m
      • 注意力池化
      f=softmax(a(Q,K))V=softmax(QKd)VRn×v.

4. 总结

  • 注意力分数:衡量 querykey 的相似度,注意力权重是分数的 softmax 结果。
  • 两种常见分数计算方式
    1. querykey 合并输入单输出单隐层的 MLP。
    2. 直接计算 querykey 的内积(需缩放)。

参考资料

李沐《手动深度学习》:注意力分数
Bilibili:注意力分数


“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”

微信二维码

微信支付

支付宝二维码

支付宝支付

2. 注意力分数
http://neurowave.tech/2025/04/19/7-2-注意力分数/
作者
Artin Tan
发布于
2025年4月19日
更新于
2025年6月30日