* 使用低秩矩阵或核函数的思想构建复杂度更低的注意力机制,相关工作有 Linformer(2020)、Linear Transformer(2020)和 Random Feature Attention(2021)。Softmax 注意力机制的复杂度 $O (n^2)$ 来源于softmax函数,因此这类方法的主要思想是使用别的方法来替代softmax函数,降低注意力机制的复杂度。其中 Linformer 对 K 和 V 应用核方法降低序列维度,但该操作同时也把整个序列的信息柔和在了一起,因此没办法对未来信息进行 Mask,无法做语言模型、seq2seq 等任务。而 Random Feature Attention 没有这方面的问题,该方法采用循环神经网络的思想,在模型的每个时间步都维护一个蕴含历史信息的隐层向量,以此达到只使用 prefix 信息的目的【与Mask效果相同】。
* 改进注意力的计算过程,相关工作有 luna (2021) 和 less memory (2022) 。其中 luna 将注意力的过程拆分为两个阶段,第一个阶段先使用一个注意力得到一个固定长度的结果(长度小于句长n,类似于压缩的思想),第二个阶段再使用一次注意力计算对压缩的结果进行注意力计算,该方法可以与别的注意力改进方法相结合。less memory 将 QKV 拆分成子片段,依次对这些片段进行注意力计算,再将结果合并,以降低注意力所需要的内存,该方法的不足是其时间复杂度仍然为 $O (n^2)$ 。
* 使用低秩矩阵或核函数的思想构建复杂度更低的注意力机制,相关工作有 Linformer(2020)、Linear Transformer(2020)和 Random Feature Attention(2021)。Softmax 注意力机制的复杂度 $ O (n^2) $ 来源于softmax函数,因此这类方法的主要思想是使用别的方法来替代softmax函数,降低注意力机制的复杂度。其中 Linformer 对 K 和 V 应用核方法降低序列维度,但该操作同时也把整个序列的信息柔和在了一起,因此没办法对未来信息进行 Mask,无法做语言模型、seq2seq 等任务。而 Random Feature Attention 没有这方面的问题,该方法采用循环神经网络的思想,在模型的每个时间步都维护一个蕴含历史信息的隐层向量,以此达到只使用 prefix 信息的目的【与Mask效果相同】。
* 改进注意力的计算过程,相关工作有 luna (2021) 和 less memory (2022) 。其中 luna 将注意力的过程拆分为两个阶段,第一个阶段先使用一个注意力得到一个固定长度的结果(长度小于句长n,类似于压缩的思想),第二个阶段再使用一次注意力计算对压缩的结果进行注意力计算,该方法可以与别的注意力改进方法相结合。less memory 将 QKV 拆分成子片段,依次对这些片段进行注意力计算,再将结果合并,以降低注意力所需要的内存,该方法的不足是其时间复杂度仍然为 $ O (n^2) $ 。