Nadaraya-Watson 核回归
非参数注意力汇聚
Nadaraya 和 Watson 根据输入的位置对输出$y_i$进行加权:
$$f(x) = \sum_{i=1}^n \frac{K(x - x_i)}{\sum_{j=1}^n K(x - x_j)} y_i,$$
其中 $K$ 是核(kernel)。 公式 所描述的估计器被称为 Nadaraya-Watson核回归(Nadaraya-Watson kernel regression)。 成为一个更加通用的注意力汇聚(attention pooling)公式:
$$f(x) = \sum_{i=1}^n \alpha(x, x_i) y_i,$$
其中$x$是查询,$(x_i, y_i)$是键值对。
注意力汇聚是$y_i$的加权平均。 将查询$x$和键$x_i$之间的关系建模为 注意力权重(attention weight)$\alpha(x, x_i)$,
这个权重将被分配给每一个对应值$y_i$。 对于任何查询,模型在所有键值对注意力权重都是一个有效的概率分布: 它们是非负的,并且总和为1。
为了更好地理解注意力汇聚, 下面考虑一个高斯核(Gaussian kernel),其定义为:
$$K(u) = \frac{1}{\sqrt{2\pi}} \exp(-\frac{u^2}{2}).$$
将高斯核代入:
$$\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}$$
如果一个键$x_i$越是接近给定的查询$x$, 那么分配给这个键对应值$y_i$的注意力权重就会越大, 也就“获得了更多的注意力”。
带参数注意力汇聚
非参数的Nadaraya-Watson核回归具有一致性(consistency)的优点: 如果有足够的数据,此模型会收敛到最优结果。 尽管如此,我们还是可以轻松地将可学习的参数集成到注意力汇聚中。
在下面的查询$x$和键$x_i$之间的距离乘以可学习参数$w$:
$$\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}$$
小结
- Nadaraya-Watson核回归是具有注意力机制的机器学习范例。
- Nadaraya-Watson核回归的注意力汇聚是对训练数据中输出的加权平均。从注意力的角度来看,分配给每个值的注意力权重取决于将值所对应的键和查询作为输入的函数。
- 注意力汇聚可以分为非参数型和带参数型。