关注公众号,发现CV技术之美

 写在前面

无监督的大规模视觉语言预训练在各种下游任务上显示出不错的进步。现有方法通常通过每个模态的全局特征的相似性来模拟跨模态交互,或者通过视觉和文本token的交叉/自注意力来模拟细粒度交互。然而,交叉/自注意力在训练和推理方面的效率较低。

在本文中,作者引入了大规模细粒度交互式语言图像预训练(FILIP),通过跨模态后期交互机制实现更细粒度的对齐,该机制使用视觉和文本标记之间的token最大相似度来指导对比目标。FILIP通过仅修改对比损失,成功地利用了图像块和文本词之间的细微表达能力,同时获得了在推理时预先计算图像和文本表示形式的能力,保持了大规模训练和推理效率。

此外,作者还构建了一个新的大规模图像-文本对数据集FILIP300M,用于预训练。实验表明,FILIP在多个下游视觉语言任务(包括Zero-shot图像分类和图像文本检索)上实现了SOTA的性能。单词-patch对齐的可视化进一步表明,FILIP可以学习有意义的细粒度特征,具有良好的定位能力。

 1. 论文和代码地址

FILIP: Fine-grained Interactive Language-Image Pre-Training

论文地址:https://arxiv.org/abs/2111.07783

代码地址:未开源

 2. Motivation

大规模视觉语言预训练(VLP)模型,如CLIP和ALIGN最近在各种下游任务中取得了成功。他们从互联网上收集的数以百万计的图像-文本对中学习视觉和文本表示,并显示出卓越的zero-shot能力和鲁棒性。这些模型的核心技术在于通过双流模型对图像和文本进行全局对比对齐。

这种结构对于下游任务(如检索)来说是有效的,因为两种模态的编码器可以解耦,图像或文本表示可以预先计算。然而,CLIP和ALIGN仅通过每个模态的全局特征的相似性来模拟跨模态交互,缺乏捕获内部信息(如视觉对象和文本词之间的关系)的能力。

在本文中,作者为大规模VLP开发了一种简单而有效的跨模态相互作用机制。为了实现更细粒度的跨模态相互作用,以前的方法主要采用两种方法。

(1)一些工作使用预先训练的目标检测器从图像中提取感兴趣区域(ROI)特征,然后通过VLP模型将其与成对文本融合。由于预计算和存储大量ROI特征,此设计使预训练复杂化。此外,这些方法的Zero-Shot能力通常受到类的预定义数量的限制,并且它们的性能也受到检测器质量的限制。

(2) 另一些工作将两种模态的token表示或patch表示强制映射到相同的空间中,并通过交叉注意或自注意对这些细粒度交互进行建模。然而,这些方法在训练和推理方面通常效率较低。特别是,在训练期间,需要在编码器-解码器结构中执行中的交叉注意,而自注意的复杂度与两种模态concat的结果长度呈二次关系。

在推理过程中,来自两种模态的数据相互交织以计算交叉注意或自注意,并且不能像双流模型(如CLIP和ALIGN)那样预先计算特征。对于图像/文本检索和图像分类等下游任务而言,这可能不太有效。

在本文中,作者提出了一个大规模细粒度交互式语言图像预训练框架FILIP来解决这些局限性。作者通过对比损失中的一种新的跨模态后期交互机制来模拟细粒度语义对齐,而不是使用交叉或自注意。

具体而言,本文的细粒度对比学习使用视觉和文本token之间的最大相似度来指导对比目标。通过这种方式,FILIP成功地利用了图像patch和文本词之间的细粒度表达能力,同时获得了预先计算图像和文本表示的能力。

此外,在计算图像-文本对齐时,作者丢弃填充的token,使用平均值代替标记最大相似度的总和,这增强了跨模态表示学习并稳定了训练。作者还从互联网上构建了一个名为FILIP300M的大规模预训练数据集。

