北航团队提出SPN4CIR:基于大模型的正负例扩充技术提升组合图像检索性能
北航团队提出SPN4CIR:基于大模型的正负例扩充技术提升组合图像检索性能
本文介绍了一篇关于组合图像检索(CIR)的研究论文,该论文已被ACMMM2024接收。研究团队来自北京航空航天大学,他们提出了一种基于大模型的正负例扩充技术(SPN4CIR),有效提升了对比学习性能。
任务介绍
组合图像检索(Composed Image Retrieval, CIR)任务与传统的图像检索和图文检索不同,它需要利用参考图像和修改文本作为组合输入对,来搜索目标图像。标注好的(参考图像,修改文本,目标图像)组成了CIR任务的正例三元组。
动机
CIR任务的模型一般使用Dual Encoder的架构,通过对比学习进行训练。然而,传统方法存在以下两个问题:
- 缺乏正例:以往的方法使用人工标注的数量有限的三元组中的查询对-目标图像作为正例。
- 缺乏负例:使用批内(in-batch)负采样策略,将一个batch内其他的目标图像与当前的查询对作为负例。
主要贡献
研究团队提出了两种创新方法来解决上述问题:
- 基于多模态大语言模型的CIR三元组生成方法:将CIR中的正例数量从人工标注的20k提升到了100k。
- 两阶段微调策略:第一阶段同时微调query编码器和target编码器,第二阶段冻住target编码器,将整个候选图像集的表征预先计算并存储下来,只微调query编码器,将candidate set中其他的所有图像作为负例。
实验结果表明,这两种方法可以即插即用到现有的dual encoder架构有监督CIR模型中,且两个方法可以叠加从而带来更大的效果提升。在四个先进模型(CLIP4CIR,TGCIR,BLIP4CIR,SPRC)上都取得了1%-6%的提升,达到了新的SOTA。
方法
技术1:正例扩充
正例扩充方法包含4个步骤:
- 标题生成:使用llava-v1对训练集中的每张图像生成标题。
- 图像对匹配:使用unicom作为图像编码器,计算图像之间的搜索排序,选择排序不高也不低的图像对作为参考图像和目标图像。
- 修改文本生成:使用提示模板对参考图像和目标图像对应的标题进行拼接。
- 正例构造:将参考图像、修改文本和目标图像组合成新的三元组。
技术2:负例扩充
负例扩充方法包含3个步骤:
- 负例构造:通过实证研究发现,替换目标图像得到的负例效果最好。
- 两阶段微调-阶段1-批内负采样:保持一般CIR方法使用的批内对比学习。
- 两阶段微调-阶段2-候选图像集负采样:冻住目标图像编码器,只微调查询编码器,利用整个候选图像集中的其他图像作为负例。
实验
所有实验都在一张V100上进行,对基于视觉语言训练模型的四个先进模型进行了实验。第二阶段的训练时间只有第一阶段的1/20左右,因此提出的两阶段微调策略的额外开销较小。
有监督实验
在FashionIQ和CIRR的有监督实验中,SPN在两个数据集的四种方法上都提升了1%-6%。
消融实验
在CLIP4CIR模型上进行了消融实验,发现正例扩充和负例扩充方法都能够稳定地提升模型效果。
零样本实验
在零样本实验中,使用正例扩充方法,随机选取了CC3M中的50k张图像,尽管使用了最少的图像,仍然取得了明显更好的效果。在域内设置下,使用FashionIQ和CIRR中的图像来构建训练三元组进行训练,发现可以超过域外设置,这证明了方法在低资源无监督场景下的有效性。
开源地址
论文代码已开源,欢迎访问:https://github.com/BUAADreamer/SPN4CIR