1简介

相对位置编码(Relative position encoding, RPE)是Transformer获取输入Token序列顺序的重要方法。在自然语言处理中已证实了其有效性。
然而,在计算机视觉中,相对位置编码的有效性还没有得到很好的研究,甚至还存在争议,如相对位置编码是否能与绝对位置编码同样有效?
为了澄清这一点,作者首先回顾了现有的相对位置编码方法,并分析了它们在Vision Transformer中应用的优缺点。然后提出了一种新的二维图像相对位置编码方法,称为图像RPE(iRPE)
本文的方法考虑了定向相对距离建模以及query和相对位置嵌入在自注意机制中的交互作用。提出的iRPE方法简单、轻量级。它们可以很容易地插入Transformer。
实验表明,仅由于提出的编码方法,DeiT和DETR在ImageNet和COCO上分别获得了高达1.5% (top-1 Acc)和1.3%(mAP)的提升,而不需要调整任何额外的超参数,如学习率和权重衰减。作者也进行了消融实验和分析得到了有趣的发现,其中一些与之前的理解恰恰相反。

本文主要贡献:

  1. 分析了相对位置编码中的几个关键因素,包括相对方向、上下文的重要性、query、key、value和相对位置嵌入之间的交互以及计算成本。对相对位置编码进行了全面的理解,为新方法的设计提供了经验指导;
  2. 引入了一种有效的相对编码实现,它将计算成本从原始的降低到,其中k<<n。该实现适用于高分辨率输入图像,如目标检测和语义分割,其中token数可能非常大;
  3. 提出了4种新的相对位置编码方法,称为图像RPE(iRPE),专门用于Vision Transformer,考虑了效率和泛化。这些方法很简单,可以很容易地插入到Self-attention中。实验表明,在不调整任何超参数和设置的情况下,该方法在ImageNet和COCO上的DeiTS和detr-resnet50分别比原模型提高了1.5%(top-1 Acc)和1.3%(mAP);
  4. 回答了先前有争议的问题。实验证明相对位置编码可以代替绝对位置编码进行图像分类。同时,目标检测需要绝对编码,像素位置对目标定位也是至关重要。

2相关工作总结

Transformer由于其具有较强的性能和捕获远程依赖关系的优越能力,近年来在计算机视觉领域引起了广泛的关注。Transformer的核心是Self-attention,它能够对序列中的Token关系进行建模。然而,Self-attention有一个固有的缺陷就是它不能捕获输入Token的顺序
因此,合并位置信息的显式表示对于Transformer特别重要,因为模型对序列顺序是完全不变的,这对于结构化数据建模是不可取的。
主要有2类方法对Transformer的位置表示进行编码。一个是绝对位置编码,另一个是相对位置编码。
绝对位置方法将输入Token的绝对位置从1编码到最大序列长度。也就是说,每个位置都有一个单独的编码向量。然后将编码向量与输入Token组合,以向模型公开位置信息。
相对位置方法对输入元素之间的相对距离进行编码,学习符号之间的成对关系。相对位置编码(RPE)通常是通过带有可学习参数的query表与Self-attention模块中的query和key进行交互来计算的。这种模式允许模块捕获Token之间非常长的依赖关系。相对位置编码在自然语言处理中的有效性得到了验证。
然而,在计算机视觉中,这种效果还不清楚。最近很少有作品对它进行阐释,但在Vision Transformer中却得到了有争议的结论。有研究者观察到相对位置编码与绝对位置编码相比没有带来任何增益。相反,也有学者发现相对位置编码可以诱导表观增益,优于绝对位置编码。
此外,最近的研究表明相对位置编码不能像绝对位置编码一样好。这些工作对模型中相对位置编码的有效性得出了不同的结论,这促使本文作者重新思考和改进相对位置编码在Vision Transformer中的应用。
另一方面,提出了原始相对位置编码的语言建模方法,其中输入数据为1D单词序列。但对于视觉任务,输入通常是2D图像或视频序列,其中像素是高度空间结构的。尚不清楚的是:从1D到2D的朴素扩展是否适用于视觉模型;方向性信息在视觉任务中是否重要?

3Self-Attention与位置嵌入

3.1 Self-Attention

