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. 拓展到高维度

  • 假设:查询 q∈Rq,m 对键值对 (k1,v1),…,(km,vm),其中 Ki∈Rk, Vi∈Rv。
  • 注意力池化层:f(q,(k1,v1),…,(km,vm))=∑i=1mα(q,ki)vi∈Rv,
  • 注意力分数:
α(q,ki)=softmax(a(q,ki))=exp⁡(a(q,ki))∑j=1mexp⁡(a(q,kj))∈R.
  • 其中 α(q,ki) 是衡量 q 和 ki 相似度的函数。

3. 常见打分函数

  1. 加性注意力(Additive Attention)

    • 可学习参数:Wq∈Rh×dq,Wk∈Rh×dk,wv∈Rh
    • 打分公式:a(q,k)=wv⊤tanh(Wqq+Wkk)∈R
    • 将 q 和 K 连接后输入单隐层 MLP,隐层单元数为 h。
  2. 缩放/点积注意力(Scaled Dot-Product Attention)

    • 条件:若 q 和 Ki 长度相同(q,Ki∈Rd)。

    • 打分公式(未缩放):

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

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

      • 输入:Q∈Rn×d, K∈Rm×d, V∈Rm×v
      • 注意力评分:
      a(q,k)=q⊤k/d.∈Rn×m
      • 注意力池化:
      f=softmax(a(Q,K))V=softmax(QK⊤d)V∈Rn×v.

4. 总结

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

参考资料

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


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

微信二维码

微信支付

支付宝二维码

支付宝支付

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