大量的实验表明,FILIP通过有效地学习细粒度表示,在多个下游任务上获得了SOTA的性能,包括zero-shot图像分类和图文检索。FILIP在Zero-Shot ImageNet分类中达到77.1%的Top-1精度。对单词patch对齐的可视化进一步表明,FILIP学习了有意义的细粒度特征,具有良好的定位能力。

 3. 方法

在本文中,作者提出了一个新的跨模态预训练模型,该模型在图像编码器和文本编码器之间的细粒度交互中表现出色,用于挖掘更详细的语义对齐,FILIP的结构如上图所示。FILIP是一个双流模型,带有基于Transformer的图像和文本编码器。

对于视觉模态,图像编码器是一个视觉Transformer,它将额外的[CLS] token嵌入和线性投影图像patch concat作为输入。对于文本形式,作者使用lower-cased byte pair encoding(BPE),词汇大小为49408,以标记文本。

每个文本序列以[BOS] token开始,以[EOS] token结束。在word embedding层之后,token嵌入被送到仅解码器的Transformer模型中。在图像和文本编码器之上,文本token和视觉token的表示线性投影到多模态公共空间,并分别进行L2归一化。

与现有的双流模型(例如,CLIP和ALIGN)不同,这些双流模型仅通过整个图像和文本序列的全局特征对跨模态交互进行建模,作者提出了一种新的细粒度对比学习目标,该目标配备了跨模态后期交互,其中考虑了图像patch和文本token之间的细粒度交互。

3.1. 细粒度对比学习

最近发现,对比表征学习在视觉和视觉语言跨模态预训练中都比预测表征学习更好。根据跨模态对比学习的一般公式,我们希望学习一个图像数据I的编码器和文本数据T的编码器,这样,给定图像 和文本,在距离度量下,编码表示和如果相关则接近,如果不相关则相距远。

在每个训练batch中,作者抽样了b个图像文本对,对于图像文本对中的图像,为其正样本,而其他文本将作为batch中的负样本。的图像到文本对比损失可以表示为:

其中表示第k个图像与第j个文本的相似性。类似地,文本到图像的对比损失为:

这个mini-batch的总损失可以表示为:

3.1.1 Cross-model Late Interaction

从对比损失可以看出,跨模态相互作用反映在我们如何计算第i幅图像和第j幅文本的相似性和。以前的方法,如CLIP和ALIGN只是将每个图像或文本分别编码为全局特征,即和,并计算这两个相似性,如下所示:

忽略两种模态之间的细粒度交互(例如,单词-patch对齐)。为了缓解这一问题,同时保持双流模型的训练和推理效率,作者采用了跨模态后期交互来建模token式的跨模态交互。

具体而言,将n1和n2分别表示为第i个图像和第j个文本的(非填充)token数量,相应的编码特征为和。对于第k个视觉token,作者计算其与的所有文本token的相似性,并使用最大的一个:

作为其与的token最大相似度。然后,使用图像中所有非填充token的平均token最大相似性作为图像与文本的相似性。因此,第i个图像与第j个文本的相似度可以表示为:

其中类似地,第j个文本与第i个图像的相似性为:

其中

本文方法与之前的相似度计算方法主要有几点不同:首先,在计算相似度时排除了填充文本token,因为它们会损害性能。作者推测,这是因为这些填充token也学习文本表示,并会误导模型将图像patch与这些无意义的填充token对齐,而不是将有意义的非填充单词对齐。

其次,在计算相似度时,作者使用的是token最大相似度的平均值,而不是求和。因为非填充token的数量因文本而异,并且所有非填充token的总和可能具有相当不同的大小,导致训练不稳定和最终性能较差。这两个修改不仅对下游任务的性能至关重要,而且对单词-patch对齐的质量也至关重要。

3.1.2 Prompt Ensemble And Templates