Self-Attention在Transformer中起着基础性的作用。如下图,它将query和一组key和value对映射到输出。
更具体地说,对于输入序列,如单词或图像块的嵌入,
,其中
,Self-Attention计算一个输出序列
,其中
。每个输出元素
是作为输入元素的加权和计算的:

每个权重系数
使用softmax计算:

其中
是使用一个scaled dot-product attention来计算的:

这里,投影
是参数矩阵,每层都是唯一的。

MultiHead Self-Attention(MHSA)不是计算一次Self-Attention,而是并行运行多次Self-Attention,即使用H个Attention Head。Attention Head的输出被简单地连接起来并线性地转换成设计的维度。

3.2 位置嵌入

绝对位置编码

由于Transformer不包含递归和卷积,为了使模型能够利用序列的顺序,需要注入一些关于Token位置的信息。原始Self-Attention考虑绝对位置,并添加绝对位置编码的输入Token嵌入x为:
这里的位置编码是
。绝对位置编码有几种选择,如采用不同频率的正弦和余弦函数的固定编码和通过训练参数的可学习编码。

相对位置编码

除了每个输入元素的绝对位置,最近的一些工作还考虑了元素之间的成对关系,即相对位置。对于元素的相对顺序或距离很重要的任务,相对关系可能很重要。这种类型的方法将输入元素和之间的相对位置编码为向量,其中。将编码向量嵌入到Self-Attention模块中,将式(1)和式(3)重新表示为:
通过这种方法,可以在Transformer训练过程中学习成对的位置关系。这种相对位置编码可以在Attention Head之间共享,也可以不共享。

4本文方法

这里,首先回顾以往的相对位置编码方法,并分析它们之间的差异。在此基础上,提出了4种用于Vision Transformer的新方法,并对其进行了有效的实现。

4.1 先前的相对位置编码方法

1、Shaw’s RPE

Shaw等人提出了Self-Attention的相对位置编码。输入Token被建模为一个有向和全连接图。任意位置i和j之间的每条边由一个可学习的向量表示,即相对位置编码。此外,作者认为精确的相对位置信息在超过一定距离后就没有用处了,因此引入了clip函数来减少参数的数量。编码形式为:
其中
分别为value和key的相对位置编码的可训练权值。
,其中
。标量k是最大相对距离。

2、RPE in Transformer-XL

Dai等人为query引入了额外的偏置项,并使用正弦公式进行相对位置编码,其表达式为:
其中
是2个可学习的向量。

正弦编码矢量提供了相对位置的先验值。是一个可训练矩阵,它可以将投射到一个基于位置的关键向量中。

3、Huang’s RPE

Huang等人提出了一种同时考虑query、key和相对位置交互的新方法。方程如下所示:
其中
是query和key共享的相对位置编码。

4、RPE in SASA

以上3种方法都是针对语言建模中的一维词序列而设计的。Ramachandran等人提出了一种二维图像编码方法。这个想法很简单。它将二维相对编码分为水平方向和垂直方向,使得每个方向都可以通过一维编码进行建模。方法公式如下所示:
其中,
表示x轴和y轴上的相对位置,图像的坐标分别
是可学习的向量, concat操作连接2个编码形式最终相对编码和
的长度。

换句话说,x轴或y轴上相同的偏移量共享相同的相对位置编码,因此这种方法可以减少可学习参数的数量和计算成本。但是,编码只应用于key。在实验中观察到对key、query和value同时施加RPE是最有效的,如表4和表5所示。

5、RPE in Axial-Deeplab

Wang等人引入了一种位置敏感方法,将qkv依赖的位置偏差加入到Self-Attention中。位置灵敏度应用于沿高度轴和宽度轴依次传播信息的轴向注意。然而,当相对距离大于一个阈值时,编码设置为零。作者观察到远程相对位置信息是有用的,如表6所示。
在标准的Self-Attention基础上,这种位置敏感性可能具有竞争性。如果采用所提出的分段函数,它可以进一步改进,更有效地建模长期依赖关系。

4.2 提出新的相对位置编码

作者设计了自己的图像RPE(iRPE)方法来分析几个在以前的工作中没有很好研究的因素。首先,为了研究编码是否可以独立于输入嵌入,作者引入了2种相对位置模式:偏差模式上下文模式
作者提出了一个分段函数来映射相对位置到编码,这与传统的clip函数不同。然后,为了研究方向性的重要性,作者设计了2种无向和2有向方法。

