趋近智
点积注意力是一种常用的注意力机制,它以查询 (Q)、键 (K) 和值 (V) 为核心。其主要计算步骤是:注意力会计算一系列分数,这些分数反映了每个查询与每个键之间的关联度或匹配度。这些分数随后用于生成值的加权和,使得模型能够根据查询-键关系,侧重于值所携带的最重要数据。
“点积”这个名称直接来源于这些匹配分数的计算方式。对于给定的查询向量 q 和一组向量 K={k1,k2,...,km}, q 与特定向量 kj 之间的分数就是它们的点积:
分数(q,kj)=q⋅kj=qTkj
通俗地说,点积体现了两个向量之间的对齐程度或相似性。如果查询向量 q 与键向量 kj 高度相似(指向相似的方向),它们的点积会很大。反之,如果它们不相似或正交,点积会很小或为零。
在实际应用中,我们不会逐一计算这些分数。深度学习框架善于并行处理,尤其是矩阵乘法。我们通常使用查询、键和值的矩阵进行操作:
请注意,查询和键向量必须具有相同的维度 (dk) 才能进行点积计算。值向量可以具有不同的维度 (dv)。
为了同时计算所有查询分数,我们对查询矩阵 Q 和矩阵 KT 的转置进行矩阵乘法:
分数=QKT
我们来看看这些矩阵的尺寸:将 Q ([n×dk]) 乘以 KT ([dk×m]) 会得到一个形状为 [n×m] 的分数矩阵。这个分数矩阵中的每个元素 (i,j) 代表了第 i 个查询 (Qi) 和第 j 个键 (Kj) 之间的点积,这体现了它们的匹配程度。
矩阵乘法 QKT 计算了查询向量(Q 的行)与键向量(KT 的列)之间所有的成对点积。
这些原始分数 (QKT) 代表了点积注意力机制中主要的匹配度指标。然而,它们尚未准备好用作值的权重。点积的取值区间可能非常大,这可能在训练期间引出问题,尤其是在梯度方面。另外,我们需要将这些分数转换为一个概率分布,使得每个查询的分数之和为1,这反映了该查询应如何分配对每个值的关注度。
接下来的步骤,即对这些分数进行缩放并应用softmax函数,将解决这些情况,并将原始点积分数转化为实际可用的注意力权重。我们将在后续章节中考察这些步骤。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造