神经网络Transformer架构中的稀疏注意力
稀疏注意力是标准自注意力机制的计算效率优化变体。其核心原理在于仅计算输入序列中特定位置对之间的注意力权重,而非所有位置对的完全连接。
步骤1:标准自注意力的计算瓶颈
标准自注意力会对序列中每个查询位置与所有键位置进行交互。对于长度为L的序列,其计算复杂度和内存需求为O(L²)。当处理长序列(如文档、图像或视频)时,这种二次复杂性会导致极高的计算成本和内存消耗,成为模型扩展的主要瓶颈。
步骤2:稀疏注意力的基本思想
稀疏注意力通过预先定义一种稀疏模式,限制每个查询位置仅能关注到所有键位置的一个固定子集。这个子集的大小通常与序列长度L呈线性或亚线性关系,从而将计算复杂度从O(L²)降低到O(L log L)或O(L)。其核心假设是:并非所有位置对之间的注意力都是必要的,许多位置的注意力权重接近于零,可以被安全地忽略而不显著影响模型性能。
步骤3:常见的稀疏模式类型
- 局部注意力:每个查询位置仅关注其周围一个固定窗口内的相邻位置。这基于语言或图像中的局部相关性先验。
- 步幅注意力:每个查询位置以固定步长间隔关注全局的某些关键位置,用于捕获长程依赖。
- 全局注意力:指定序列中的少数特定位置(如句首标记或段落标记)作为全局节点,所有其他位置都可以关注它们,同时这些全局节点也可以关注所有位置。
- 块稀疏注意力:将输入序列划分为多个块,每个查询块仅关注有限的几个键块。这种模式特别适合基于块的并行计算。
- 随机注意力:每个查询位置随机选择一部分键位置进行关注,通常需要多次计算轮次以确保覆盖。
步骤4:稀疏注意力的实现机制
实现时,首先创建一个二进制掩码矩阵M ∈ {0, ¹}ᴸˣᴸ,其中Mᵢⱼ=1表示允许位置i关注位置j。在计算注意力权重时,将无效位置对(即Mᵢⱼ=0的位置)的注意力分数设置为一个极小的负值(如-1e9),这样在Softmax操作后,这些位置的权重几乎为零。最终仅对有效位置对进行加权求和。
步骤5:稀疏注意力的优势与权衡
主要优势包括:显著降低长序列处理的计算和内存需求;使模型能够处理远超标准Transformer限制的序列长度;在某些任务中可能引入有益的归纳偏置。主要权衡包括:需要精心设计稀疏模式,不当的模式可能丢失关键信息;并非所有任务都适合稀疏交互;实现复杂度高于标准注意力。
步骤6:实际应用与变体
稀疏注意力已成功应用于多个长序列处理模型,如Longformer、BigBird和Sparse Transformer。这些模型通过组合不同的稀疏模式(如局部+全局+随机注意力),在保持计算效率的同时,实现了与标准注意力相当甚至更好的性能,特别是在文档理解、基因组分析等长序列领域。