由于多义性和与预训练过程不一致的问题,作者还使用提示模板来增强某些下游任务的原始标签。为直观起见,为简单起见,作者在整篇论文上只使用了一个提示模板,即“a photo of a { label } .”。

对于其他实验,作者使用了prompt ensemble来报告结果。当允许多个提示时,同一类标签的不同提示模板的token表示形式不同,不能相加形成平均文本表示形式。

因此,作者不是通过它们的平均文本表示来集成不同的提示模板,而是通过它们的平均token相似性来集成它们。具体地说,假设有C个提示模板,每个标签被扩充为C个不同的文本。图像和该标签之间的相似性计算为。

受之前工作的启发,作者使用统一的基于规则的方法构建图像分类任务的提示模板。具体而言,每个模板由四个部分组成:

3.2. 图像和文本增强

为了获得模型更好的泛化和数据效率,作者在预训练阶段对图像和文本进行数据增强,以构建更多的图像-文本对。对于视觉端,作者采用了AutoAugment。为了确保增强后的文本在语义上与原文本相似,对于文本增强,作者使用回译来重写原始文本。具体而言,文本首先翻译成目标语言,然后再翻译回源语言。作者选择德语和俄语作为目标语言,并为每个图文对额外获取两个文本。

 4.实验

上表展示了本文方法和其他预训练方法在图文检索任务上的zero-shot实验结果。

上表展示了本文方法和其他预训练方法在图文检索任务上的微调实验结果。

上表展示了本文方法的不同模块的消融实验结果。

上表展示了本文提出的late interaction的消融实验结果。

上图展示了4类ImageNet数据集的单词patch对齐可视化。

 5. 总结

文章提出的FILIP采用了和CLIP类似的双塔结构,不同的是CLIP只是进行了全局信息的对比。但是本文的采用了更加细粒度的对比:将每个word token和grid token进行对比(单个word token的对比和所有grid token的相似度的最大值,作为该word token和视频的相似度结果,然后将所有word token的相似度进行平均,得到文本对图像的相似度;反之亦然)。这么做的好处显而易见,更加细粒度的对比能够考虑更完整的信息,从而产生更好的结果。

▊ 作者简介

研究领域:FightingCV公众号运营者,研究方向为多模态内容理解,专注于解决视觉模态和语言模态相结合的任务,促进Vision-Language模型的实地应用。

知乎/公众号:FightingCV

END

欢迎加入「图本检索交流群

