跳转至

IRGen: Generative Modeling for Image Retrieval

会议: ECCV 2024
arXiv: 2303.10126
代码: GitHub (有)
领域: 图像生成
关键词: 图像检索, 自回归模型, 生成式检索, 语义分词器, 序列到序列

一句话总结

将图像检索重新定义为生成式建模任务,提出 IRGen——一个序列到序列模型,通过语义图像分词器将图像转化为简短的离散 token 序列,然后自回归地生成查询图像最近邻的标识符,实现端到端可微分的检索并在三个标准基准上达到 SOTA。

研究背景与动机

传统图像检索系统由两个独立阶段组成:

特征表示学习:将图像编码为特征向量

近似最近邻(ANN)搜索:在特征空间中高效查找最相似的数据库图像

两个阶段是独立优化的,实际部署时需要仔细调参才能让两者协调工作。虽然有联合学习的尝试(如深度量化/哈希),但仍依赖后处理的非穷举搜索,无法实现真正的端到端优化。

核心洞察:生成式建模已在翻译、对话、图像生成等领域取得巨大成功,其核心思想是将任务统一为序列生成问题。图像检索也可以被重新定义为:给定查询图像,生成其最近邻图像的标识符序列

这带来两个关键技术挑战: 1. 如何将图像转化为足够简短的语义 token 序列(保证搜索效率) 2. 如何让这些 token 包含足够的语义信息(保证检索准确性)

现有图像分词器(VQ-VAE、RQ-VAE)为图像生成设计,不适合检索任务——序列太长(如 256 tokens)、编码低级细节而非语义信息。

方法详解

整体框架

IRGen 包含两个核心组件:

  1. 语义图像分词器(Semantic Image Tokenizer):将图像转化为简短的离散语义 token 序列作为标识符
  2. 编码器-解码器(Encoder-Decoder):标准 Transformer 架构,输入查询图像,自回归生成最近邻图像的标识符

关键设计

1. 语义图像分词器

为什么现有分词器不行?

特性 VQ-VAE / RQ-VAE IRGen 分词器
目标 像素级重建 语义级分类
输入特征 空间 patch 嵌入 全局 class token
序列长度 256(8×8×4) 仅 M 个(如 4-8)
编码内容 低级细节、纹理 高级语义信息

核心设计思路:

(a) 使用全局特征而非空间特征

不使用 ViT 的 spatial token(会产生长序列),而使用 class token \(\mathbf{f}_{cls}\) 作为图像表示。这将序列长度从 64 个 token 压缩到 1 个 token,然后通过残差量化展开为 \(M\) 个离散码。

(b) 残差量化(Residual Quantization, RQ)

使用 \(M\) 个码本,每个含 \(L\) 个元素。递归地将 \(\mathbf{f}_{cls}\) 映射为 \(M\) 个有序离散码 \(\{l_1, l_2, \ldots, l_M\}\)

\[l_m = \arg\min_{l \in [L]} \|\mathbf{r}_{m-1} - \mathbf{c}_{ml}\|_2^2$$ $$\mathbf{r}_m = \mathbf{r}_{m-1} - \mathbf{c}_{ml_m}\]

初始残差 \(\mathbf{r}_0 = \mathbf{f}_{cls}\)。这种递归过程天然兼容自回归生成——每个 token 依赖前面的 token。

(c) 语义监督而非重建监督

关键创新:不用像素重建损失,而用分类损失训练分词器!对原始嵌入和各级重建嵌入都施加分类损失:

\[\mathcal{L} = \mathcal{L}_{cls}(\mathbf{f}_{cls}) + \lambda_1\sum_{m=1}^{M}\mathcal{L}_{cls}(\hat{\mathbf{f}}_{cls}^{\le m}) + \lambda_2\sum_{m=1}^{M}\|\mathbf{r}_m\|_2^2\]

其中 \(\hat{\mathbf{f}}_{cls}^{\le m} = \sum_{i=1}^{m}\mathbf{c}_{il_i}\) 是使用前 \(m\) 个码重建的嵌入。 - 第一项:保证原始特征的语义质量 - 第二项:保证各级前缀码都包含语义信息(层级化语义) - 第三项:最小化量化残差

训练采用交替优化更新码本和网络,量化梯度用 straight-through estimator。

2. 编码器-解码器自回归检索

建立好离散标识符后,训练序列到序列模型:

训练过程: - 输入:图像对 \((x_1, x_2)\),其中 \(x_2\)\(x_1\) 的最近邻 - 编码器 \(\mathbb{E}\)(ViT-Base)将 \(x_1\) 编码为查询嵌入 - 解码器 \(\mathbb{D}\)(标准 Transformer,含因果自注意力 + 交叉注意力 + MLP)自回归预测 \(x_2\) 的标识符序列

训练目标——最大化标识符的条件似然:

\[p(l_1, \ldots, l_M | x_1, \theta) = \prod_{m=1}^{M} p(l_i | x_1, l_1, \ldots, l_{m-1}, \theta)\]

使用 softmax 交叉熵损失在 \(M\) 个离散 token 的词汇表上训练。

注意:解码器仅在离散变量上操作,不涉及任何视觉内容——这使得模型可以利用标准 Transformer 的成熟基础设施进行扩展。

Top-1 检索:贪心解码,逐步生成概率最高的 token

Top-K 检索:使用束搜索(beam size = K)

具体流程: 1. 初始化 beam 为起始 token 2. 扩展候选序列,为每个候选生成可能的下一个 token 3. 按序列概率(各 token 概率之积)排序,保留 top-K 4. 重复直到解码完最后一个 token

