文章目录
- 一、注意力提示
- 1.1概念
- 1.2生活中的注意力提示
- 1.3注意力机制基本框架
- 小结
- 二、注意力汇聚
- 2.1概念
- 2.2非参注意力汇聚
- 2.2.1平均汇聚
- 2.2.2Nadaraya-Waston核回归
- 2.3通用注意力汇聚公式
- 2.4带参数注意力汇聚
- 小结
- 三、注意力评分函数
- 3.1概念
- 3.2例子
- 四、遮蔽softmax
- 三+四小结
一、注意力提示
我们使用偏日常的注意力提示引入注意力机制
1.1概念
-
查询 query
=自主性的提示
=随意的 -
键 key
= 非自主性的提示
=不随意的 -
值 value
= 感觉输入
值和键是成对的
注意:此处的随意/不随意中的意是意志的意
1.2生活中的注意力提示
- 非自主性提示
- 自主性提示
人的意志就是自主性的提示,引导注意力指向了书。当无意识时,由于突出的非自主性提示(杯子),引导注意力指向了杯子。
此时,人的意志为query,杯子、书等物品为key,最终注意力的去向为value
1.3注意力机制基本框架
注意力机制通过注意力汇聚将查询(自主性提示)和键(非自主性提示)结合在一起,实现对值(感官输入)的选择倾向
小结
- 受试者使用非自主性和自主性提示有选择性地引导注意力。前者基于突出性,后者则依赖于意识。
- 注意力机制与全连接的层或汇聚层的区别:增加了自主性提示
二、注意力汇聚
2.1概念
查询(自主提示)和键(非自主提示)之间的交互形成了注意力汇聚;注意力汇聚有选择地聚合了值(感官输入)以生成最终的输出
2.2非参注意力汇聚
2.2.1平均汇聚
-
公式
f ( x ) = 1 n ∑ i = 1 n y i (1) f(x)={1\over n}\sum_{i=1}^n y_i \tag{1} f(x)=n1i=1∑nyi(1) -
结果
观察可知"查询-键"对越接近,注意力汇聚的注意力权值越高 -
缺点
忽略了输入 x x x
2.2.2Nadaraya-Waston核回归
- 改进
Nadaraya-Waston核回归比平均汇聚更优越的地方在于,其考虑了输入 x x x的位置。根据输入位置x对数据y进行加权 - 公式
f ( x ) = ∑ i = 1 n K ( x − x i ) ∑ j = 1 n K ( x − x j ) y i , (2) f(x) = \sum_{i=1}^n \frac{K(x - x_i)}{\sum_{j=1}^n K(x - x_j)} y_i, \tag{2} f(x)=i=1∑n∑j=1nK(x−xj)K(x−xi)yi,(2)
Nadaraya-Watson核回归的注意力汇聚是对训练数据中输出的加权平均。 - 优点
回归具有一致性:如果有足够的数据,模型将收敛到最优解(非参方法的特点)
注意: 其中K为高斯核函数,可自定义
2.3通用注意力汇聚公式
受K核的启发,可以将注意力汇聚公式重写为更通用的形式(适用于非参、带参)
f
(
x
)
=
∑
i
=
1
n
α
(
x
,
x
i
)
y
i
,
(3)
f(x) = \sum_{i=1}^n \alpha(x, x_i) y_i,\tag{3}
f(x)=i=1∑nα(x,xi)yi,(3)
其中x是查询,
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)是键值对。 比较平均汇聚(1)和通用公式(3) , 注意力汇聚是
y
i
y_i
yi的加权平均。 将查询x和键
x
i
x_i
xi之间的关系建模为 注意力权重
α
(
x
,
x
i
)
\alpha(x,x_i)
α(x,xi), 这个权重将被分配给每一个对应值
y
i
y_i
yi。
对于任何查询,模型在所有键值对注意力权重 α ( x , x i ) \alpha(x,x_i) α(x,xi)都是一个有效的概率分布: 它们是非负的,并且总和为1。
例子
可以自定义一个高斯核为
K
(
u
)
=
1
2
π
exp
(
−
u
2
2
)
K(u) = \frac{1}{\sqrt{2\pi}} \exp(-\frac{u^2}{2})
K(u)=2π1exp(−2u2)
将其带入(3)中,可以得到注意力汇聚公式如(4)
f
(
x
)
=
∑
i
=
1
n
α
(
x
,
x
i
)
y
i
=
∑
i
=
1
n
exp
(
−
1
2
(
x
−
x
i
)
2
)
∑
j
=
1
n
exp
(
−
1
2
(
x
−
x
j
)
2
)
y
i
=
∑
i
=
1
n
s
o
f
t
m
a
x
(
−
1
2
(
x
−
x
i
)
2
)
y
i
.
(4)
\begin{split}\begin{aligned} f(x) &=\sum_{i=1}^n \alpha(x, x_i) y_i\\ &= \sum_{i=1}^n \frac{\exp\left(-\frac{1}{2}(x - x_i)^2\right)}{\sum_{j=1}^n \exp\left(-\frac{1}{2}(x - x_j)^2\right)} y_i \\&= \sum_{i=1}^n \mathrm{softmax}\left(-\frac{1}{2}(x - x_i)^2\right) y_i. \end{aligned}\end{split} \tag{4}
f(x)=i=1∑nα(x,xi)yi=i=1∑n∑j=1nexp(−21(x−xj)2)exp(−21(x−xi)2)yi=i=1∑nsoftmax(−21(x−xi)2)yi.(4)
在(4)中,给出的查询x越接近某个键
x
i
x_i
xi,则分配给这个键对应值
y
i
y_i
yi的注意力权重就会越大,也就获得了更多的注意力。
特别的,Nadaraya-Watson核回归是一个非参数模型。因此将K带入后的通用注意力汇聚模型也为非参的模型。如果带入一个带参模型,则为带参的注意力汇聚模型。
2.4带参数注意力汇聚
将(3)带入一个带参模型,则为带参的注意力汇聚模型。如公式(5)
f
(
x
)
=
∑
i
=
1
n
α
(
x
,
x
i
)
y
i
=
∑
i
=
1
n
exp
(
−
1
2
(
(
x
−
x
i
)
w
)
2
)
∑
j
=
1
n
exp
(
−
1
2
(
(
x
−
x
j
)
w
)
2
)
y
i
=
∑
i
=
1
n
s
o
f
t
m
a
x
(
−
1
2
(
(
x
−
x
i
)
w
)
2
)
y
i
.
\begin{split}\begin{aligned}f(x) &= \sum_{i=1}^n \alpha(x, x_i) y_i \\&= \sum_{i=1}^n \frac{\exp\left(-\frac{1}{2}((x - x_i)w)^2\right)}{\sum_{j=1}^n \exp\left(-\frac{1}{2}((x - x_j)w)^2\right)} y_i \\&= \sum_{i=1}^n \mathrm{softmax}\left(-\frac{1}{2}((x - x_i)w)^2\right) y_i.\end{aligned}\end{split}
f(x)=i=1∑nα(x,xi)yi=i=1∑n∑j=1nexp(−21((x−xj)w)2)exp(−21((x−xi)w)2)yi=i=1∑nsoftmax(−21((x−xi)w)2)yi.
小结
- 注意力汇聚可以分为非参数型和带参数型
- Nadaraya-Watson核回归具有非参数的注意力机制的机器学习范例
- Nadaraya-Watson核回归的注意力汇聚是对训练数据中输出的加权平均。从注意力的角度来看,分配给每个值的注意力权重取决于将值所对应的键和查询作为输入的函数
至此注意力机制的基本概念介绍完毕,接下来介绍注意力机制的进阶概念
三、注意力评分函数
3.1概念
在通用注意力汇聚公式介绍时,我们自定义了一个高斯核,并将其带入通用注意力汇聚公式中
K
(
u
)
=
1
2
π
exp
(
−
u
2
2
)
K(u) = \frac{1}{\sqrt{2\pi}} \exp(-\frac{u^2}{2})
K(u)=2π1exp(−2u2)
将其带入(3)中,可以得到注意力汇聚公式如(4)
f
(
x
)
=
∑
i
=
1
n
α
(
x
,
x
i
)
y
i
=
∑
i
=
1
n
exp
(
−
1
2
(
x
−
x
i
)
2
)
∑
j
=
1
n
exp
(
−
1
2
(
x
−
x
j
)
2
)
y
i
=
∑
i
=
1
n
s
o
f
t
m
a
x
(
−
1
2
(
x
−
x
i
)
2
)
y
i
.
(4)
\begin{split}\begin{aligned} f(x) &=\sum_{i=1}^n \alpha(x, x_i) y_i\\ &= \sum_{i=1}^n \frac{\exp\left(-\frac{1}{2}(x - x_i)^2\right)}{\sum_{j=1}^n \exp\left(-\frac{1}{2}(x - x_j)^2\right)} y_i \\&= \sum_{i=1}^n \mathrm{softmax}\left(-\frac{1}{2}(x - x_i)^2\right) y_i. \end{aligned}\end{split} \tag{4}
f(x)=i=1∑nα(x,xi)yi=i=1∑n∑j=1nexp(−21(x−xj)2)exp(−21(x−xi)2)yi=i=1∑nsoftmax(−21(x−xi)2)yi.(4)
其中x为查询,
x
i
x_i
xi为键,
y
i
y_i
yi为值
通过观察可得,可以将K的指数部分
−
u
2
2
-\frac{u^2}{2}
−2u2视为注意力评分函数。
即注意力汇聚的输出可以分为以下三个步骤:
- 通过注意力评分函数计算键 x i x_i xi和x的得分
- 将得分作为softmax函数的输入
- softmax计算后将得到与键对应的值的概率分布(即注意力权重)
- 计算注意力权重与值的加权和
引入注意力评分函数的注意力机制框架如图所示
3.2例子
除了高斯核函数K的指数部分外,还有加性注意力、缩放点积注意力可作为评分函数
- 加性注意力
- 当查询和键是不同长度的矢量使适用
- 缩放点积注意力
- 计算效率更高
- 查询和键有相同长度
四、遮蔽softmax
并非所有值都应该被纳入到注意力汇聚中。可以指定一个有效序列长度,使masked_softmax滤去超出范围的部分
三+四小结
- 注意力汇聚从参数角度上可分为非参和带参。从结构上,可以拆分为评分函数+softmax函数或者像Nadaraya-Watson核回归中的一个高斯核整体
- 将注意力汇聚的输出计算可以作为值的加权平均,选择不同的注意力评分函数会带来不同的注意力汇聚操作。
- 当查询和键是不同长度的矢量时,可以使用可加性注意力评分函数。当它们的长度相同时,使用缩放的“点-积”注意力评分函数的计算效率更高