前言
BiFormer是CVPR2023的一篇文章,文中提出自注意力机制作为Transformer的核心模块,可以帮助网络捕捉长距离上下文依赖,但是这种结构也有两个缺点:
- 内存占用大
- 计算代价高
有许多研究针对上述缺点进行优化:
- 将注意力操作局限在局部窗口内,如图(b)。例如:Swin transformer
- 将注意力操作局限在横向条纹内,如图(c)。
- 将注意力操作局限在空洞窗口内,如图(d)。

然后上述研究有两个共性的问题:
- 使用手工制作的静态模式(无法自适应)
- 所有Query共享相同的K / V对(无法做到互不干扰)
与上述研究不同,作者提出了一种新的动态稀疏注意力机制,通过双层路由来实现更灵活的算力分配,让每个Query处理语义上最相关的K-V对的一小部分。在此基础上,提出的BiFormer具有良好的性能和较高的计算效率。如图(f)。
计算复杂度由原来的 o ( ( H W ) 2 ) o((HW)^2) o((HW)2)降到了 o ( ( H W ) 4 3 ) o((HW)^{\frac{4}{3}}) o((HW)34)。
1. 模型的特点
为了让每个Query处理语义上最相关的K-V对,首先面临的问题就是如何找到这些需要关注的K-V对。
一种方法是逐一为每个Query选择K-V对,那么就需要计算所有Query和所有Key之间的相关性,复杂性和原来的自注意力机制就相同了。
另一种方法是基于每个Query的局部上下文来预测注意力偏移量,如图(e),这虽然降低了计算复杂性,但会影响长距离依赖关系的建模。
为了解决这个问题,作者提出双层路由注意力机制(Bi-level Routing Attention, BRA)。核心思想是先在粗粒度区域级别过滤掉最不相关的键-值对,然后再去计算剩下的区域中的token-to-token注意力。
首先构造一个区域级关联图,然后对其进行修剪,使每个节点只保留前k个连接。因此每个区域只需要关注前k个路由区域。确定了参与区域后,下一步是应用token-to-token的注意,这是非常重要的,因为现在假定键值对在空间上是分散的。
2. 双层路由注意力机制(BRA)

输入一张图片, X ∈ R H × W × C X \in \mathbb R^{H \times W \times C} X∈RH×W×C,首先将其划分为 S × S S \times S S×S个不同的区域,其中每个区域包含 H W S 2 \frac{HW}{S^2} S2HW个特征向量。即将 X X X变为 X r ∈ R S 2 × H W S 2 × C X^r \in \mathbb R^{S^2 \times \frac{HW}{S^2} \times C} Xr∈RS2×S

本文介绍了CVPR2023文章提出的BiFormer模型。自注意力机制有内存占用大、计算代价高的缺点,此前优化研究存在问题。作者提出双层路由注意力机制(BRA),先在粗粒度区域过滤不相关键值对,再计算token - to - token注意力。还介绍了BiFormer结构,通过缩放网络参数实例化不同大小模型。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



