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