从矩阵乘法到核函数:一次对Attention机制的回溯

在线性代数的学习中,我建立的第一个核心认知是:矩阵乘法等于线性变换的复合

比如我们有两个矩阵 ,以及一个向量 ,那么 的含义是,先对 进行 变换,再对结果进行 变换,即:

当我看到自注意力中的 QK^T 时,我的第一反应也是讲这个过程理解为线性变换。

问题的“症结”:Attention中的QK^T

让我们回顾一下自注意力的核心公式:

如果按照“变换复合”的思路,QK^T似乎是想表达“先做一个 变换,再做一个 变换”。但这个解释在维度上和语义上都讲不通。

假设 矩阵( 个Query向量), 也是 矩阵( 个Key向量)。那么 矩阵。QK^T 的结果是一个 的矩阵。

矩阵的物理意义是什么?它显然不是一个“变换”,而是 个Query和 个Key之间的两两相似度

我们仔细看一下 中第 行第 列的元素

这里的 的第 行, 的第 行。

QK^T 这个矩阵乘法,其目的根本就不是为了“复合变换”,而是用一种批量计算的方式,高效地算出每个 向量与每个 向量的点积(Dot Product),而这里的批量计算,是由硬件来保证的。

这个 矩阵,实际上是“相似度矩阵”或“注意力得分矩阵”。

重新审视Attention:从线性到非线性核

QK^T 的本质是在计算相似度,而它选择的相似度度量方式,正是点积, 而点积是一种线性核。

所以,原始的自注意力机制 ,本质上是在使用线性核来计算 之间的相似度。

现在,我们可以把所有的线索串联起来了。

  1. 矩阵乘法:可以有两种语义。一种是“变换的复合”(如 ),另一种是“批量相似度计算”(如 )。
  2. 自注意力QK^T 采用了第二种语义,即批量计算相似度。
  3. 线性核QK^T 所使用的相似度 ,是核函数家族中的“线性核”。
  4. 核函数:是点积的非线性推广,允许我们在高维(隐式)空间中度量相似性。

那么,一个自然而然的推论是:

我们可以将自注意力中的线性核 ,替换为任意的非线性核

这就得到了核化注意力(Kernelized Attention)

其中 是一个 的矩阵,其元素

这个 可以是更复杂的核,例如:

  • 多项式核
  • 高斯核/RBF核

事实上,近年来一些高效的Transformer变体(如 Performer、Linear Transformer)正是利用了核函数的特性。