1、映射函数
当我们比较x与y的相似性时,通常将其从低维度映射到高维特征空间,以便在其中用简单的点积来衡量原始空间中复杂的相似性
映射函数为:
例如:对于数据
就将2维数据变成了6维数据了
2、核函数
常规而言,计算和
的相似度,应该先分别计算
和
,再计算
就是
和
的高维相似度了。但是这样计算太麻烦了,我们希望直接把值带入进去就可以直接知道
的值。
换句话说,我们不需要显式知道和
到底等于什么,只需要一个能计算最终相似度的公式就可以了。
于是核函数为:
例如:如果有映射函数:
将1维数据升为3维,我们可以计算对于和
在映射空间中的相似度:
所以可得该情况下的核函数:
以上是显式可推导而出的核函数公式,也就是直接带入和
就可以。妙处在于,我们无需知道显式的映射
和
到底等于什么,也无需在高维空间中进行计算,就能得到高维空间的内积结果。
3、注意力公式与核函数
对于注意力公式而言,我们先省略缩放参数
,取第i个查询
,则原公式为:
进一步我们对所有的做softmax的展开为:
当我们审视标准注意力公式时,会发现其核心是计算查询与键
的相似度,我们可以将
视为一种特殊的核函数。
然而,这个核函数对应的特征映射是复杂且隐式的,虽然可以直接带入与
求出来,但是直接
是进行矩阵乘法,复杂度
随着
增大暴增,所以我们回归核函数定义的本质,将核函数还原为
,即先分别计算
和
,再计算
,改为多个
的串行计算得到
,从而避免复杂度
的矩阵乘法
线性注意力的核心思想是:能否设计一种新的、更简单的核函数,并找到其对应的显式特征映射
,使得相似度计算可以写成
4、进一步公式推导
首先在这里,不能直接进行分解,因为是指数函数
举例为:
所以我们只能去另外找近似的新的核函数(已经不是exp了),使得:
由此,原式子可以化为:
同时,因为只与i有关,求和符号只与j有关,所以可以将
提出求和符号,放在前面:
我们可以将其进一步写作向量的形式,结合矩阵乘法的交换律优先计算:
5、总结
可以看到,线性注意力的核心就是为注意力机制选择了一个易于分解的‘核函数’。
不同的线性注意力变体(如Linear Transformer, Performer, FLASH等)的区别主要就在于特征映射函数的设计上(例如,Performer使用exp和随机投影来近似softmax核,而最早的Linear Transformer使用elu(x)+1等简单函数)
833

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



