1. Query & Key & Value

在注意力机制中,原始数据转换成三个对象:Query, Key, Value. 而 Attention 就是在根据 Query 和 Key 的匹配程度获得权重,给 Value 分配权重,然后做加权求和。

Example. 1 一个简单例子

姓为 “Wu”010
年龄较大0.70.050.25
性别为 “男”unknown / 0.2unknown / 0.4unknown / 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

2. N-W 核回归 Nadaraya-Watson regression

Step 1 对由

生成的数据集 做回归.

Step 2 最简单的预测方法是取平均:

此时 Query 为 , Key 为 , Value 为 . 注意力权重为 . 如下图, 拟合效果并不好, 因为我们没有有效的使用 Query 和 Key.

meanpoolingregression x y 1 2 3 4 5 ¡1 0 1 2 3 4 5 Truth Pred

Step 3 Nadaraya (1964)Watson (1964) 提出了 Nadaraya-Watson kernel regression 方法:

When is Gaussian kernel

we have

可以看到,新模型的预测曲线更加平滑,并且比平均汇聚更接近真实函数.

Nadaraya-Watsonkernelregression x y 1 2 3 4 5 ¡1 0 1 2 3 4 5 Truth Pred

3. 缩放内积注意力 scaled dot-product attention

It is a part of Transformer from Attention is all you need (Vaswani et al. (2017)):

我们简单解释一下这个流程:

GPT-2 128M, consider one attention head
I'm going to visualize ...
↓ tokenizer (分词器)
I'm going to visual -ize ... 1024 tokens
↓ embedding
token embedding
what the word means
position embedding
where the word is located
↓ add them together
1024tokens 1024x768 X = token embedding 1024x768 Etoken + position embedding 1024x768 Eposition
1024 Tokens 对应 1024 行 embedding vector, 注意这里的 X 包含了 token 的含义信息和在文本中的位置信息
↓ linear projections
Query Q =XWQ768x64 q1 q2 q3 ¢¢¢ q1024 1024tokens 1024x64 Key K =XWK768x64 k1 k2 k3 ¢¢¢ k1024 1024x64 Value V =XWV768x64 v1 v2 v3 ¢¢¢ v1024 1024x64
这三个 W 是可以将 X 转换为特定问题(Q), 特征标签(K), 所需信息(V), 它们是随着神经网络迭代而更新的参数矩阵
↓ dot-product
QK>=(qi¢k>j)i;j = qinkj k1 k2 k3 ¢¢¢ k1024 q1 q1¢k>1 q1¢k>2 q1¢k>3 ¢¢¢ q1¢k>1024 q2 q2¢k>1 q2¢k>2 q2¢k>3 ¢¢¢ q2¢k>1024 q3 q3¢k>1 q3¢k>2 q3¢k>3 ¢¢¢ q3¢k>1024 ... ... ... ... ... ... q1024 q1024¢k>1 q1024¢k>2 q1024¢k>3 ¢¢¢ q1024¢k>1024 1024x1024attention-scoretable
A=softmax(QK>)=(®ij) = qinkj k1 k2 k3 ¢¢¢ k1024 rowsum q1 ®11 ®12 ®13 ¢¢¢ ®1;1024 Pj®1j=1 q2 ®21 ®22 ®23 ¢¢¢ ®2;1024 Pj®2j=1 q3 ®31 ®32 ®33 ¢¢¢ ®3;1024 Pj®3j=1 ... ... ... ... ... ... ... q1024 ®1024;1 ®1024;2 ®1024;3 ¢¢¢ ®1024;1024 Pj®1024;j=1
↓ 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.