FightingCV

V1

2022/10/23阅读:26主题:默认主题

ICLR22 Workshop | 用两个模型解决一个任务,意大利学者提出维基百科上的高效检索模型

ICLR22 Workshop | 用两个模型解决一个任务,意大利学者提出维基百科上的高效检索模型

【写在前面】

随着网络和在线百科全书可访问性的提高,需要管理的数据量不断增加。例如,在维基百科中,有数百万页是用多种语言写成的。这些页面包含的图像通常缺乏文本上下文,在概念上是浮动的,因此很难找到和管理。在这项工作中,作者介绍了参加Kaggle上的维基百科图像标题匹配挑战而设计的系统,其目标是使用与图像相关的数据(url和可视化数据)在大量可用的图像池中找到正确的标题。能够完成这项任务的系统将提高大型在线百科全书多媒体内容的可访问性和完整性。具体来说,作者提出了两个模型的级联,这两个模型都由最近的Transformer模型提供支持,能够高效而有效地推断查询图像数据和标题之间的相关性得分。作者通过大量实验验证了所提出的双模型方法是一种有效的方法来处理大量图像和字幕池,同时在推断时保持有限的整体计算复杂度。本文的方法取得了显著的效果,在Kaggle挑战的私人排行榜上获得了0.53的归一化折现累积增益(nDCG)值。

1. 论文和代码地址

Transformer-Based Multi-modal Proposal and Re-Rank for Wikipedia Image-Caption Matching

论文地址:https://arxiv.org/abs/2206.10436[1]

代码地址:https://github.com/mesnico/wiki-image-caption-matching[2]

2. 动机

近年来,深度学习技术在许多计算机视觉和语言任务中取得了突出的成果,人们进行了许多尝试来融合这两个领域。Transformer的引入实现了一大步,它被证明在自然语言处理领域极其强大,包括BERT 、ELMo、GPT-3、RoBERTa和ALBERT,以及在计算机视觉领域,视觉Transformer的引入及其变体,如Swin Transformer、CrossViT和Twins-SVT。考虑到transformer在这两个领域都非常有效,它们被用来提取多模态数据之间的共同表示,以便稍后对它们进行比较或一起处理。

在新兴的多模态任务中,图像标题匹配变得越来越重要,特别是对于可扩展和高效的跨模态检索。图像标题匹配涉及将图像与最能描述它的文本关联起来。它可以用来寻找与给定查询文本最相关的图像(文本到图像检索)或相反(图像到文本检索)。

本文主要研究图像到文本的检索。具体来说,作者参加了维基媒体基金会最近组织的Kaggle竞赛,该竞赛涉及从维基百科页面检索与特定图像相关的标题。文本信息和视觉信息(图像URL和图像本身)都可以用来查找标题。这一挑战的动机在于,维基百科文章中的大多数图片都没有任何与图片相关的文字背景。目前的解决方案依赖于基于翻译或页面链接的简单方法,其覆盖范围有限。到目前为止,即使是最先进的计算机视觉图像字幕也无法处理复杂的语义。

基于这些原因,作者提出了一种基于大型预训练Transformer模型的两种图像-文本匹配模型级联。第一个模型基于公共空间匹配方法,分别使用XLM-RoBERTa和CLIP作为文本和图像特征提取器。由于在推断时非常高效,该模型用于为第二个模型(一个经过微调的XLM-RoBERTa两两分类器)提出候选,效率较低,但更准确,它输出测试集中每个图像的最终标题候选。本文的方法以0.53的nDCG在最后的私人排行榜上排名第五。

3. 方法

Wikipedia图像标题匹配挑战中提供的数据包含三个主要字段:图像url、图像和标题。这个挑战包括在给定图像url、图像或两者都作为查询的情况下找到最相关的标题。假设测试集大约由 元素组成,使用一个大型Transformer来计算每个(查询、目标)对的相关性得分是不可行的,因为需要计算 相关性得分来获得整个测试集的排名。出于这种考虑,作者决定采用两种不同模型的级联来产生最终的排名。第一个模型,称之为多模态标题提议(Multi-modal Caption Proposal, MCProp)模型,它使用图像url中的文本信息和图像中的视觉信息作为复合查询来推断标题。该模型将查询和标题投射到同一个公共空间中,其中余弦相似度用于度量查询和标题之间的相似度。利用该模型,可以执行高效的k近邻搜索,为所有 个标题的每个查询创建一个排序。然后,排名靠前的元素被第二个模型用作候选元素,称为Caption Re-Rank (CRank)模型。这是一个针对成对分类进行微调的大型Transformer,即一个将(查询、标题)对分类为匹配或不匹配的二进制分类器。第二个模型只使用图像URL中的文本信息来推断标题,而不再依赖视觉信息。MCProp返回的最高匹配概率决定了每个图像的前5个标题,这是挑战所要求的。