图本检索的Zero-Shot超过CLIP模型!FILIP用细粒度的后期交互获得更好的预训练效率。...相关推荐

  1. ICCV2021- 牛津大学新的预训练视频文本数据集WebVid-2M,设计用于端到端检索的联合视频和图像编码器!代码已开源!...

    关注公众号,发现CV技术之美 ▊ 写在前面 视频文本检索的挑战包括视觉网络结构的设计 和训练数据的性质 ,因为可用的大规模视频文本训练数据集 (例如HowTo100M) 是noisy的,因此只能通过大 ...

  2. AI:2023年6月9日北京智源大会演讲分享之基础模型前沿技术论坛—《工程化打造AI中的CPU》、《构建一个AI系统:在LLM上应用带有RLHF来推进定制》、《多模态预训练的进展回顾与展望》、《扩展大

    AI:2023年6月9日北京智源大会演讲分享之基础模型前沿技术论坛-<工程化打造AI中的CPU>.<构建一个AI系统:在LLM上应用带有RLHF来推进定制>.<多模态预训 ...

  3. 【预训练视觉-语言模型文献阅读文献阅读】最新BERT模型——UNITER: UNiversal Image-TExt Representation Learning

    [预训练视觉-语言模型文献阅读文献阅读]最新BERT模型--UNITER: UNiversal Image-TExt Representation Learning 文章目录 [预训练视觉-语言模型文 ...

  4. 《预训练周刊》第67期: ChatGPT引起热议、量化技术、Meta图像掩码加速CLIP

    No.67 智源社区 预训练组 预 训 练 研究 观点 资源 活动 周刊订阅 告诉大家一个好消息,<预训练周刊>已经开启"订阅功能",以后我们会向您自动推送最新版的&l ...

  5. 《预训练周刊》第60期:大模型应用图谱、最大ViT模型PaLI、高效英文语音识别Whisper...

    No.60 智源社区 预训练组 预 训 练 研究 观点 资源 活动 周刊订阅 告诉大家一个好消息,<预训练周刊>已经开启"订阅功能",以后我们会向您自动推送最新版的&l ...

  6. 超越谷歌BERT!依图推出预训练语言理解模型ConvBERT,入选NeurIPS 2020

    机器之心发布 机器之心编辑部 在本文中,本土独角兽依图科技提出了一个小而美的方案--ConvBERT,通过全新的注意力模块,仅用 1/10 的训练时间和 1/6 的参数就获得了跟 BERT 模型一样的 ...

  7. 《预训练周刊》第28期:M6-10T:高效多万亿参数预训练的共享去链接范式、大模型自然语言处理的最新进展综述...

    No.28 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 本期周刊,我们选择了11篇预训练相关的论文,涉及模型训练.图像编码.气候文本.对比学习.文本生成评估.小样本学习.决策推理 ...

  8. 如何兼容自训练与预训练:更高效的半监督文本分类模型

    论文标题: Neural Semi-supervised Learning for Text Classification Under Large-Scale Pretraining 论文作者: Zi ...

  9. [深度学习] 自然语言处理 --- Huggingface-Pytorch中文语言Bert模型预训练

    Hugging face 是一家总部位于纽约的聊天机器人初创服务商,开发的应用在青少年中颇受欢迎,相比于其他公司,Hugging Face更加注重产品带来的情感以及环境因素.官网链接在此 https: ...

最新文章

  1. C++:const的使用(普通常量、指针、引用)
  2. 微众银行 CAIO 杨强:人工智能的新三大定律(附视频)
  3. 免费下载田志刚《呼叫中心知识库心得》电子书
  4. 点击按钮取GridView当前被操作行的数据
  5. Throwable、Error、Exception、RuntimeException 区别 联系
  6. python回车换行怎么不行_使用Python编写换行符时避免写入回车'\r'
  7. 6款html5模板下载
  8. android studio aspectj使用,androidStudio中使用 AspectJ
  9. 关闭主窗口,启动另一个窗口
  10. 子盒子width为父盒子width的百分比注意
  11. 产品 电信nb接口调用_【IoT】物联网NB-IoT之电信物联网开放平台对接流程浅析
  12. 【20保研】天津大学智能与计算学部2020级研究生招生夏令营活动通知
  13. 【理解】特征值分解,理解+计算方法+代码+应用
  14. 二进制炸弹--拆弹实验
  15. 两步就能使用pyqt制作软件界面,写一个基于you-get的windows端app
  16. JAVA正则表达式验证英文字母、汉字和数字!!!
  17. delete和delete[]引发的问题
  18. Stata:固定效应模式必须加入时间固定效应吗?
  19. 行业分析网站-网站分析软件-免费网站详细数据分析软件
  20. 工作六年的一些迷茫与想法

热门文章

  1. 数字图像处理--颜色选择
  2. Java 8 Stream API详解
  3. codeup 1918 简单计算器
  4. 理科生的人生感悟-01-时间的短暂 - 父亲 - 火车上的颠沛流离
  5. linux 文件-s,Linux下访问文件的基本模式
  6. 椭圆极点极线性质_笔记:关于极点极线的一些思考
  7. 联想+android电视,联想Android4.0智能电视亮相:4月底国内上市
  8. android 输入法如何启动流程_android输入法02:openwnn源码解析01—输入流程
  9. Java银行类编程题
  10. linux中vi模式中c命令,“Linux”系统中“vi ^C ”命令是什么意思?