系列文章目录
回顾
上一节使用了高斯核来对查询和键之间的关系建模。上一节中的高斯核指数部分可以视为注意力评分函数(attention scoring function),简称评分函数(scoring function),然后把这个函数的输出结果输入到softmax函数中进行运算。通过上述步骤,将得到与键对应的值的概率分布(即注意力权重)。最后,注意力汇聚的输出就是基于这些注意力权重的值的加权和。
如果用核回归的话就是下面这个公式。
我们通过一个函数先计算得到注意力分数,然后经过softmax后得到注意力权重。
从宏观来看,上述算法可以用来实现之前博客中的注意力机制框架。 下图说明了如何将注意力汇聚的输出计算成为值的加权和,其中 a a a表示注意力评分函数。由于注意力权重是概率分布,因此加权和其本质上是加权平均值。
拓展到高维度
用数学语言描述,假设有一个查询 q ∈ R q \mathbf{q} \in \mathbb{R}^q q∈Rq和 m m m个“键-值”对 ( k 1 , v 1 ) , … , ( k m , v m ) (\mathbf{k}_1, \mathbf{v}_1), \ldots, (\mathbf{k}_m, \mathbf{v}_m) (k1,v1),…,(km,vm),其中 k i ∈ R k \mathbf{k}_i \in \mathbb{R}^k ki∈Rk, v i ∈ R v \mathbf{v}_i \in \mathbb{R}^v vi∈Rv。这里的 q , k , v q,k,v q,k,v的长度都可不同。
注意力汇聚函数 f f f就被表示成值的加权和:
f ( q , ( k 1 , v 1 ) , … , ( k m , v m ) ) = ∑ i = 1 m α ( q , k i ) v i ∈ R v , f(\mathbf{q}, (\mathbf{k}_1, \mathbf{v}_1), \ldots, (\mathbf{k}_m, \mathbf{v}_m)) = \sum_{i=1}^m \alpha(\mathbf{q}, \mathbf{k}_i) \mathbf{v}_i \in \mathbb{R}^v, f(q,(k1,v1),…,(km,vm))=i=1∑mα(q,ki)vi∈