注:FP = Fixed Patterns/Combinations of Fixed Patterns, M = Memory, LP = Learnable Pattern, LR = Low Rank, KR = Kernel, RC = Recurrence.
除segment-based recurrence外,大多数模型的主要目标是对attention matrix做quadratic级别开销近似。每种方法都将稀疏的概念应用于原密集的attention机制。
Fixed patterns(FP):self attention的最早改进是将视场限制为固定的、预定义模式(例如局部窗和固定步幅的块模式)来简化attention matrix。
-
Blockwise Patterns这种技术在实践中最简单的示例是blockwise(或chunking)范式,将输入序列分为固定块,考虑局部接受野(local receptive fields)块。这样的示例包括逐块和/或局部attention。将输入序列分解为块可将复杂度从N^2降低到B^2(块大小),且B << N,从而显著降低了开销。这些blockwise或chunking的方法可作为许多更复杂模型的基础。
-
Strided patterns是另一种方法,即仅按固定间隔参与。诸如Sparse Transformer和/或Longformer之类的模型,采用“跨越式”或“膨胀式“视窗。
-
Compressed Patterns是另一条进攻线,使用一些合并运算对序列长度进行下采样,使其成为固定模式的一种形式。例如,Compressed Attention使用跨步卷积有效减少序列长度。
Combination of Patterns (CP):其关键点是通过组合两个或多个不同的访问模式来提高覆盖范围。例如,Sparse Transformer 将其一半的头部分配给模式,结合strided 和 local attention。类似地,Axial Transformer 在给定高维张量作为输入的情况下,沿着输入张量的单轴应用一系列的self attention计算。本质上,模式组合以固定模式相同的方式降低了内存的复杂度。但是,不同之处在于,多模式的聚集和组合改善了self attention机制的总覆盖范围。
Learnable Patterns (LP):对预定FP模式的扩展即可学习。毫不奇怪,使用可学习模式的模型旨在数据驱动的方式学习访问模式。LP的关键是确定token相关性,将token分配给buckets 或者clusters。值得注意的是,Reformer引入了基于哈希的相似性度量,有效地将token聚类为chunks。类似地,Routing Transformer在token上采用在线的k-means聚类。同时,Sinkhorn排序网络(Sorting Network)通过学习对输入序列的blocks排序来显露attention weight的sparsity。所有这些模型中,相似性函数与网络的其它部分一起进行端到端训练。LP的关键点仍然是利用固定模式(chunked patterns)。但是,此类方法学会对输入token进行排序/聚类,即保持FP方法效率优势的同时,得到更优的序列全局视图。
Memory:另一种表现突出的方法,用一个side memory模块,可以一次访问多个token。通用形式是全局存储器,能够访问整个序列。全局token充当记忆的一种形式,从输入序列的token中学习聚集。这是最早在Set Transformers中引入的inducing points方法。这些参数通常被解释为“memory”,并用作将来处理的临时上下文信息。这可以看作是parameter attention的一种形式。全局内存也用于ETC和Longformer。借着数量有限的内存(或者inducing points),对输入序列采用类似pooling操作进行压缩,这是设计有效的self attention模块时可以使用的技巧。
Low-Rank方法:另一种新兴技术,利用self attention矩阵的低秩近似来提高效率。关键点是假设NxN矩阵的低秩结构。Linformer是此技术的经典示例,将keys和values的长度维投影到较低维的表示形式(N-》 k)。不难发现,由于NxN矩阵现在已分解为Nxk,因此该方法改善了self attention的存储复杂性问题。
Kernels:另一个最近流行的提高Transformers效率的方法,通过核化(kernelization)查看attention机制。核的使用使self attention机制能够进行巧妙的数学重写,避免显式地计算NxN矩阵。由于核是attention矩阵的一种近似形式,因此也可以视为Low Rank方法的一种。
Recurrence:blockwise方法的直接扩展是通过递归连接这些块。Transformer-XL提出了一种segment-level 递归机制,该机制将多个segment和block连接起来。从某种意义上说,这些模型可以看作是FP模型。
内存和计算复杂度分析
该综述对以下17个方法进行了内存和计算复杂度分析,即
1、 Memory Compressed Transformer :“Generating wikipedia by summarizing long sequences” 如图

(编辑:阿坝站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|