1、偏差模式和上下文模式

以前的相对位置编码方法都依赖于输入Embedding。它带来了一个问题,即编码是否可以独立于输入?
作者引入相对位置编码的偏差模式和上下文模式来研究这一问题。前者独立于输入Embedding,而后者考虑与query、key或value的交互。更具体地说,作者引入一个统一的公式为:
其中为二维相对位置编码,定义偏差或上下文模式。
对于偏差模式:
偏差模式
其中是一个可学习的标量,表示位置和之间的相对位置权值。
对于上下文模式:
上下文模式
其中是一个可训练的向量,与query嵌入交互。在上下文模式下,有多种变体。例如,在query和key上操作的相对位置编码可以表示为:
其中都是可学习的向量。
此外,上下文模式也可以应用于value Embedding,
其中。相对位置权值可以用同样的方法构造。对于一个统一的表示,在下面的讨论中使用来表示偏差模式和上下文模式。

2、分段索引函数

在描述二维相对位置权值之前,首先引入多对一函数,将有限集中的相对距离映射为一个整数,然后可以用这个整数作为索引,并在不同的关系位置之间共享约束。这种索引函数可以大大减少长序列(如高分辨率图像)的计算成本和参数数量。
虽然有学者使用的clip函数也降低了成本,但相对距离大于β的位置被赋给相同的编码。这种方法不可避免地忽略了长期相对位置的上下文信息。预适作者引入了一个分段函数来索引到相应编码的相对距离。这个函数是基于一个假设,即更近的邻居比更远的邻居更重要,并根据相对距离分配注意力。它被描述为:
其中[·]是一个舍入运算,sign()确定数字的符号,即输入为正返回1,输入为负返回-1,输入为负返回0。α决定分段点,β控制输出在[−β,β]范围内, γ调整对数部分的曲率。
作者比较分段函数g(x)与clip函数,如图2,clip函数h(x)分布均匀的注意力,忽略了长距离的位置,但分段函数g(x)通过相对距离分布不同的注意力水平。假设需要保留远程位置的潜在信息,特别是对于高分辨率图像或需要远程特征依赖的任务,因此选择g(x)来构建映射方法。

3、二维相对位置计算

为了计算二维图像平面上的相对位置和定义相对权重,作者提出了2种无向映射方法,即欧式映射量化映射,以及2种有向映射方法,即交叉映射乘积映射
欧式映射
在图像平面上,相对位置为二维坐标。计算2个位置之间的欧氏距离,并将距离映射到相应的编码中。该方法是无向的,数学表达为:
其中为偏置模式下的可学习标量或上下文模式下的向量。这里将看作一个存储相对位置权值的桶。桶的数量为。
量化映射
在上述欧式映射方法中,相对距离不同的2个近邻可以映射到同一个索引,例如二维相对位置(1,0)和(1,1)都映射到索引1。则认为近邻应该分开。因此,对欧氏距离进行量化,即不同的实数映射为不同的整数。I(I,j)修正为:
操作将一组实数量化为整数集合,这个方法也是无向的。
交叉映射
像素的位置方向对图像也很重要,因此提出了有向映射方法。这种方法称为交叉法,它分别计算水平和垂直方向上的编码,然后对它们进行总结。方法如下:
其中,和都是偏置模式下的可学习标量,或上下文模式下的可学习向量。
类似于SASA中的编码,x轴或y轴上相同的偏移量共享相同的编码,但主要的区别是这里使用了一个分段函数来根据相对距离分配注意力。桶的数量是。
乘积映射
交叉映射将不同的相对位置编码为相同的嵌入,如果在一个方向上的距离是相同的,无论是水平的还是垂直的。
此外,加法运算带来了额外的计算成本。为了提高效率和包含更多的方向性信息,作者设计了乘积映射,公式如下:
方程的右侧为偏置模式下的可训练标量,或上下文模式下的可训练向量。

二维相对位置映射实验