前缀树约束:并非所有生成的标识符都对应数据库中的有效图像。构建包含所有有效码的前缀树(prefix tree),在搜索过程中约束仅考虑有效的下一个 token,大幅提高效率。

束搜索 vs ANN 搜索的核心区别: - ANN:使用预定义的距离度量计算查询-节点距离 - 束搜索:通过可微分的神经网络计算分数,条件在查询上——这使得整个检索过程可以端到端优化

损失函数 / 训练策略

分词器训练: - 分类损失 \(\mathcal{L}_{cls}\)(softmax 交叉熵)+ 量化残差最小化 - 交替优化码本和编码器网络

检索模型训练: - 自回归交叉熵损失:预测最近邻标识符的下一个 token - 训练数据:从数据库中挖掘近邻图像对

实验关键数据

主实验

三个标准基准上的 Precision 对比(所有方法使用相同数据处理和可比模型大小):

方法 搜索方式 In-shop P@1 In-shop P@10 CUB200 P@1 CUB200 P@2 Cars196 P@1 Cars196 P@2
FT-CLIP 线性扫描 91.4 66.8 79.2 77.6 88.4 87.7
CGD 线性扫描 83.2 47.8 76.7 75.5 87.1 86.1
IRT_R 线性扫描 92.7 59.6 79.3 77.7 75.6 73.1
FT-CLIP SPANN 90.2 62.9 78.5 77.6 88.6 88.1
IRGen 束搜索 92.4 87.0 82.7 82.7 90.1 89.9

关键指标提升(vs 最佳基线,包括线性扫描): - In-shop P@10: +20.2%(87.0 vs 66.8) - CUB200 P@2: +6.0%(82.7 vs 77.7) - Cars196 P@2: +2.4%(89.9 vs 87.7)

尤其注意 In-shop P@10 的巨大提升——说明 IRGen 的精度在较大 K 值下不衰减(从 P@1=92.4 到 P@10=87.0),而传统方法急剧下降(FT-CLIP 从 91.4 降到 66.8)。

消融实验

不同标识符类型的 Precision 对比(In-shop 数据集):

标识符类型 P@1 P@10 P@20
随机码 76.9 60.3 56.8
层次 K-means 86.1 67.2 62.1
RQ-VAE(重建监督) 85.2 68.0 63.5
语义分词器(本文) 92.4 87.0 86.6

语义分词器大幅超越其他标识符选择,验证了语义监督的关键性。

关键发现

  1. 生成式检索可以超越线性扫描:这是非常反直觉的——非穷举搜索方法通常被认为无法匹敌穷举搜索,但 IRGen 通过端到端优化打破了这一局限
  2. P@K 的"高原效应":IRGen 的 P@10/P@20/P@30 几乎不下降(87.0/86.6/86.5),说明束搜索生成的都是高质量近邻
  3. 语义监督 vs 重建监督:分类损失训练的分词器远超 RQ-VAE 的像素重建损失,验证了语义先验对检索的重要性
  4. 扩展到百万级数据集:在 ImageNet 和 Places365 上也保持优势,证明了方法的可扩展性
  5. 可能消除重排序阶段:精度的大幅提升使得实际工作流中传统不可或缺的 reranking 阶段可能被跳过

亮点与洞察

  1. 统一范式的开拓性:首次将图像检索真正重新定义为序列生成任务,端到端可微分,消除了特征提取-压缩-索引这三个阶段的显式界限
  2. 与自然语言处理的深度类比:就像 NLP 中的 GPT 模型生成下一个 token,IRGen 生成目标图像的标识符 token——实现了跨模态的方法论统一
  3. 全局 class token 的妙用:将序列长度从 256 压缩到仅 \(M\) 个(通常 4-8),不仅提高了推理速度(二次降低时间复杂度),还天然编码了高级语义
  4. 前缀树的优雅搜索约束:巧妙地将有效性验证转化为树结构上的路径约束,避免了无效标识符的生成
  5. 概念上极简:所有组件都是标准 Transformer,可以直接利用现有的规模化技术

局限与展望

  1. 自回归推理速度:尽管序列大幅缩短,自回归生成的固有顺序性仍然是效率瓶颈
  2. 训练数据构造:需要预先挖掘近邻图像对作为训练数据,依赖现有检索系统
  3. 码本大小与表达力的权衡\(L\)\(M\) 的选择影响标识符的唯一性和区分力
  4. 动态数据库:当数据库增删图像时,需要更新前缀树和可能重新训练
  5. 可探索将此框架推广到跨模态检索(文本→图像)和多模态统一检索

相关工作与启发

  • DSI / NCI:文档检索中的生成式方法,使用层次 K-means 获取文档标识符;IRGen 证明语义监督的标识符更有效
  • RQ-VAE:用于图像生成的残差量化,IRGen 将其从重建改为分类目标,适配检索任务
  • JPQ / DPQ:联合学习嵌入和压缩,但仍依赖线性扫描;IRGen 通过束搜索真正实现非穷举端到端检索
  • GPT:自回归语言模型架构,IRGen 的解码器直接复用了这一通用架构
  • 启发:生成式建模作为统一框架的潜力远未充分开发,图像检索只是开始

评分

  • 创新性: ★★★★★ — 开创性地将图像检索重新定义为生成任务,范式级别的创新
  • 实验充分度: ★★★★★ — 三个标准基准 + 两个百万级数据集 + 详尽消融 + 多种搜索策略对比
  • 写作质量: ★★★★★ — 问题动机清晰,方法描述系统,实验组织严谨
  • 实用价值: ★★★★☆ — 概念突破性强但自回归推理速度和动态数据库更新是工程挑战

相关论文