文章目录
- Attention注意力机制的公式解析
- 一、基本形式
- 二、组成部分解释
- 三、作用机制
- 四、应用价值
Attention注意力机制的公式解析
P.S. 关于Self-Attention(自注意力机制)的更详细信息,可以看我的这一篇文章:Self-Attention机制详解:Transformer的核心引擎。
一、基本形式
A t t e n t i o n ( Q , K , V ) = s o f t m a x ( Q K T d ) V Attention(Q,K,V)=softmax(\frac{QK^T}{\sqrt{d}})VAttention(Q,K,V)=softmax(dQKT)V
二、组成部分解释
- 输入参数:
- Q (Query):查询矩阵
- K (Key):键矩阵
- V (Value):值矩阵
- d: 键向量的维度
可以把注意力机制理解成一个信息检索过程:
| 名称 | 中文 | 作用 | 直观理解 |
|---|---|---|---|
| Q (Query) | 查询向量 | 表示当前 Token 想找什么信息 | 我想知道什么? |
| K (Key) | 键向量 | 表示每个 Token 可以通过什么特征被匹配 | 我有什么信息值得关注? |
| V (Value) | 值向量 | 表示每个 Token 实际提供的信息 | 我能提供什么内容? |
核心思想是:
使用 Q 和 K 计算注意力权重,再利用这些权重对 V 进行加权求和。
e.g.①假设 Transformer 正在处理这句话:“小明买了一台电脑,因为它运行速度很快。”
模型需要理解“它”指代什么。
- Q:想寻找自己指代的对象的内容,即“它”。
- K:“小明”“电脑”等 Token 提供各自的匹配特征。
- V:这些 Token 携带着可供提取的语义信息。
如果“它”的 Q 与“电脑”的 K 匹配程度很高,模型就会给“电脑”对应的 V 较大的注意力权重。这样,“它”的新表示就能融合更多与“电脑”相关的信息。
②或者还有一种理解:Q就像钥匙,想要找对应的保险柜;K像保险柜与钥匙配套的锁;V是想找到的保险柜里面的东西。
上述①②两种说法都是直观解释,真实模型的 Q、K、V 是通过训练得到的高维数值向量,不一定具有如此明确的人类语义。
计算步骤:
a.计算注意力分数:
Q K T d \frac{QK^T}{\sqrt{d}}dQKT- 将Q与K的转置相乘
- 除以缩放因子d \sqrt{d}d以防止梯度消失
b.归一化:
s o f t m a x ( Q K T d ) softmax(\frac{QK^T}{\sqrt{d}})softmax(dQKT)- 使用softmax函数将分数转换为概率分布(关于
softmax函数的相关信息可以参见:Softmax 函数详解) - 确保所有权重和为1
c.加权求和:
- 将归一化后的权重与V相乘
- 得到最终的注意力输出
三、作用机制
相关性计算:
- Q K T QK^TQKT计算查询和键之间的相关性
- 高相关性会得到更大的权重
缩放处理:
- d \sqrt{d}d用于缩放点积结果
- 防止维度d较大时softmax函数梯度消失
权重分配:
- softmax确保权重为正且和为1
- 实现对不同位置信息的软性选择
四、应用价值
信息筛选:
- 自动识别重要信息
- 忽略不相关信息
长距离依赖:
- 捕捉序列中的长距离依赖关系
- 克服传统RNN的局限性
并行计算:
- 支持并行处理
- 提高计算效率