分析
  • 直接 vs 间接:如表所示,有向方法(交叉和乘积)总体上优于无向方法(欧几里得和量化)。这一现象说明方向性对于vision transformer是重要的,因为图像像素是高度结构化的和语义相关的
  • 偏置 vs 上下文:从表可以看出,无论采用哪种方法,上下文模式的表现都优于偏置模式。潜在的原因可能是上下文模式用输入特征改变编码,而偏置模式保持不变
  • 共享 vs 不共享:Self-attention包含多个Head。相对位置编码可以在不同的head共享或不共享。分别在表2中展示了这2种方案在偏置和上下文模式下的效果。对于偏置模式,当在head共享编码时,准确率显著下降。相比之下,在上下文模式下,2个方案之间的性能差距可以忽略不计。两者的平均准确率均为80.9%。作者推测不同的head需要不同的相对位置编码来获取不同的信息。在上下文模式下,每个head可以计算出自己的RPE,而在偏置模式下,共享的RPE则迫使所有head对patch给予同样的关注。为了节省参数,在最终的方法中采用了共享方案
  • 分段 vs Clip:作者比较了分段函数g(x)与clip函数h(x)的效果。在图像分类任务中,这2种功能之间的性能差距很小,甚至可以忽略不计。然而,在目标检测任务中,clip函数比表6所示的分段函数差。潜在的原因当序列长度较短时,这两个函数非常相似。分段函数是有效的,特别是当序列的大小远远大于桶的数量时。与分类相比,目标检测使用更高的分辨率输入,导致输入序列更长。因此,作者推测,当输入序列较长时,由于分段函数能够将不同的Attention分散到距离相对较大的位置,所以应该使用分段函数,而当相对距离大于β时,Clip函数可以分配相同的编码;
  • 桶的数量:桶的数量在很大程度上影响模型参数、计算复杂性和性能。为了找到一个平衡,作者探索了不同桶的数量对上下文方法的影响。图3显示了top-1精度随桶数的变化情况。在50桶之前,精度从79.9提高到80.9。在那之后,没有显著的改善。结果表明,对于DeiT-S中14×14的特征图,桶数50可以很好地平衡计算代价和精度。
  • 特定组件分析:这里主要是研究不同的位置编码对vision transformer模型的影响。选择DeiT-S模型作为基线,只改变了位置编码方法。原始模型采用了可学习的绝对位置编码。用上下文产品法计算了50个桶的相对位置编码。
从表中得到如下结论:
  1. 从原始DeiT-S中去除绝对位置编码会导致Top-1的精度从79.9下降到77.6(#1 vs . #2);
  2. 仅采用相对位置编码的模型优于仅采用绝对位置编码的模型(#3-5 vs . #1)。结果表明,相对位置编码比绝对位置编码效果好;
  3. 当配置相对位置编码时,绝对编码不带来任何增益(#3-5 vs . #8-10)。在分类任务中,作者认为局部信息比全局信息更重要;
  4. query或key的相对位置编码比value带来更多的收益(#3,4 vs . #5);
  5. 对query、key和value的编码组合可以带来了进一步的提升(#6、7、11、12 vs . others)。
  • 复杂度分析:作者评估了所提出的方法在不同输入分辨率下的计算成本。baseline模型为DeiT-S,仅采用绝对位置编码。采用We adopt contextual product shared-head relative position encoding to the baseline with 50 buckets。图4显示了我们的方法在有效实现的情况下最多需要1%的额外计算成本。

5实验

ImageNet

COCO

6参考

[1].Rethinking and Improving Relative Position Encoding for Vision Transformer

7推荐阅读

详细解读 Transformer的即插即用模块 | MoE插件让ViT模型更宽、更快、精度更高
超越MobileNet V3 | 详解SkipNet+Bias Loss=轻量化模型新的里程碑
长按扫描下方二维码添加小助手并加入交流群,群里博士大佬云集,每日讨论话题有目标检测、语义分割、超分辨率、模型部署、数学基础知识、算法面试题分享的等等内容,当然也少不了搬砖人的扯犊子
长按扫描下方二维码添加小助手。
可以一起讨论遇到的问题

声明:转载请说明出处

扫描下方二维码关注【集智书童】公众号,获取更多实践项目源码和论文解读,非常期待你我的相遇,让我们以梦为马,砥砺前行!
继续阅读
阅读原文