1. Query & Key & Value
在注意力机制中,原始数据转换成三个对象:Query, Key, Value. 而 Attention 就是在根据 Query 和 Key 的匹配程度获得权重,给 Value 分配权重,然后做加权求和。
Example. 1 一个简单例子
| 姓为 “Wu” | 0 | 1 | 0 |
| 年龄较大 | 0.7 | 0.05 | 0.25 |
| 性别为 “男” | unknown / 0.2 | unknown / 0.4 | unknown / 0.2 |
Table. 固定 Q 时, 不同 Key 下的注意力权重.
- 当问到姓为 “Wu” 的时候, 注意力权重集中于第二个 Key , 这时候我们主要关心 Wu 姓用户的电费 (Value).
- 当问到年龄较大的时候, 注意力权重在年纪较大的 Key 大, 在年纪较小的 Key 小, 这时我们主要关心年纪大的用户的电费 (Value).
- 当问到性别为男时, Key 并不包含性别 tag, 故注意力权重溃散到 .
当固定 为 “年龄较大” 时, 注意力为
Definition. Attention pool
- 给定一个 Query 和一组 Key-Value 对 , 注意力为:
是 query 分配给 key 的注意力权重,需满足:
实际上, 注意力权重即 Q 和 K 之间的匹配程度/相关程度 有不同的表示方法, 接下来给出两个例子:
- 来自 Theory of Probability & Its Applications (Nadaraya (1964)) 的 Nadaraya-Watson regression
- 来自 Attention is all you need (Vaswani et al. (2017)) 的 scaled dot-product attention
2. N-W 核回归 Nadaraya-Watson regression
Step 1 对由
生成的数据集 做回归.
Step 2 最简单的预测方法是取平均:
此时 Query 为 , Key 为 , Value 为 . 注意力权重为 . 如下图, 拟合效果并不好, 因为我们没有有效的使用 Query 和 Key.
Step 3 Nadaraya (1964) 和 Watson (1964) 提出了 Nadaraya-Watson kernel regression 方法:
When is Gaussian kernel
we have
可以看到,新模型的预测曲线更加平滑,并且比平均汇聚更接近真实函数.
3. 缩放内积注意力 scaled dot-product attention
It is a part of Transformer from Attention is all you need (Vaswani et al. (2017)):
我们简单解释一下这个流程:
1024 Tokens 对应 1024 行 embedding vector, 注意这里的 X 包含了 token 的含义信息和在文本中的位置信息
↓ linear projections
这三个 W 是可以将 X 转换为特定问题(Q), 特征标签(K), 所需信息(V), 它们是随着神经网络迭代而更新的参数矩阵
↓ dot-product
↓ scaled dot-product attention
这里的 d_k, M 和多头为了简化问题就暂不论述了
References
- Nadaraya, E. A. (1964). On estimating regression. Theory of Probability & Its Applications, 9(1), 141–142.
- Watson, G. S. (1964). Smooth regression analysis. Sankhyā: The Indian Journal of Statistics, Series A, 359–372.
- Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., Kaiser, Ł., & Polosukhin, I. (2017). Attention is all you need. Advances in Neural Information Processing Systems, 30.