上一节记录了注意力机制的基础,这一节主要做几个实现,沐神说qkv在不同任务中的角色不一,所以后续内容才会搞懂qkv是啥玩意。
上节使用了高斯核来对查询和键之间的关系建模。 高斯核指数部分可以视为注意力评分函数(attention scoring function), 简称评分函数(scoring function), 然后把这个函数的输出结果输入到softmax函数中进行运算。 通过上述步骤,将得到与键对应的值的概率分布(即注意力权重)。 最后,注意力汇聚的输出就是基于这些注意力权重的值的加权和。
从宏观来看,上述算法可以用来实现下图中的注意力机制框架。 下图说明了如何将注意力汇聚的输出计算成为值的加权和, 其中α\alphaα
表示注意力评分函数。 由于注意力权重是概率分布, 因此加权和其本质上是加权平均值。

图10.3.1 计算注意力汇聚的输出为值的加权和
用数学语言描述, 假设有一个查询 q∈Rq\mathbf{q} \in \mathbb{R}^qq∈Rq 和 mmm 个“键一值”对 (k1,v1),…,(km,vm)\left(\mathbf{k}_1, \mathbf{v}_1\right), \ldots,\left(\mathbf{k}_m, \mathbf{v}_m\right)(k1,v1),…,(km,vm), 其中 ki∈Rk\mathbf{k}_i \in \mathbb{R}^kki∈Rk, vi∈Rv\mathbf{v}_i \in \mathbb{R}^vvi∈Rv 。 注意力汇聚函数 fff 就被表示成值的加权和:
f(q,(k1,v1),…,(km,vm))=∑i=1mα(q,ki)vi∈Rv, f\left(\mathbf{q},\left(\mathbf{k}_1, \mathbf{v}_1\right), \ldots,\left(\mathbf{k}_m, \mathbf{v}_m\right)\right)=\sum_{i=1}^m \alpha\left(\mathbf{q}, \mathbf{k}_i\right) \mathbf{v}_i \in \mathbb{R}^v, f(q,(k1,v1),…,(km,vm))=

本文介绍了注意力机制中的评分函数,包括加性注意力和缩放点积注意力,以及如何通过掩码softmax处理填充序列。通过多层感知机映射查询和键,并利用softmax和掩码操作生成注意力权重,最后实现值的加权和输出。
2343

被折叠的 条评论
为什么被折叠?