文本处理的主干是两个模型共同的。具体来说,使用了XLM-RoBERTaBase模型,该模型采用字节级二进制对编码,词汇量为50k个token,12个编码器层,隐藏状态大小为768,带有8个注意头,共125M参数。预训练的XLM-RoBERTaBase模型是对来自CommonCrawl数据集的100种语言的文档进行训练的结果。

3.1多模态标题建议模型

多模态标题提议方法的核心思想是在一个共同的特征空间中表示查询和目标数据。在这个空间中,可以利用余弦相似度以一种高效且可扩展的方式计算相似度。该模型包括两个管道,查询管道标题管道。反过来,查询由图像URL和图像组成。因此,总共需要处理两个文本域和一个视觉域。

视觉特征通过CLIP网络的图像编码器部分从图像中提取。CLIP是一个功能强大的多模态模型,由一个图像编码器和一个文本编码器组成,经过训练可以预测正确的视觉-文本配对。经过多模态任务的预训练,图像编码器模块非常适合本文的任务。

作者不使用CLIP的文本管道作为文本主干。主要原因是这个挑战本身是多语言的,而CLIP没有经过多语言训练。因此,作者使用预训练的大型语言Transformer模型XLM-RoBERTa 作为文本管道。

总体架构如上图所示。具体地说,CLIP的图像编码器输出聚合的视觉特征 ;不同的是,XLM-RoBERTa输出一个集合 的文本特征,原始模型的负责人使用这些特征来解决许多下游任务。相反,作者采用类似TERN和TERAN的方式,通过其他Transformer Encoder层对这些特征进行后处理,得到 。作者使用来自输出序列第一个元素的标记嵌入,CLS token,作为输入文本的最终表示: 。注意,XLM-RoBERTa backbone在图像URL和标题管道之间共享。为了专门化下游任务的表示,来自两个管道的两个下游Transformer Encoder模块不共享权重。对于输入预处理,通过删除扩展名和实际文件名之前的部分来清理图像URL。所有下划线也被一个空格取代。

图像URL和图像使用下一段所述的注意融合模块进行融合。

3.1.1注意力特征融合

由于使用了两种不同的模态(图像URL和图像)作为复合查询来推断图像标题,因此自动推断查询两个组件的相对重要性来解决匹配任务将是有用的。注意力特征融合模块,正是为这个目的服务的。该模块由一个计算两个注意值的子网组成,每个查询组件对应一个注意值。具体来说,该网络是一个简单的MLP,其最终的sigmoid层以两个输入向量u(图像URL)和v(图像)的拼接为输入,输出两个标量 :

其中[·,·]为concat。由于最后的sigmoid层,这些值位于[0,1]的范围内。然后,这些值用于计算最终查询表示q,作为归一化输入向量之间的加权平均值:

这些向量是标准化的,所以它们的内模是1。这样一来, 的值就可以直接进行比较,也更容易解释。

3.1.2 训练

为了在相同的公共空间匹配图像和说明文字,作者使用基于铰链的triplet排名损失,将注意力集中在难负例样本上。具体来说,给定最终查询表示q和目标标题特征c,我们使用以下损失函数:

式中 为查询向量与目标标题特征之间的相似函数。作者使用标准余弦相似度为 。由于性能原因,难负例样本从mini-batch处理中采样,而且不是全局采样。

3.2标题重排序模型

标题重排序(CRank)模型是基于XLM-RoBERTa模型的二值分类器。更具体地说,该网络由XLM-RoBERTa模型组成,即Transformer模型的编码器部分,将CLS token的池化输出连接到输出大小等于标签数量的线性层。整个体系结构如下图所示。

分类任务的目的是确定图像URL和标题是否匹配。使用经过处理的图像URL版本来表示图像。在这个阶段,不使用来自图像的视觉信息。对于Multi-modal Caption Proposal模型,URL是通过删除实际文件名和任何文件类型扩展名之前的路径组件的任何URL来处理的。其余字符串中的任何下划线字符将被替换为一个空格。匹配过程的输入是处理后的URL和标题文本的连接,用SEP标记将它们分开。

3.2.1训练

为了对分类任务的预训练模型进行微调,作者使用训练数据集中所有可用的(图像URL、标题)对来训练CRank。数据集只显式地定义匹配示例。为了获得非匹配对的示例,使用了一个简单的负采样策略,将数据集中的图像url和标题随机配对。生成了几个与匹配的相等的非匹配对,获得了一个大约7400万个样本的训练集。训练过程使用的batch大小为64,每个batch包含等量的匹配和非匹配对。作者使用带有权重衰减的Adam算法训练了它两个epoch,在单个NVidia RTX2080 GPU上每个epoch需要65小时。

