论文题目:Convolutional Neural Networks Driven by Content Similarity(内容相似度驱动的卷积神经网络)
会议:CVPR 2026
摘要:虽然卷积神经网络(CNN)近年来不断发展,但变形金刚在计算机视觉领域变得越来越受欢迎。在这项工作中,我们介绍了一种基于内容相似度的CNN信息聚合机制-一种类似于自我注意机制的能力。为此,我们提出了一种排序操作,将标记之间的特征相似度转换为相对位置信息:具体地说,重新排列标记,使特征相似度较高的标记更紧密地放置在一起。该方法允许卷积运算间接转换为由内容相似度驱动的聚集模式。实验表明,我们提出的模型EGO在各种任务中取得了令人满意的结果,突显了CNN尚未开发的潜力。
代码和模型可在以下网址公开获取:https://githeb.com/essenceoftheworld/ego。
一、研究背景:CNN 和 Self-Attention 的核心差异到底在哪里?
在 Vision Transformer 出现之前,卷积神经网络长期占据计算机视觉的主流位置。从 AlexNet、VGG、ResNet,到后来的 MobileNet、ShuffleNet,CNN 凭借局部连接、参数共享和良好的计算效率建立了非常成熟的视觉建模体系。随后 SENet、CBAM 等工作又将 Attention 引入 CNN,对 channel 或 spatial feature 进行动态加权,使 CNN 的表达能力进一步增强。
但是 ViT 出现以后,视觉模型的一个重要发展方向发生了变化。Self-Attention 不再只依赖局部空间位置进行信息聚合,而是允许任意两个 token 根据它们的内容关系直接发生交互,因此在 long-range dependency 和 content-dependent interaction 上表现出了很强的灵活性。
为了重新提高 CNN 的竞争力,近几年出现了很多 Transformer-style ConvNet,例如 ConvNeXt、VAN、Conv2Former、HorNet、MogaNet、OverLoCK 等。这些方法通过 large kernel、gating mechanism、high-order interaction 等方式不断扩大 CNN 的有效感受野或者提高 feature interaction 能力。
但是作者认为,这些工作虽然不断借鉴 Transformer 的设计思想,传统 convolution operation 本身的核心逻辑仍然没有发生变化。
普通 convolution 的信息聚合主要由relative spatial position决定。而 Self-Attention 的信息聚合主要由feature/content similarity决定。
这就是作者认为 CNN 和 Self-Attention 之间一个非常本质的机制差异。
假设中心位置存在一个 token,而另外有两个 token:
Token A:空间距离非常近,但是内容与中心 token 差异很大;
Token B:空间距离非常远,但是语义或者 feature 与中心 token 非常相似。
普通 convolution 更容易直接聚合 Token A,因为它位于卷积窗口中;Token B 即使内容高度相关,只要超出当前 receptive field,就无法直接发生信息交换。
Self-Attention 则可以通过 Query 和 Key 的相似程度直接建立中心 token 与 Token B 的关系。
因此论文提出的问题非常直接:
能不能让 convolution 本身也拥有根据 content similarity 聚合信息的能力,而不是必须依赖显式 Self-Attention?
作者最终提出了一个非常有意思的答案:
不用直接改变卷积,而是先改变 token 的排列顺序。
二、核心思想:把“内容相似”转换成“位置接近”
这一篇论文最核心、也是最值得理解的思想,可以概括为:
Content Similarity
↓
Channel-wise Sorting
↓
Relative Position
↓
1D Convolution
↓
Content-driven Aggregation
普通 convolution 不认识 content similarity,但是它非常擅长利用 relative position。
那么作者就提出:
如果能够通过排序,让内容越相似的 token 在新的序列中距离越近,那么 convolution 虽然依然是按照位置进行聚合,但是这个“位置”实际上已经包含了 content similarity。
举一个简单例子。
假设某个 channel 中的 feature value 为:
原始顺序:
0.10 3.20 0.20 7.80 3.30 0.15
从空间位置来看,0.10 和 0.15 距离很远,3.20 和 3.30 也并不相邻。
但是进行升序排序以后:
0.10 0.15 0.20 3.20 3.30 7.80
此时:
0.10 与 0.15
变成了邻居;
3.20 与 3.30
也变成了邻居。
如果现在再进行 local 1D convolution,那么卷积窗口内部包含的就不再只是“原始空间上相邻”的元素,而是:
feature value 比较相似的元素。
所以整个方法的关键并不是计算一个复杂的 similarity matrix,而是:
利用 sorting 将 similarity 映射为 positional proximity。
这也是论文题目 Convolutional Neural Networks Driven by Content Similarity 的真正含义。
三、从 Gated Convolution 重新理解卷积
3.1 普通 Gated Convolution
作者首先从近年来 CNN token mixer 中比较常见的 gated convolution 出发。
对于输入:

