attention机制的替代(LAMBDANETWORKS: MODELING LONG-RANGE INTERACTIONS WITHOUT ATTENTION)
attention机制的替代(LAMBDANETWORKS: MODELING LONG-RANGE INTERACTIONS WITHOUT ATTENTION)
摘要
ICLR2021盲审的一篇论文
在自然语言处理领域(NLP)成为重要力量的 Transformer 技术最近已经开始在计算机视觉领域展现自己的实力。不过到目前为止,由于 Transformer 注意力机制对内存的需求是输入图像的二次方,所以这一方向还存在一些挑战。这篇文章就是针对attention机制的一个替代,近日,LambdaNetworks 的出现提供了一种解决此问题的方法,人们可以无需建立昂贵的注意力图即可捕捉长距离交互。这一方法在 ImageNet 上达到了新的业界最佳水平(state-of-the-art 84.8%)。
论文地址
https://openreview.net/pdf?id=xTJEN-ggl1b
长程交互
这一部分主要就是说明注意力机制的一些问题。
当前注意力交互。首先缩小查询深度,创建查询和上下文元素之间的相似性核(注意力图),也就是所谓的注意力操作。该机制可以被看作激发查询、键和数值术语的可微内存的寻址。由于上下文位置 |m| 的数量越来越大,并且输入和输出维数 |k| 和 |v| 保持不变,所以在层输出是较小维数 |v| << |m| 的一个向量时,作者假设计算注意力图是不划算的。
lambda层
一:lambda层:将上下文转换成线性函数
这一部分主要分为一下几部分:
- 生成上下文lambda函数
lambda层首先通过线性投影上下文来计算键和值,通过softmax运算对键进行归一化,从而得到归一化键。这种实现能可以看作是函数消息传递的一种形式,每个上下文元素都贡献一个内容函数 和一个位置函数 。λ_n 是通过将上下文贡献求和得到的,如公式一所示 - 将lambda应用于查询
将输入x_n转换为查询 ,然后获得lambda层的输出为公式二 - lambda解释
此过程可以捕获密集内容和基于位置的长程交互,同时不产生注意力图。 - 归一化
可修改方程式1和2以涵盖非线性或归一化运算。该研究的实验表明,在计算查询和值之后应用批归一化是很有用的。
二:带有结构化上下文的lambda层
这一部分介绍了如何使 lambda 层适应结构化的上下文,如相关上下文和局部上下文。
- 平移等变性
- Lambda 卷积
lambda 卷积可以得到与输入长度相关的线性时间和内存复杂度。lambda 卷积很容易用于 dilation 和 striding 等其他功能,并且在专用硬件加速器上享有高度优化的实现。这与局部自注意力的实现形成鲜明对比,后者需要物化重叠查询和内存块的特征块,从而增加了内存消耗和延迟(见下表4)。
三:利用多查询 lambda 降低复杂度
多查询 lambdas 可以降低复杂度。所以,研究者提出将 lambda 层的时间和空间复杂度从输出维数 d 中解耦。他们并没有强制地令 |v|=d,而是创建了 |h| 查询 {q^h _n},将相同的 lambda 函数 λ_n 应用到每个查询 q^h_n,并将输出串连接成 y_n=concat(λ_nq^1_n , · · · ,λ_nq^|h|_n )。
局部位置的 lambdas 可以通过 lambdas 卷积来获得,具体如上文公式3所示。
实验部分
还有几个实验就不一一列举了。