专栏名称: FightingCV
一个专注于分享计算机视觉、多模态机器学习方向前沿论文,解答常见科研问题,分享好用科研工具的公众号。努力努力再努力,瑞思拜!
目录
相关文章推荐
中国航务周刊  ·  HMM将收购这家航运企业! ·  3 天前  
中国航务周刊  ·  这家货代巨头,与大货主成立合资公司 ·  2 天前  
医药经济报  ·  循序渐进建立医保支付标准制度 ·  4 天前  
51好读  ›  专栏  ›  FightingCV

ConaCLIP:探索用于轻量级文本-图像检索的全连接知识交互图的蒸馏

FightingCV  · 公众号  ·  · 2024-11-09 09:00

正文

摘要

具有双编码器架构的大规模预训练文本-图像模型(例如 CLIP Radford et al. (2021) )通常被用于各种视觉-语言应用,包括文本-图像检索。 然而,由于大量的索引和推理时间以及大量的计算资源消耗,这些模型在边缘设备或实时情况下仍然不太实用。 尽管知识蒸馏技术已被广泛用于单模态模型压缩,但很少有人研究如何将它们扩展到模态和教师/学生数量都加倍的情况。 In this paper, we conduct comprehensive experiments on this topic and propose the fully- C onnected kn o wledge interactio n gr a ph (Cona) technique for cross-modal pre-training distillation. 根据我们的发现,生成的 ConaCLIP 在广泛使用的 Flickr30K 和 MSCOCO 基准测试中,在轻量级设置下实现了 SOTA 性能。 我们方法在电子商务平台上的行业应用进一步证明了 ConaCLIP 的显著有效性。 1

1 引言

文本-图像检索(TIR)旨在从给定特定文本查询的大型图像集合中检索出一系列最相关的图像。 随着信息交互和社会交往的快速发展,它已被视为跨模态应用的关键组成部分,并被各种现实场景所需要,例如电子商务平台(网站)。

最近,受预训练语言模型巨大成功的启发 Devlin et al. (2019); Liu et al. (2019); Brown et al. (2020) ,大规模视觉-语言预训练的研究 Tan and Bansal (2019); Li et al. (2020); Radford et al. (2021); Li et al. (2022); Wang et al. (2022b, 2023) 在包括文本-图像检索在内的各种视觉-语言任务上取得了显著进展。 这些现有方法 通常可以根据模型架构分为两类: 交叉编码器 双编码器 交叉编码器 通常会添加额外的 Transformer Vaswani et al. (2017) 层来模拟图像和文本表示之间的深层交互。 它通常可以提高检索性能,但当应用于整个图像集合时,由于每次给出新的文本查询时都需要跨模态成本,因此会导致检索速度变得难以忍受。 相反, 双编码器 以完全解耦的方式对视觉和文本输入进行编码。 图像表示允许预先计算,并且与文本查询无关地重复使用。 这些方法还可以利用快速近似最近邻 (ANN) 搜索 Muja 和 Lowe (2009); Jegou 等人 (2010); Johnson 等人 (2019) 在运行时。

尽管双编码器通常是现实世界应用的首选,但现有的相关模型,如 CLIP Radford 等人 (2021) ,在计算资源有限的边缘设备上或动态索引场景中(例如,私人照片/消息集合(网站))仍然不太实用。 为了解决这个问题,我们的目标是从大规模预训练的双编码器模型开始,并专注于预训练蒸馏,以呈现一系列更小、更快、更有效的对应模型。 知识蒸馏 (KD) Hinton 等人 (2014) 被提出来将具有软目标的知识从教师转移到相同模态的学生。 MoTIS Ren 和 Zhu (2022) 在文本和图像域中简单地重复基于模内 InfoNCE 的 Oord 等人 (2018) 学习以进行蒸馏。 然而, 当双编码器结构的模态数量翻倍时,这意味着文本和图像教师以及文本和图像学生,这些方法仍然只涉及模内教师-学生知识交互学习。 相反,在本文中,我们全面探索了每对可能的教师-学生或学生-学生之间的完全 C onnected kn o wledge interactio n gr a ph (Cona)。 如图 1 所示,每个双向箭头代表指向的两个模型之间的知识交互学习。 上述 KD 和 MoTIS 分别属于单个 蓝色 箭头和两个 蓝色 箭头。 此外, 为了更好地探索 Cona 的潜力, 我们实施并研究了各种监督策略来指导模型优化, 最终使每种类型的学习都为整体改进做出贡献。

