论文地址:
https://arxiv.org/abs/2111.00035arrow-up-right
首先引入高斯核,将相似度矩阵表示为对称矩阵的子矩阵,然后利用Nyström方法计算对称矩阵,最后求出子矩阵。
符号说明:
Q∈Rn×d,K∈Rn×d,V∈Rn×d\mathbf Q\in \mathbb R^{n\times d},\mathbf K\in \mathbb R^{n\times d},\mathbf V \in \mathbb R^{n\times d}Q∈Rn×d,K∈Rn×d,V∈Rn×d
S∈R2n×ds\mathbf S\in \mathbb R^{2n\times d_s}S∈R2n×ds
整体思路如下:
相似度的计算方式修改:
记:
那么:
注意S\mathbf SS不好处理,但是S\mathbf SS为如下矩阵的子矩阵:
注意Bˉ\bar BBˉ为正定矩阵,所以可以用Nyström Method进行近似计算:
最后利用下式近似计算S\mathbf SS:
首先分析矩阵的形状:
(In,0)B‾S∈Rn×ds(\mathbf{I}_n, \mathbf{0}) \overline{\mathbf{B}} \mathbf{S} \in \mathbb R^{n\times d_s}(In,0)BS∈Rn×ds
(S⊤B‾S)†∈Rds×ds\left(\mathbf{S}^{\top} \overline{\mathbf{B}} \mathbf{S}\right)^{\dagger}\in \mathbb R^{d_s\times d_s}(S⊤BS)†∈Rds×ds
S⊤B‾(0,In)⊤∈Rds×n\mathbf{S}^{\top} \overline{\mathbf{B}} (\mathbf{0}, \mathbf{I}_n)^{\top} \in \mathbb R^{d_s\times n}S⊤B(0,In)⊤∈Rds×n
总时间复杂度为O(ndsd)O(nd_s d)O(ndsd)。
不变。
https://github.com/pkuzengqi/Skyformerarrow-up-right
实验结果比较少,主要是测试了近似误差和LRA,总体来说结果一般;测试的都是Encoder情形,Decoder情形可能较难实现。
暂无。
Last updated 3 years ago