ATS: Adaptive Token Sampling for Efficient Vision Transformers 解读
一、论文基本信息
论文题目:Adaptive Token Sampling for Efficient Vision Transformers
方法简称:ATS
作者:Mohsen Fayyaz、Soroush Abbasi Koohpayegani、Farnoush Rezaei Jafari、Sunando Sengupta、Hamid Reza Vaezi Joze、Eric Sommerlade、Hamed Pirsiavash、Juergen Gall
发表会议:ECCV 2022 Oral
官方项目页提供了论文和代码入口,并标注该工作为ECCV Oral。论文摘要中也明确说明,ATS 是一个parameter-free、differentiable、plug-and-play的 Adaptive Token Sampler,可以插入现有 Vision Transformer,在不额外训练的情况下减少 GFLOPs,也可以端到端训练。
二、这篇论文要解决什么问题?
Vision Transformer 的计算量和 token 数强相关。标准 ViT 把图像切成 patch tokens 后,后续每一层基本都处理固定数量的 tokens。这样有一个问题:
无论输入图像简单还是复杂,模型都用同样数量的 tokens 计算。
但现实图像并不是这样。有些图像主体明显、背景单一,只需要少数 tokens 就能完成分类;有些图像背景杂乱、目标细节复杂,需要保留更多 tokens。论文指出,固定下采样并不理想:它可能丢掉物体细节等重要信息,也可能在大面积均匀背景上继续浪费计算。
所以 ATS 要解决的问题是:
能不能让 ViT 根据每张图像或视频 clip 的实际复杂度,自适应决定每一层保留多少 tokens?
这和 DynamicViT、EViT、A-ViT、ToMe 都属于 ViT token reduction 方向,但 ATS 的独特点是:
它不引入额外可学习参数。
它不是固定保留 top-K。
它通过采样机制让不同输入保留不同数量的 tokens。
三、核心思想
ATS 的核心思想是:
根据 class token attention 和 value norm 给 patch tokens 打分,然后用 inverse transform sampling 从这些 tokens 中自适应采样重要 tokens。
它不是简单保留分数最高的 K 个 token,而是把 token 分数看成一个概率分布,然后从这个分布中采样。由于采样可能重复选中同一个 token,最终去重后得到的 unique token 数K′往往小于设定上限K,并且会随输入图像和网络层数变化。论文明确说明,K 是最大采样数,用来控制 GFLOPs 上界;但实际保留 token 数 K′ 通常低于 K,并且在不同图像或视频中变化。
所以 ATS 的关键不是“保留多少个 token”,而是:
最多允许保留 K 个,但模型根据分数分布自动决定最终需要多少个。
如果分数高度集中,说明少数 tokens 很重要,重复采样会导致去重后只剩较少 tokens。
如果分数比较均匀,说明很多 tokens 都可能有用,去重后会保留更多 tokens。
这就是 ATS 的adaptive含义。
四、它剪的是什么?
ATS 操作的是:
ViT 中间层的 patch tokens。
它不剪:
模型权重。
attention head。
MLP channel。
Transformer layer。
hidden dimension。
所以它不是传统参数剪枝,而是:
adaptive token sampling / dynamic token reduction。
更准确地说,它不是“token pruning”那么简单,因为它不是直接用 top-K 删除低分 tokens,而是通过score-based sampling得到一个自适应 token 子集。
五、ATS 插在 Transformer 的哪里?
ATS 是插入到self-attention layer 内部或紧接 attention 计算过程中的模块。
论文图 1 的描述很清楚:ATS 先计算 attention matrix A,然后利用 class token 对其他 tokens 的 attention 权重作为 significance score;再结合 value 向量的模长修正分数;接着用 inverse transform sampling 选择显著 tokens;最后从 attention matrix 中采样对应的 rows,得到更短的 attention 输出,并把这些输出 tokens 送入下一 stage。
简单理解就是:
先用完整 tokens 算一次当前 attention。
根据 attention 中暴露出来的重要性,决定哪些 tokens 继续进入后续层。
输出序列变短,后面层计算减少。
这和一些在 block 前插 selector 的方法不同。ATS 直接利用当前 self-attention 已经算出来的信息,不需要额外预测器。
六、Token Scoring:token 重要性怎么算?
ATS 的 token score 有两个来源。
第一个来源是class token attention。
在分类 ViT 中,class token 最终进入分类头,所以 class token 对某个 patch token 的 attention 可以被看成这个 patch 对分类 token 的贡献。论文中明确说,attention matrix 的第一行 A1,: 是 class token 的 attention weights,因此 A1,j 表示第 j 个输入 token 对输出 class token 的重要性;class token 自身 A1,1 不用于打分,因为 class token 永远保留。
第二个来源是value norm。
仅看 attention weight 还不够,因为最终输出是 attention weight 和 value 的加权和。如果某个 token 的 attention 不低,但它的 value 向量模长接近 0,那么它对输出实际影响也可能很小。因此 ATS 把 class attention 和对应 value norm 相乘,再归一化,作为 token significance score。论文明确说明,value norm 接近 0 的 token 对输出影响低,因此其 significance 应该更低;多头 attention 中,每个 head 分别计算分数,然后跨 head 求和。
所以 ATS 的重要性不是单纯 attention,也不是单纯 feature norm,而是:
这个 token 被 class token 关注多少 × 这个 token 的 value 信息量有多大。
七、为什么不用 top-K?
这是 ATS 最重要的设计之一。
最直接的做法是:算出每个 token 的 score,然后保留 top-K。很多 token pruning 方法都是这种思路。
但 ATS 认为 top-K 有两个问题。
第一,top-K 不能自适应决定 K′。
它每次都保留固定 K 个 token,无法做到简单图像少保留、复杂图像多保留。
第二,top-K 可能误删有用 token。
在浅层,特征还不够判别,很多相似 tokens 的 attention 会被 softmax 分散,导致每个 token 分数都不高。如果直接 top-K,可能把这一组相似但有用的 tokens 全部删掉。论文明确指出,多个具有相似 key 的 tokens 在早期阶段可能会因 softmax 分散而得到较低 attention;虽然其中某些 token 对后续阶段有用,但 top-K 可能全部丢弃。
因此 ATS 不用 top-K,而是基于分数做sampling。如果多个相似 tokens 各自分数不高,但总分数较大,那么采样机制仍然有概率从这组 tokens 中选出一个代表 token。论文也说明,这种采样机制会在早期阶段选择更多 tokens,在后期阶段选择更少 tokens。
八、Inverse Transform Sampling:ATS 怎么采样?
ATS 把归一化后的 token scores 看成概率分布,然后计算它们的累积分布函数 CDF,再用 CDF 的反函数做采样。这就是inverse transform sampling。
为了避免随机性,ATS 并不是每次真的随机从 U[0,1] 抽样,而是使用一组固定采样点:
1/(2K), 3/(2K), ..., (2K-1)/(2K)
这样训练和推理都是确定性的,同时仍然保留了按概率分布采样的效果。论文明确说明,为了得到 deterministic inference,它采用固定采样 scheme,而不是随机采样。
采样后,如果某个 token 被多次选中,只保留一次。因此实际 token 数 K′ 可能小于 K。
这带来了 ATS 的自适应性:
如果 score 分布很尖锐,少数 token 被反复采样,去重后 K′ 小。
如果 score 分布比较平坦,采样点会落到更多不同 tokens 上,去重后 K′ 大。
论文还解释了极端情况:如果只有一个 token dominant,则 K′=1;如果 scores 比较均衡,则 K′=K。
九、为什么它是 parameter-free?
ATS 没有额外 predictor、gate network、MLP selector 或 halting module。
它所需的信息都来自原始 Transformer attention 里已经计算好的内容:
attention matrix A。
value vectors V。
所以 ATS 不增加 backbone 的可学习参数。论文反复强调,ATS 是 parameter-free module,可以插入 off-the-shelf pretrained ViTs,甚至不需要额外训练。
这和 DynamicViT、IA-RED²、A-ViT 的区别很明显:
DynamicViT 需要 prediction module。
IA-RED² 需要 multi-head interpreter / policy network。
A-ViT 虽然不加独立子网,但需要训练 halting 机制。
ATS 直接利用已有 attention 和 value 信息,不加参数。
十、为什么它是 differentiable?
ATS 论文强调它是 differentiable,因此可以端到端训练带 ATS 的 ViT。直观上,ATS 的 score 来自 attention 和 value,这些都是网络内部连续变量;采样过程使用固定 CDF-based 近似选择,使得整体可以嵌入训练流程中。项目页也说明,ATS 既可以作为 plug-and-play 模块直接加入预训练 ViT,也可以在训练过程中使用。
这里要注意一点:虽然论文称它 differentiable,但 token selection 本身仍然包含离散索引选择。它的工程意义主要是:ATS 不需要额外学习参数,不需要像强化学习那样训练 selector,也不需要复杂的 Gumbel gate。
十一、为什么能加速?
ATS 每经过一个插入位置,就把 token 数从 N 变成 K′。后续层只处理 K′ 个 patch tokens 加 class token。
因此它减少的是:
后续 attention 的 token 交互。
后续 MLP 对每个 token 的计算。
中间 activation 和 attention matrix 的大小。
论文结论中总结,ATS 在图像和视频 Vision Transformers 上可以把 GFLOPs 降低27% 到 50.8%,且精度下降很小。
这类方法的加速逻辑和 ToMe、DynamicViT、EViT 一样:减少 token 数比单独优化 attention kernel 更全面,因为 MLP 和 projection 计算也会随 token 数减少。
十二、实验设置
论文在图像和视频两个方向验证 ATS。
图像分类方面,ATS 被加入到多个现有视觉 Transformer,包括:
DeiT-S
CvT-13 / CvT-21
PS-ViT
论文说明,对于 DeiT-S,它把 ATS 加入 stages 3 到 11;对于 CvT,把 ATS 加入第 3 stage 的若干 blocks;对于 PS-ViT,把 ATS 加入 transformer module 的 stages 1 到 9。
视频动作识别方面,ATS 被加入到:
XViT
TimeSformer
数据集包括:
ImageNet-1K
Kinetics-400
Kinetics-600
论文摘要和项目页都明确说,ATS 在 ImageNet、Kinetics-400、Kinetics-600 上评估,并能在基本保持精度的同时约 2× 降低计算成本。
十三、主要实验结果
13.1 ImageNet:DeiT-S + ATS
在 ImageNet 上,论文报告DeiT-S+ATS可以把 GFLOPs 从 DeiT-S 的4.6G降到2.9G,Top-1 从79.8到79.7,也就是37% GFLOPs reduction,Top-1 只下降 0.1%。论文表 1 也显示,在相近 GFLOPs 下,DeiT-S+ATS 的 Top-1 高于 DynamicViT-DeiT-S 30 epochs、IA-RED²、HVT-S-1 等对比方法。
这个结果说明:
ATS 不加参数,却能达到非常接近原 DeiT-S 的精度,并显著减少计算。
13.2 CvT 和 PS-ViT 上也有效
论文指出,ATS 加到 CvT 后能带来约30% GFLOPs reduction,Top-1 只下降0.1–0.2%。将 ATS 加到本身已经很低 GFLOPs 的 PS-ViT 上,也能进一步降低计算。
这说明 ATS 不是只适用于纯 DeiT,也能插入其他视觉 Transformer family。
13.3 视频任务:XViT 和 TimeSformer
视频实验中,ATS 的优势更明显,因为视频 token 数更大,冗余更多。
论文报告:
XViT+ATS 在 Kinetics-400 上 GFLOPs 降低 39%,Top-1 只下降 0.2%。
XViT+ATS 在 Kinetics-600 上 GFLOPs 降低 38.7%,Top-1 只下降 0.1%。
TimeSformer-L+ATS 在 Kinetics-400 上 GFLOPs 降低 50.8%,Top-1 只下降 0.2%。
论文还指出,XViT+ATS 在 Kinetics-600 上能达到与 TokenLearner 接近的准确率,但需要17.6× 更少 GFLOPs。
这说明 ATS 对视频 Transformer 特别有价值:视频中空间和时间 token 很多,自适应 token 采样可以显著减少冗余计算。
十四、可视化结果说明什么?
论文可视化了 DeiT-S+ATS 在 stages 3 到 11 中逐步采样 tokens 的过程。结果显示,ATS 会逐渐删除与预测无关的 tokens,并保留与目标物体相关的 tokens。论文描述中说,在两个示例中,ATS 都识别出了与目标物体相关的 tokens 作为最 informative tokens。
另外,论文还展示了不同 stage 中采样 token 数的直方图。结果显示:
浅层通常保留更多 tokens。
深层通常保留更少 tokens。
不同输入图像保留 token 数不同。
对于背景均匀的图像,ATS 只采样少数 tokens;对于 cluttered images,则需要更多 tokens。论文明确用这些现象说明 token sampling 自适应的重要性。
这点和人类直觉一致:简单图像少算,复杂图像多算。
十五、和 DynamicViT 的区别
DynamicViT 用额外 prediction module 学习 token importance,并通过训练让 selector 学会删 token。
ATS 不加 prediction module,而是直接利用已有 attention matrix 和 value norm。
所以区别可以概括为:
DynamicViT:学一个 selector。
ATS:用 attention 自带信息做 sampling。
DynamicViT:通常固定每阶段保留比例。
ATS:设定最大 K,但实际 K′ 随输入变化。
DynamicViT:需要训练 selector。
ATS:可以 plug-and-play,无额外训练。
ATS 的优势是轻量、无参数、容易插入已有模型;DynamicViT 的优势是 selector 可以通过任务训练学习更强的判别性。
十六、和 EViT 的区别
EViT 也利用 class token attention,但它通常是根据 class attention 识别 attentive tokens,并融合 inattentive tokens。
ATS 也利用 class token attention,但它进一步结合 value norm,并且核心不是 top-K 或融合,而是inverse transform sampling。
所以:
EViT:class attention guided token reorganization。
ATS:class attention × value norm guided adaptive sampling。
EViT 的低重要 tokens 会被融合;ATS 的低采样 tokens 不进入后续序列。ATS 的实际 token 数还会因为重复采样去重而自动变化。
十七、和 ToMe 的区别
ToMe 是 token merging。它根据 key 相似度把相似 tokens 合并,不判断哪个 token对 class token 最重要。
ATS 是 token sampling。它根据 class token 相关的重要性分布采样 tokens,不做 token 合并。
所以:
ToMe 问:哪些 tokens 相似,可以合并?
ATS 问:哪些 tokens 对 class token 输出更重要,应该被采样?
ToMe 更关注冗余合并,ATS 更关注任务相关显著性。
另一个工程区别是:ToMe 也可以 training-free,但它会融合 tokens;ATS 则是选择 tokens,保留原 token 表示对应的 attention 输出。
十八、和 TokenLearner 的区别
TokenLearner 是 learned tokenization。它学习多张空间 attention maps,从原始特征图中生成 8 或 16 个新 learned tokens。
ATS 不生成新 token,它只从已有 tokens 中采样显著 tokens。
所以:
TokenLearner:学习生成少量新 tokens。
ATS:从已有 patch tokens 中自适应采样子集。
TokenLearner 通常需要训练模块;ATS 没有额外参数,可以直接插入已有模型。
十九、它是不是剪枝?
严格说,ATS 是一种动态 token sampling,广义上可归入token pruning / token reduction。
但如果分类更细,ATS 最好不要简单写成 pruning,因为它不是 top-K 删除,也不是学习 gate,而是probability-distribution-based sampling。
建议分类为:
parameter-free adaptive token sampling for efficient ViTs。
或者:
attention-guided dynamic token sampling。
它的结构单元是:
image/video patch token。
二十、方法优点
第一,无额外参数。
ATS 直接利用 attention matrix 和 value vectors,不加 selector 网络。论文和项目页都强调它是 parameter-free,可以插入现有 ViT。
第二,可以 plug-and-play。
因为不加可学习参数,ATS 可以加入预训练模型并减少 GFLOPs,不一定需要额外训练。
第三,实际 token 数自适应。
K 只是上限,去重后的 K′ 随输入和层数变化。简单图像保留少,复杂图像保留多。
第四,比 top-K 更稳。
sampling 可以避免浅层因 softmax 分散导致一组相似但有用 tokens 全被删掉的问题。
第五,图像和视频都有效。
论文在 ImageNet、Kinetics-400、Kinetics-600 上验证,报告 27% 到 50.8% GFLOPs 降低,精度损失很小。
二十一、方法局限
第一,依赖 class token attention。
ATS 的重要性主要来自 class token attention,所以它天然适合分类任务。对检测、分割这类 dense prediction 任务,class token 不一定能代表所有空间位置的重要性。
第二,它仍然需要先计算当前层 attention。
ATS 用当前 attention matrix 来打分,因此当前层 attention 计算本身已经发生了。它主要节省后续层,而不是节省插入点之前的计算。
第三,丢弃 token 后信息不可恢复。
ATS 是 sampling,不是 merging。低分 token 如果没有被采样,后续就不再处理;相比 ToMe 或 EViT 的融合机制,信息保留可能更弱。
第四,K 仍然需要人工设定。
虽然实际 K′ 自适应,但最大 K 控制 GFLOPs 上界,仍然是一个需要调的超参数。
第五,dynamic token 数对 batching 有工程影响。
不同输入保留 token 数不同,实际部署时可能需要 padding、bucketing 或动态 shape 支持,否则吞吐收益会受 runtime 影响。
二十二、整体评价
ATS 的核心贡献是把 ViT token reduction 做得非常轻量:不加参数,不训练 selector,只利用原有 attention 中的信息完成自适应采样。
它和之前几篇 token 方法的区别非常清楚:
DynamicViT 学 selector。
EViT 用 class attention 做重组和融合。
A-ViT 学 token halting。
Patch Slimming 从最终误差反推 patch 贡献。
ToMe 合并相似 tokens。
TokenLearner 学新的 tokens。
ATS 则用 class attention × value norm 构造概率分布,再用 inverse transform sampling 选 token。
这使 ATS 很适合作为一种低侵入式 token reduction 插件。它最大的优点不是压缩率极限最高,而是工程成本低:可以插入已有 ViT,设置一个最大 token 上限 K,就能让模型对不同输入自动保留不同数量的 tokens。
二十三、一句话总结
《Adaptive Token Sampling for Efficient Vision Transformers》提出 ATS,一个无额外参数、可微、可插拔的 ViT token sampling 模块:它利用 class token attention 与 value norm 计算 patch token 显著性分数,再通过 inverse transform sampling 自适应选择 token 子集,使实际保留 token 数 K′ 随输入图像、视频和网络阶段变化。相比固定 top-K 或固定下采样,ATS 能更自然地做到简单样本少算、复杂样本多算,并在 ImageNet、Kinetics-400、Kinetics-600 上显著降低 GFLOPs、基本保持精度。