我们发布了名为 ConaCLIP 的各种轻量级双编码器模型,适用于 不同的现实世界场景。 与之前的 SOTA 方法 Ren 和 Zhu (2022) 相比,我们的 ConaCLIP 在 Flickr30K/MSCOCO (1K)/MSCOCO (5K) 基准测试中,在相同的模型设置下,获得了 10.6/12.9/12.8 R@1 的增益。 我们还在一个电子商务平台上验证了它的有效性。 它可以实现 1.44 × /1.92 4.86 × 倍的推理加速,在给定图像/文本查询的情况下具有竞争力的性能。 本文的 主要贡献可以总结如下:

  • 我们提出了一种新的预训练蒸馏方法,该方法使用全连接知识交互图 (Cona) 用于轻量级双编码器模型。

  • 我们向开源社区发布了一系列轻量级 ConaCLIP 模型,这些模型在广泛使用的 Flickr30K 和 MSCOCO 基准测试中可以显著超过之前的 SOTA 模型。

  • 我们提供了该方法在实际工业场景中的实际应用,以进一步证明其实用价值。

2 相关工作

交叉编码器 Tan 和 Bansal (2019); Li 等人 (2019); Chen 等人 (2020); Li 等人 (2020); Chen 等人 (2022) 指的是多层密集的跨模态交互,例如交叉注意力 Vaswani 等人 (2017) ,通常用于图像和文本表示以进行更细粒度的合并和对齐。 虽然它通常由于补丁/符元级集成而实现了卓越的检索精度,但高内存成本和计算效率低下使其在时间紧迫的现实世界环境中变得不切实际。

相反,对于双编码器 Zhang 等人 (2020); Jia 等人 (2021); Radford 等人 (2021); Dou 等人 (2022) ,图像和文本特征分别被编码到一个联合嵌入空间中,模态交互仅由最终图像和文本特征向量的简单余弦相似性处理。 这种方法可以被认为是可扩展的和可索引的:编码器架构的具体选择可以是独立的和动态的,而后期交互方案允许进行高效的大规模搜索。

用于轻量级双编码器架构的预训练蒸馏很少被研究。 朴素知识蒸馏 Hinton 等人 (2014) 可以被认为是基于软目标的从同一模态中的教师到学生的知识转移。 但是,它是一个通用的过程,没有跨模态学习的意识和相关性。 MoTIS Ren 和 Zhu (2022) 使用一个模态内对比目标分别压缩文本或图像编码器,该目标对齐学生和教师在每个模态的输出嵌入,这可以被视为知识蒸馏的另一种形式。 然而,这些方法忽略了或没有找到利用跨模态蒸馏过程的合适方法。 除了它们之外,我们的方法致力于探索用于双编码器蒸馏的全连接知识交互图,这是一种自然而有效的扩展。

图 1: 我们与 Cona 一起使用的双编码器预训练蒸馏框架。 每种双向箭头颜色代表一种知识交互学习类型。 在此阶段,教师编码器被冻结。

3 方法

在本节中,我们首先介绍预备知识, 然后提出我们与 Cona 一起使用的预训练蒸馏框架。 最后,我们介绍各种监督策略。

3.1 预备知识

为了解释方便,我们将 text image teacher student 分别缩写为 T I tch stu F 代表由编码器架构 E 输出的 L2 归一化特征向量。

在学生学习之前,教师 E tch T E tch I 通常首先使用一个目标进行预训练,该目标将匹配的文本-图像对的嵌入推得更近,同时将不匹配的嵌入推得更远,具有较大的模型容量和海量数据。 具体来说,CLIP Radford 等人 (2021) 将 InfoNCE Oord 等人 (2018) 损失作为监督形式。 不失一般性,给定两个输出的特征向量 F a F b N × d ,我们定义:

其中 N 是小批量大小, d 是通道大小, τ 是温度超参数。 CLIP 的最终损失可以表示为:

