以CLIP为代表的视觉语言大模型(VLMs)在zero-shot识别等领域表现出了优异的性能
,这改变了很多下游任务的学习范式,研究者们纷纷尝试如何将VLMs集成到现有的框架中来提高下游性能。
虽然CLIP在ImageNet等代表性数据集达到了较高的准确率,但是其不可避免的出现了长尾数据识别较差的现象
。例如对于“night snake”等十多个长尾类别,模型的识别准确率下降到10%以下。
本文介绍一篇发表在计算机视觉顶级会议CVPR 2024上的论文,
本文系统的对VLMs中的长尾概念分布问题进行了分析,并通过使用大型语言模型(LLMs)来对VLMs预训练数据集中的概念频率进行测量
。作者通过实验发现,
目前流行的VLM数据集(例如LAION)存在严重的长尾分布情况
,这导致VLM的下游应用,例如视觉聊天机器人(例如 GPT-4V)和文本到图像生成模型(例如stable diffusion)均存在无法识别稀有概念的情况。为了解决这一问题,
本文作者提出了一种简单有效的检索增强框架(REtrieval-Augmented Learning,REAL)
,REAL通过使用预训练文本中最常见的同义词来进行提示,可以显著提升模型的zero-shot性能,同时大幅减少存储占用和训练时间。
论文题目:The Neglected Tails of Vision-Language Models
论文链接:
https://arxiv.org/abs/2401.12425
项目主页:
https://shubhamprshr27.github.io/neglected-tails-of-vlms/
代码仓库:
https://github.com/shubhamprshr27/NeglectedTailsVLM
一、引言
本文作者认为,虽然VLM具有很强的视觉理解能力,但也存在非常严重的长尾偏差问题。
为了对VLM的不平衡程度进行测量,作者设计了一种LLM驱动的概念频率估计方法(concept frequency estimation)
。模型的不平衡现象通常会被归结到预训练数据集中的概念分布上,对于普通的分类数据集,简单的统计相同类别的样本数量就可以完成任务。
但是对于LAION这类大型多模态数据集(其标签包含了大量的自由格式文本,文本中的单词可能与当前样本无关
,例如运动鞋也可以称为跑鞋或训练鞋),目前缺乏可以测量这类数据集分布的工具。
为了解决这个问题,
作者引入ChatGPT3.5对给定概念的所有同义词进行枚举,随后再通过字符串匹配对该概念的所有预训练文本进行搜索和统计
。通过这种概念频率估计方法,作者向我们展示了三个关键insights:
(1)
证实了现有VLMs所使用的预训练数据集确实存在长尾分布情况
,如上图(a)所示。
(2)展示了VLMs在常见的代表性概念上表现很好,而在尾部概念上的表现较差,如上图(b)所示。
(3)概念频率估计的结果可以向我们
解释为什么VLMs系统(例如GPT-4V和DALL-E3)难以处理罕见的尾部概念
。
作者以上图中的“night snake”概念为例,
无论是图像到文本模型(GPT4-V、LLaVA1.5)还是文本到图像模型(DALL-E 3、SD-XL),现有的技术都无法很好的理解这一概念
。受频率估计的启发,作者在本文中引入一种全新的检索增强方法REAL,来缓解VLMs在zero-shot情况下的性能偏差。
二、长尾概念频率估计
众所周知,VLM的预训练数据集规模非常庞大,较为流行的LAION-400M[1]需要占用约10TB的硬盘存储空间。
因此作者选择仅从文本数据入手进行统计,这样LAION-400M仅需要60GB左右的空间
,随后的概念估计过程可以分为以下两个步骤:
2.1 推导目标概念的同义词
文本数据中存在大量的词汇差异,同一个概念可以使用多种方式进行表达。
为此需要先给出当前概念的同义词列表,作者使用ChatGPT来完成这一任务
,只需要设置一个简单的提示 "What are some common ways of referring to {concept}?",在得到同义词列表后,作者使用字符串匹配算法来检索包含这些同义词的所有预训练文本。
2.2 过滤掉不相关的预训练文本
简单的字符串匹配算法可能会因为语言歧义而检索到语义不相关的文本
。例如对于“老虎(tiger)”这一概念,检索到的文本中可能会出现“虎鲨在水中游泳(tiger shark swimming in water)”,虽然虎鲨中也出现了单词“tiger”,但是老虎和虎鲨是完全不同的两个概念。
为了对这些混淆文本进行过滤,作者使用Llama-2模型进行操作
,对每个检索到的文本,作者通过提示模型 “Does {concept} in the {caption} refer to {definition}?” 来确定当前文本是否满足当前概念的语义上下文。
三、本文方法
本文提出的REAL通过检索与目标概念相关的预训练数据来提高性能,而无需使用下游任务的任何数据。
REAL有两种形式:REAL-Prompt 和 REAL-Linear
。前者是一种全新的提示策略,可以将原始概念名称替换为预训练文本中最常见的同义词。
而后者 REAL-Linear 可以从预训练数据中检索与概念相关的图像,以形成更平衡的子集
,用于训练鲁棒的线性分类器。
3.1 REAL-Prompt
通过对LAION-400M等数据集进行长尾频率估计后,
作者发现有些概念的同义词可能比该概念本身更加频繁的出现在预训练语料中
。因此作者提出使用最常见的同义词来构建提示,如下图所示。
例如
对于“cash machine(提款机)”概念,其同义词“ATM”在预训练文本中的出现频率达到了76%,远远高于概念本身
,REAL-Prompt可以直接将其转换为“ATM”来构建提示,转换后的提示在下游zero-shot任务中展现出了更好的性能。
3.2 REAL-Linear
为了进一步提升性能,作者还设计了一种检索后微调的方法REAL-Linear。REAL-Linear可以快速收集与目标概念相关的图像文本对,如下图所示。
对于每个概念,
作者根据检索到的文本与该概念特征(使用OpenCLIP的文本编码器进行计算)之间的余弦相似度对检索到的数据进行排序
。随后对为每个概念选取相同数量的图像,来保证收集到的新子集类别分布是平衡的。
随后使用新收集的子集训练一个鲁棒的线性分类器,该分类器采用跨模态适应方式[2],具体来说,作者对检索到的图像和文本对设置了一个线性分类器
,然后将其与零样本分类器
(即 REAL-Prompt) 进行集成得到:
。
REAL-Linear的关键思想是从预训练数据中检索一小部分平衡的图像来对模型进行调整,无需使用来自下游任务中的新数据,相比其他检索增强手段,更加经济高效
。
四、实验效果
本文的
实验在包含ImageNet、Flowers、Cars、Aircraft、Pets、Food、DTD、EuroSAT 和 CUB等具有明确概念语义的数据集上进行
。对比baseline方法选择了目前最先进的zero-shot识别方法,例如DCLIP、CuPL和REACT等,
其中DCLIP和CuPL是基于LLM的提示方法,REACT是基于检索增强的微调方法
,与本文的REAL较为相似。
下表展示了本文方法的zero-shot性能,表中上半部分展示了REAL-Prompt与其他基于提示方法的性能对比。
由于REAL-Prompt仅需使用同义词对原始概念名称进行替换,因而相比其他方法更加经济
。
表中的下半部分展示了REAL-Linear与目前基于检索增强的SOTA方法REACT的性能对比结果,
可以看出,REAL Linear 在八个基准测试中的平均准确度比 REACT 高 3%,更重要的是,REAL-Linear 的计算效率明显更高,仅需要相当于 REACT 约 1% 的计算量
。
除了常规的zero-shot识别任务,作者评估了REAL对不平衡分布学习的适应能力
,结果如上表所示,REAL提高了模型在 ImageNet 和所有九个数据集上尾部(最不常见的 20%)和头部(其余 80%)类的性能。
此外,
作者还表明本文提出的REAL-Prompt可以对现有的文本到图像生成模型进行增强
。上图以两个罕见概念:“bank swallow”和“thorn apple”为例,DALL-E 3无法对这些概念生成正确的图像,
经过检索增强后的REAL-Prompt可以将这些概念分别替换为:“sand martin”和“datura”,从而保证生成模型可以正确理解来生成语义一致性的图像
。
五、总结
本文对视觉语言模型(VLM)领域中一直被忽视的长尾问题进行了深入的研究
,作者首先使用大型语言模型(LLM)来对VLM多模态预训练数据集中的概念频率进行了统计,
非常重要的是,本文证明了长尾概念分布与 VLM 的zero-shot性能之间存在很强的相关性
。为了解决这种不平衡问题,我们提出了检索增强学习REAL方法(REAL-Prompt 和 REAL-Linear)。其中REAL-Prompt可以将下游任务中的原始类名替换为预训练文本中最常见的同义词来提高性能。
另一方面,REAL-Linear 利用概念同义词来构建预训练数据的平衡子集,用来训练更加鲁棒的线性分类器
。综合来看,REAL的性能更加高效,还可以对现有的图像文本模型进行增强。
参考资料