其中,H 和 W 为 feature map 的空间尺寸,C 为 channel 数量。
普通 gated convolution 可以表示为:

其中,(
表示 point-wise convolution,(
) 表示 depth-wise convolution,(
) 表示 Hadamard product。
这里的基本过程可以理解为:
X
├──→ Point-wise Conv ───────────→ V
│
└──→ Point-wise Conv
↓
DWConv
↓
A
↓
V ⊙ A
↓
Z
A 首先通过 depth-wise convolution 聚合局部空间信息,然后作为一个类似 attention weight 的 gating signal 去调制 V。
但是这种写法和 Self-Attention 看起来仍然差别比较大,因为 Self-Attention 通常是利用 Query 和 Key 计算 attention weight,再对 Value 进行加权求和。
因此作者进一步换了一个视角。
3.2 将 Gated Convolution 写成类似 Attention 的形式
作者重新定义:

并将输出写成:
![]()
其中:

这里:
-
((i,j)) 表示当前 token 的空间位置;
-
((p,q)) 表示其他 token 的位置;
-
c 表示 channel;
-
(
) 表示以 ((i,j)) 为中心的 local window; -
(
) 为 convolution parameter。
从形式上看,它已经和 Attention 比较相似:
得到 K
↓
生成 aggregation weight
↓
对 V 加权
↓
得到 Z
但是继续分析就会发现一个关键问题。
对于不同的 (
),当前 (
) 是共享的,因此真正决定不同位置 attention weight 差异的实际上是:

而传统 convolution 中的这个 W,只跟relative position有关,并不跟
和
之间具体的 content similarity 有直接关系。
因此作者认为:
Gated Convolution 和 Self-Attention 之间真正关键的差异,仍然在于 convolution weight 是 position-driven,而 Self-Attention weight 是 content-driven。
四、Convolution driven by Content Similarity
4.1 最关键的问题
作者接下来提出了一个非常自然的问题:
能不能让 convolution parameter 虽然仍然根据 relative position 工作,但是 relative position 本身由 content 决定?
也就是说,如果满足:
内容越相似
↓
位置越接近
那么就可以进一步得到:
relative position
↓
convolution weight
↓
content similarity
于是卷积就可以间接变成 content-driven aggregation。
作者为此设计了一条新的 parallel branch。
4.2 Sort:首先对 K 进行 Channel-wise Sorting
第一步:
这里的 (dw) 表示整个 sorting 是每一个 channel 独立进行的。
对于第 c 个 channel,如果采用 ascending order:
![]()
其中:
![]()
也就是说,原本二维 feature map 中 H×W 个空间位置,被展开并按照该 channel 上的 feature value 重新排序。
这里需要特别强调一点:
Ego 的 content similarity 不是通过显式计算所有 token 的 cosine similarity 或者 (QK^T) 得到的。
作者并没有形成一个
的 similarity matrix。而是在每个 channel 中,通过 feature value 的大小关系进行排序,使得数值更加接近的 feature elements 排序后更加接近。因此它是一种非常轻量的 implicit content similarity modeling。
4.3 SortBy:V 必须跟 K 使用相同的排列
只重新排列 K 是不够的,因为最终真正需要进行信息聚合的是 V。
所以进一步定义:
![]()
例如,如果原始位置
在排序后被放到了
,那么相同位置的
也必须跟着放到
,因此 K 和 V 的对应关系始终保持不变。可以把它理解成:
K:
原位置:
A B C D
排序后:
C A D B
那么 V:
原位置:
a b c d
也必须变成:
c a d b
因此排序不是把 feature 搞乱,而是对 K 和 V 进行一致的 permutation。
4.4 在排序后的序列中做 1D Depth-wise Convolution
完成 sorting 以后,原来的二维
的feature map 被转换成长度
的一维序列。于是作者在新的 content branch 中采用1D Depth-wise Convolution进行信息聚合。
这个时候卷积本身仍然根据 relative position 工作。
但是注意:
这个 relative position 已经不是原图像中的空间位置。
它对应的是:
排序后的 feature-value position。
因此两个原本空间距离非常远的 token,只要它们在某个 channel 中 feature value 接近,就可以在排序以后变成邻居。
随后一个很小的 local 1D convolution window 就能够直接聚合它们。
这就形成了:
Spatially far
+
Content similar
↓ Sort
Adjacent in sorted sequence
↓ 1D Conv
Direct information aggregation
这就是 Ego 实现 long-range interaction 的核心。
4.5 SortBack:最后恢复原始空间位置
完成一维序列上的聚合之后,还需要把所有 feature 恢复到原图中的位置。
作者定义:

其中:

(
) 表示排序序列中以 a 为中心的 local window。
整个 content similarity branch 可以总结为:
K
↓
Sort
↓
K'
V
↓
按照 K 的排序顺序重新排列
↓
V'
K' + V'
↓
1D DWConv
↓
Content-based aggregation
↓
SortBack
↓
恢复二维位置
五、SpatialEgo:Spatial information 和 Content similarity 同时保留
如果完全按照排序后的 feature 进行卷积,虽然能够很好地聚合 content-similar token,但是可能损失原始 image structure 中非常重要的 spatial locality。
因此作者没有直接删除传统空间卷积,而是采用双分支结构。

论文 Figure 1:SpatialEgo token mixer 的完整结构。
SpatialEgo 的第一条 branch 是:
V
↓
7×7 2D Depth-wise Convolution
↓
Spatial aggregation
它负责建模真实二维空间上的 local structure。
第二条 branch 是:
K → Sort
↓
V → SortBy
↓
1D Depth-wise Convolution
↓
SortBack
它负责建模 content similarity。
两条 branch 使用相同的 K 和 V,最后将两个输出进行相加,然后再通过 projection 得到最终输出。
因此 SpatialEgo 实际上同时拥有:
Spatial relation
+
Content relation
作者并不是用 content similarity 替代 spatial information,而是让两种信息互补。
这也是为什么这个模块叫:
SpatialEgo
而不仅仅是一个 sorting convolution。
六、为什么局部卷积可以产生“隐式全局感受野”?
这是 Ego 与普通 local convolution 最大的差异之一。
假设图像左上角存在一个 token A,右下角存在一个 token B。
在原始二维空间里:
A ——————————- B
两者距离很远,一个 7×7 convolution 显然无法直接把 B 的信息送到 A。
但是如果:
feature(A) ≈ feature(B)
经过 sorting 以后:
A B
两者可能直接变成邻居。
那么即使使用非常小的一维 convolution window,也可以让 A 聚合 B 的信息。
因此:
卷积窗口虽然是 local 的,但由于排序操作本身具有 global rearrangement ability,所以它对应的原始图像 receptive field 可以是 global 的。
6.1 Window Size 的设计
作者定义一维 sliding window:

其中:

(
) 为正整数。这种设计有两个原因。第一,随着 N 增加,一个 feature element 附近可能出现更多相似元素,因此 window size 也应该适当增加。第二,如果直接采用 global convolution,2N-1,计算成本会随输入规模明显提高,而
能够使复杂度保持在
,不需要依赖 FFT。作者经过简单搜索以后发现
已经可以达到 global convolution 相同的性能。因此最终默认
七、Convolution Weight:距离越近,权重越大
由于排序以后:
距离越近
≈
feature value 越接近
≈
content 越相似
作者自然采用了:
weight decays with distance
的权重设计。
作者测试了 PyTorch 中两个非常简单的函数:
linspace
logspace
结果发现二者表现几乎相同。
在 Ego-T 上分别可以取得大约:
83.9%
84.0%
的 Top-1 accuracy。
最终作者使用 logspace 生成卷积参数。
其形式可以写为:

其中:
base=10
并且:
![]()
可以看到,当:|b-a|越小时,两个 feature 在排序序列中的距离越近,对应的 weight 越大。
作者特别指出,这些 weight:
只与 relative position 有关,而与具体 channel 无关。
因此只需要生成一次,就可以在不同位置与 channel 之间共享。
换句话说,Ego 中新增的 content-driven mechanism 并不需要再额外训练一个复杂 attention network 来预测 similarity weight,而是:
Sorting
+
Fixed distance-decaying weights
+
Depth-wise convolution
完成内容驱动的信息聚合。
八、Ego 网络整体结构
SpatialEgo 只是 token mixer,作者最终在其基础上构造了完整的 CNN backbone:Ego。

论文 Figure 2:Ego 的整体四阶段网络结构以及 Ego Block。
整体网络采用类似 ConvNeXt 和 Swin Transformer 的 hierarchical meta-architecture。
它的 macro architecture 与很多现代 CNN / Transformer backbone 很接近,真正不同的部分主要集中在:
SpatialEgo Token Mixer
这一点也使这篇论文的改动比较干净:它并没有把性能提升建立在一个非常复杂的新 backbone 上,而是重点验证新的 token mixing mechanism。
8.1 Ego-T、Ego-S 和 Ego-B
作者构造三个不同规模的版本。

论文 Table 1:Ego-T、Ego-S 和 Ego-B 的 channel configuration 与每个 stage 的 block 数量。
从 T → S 主要增加 block depth,而从 S → B 又进一步增加 channel width。
九、ImageNet-1K 图像分类实验
作者首先在 ImageNet-1K 上测试 Ego。

论文 Table 2:ImageNet-1K 上训练 Ego-T/S/B 使用的完整超参数配置。
9.1 ImageNet-1K 结果

论文 Table 3:Ego 与 CNN、Transformer 和 Hybrid models 在 ImageNet-1K 上的 Params、FLOPs 与 Top-1 Accuracy 对比。
9.2 Ego-S 的参数效率非常突出
Ego 的 content-similarity-driven convolution 并不是只对 Tiny model 有效,随着模型 scale 增加仍然能够持续得到较好的 performance。
十、ADE20K Semantic Segmentation
分类准确率只能说明 backbone 的全局识别能力,因此作者继续将 ImageNet-1K pretrained Ego 用作 downstream dense prediction backbone。
Semantic segmentation 使用:
ADE20K
ADE20K 包含:
20K training images
2K validation images
150 semantic classes
作者采用:
UperNet
作为 segmentation framework。
输入图像 random crop:
512×512
训练:
160K iterations
optimizer:
AdamW
batch size:
16
10.1 ADE20K 结果

论文 Table 4:不同 backbone 在 UperNet + ADE20K 上的 Params、FLOPs 与 mIoU。
10.2 与强调 Global Modeling 的模型比较
论文还特别比较了:
VMamba
OverLoCK
VMamba 强调 global modeling,而 OverLoCK 强调 large receptive field。
Tiny scale:
VMamba-T:48.8
Ego-T:49.0
Small scale:
OverLock-T:50.8
Ego-S:51.0
Base scale:
OverLock-S:51.9
Ego-B:52.3
此外:
VAN-B4:52.2
Ego-B:52.3
说明 SpatialEgo 不只是 ImageNet classification 有提升,对于需要 dense spatial prediction 的 segmentation 同样具有较好的 transfer ability。
十一、COCO Object Detection 和 Instance Segmentation
作者进一步在COCO 2017上测试模型。
数据集:
118K training images
5K validation images
检测框架采用Cascade Mask R-CNN,Ego backbone 首先在 ImageNet-1K 上预训练。
训练:
36 epochs
3× training schedule
multi-scale training
optimizer:
AdamW
这里论文特别报告了一个工程问题。
由于 COCO 图像分辨率较高,同时使用 multi-scale training,当 Ego 作为 backbone 时,在 RTX 3090 上使用 MMDetection 默认:
batch size=16
会发生:
Memory Overflow
因此作者不得不将:
batch size=16
降低为:
batch size=8
并同步调整 learning rate 等超参数。
作者认为这可能对模型最终性能产生一定负面影响,同时实验表明 Ego 对 training configuration 的变化存在一定敏感性,这一点在 Ego-T 上尤其明显。
11.1 COCO 结果

论文 Table 5:Cascade Mask R-CNN + COCO 上不同 backbone 的 Params、FLOPs、bbox AP 和 mask AP。
需要注意的是,Ego-B 的 mask AP=45.8,并不是表格中绝对最高,例如 MogaNet-B 为 46.0,UniRepLKNet-S 为 45.9。因此这部分更准确的结论应该是:
Ego 在 detection 和 instance segmentation 中取得了很有竞争力的表现,尤其随着模型规模增大,bbox detection performance 的优势更加明显,但并不是所有 COCO 指标都取得绝对最优。
十二、消融实验:Ego 的提升到底来自哪里?
作者在 ImageNet-1K 上以 Ego-T 为基础进行消融。

论文 Table 6:Ego-T 在 ImageNet-1K 上关于 Window Size、Weight Generation Function 和 Token Mixer 的消融实验。
Baseline Ego-T:
Params=27M
FLOPs=3.8G
Top-1=84.0%
12.1 Window Size
默认:
Top-1:
84.0%
减少到:
结果:
83.7%
减少到:
同样:
83.7%
如果改成 global 1D convolution:2N-1
结果:
84.0%
与默认窗口完全相同。
但是 FLOPs:
3.8G → 3.9G
这组实验非常重要,因为它直接验证了论文的核心假设:
排序能够把空间上很远但内容相似的元素移动到附近,因此不需要真正做全局 convolution,一个 (24
+1) 的局部窗口已经能够获得与 global convolution 一样的分类准确率。
12.2 logspace 还是 linspace?
作者进一步将默认 logspace 换成 linspace。
对应:
Top-1:
83.8%
Top-1:
83.8%
默认:
得到:
83.9%
global:2N-1
同样:
83.9%
与 logspace 的差距始终:
≤0.1%
说明 Ego 的效果并不依赖一个非常复杂或者特别精细的 weight generation function。
真正关键的是:
排序以后,使用一个随距离衰减的 convolution weight。
而不是一定必须使用 logspace。
12.3 去掉 Content Similarity Branch 会怎样?
这是最关键的一组消融。
Baseline:
[SpatialEgo,
SpatialEgo,
SpatialEgo,
SpatialEgo]
结果:
84.0%
如果四个 stage 全部改成:
[GatedConv,
GatedConv,
GatedConv,
GatedConv]
结果:
83.5%
下降:
0.5%
同时:
Params=27M
保持不变;
FLOPs=3.8G
也保持不变。
这意味着性能差异并不是简单来自:
更多参数
或者:
更高 FLOPs
而是与作者提出的 content-similarity-driven 1D branch 直接相关。
从这个角度看,这个 0.5% 的提升其实比单独看数值更加有意义,因为:
它是在几乎不改变模型参数量和计算量的情况下获得的。
十三、Visualization:Ego 是否真的获得了更大范围的信息交互?
作者最后利用 influence map 对 effective receptive field 进行可视化。

论文 Figure 3:Ego 与去掉一维 content branch 后的 GatedConv 在 Stage 1、Stage 2 和 Stage 3 中的 influence maps。上方为 Ego,下方为普通 GatedConv。
从 Figure 3 可以明显看到,在网络前几个 stage 中:
Ego 的 influence region 更广。
普通 GatedConv 更多集中在 anchor point 周围的局部区域。
而 Ego 的影响区域可以跨越比较远的空间位置。
这个结果恰好符合 SpatialEgo 的设计逻辑:
两个 token 空间距离很远
↓
feature value 相似
↓
经过 channel-wise sorting
↓
在一维序列上变得接近
↓
1D DWConv 建立信息交互
因此虽然实际进行的仍然是 local 1D convolution,但是其对应到原始 image plane 上时,可能形成 long-range interaction。
这也是论文所说:
Local window for global context
的直观证据。
十四、这篇论文真正的创新点是什么?
我认为可以总结成四点。
14.1 第一:重新定义 CNN 与 Attention 之间的差别
论文没有简单说:
Attention 比 CNN 更强,因为 Attention 是 global 的
而是进一步从 gated convolution 的形式出发,指出二者一个非常核心的差异:
Convolution:
weight ← relative position
Self-Attention:
weight ← content similarity
因此作者的目标并不是直接复制 Self-Attention,而是想办法让:
relative position
能够反映:
content similarity
这一理论视角本身就是论文最重要的创新之一。
14.2 第二:利用 Sorting 把 Content Similarity 变成 Relative Position
这是论文最核心的方法创新。
作者利用:
Sort
SortBy
SortBack
建立:
Feature value similarity
↓
Sorted positional proximity
两个本来 spatially distant 的 feature,只要内容相似,就可以在 sorted sequence 中成为邻居。随后普通 1D convolution 就可以按照 relative position 对它们进行聚合。因此不需要显式计算QK^T也不需要维护
的 pairwise relation matrix。
14.3 第三:Spatial + Content 双分支
作者没有因为要做 content modeling 就抛弃 CNN 最擅长的 spatial inductive bias。
SpatialEgo 同时包含:
7×7 2D DWConv
+
Sorting-based 1D DWConv
前者负责 local spatial relationship,后者负责 content-driven long-range relationship。
因此 Ego 实际上试图同时保留:
CNN 的 spatial modeling
+
Attention 类似的 content-dependent interaction
14.4 第四:局部窗口实现隐式 Global Receptive Field
由于 sorting 会重新排列所有 token,即使采用24这样的 local window,也可以聚合原始图像中空间距离很远的 feature。
消融实验中,它达到:
84.0%
与2N-1 global convolution 完全相同。因此作者最终将复杂度控制在
,而不是显式 pairwise modeling 的 quadratic complexity。
十五、论文仍然有哪些不足?
作者在 Conclusion 中主动提出了几个问题。
15.1 Sorting 的理论解释还不够完整
目前论文主要通过机制分析、实验结果和 visualization 来说明:
Sorting
→
Content-driven aggregation
是有效的。
但是:
为什么这种基于单 channel feature value 排序的方法能够稳定近似或者替代更加一般的 content similarity modeling?
作者认为还需要更强的 theoretical understanding。
这一点确实也是这篇论文未来非常值得研究的问题。
15.2 Video 和 Sequential Data 中可能出现严重问题
对于 static image:
token 顺序被重新排列
一般不会造成时间因果问题。
但是如果应用到:
Video
Time Series
Sequential Data
sorting 很可能破坏 temporal order。
更严重的是,在 causal task 中,如果未来 frame 的 feature 经过 sorting 被移动到当前 frame 附近,那么模型可能间接使用:
future information
造成 information leakage。因此作者认为未来需要研究:
Masked Sorting
Time-aware Sorting
等机制。
15.3 可以与 Deformable Convolution 进一步结合
作者最后还提出,可以研究 sorted-sequence 1D convolution 与其他 convolution form 的结合,例如:
Deformable Convolution
因为两者实际上都在试图突破固定 local grid 的限制。
Deformable Conv:
动态改变采样位置
Ego:
动态重排 feature position
二者结合以后,可能进一步平衡:
Local Structure Modeling
和
Content-driven Aggregation
十六、总结
这篇论文最有意思的地方并不是又提出了一种复杂 Attention,而是重新思考了一个非常基础的问题:
卷积为什么只能根据空间位置聚合信息?
作者发现,convolution parameter 本身确实只依赖 relative position,但是如果能够让:
Relative Position
本身携带:
Content Similarity
那么传统 convolution 也能够间接完成 content-driven aggregation。
所以从整篇论文来看,其真正贡献可以用一句话概括:
Ego 没有让 convolution 学会计算 Self-Attention,而是通过排序改变 token 的相对位置,让普通 convolution 自然而然地按照 content similarity 进行信息聚合。
我认为这个思路比单纯“CNN + Attention”更加值得关注,因为作者真正修改的是 CNN 信息聚合机制中“位置”和“内容”之间的关系,而不是简单增加一个新的模块。
网硕互联帮助中心



评论前必须登录!
注册