接下来,学生 E stu T E stu I 的预训练蒸馏开始,教师 E tch T E tch I 的参数被冻结。 MoTIS Ren 和 Zhu (2022) 在此阶段也采用了基于 InfoNCE 的损失函数,并在文本和图像领域分别实现:

根据公式 ( 4 ) 中的下标, 不难看出 MoTIS 只涉及 模内 师生 学习。

3.2 使用 Cona 进行预训练蒸馏

与现有工作不同,我们的方法引入了全连接知识交互图 (Cona) 用于预训练蒸馏。 除了 模内师生 学习之外,我们的方法还包括 模内生生 学习, 模间师生 学习和 模间生生 学习,如图 1 所示。 为学生 E stu T E stu I 建立的这个全连接学习图,是多视角和多任务学习方案的集成,可以增强预训练模型所需的鲁棒性和有效性 Caruana (1997); Luong 等人 (2016); Aghajanyan 等人 (2021)

我们建议 Cona 中每种类型的学习过程都应该在详细的监督策略中具体实现。 因此,我们在下一小节中提出并研究了各种监督策略。

3.3 监督策略

在这里,我们继续使用 F a F b (预测) 以及 F a ~ F b ~ (目标) 作为占位符进行说明,并介绍以下有效的监督策略:

InfoNCE 损失 是一种对比损失函数。 它在公式 ( 2 ) 中被定义,并通过公式 ( 4 ) 成功应用于蒸馏。

特征距离 (FD) 损失 直接最小化特征向量之间的距离。 我们利用平方 L2 范数作为度量:

相似度距离 (SD) 损失 最小化相似度矩阵之间的距离准则:


由于 F a F b F a ~ F b ~ 已被 L2 归一化,余弦相似度 F i a F j b F i a ~ F j b ~ 的值在范围 [ 1 , 1 ] 内。 预测 F i a F j b 与目标 F i a ~ F j b ~ 之间的距离需要缩短。 因此,这里也采用了 L2 范数的平方。

KL-Div 损失 使用 Kullback–Leibler 散度来衡量预测概率分布与目标概率分布之间的差异。 给定 p i , j 通过如式 ( 1 ) 所示的 softmax 操作获得,它最小化以下优化目标:

Learning Type Supervision Strategies
InfoNCE FD SD KL-Div Sym-SD Sym-KL-Div
intra-modal stu-stu learning \ \ F stu T F stu T F tch T F tch T SD + F stu I F stu I F tch I F tch I SD F stu T F stu T F tch T F tch T KL - Div + F stu I F stu I F tch I F tch I KL - Div F stu T F stu T F stu I F stu I SD F stu T F stu T F stu I F stu I KL - Div + F stu I F stu I F stu T F stu T KL - Div
inter-modal stu-stu learning F stu T F stu I InfoNCE + F stu I F stu T InfoNCE F stu T F stu I FD F stu T F stu I F tch T F tch I SD + F stu I F stu T F tch I F tch T SD F stu T F stu I F tch T F tch I KL - Div + F stu I F stu T F tch I F tch T KL - Div \ \
intra-modal tch-stu learning F stu T F tch T InfoNCE + F stu I F tch I InfoNCE F stu T F tch T FD + F stu I F tch I FD F stu T F tch T F tch T F tch T SD + F stu I F tch I F tch I F tch I SD F stu T F tch T F tch T F tch T KL - Div + F stu I F tch I F tch I F tch I KL - Div F stu T F tch T F stu I F tch I SD F stu T F tch T F stu I F tch I KL - Div + F stu I F tch I F stu T F tch T KL - Div
inter-modal tch-stu learning F stu T F tch I InfoNCE + F stu I F tch T InfoNCE F stu T F tch I FD + F stu I F tch T FD F stu T F tch I F tch T F tch I SD + F stu I F tch T F tch I F tch T SD F stu T F tch I F tch T F tch I KL - Div + F stu I F tch T F tch I F tch T KL - Div F stu T F tch I F stu I F tch T SD F stu T F tch I F stu I F tch T KL - Div + F stu I F tch T F stu T F tch I KL - Div


表 1: 知识交互学习和监督策略所有组合的详细损失函数。 "Sym-" 是对称版本的损失函数。 " \ " 表示组合无意义。