3.2.2筛选候选者进行分类

作者所面临的图像标题匹配任务所需的分类数量随测试集大小的平方而增长。每种分类都需要通过XLMRoBERTa模型传递表示(图像URL、标题)对的字符串,这将花费不可忽略的时间。这在结构上不同于MCProp模型,在MCProp模型中,图像和标题分别投影在公共空间中,因此与测试集大小相关的成本是线性的。对于MCProp模型,二次代价仅限于计算结果向量之间的余弦相似度,这是一种更快的操作,也可以很容易地并行计算。

CRank的总成本可以迅速超过可用的计算和时间资源的限制。使用单个NVidia RTX2080 GPU,计算测试集中所有(图像URL,标题)对的分类分数所需的时间超过3个月。为了进行比较,计算相同测试集长度为768的嵌入向量的所有两两相似性需要在桌面CPU上花费8分钟。多个gpu可以将成本降低到更易于管理的时间,但该过程的二次元性质仍然使其无法扩展到更大的数据集。因此,作者采用了这种两步法,其中一个更快的方法,如MCProp,选择一个较小的候选集合将被CRank处理。拥有固定数量的候选图像标题使得成本与数据集大小成线性关系。使用MCProp或其他方法确定的每个图像1000个候选标题,将CRank应用到测试集中的92K图像url需要27个小时。

4.实验

验证集上多模态标题提议模型的标题检索结果。

随着训练的进行,模型对图像URL和图像(αu和αv)在整个10K验证集上的权重估计。

在小验证集(1000个元素)上,Caption Re-Rank模型、候选选择器方法及其组合的标题检索结果。

在私人排行榜上的最终结果。

5. 总结

在本文中,作者提出了一个能够匹配图像与相应的多语言字幕的系统。这是一个管理大型百科网站的重要工具,如维基百科,其中大多数文章图像没有任何文字上下文连接到图像。在最近基于transformer的模型的驱动下,作者使用两个模型的级联来解决匹配任务。第一个模型,称之为多模态标题建议模型,使用CLIP图像嵌入和XLM-RoBERTa词嵌入将图像信息和标题投射到相同的公共空间,在那里可以执行快速的最近邻搜索。该模型同时使用图像URL和视觉信息作为查询,并使用注意的特征融合技术合并这些数据。然后,使用第二个模型(称为Caption Re-Rank模型)对排名靠前的候选者进行重新排名,该模型依赖于在Wikipedia训练语料库上微调的大型预训练XLM-RoBERTa Transformer模型。级联管道是必要的,因为对曲柄模型的推断时间与测试集中元素的数量成二次比例,而硬件的限制迫使作者寻找一个强大的上游候选建议方法。验证集上的结果表明,多模态标题建议模型是一种有效的候选标题建议模型,标题重排序能够使正确的结果(从候选标题中选择)位于排序列表的顶端。

【项目推荐】

面向小白的顶会论文核心代码库:https://github.com/xmu-xiaoma666/External-Attention-pytorch[3]

面向小白的YOLO目标检测库:https://github.com/iscyy/yoloair[4]

面向小白的顶刊顶会的论文解析:https://github.com/xmu-xiaoma666/FightingCV-Paper-Reading[5]

“点个在看,月薪十万!” “学会点赞,身价千万!”

【技术交流】

已建立深度学习公众号——FightingCV,关注于最新论文解读、基础知识巩固、学术科研交流,欢迎大家关注!!!

请关注FightingCV公众号,并后台回复ECCV2022即可获得ECCV中稿论文汇总列表。

推荐加入FightingCV交流群,每日会发送论文解析、算法和代码的干货分享,进行学术交流,加群请添加小助手wx:FightngCV666,备注:地区-学校(公司)-名称

参考资料

[1]

https://arxiv.org/abs/2206.10436: https://arxiv.org/abs/2206.10436

[2]

https://github.com/mesnico/wiki-image-caption-matching: https://github.com/mesnico/wiki-image-caption-matching

[3]

https://github.com/xmu-xiaoma666/External-Attention-pytorch: https://github.com/xmu-xiaoma666/External-Attention-pytorch

[4]

https://github.com/iscyy/yoloair: https://github.com/iscyy/yoloair

[5]

https://github.com/xmu-xiaoma666/FightingCV-Paper-Reading: https://github.com/xmu-xiaoma666/FightingCV-Paper-Reading

分类:

人工智能

标签:

人工智能

作者介绍

FightingCV
V1

公众号 FightingCV