值得注意的是,当执行图 1 中所示箭头指示的学习过程时, 通常的做法是使用教师的输出 F tch T F tch I 作为学生学习的式 ( 6 )( 7 ) 中的目标。 而在我们的情况下,由于两种模态可用,我们建议使用成对箭头作为目标,我们称之为 对称版本 (对于 SD 损失和 KL-Div 损失)。 例如, 使用 KL-Div 损失实现的跨模态师生学习可以表述为

而其对称版本是

此修改加深了优化过程中四个编码器之间的交互。

到目前为止, 任何一种学习类型都可以通过任何一种监督策略具体实现, 除了少数无意义的组合。 详细的损失函数列于表 1 中。

4 实验

4.1 设置

我们使用 Conceptual Caption (CC3M) Sharma 等人 (2018) 和 Conceptual 12M (CC12M) Changpinyo 等人 (2021) 进行预训练蒸馏,它们分别包含 3M 和 12M 个噪声文本-图像对。 在微调期间,我们使用 MSCOCO Lin 等人 (2014) 和 Flickr30K Plummer 等人 (2015) 作为基准。 MSCOCO 拥有 113,287 张图像用于训练,5K 张图像用于验证,以及 5K 和 1K 用于测试。 Flickr30K 拥有 28,783 张图像用于训练,1K 张图像用于验证,以及 1K 用于测试。 遵循先前工作,我们使用召回率 R@ k ( k =1,5,10) 作为主要指标。

我们使用开源 CLIP Radford 等人 (2021) 结合 ViT-B/32 Dosovitskiy 等人 (2020) 作为教师模型。 它的图像编码器是一个 12 层 ViT,隐藏层大小为 768,具有 12 个注意力头。 它的文本编码器是一个 12 层 Transformer,隐藏层大小为 512,具有 8 个注意力头。

对于学生模型,我们使用 ViT-S/16,隐藏层大小为 384 作为图像编码器, 并使用 ImageNet-21K 上的预训练权重 Ridnik 等人 (2021) 初始化。 对于文本编码器,我们尝试了 2、4 和 6 层 Transformer,其权重从教师文本编码器的对应前几层初始化。 模型设置的详细信息如表 6 所示。

在预训练蒸馏中,我们使用 AdamW Loshchilov 和 Hutter (2018) 训练学生模型,在 4 个 epoch 中进行训练,图像和文本的批次大小均为 1024,学习率为 3e-4,权重衰减为 0.1。 我们采用余弦学习率调度器,并进行 10,000 步预热。 在微调中,我们使用与 MoTIS 中相同的优化设置 Ren 和 Zhu (2022) 。 实验在 4 个 NVIDIA TESLA V100 32G GPU 上进行。

Learning Type Supervision Strategies
InfoNCE FD SD KL-Div Sym-SD Sym-KL-Div
intra-modal stu-stu learning \ \ 58.8/83.7/90.1 57.1/82.7/88.8 57.1/82.0/89.2 56.8/81.6/88.6
inter-modal stu-stu learning 34.7/58.7/69.9 56.6/82.1/88.8 58.6/83.6/90.0 56.5/82.4/88.9 \ \
intra-modal tch-stu learning 57.6/82.4/89.0 57.6/82.0/88.4 58.5/83.2/89.6 55.1/80.0/87.4 58.7/83.4/89.9 56.3/81.5/88.3
inter-modal tch-stu learning 51.4/76.3/83.8 50.0/80.7/88.4 57.6/82.5/88.6 56.9/81.8/88.7 56.9/81.8/88.7 59.1/83.4/89.8


表 2: 在 Flickr30K 上进行文本图像检索 R@1/5/10 的消融研究。 基线。 粗体 表示所有 R@ k 都具有明显的改进。 所有五个损失 以粗体显示 将被添加到基线损失中,最终作为我们的框架。

Model Text Encoder Image Encoder Flickr30K MSCOCO (1K) MSCOCO (5K)
R@1 R@5 R@10 R@1 R@5 R@10 R@1 R@5 R@10
(a) Fair Comparisons
InfoNCE-based CLIP’s[512/6] ViT-S/16[384/12]






请到「今天看啥」查看全文