【论文阅读】learning with noisy correspondence for cross-modal matching ------ 跨模态匹配,噪声对应

注意,本博客非逐字逐句翻译论文,是作者阅读论文后根据自己的理解所写,预知论文详情,请参阅论文原文。

论文标题:Learning with Noisy Correspondence for Cross-modal Matching;

作者:Zhenyu Huang,Guocheng Niu,Xiao Liu,Wenbiao Ding,Xinyan Xiao,Hua Wu,Xi Peng;

College of Computer Science,Sichuan University, China
Baidu Inc., China
TAL Education Group

发表期刊:NIPS 2021;

论文下载地址Learning with Noisy Correspondence for Cross-modal Matching

摘要:

跨模态匹配(cross-modal matching)是许多任务的基础,比如跨模态检索和视觉语言理解(vision-and-language understanding),它致力于在两个不同模态之间建立对应关系(correspondence)。

虽然目前已经有了很多跨模态匹配的方法并且取得了不错的进步,但是几乎所有的这些方法都假设多模态的训练数据是正确地对齐了的(correctly aligned)。然而实际上这样的假设太强了甚至是不可能满足的。基于这个观点,本文揭示并研究了跨模态匹配中一个潜在且具有挑战性的问题:噪声对应(noisy correspondence),它可以看做是噪声标签(noisy labels)的新范式。

传统的噪声标签指的是分类标签中的错误,而本文提出的噪声对应与它不同,指的是不匹配的配对样本(mismatch paired samples)。

为了解决本文揭露的这个噪声对应问题,作者提出了一个新的学习方法,叫噪声对应纠正器(Noisy Correspondence Rectifier, NCR)。简而言之,NCR基于神经网络的记忆效应将数据分成干净部分(clean)和噪声部分(noisy),然后以一种共同学习的方式(co-teaching manner)借助一个自适应的预测模型来纠正对应关系。

扫描二维码关注公众号,回复: 14615503 查看本文章

为了验证本文方法的有效性,作者使用图像文本匹配作为展示进行实验。在Flickr30K,MS-COCO,Conceptual Captions这三个数据集上的实验证实了本文方法的有效性。本文代码在Greetings! I'm Xi Peng

本文动机及现存方法的不足:

  • 现有跨模态匹配方法大都基于一个假设:训练集中的数据是正确配对的(correctly paired)。然而实际上,数据集并不能保证它的配对都是正确的,尤其是从网络上直接爬取的数据很大可能是不配对的。另外,准确配对不同模态的数据是费时费力的,这样的绝对正确配对数据很难获取。
  • 现存方法几乎没有针对该问题的。由此,本文揭露出该问题,并将之命名为噪声对应(noisy correspondence),然后提出了一种解决方法。如图1所示,中间部分的右图展示了一个噪声对应的图像-文本配对样例。

本文主要贡献:

  • 揭露了跨模态匹配中的一个新问题:噪声对应;
  • 为噪声对应问题提出了一个解决方法。

本文方法及模型:

模型总体结构见下图2.

形式化:本文以图像-文本匹配(image-text match)作为一种跨模态匹配的具体实例进行方法的介绍。给定训练数据集,其中 N 是数据集大小,(I_i, T_i)是一个图像-文本配对(image-text pair),表示该配对是否属于同一实例(the same instance),属于称为positive(y=1),不属于称为negative(y=0)。

 本文的噪声对应(noisy correspondence)问题是指在数据集D中有一部分数据是不匹配的(mismatched),也就是(I_i,T_i)是负配对(negative pair)但是它的标签被错误标记为 y_i = 1 . 为了解决这个问题,本文提出了NCR。

 

具体步骤:

1. 协同划分模块(co-divide module)

首先使用两个模态相关的网络(modal-specific networks)f 和 g 分别将视觉和文本模态的数据映射到同一个特征空间中。然后计算一个图像-文本配对的相似度,为了简单起见,本文统一将该式记为

之前的研究发现DNN网络在学习过程中倾向于先学习简单的模式然后逐渐拟合噪声模式,这被称为DNN网络的记忆效应(memorization effect),该效应会导致数据中的干净样本(clean samples)与噪声样本noisy samples相比拥有较低的loss值。

借助于这种记忆效应,本文通过干净样本和噪声样本的loss分布的差异来划分训练数据。给定一个本文的模型包含(f, g, S),通过下面的公式计算每一个数据样本的loss值:

其中Lw定义为:

 

公式(2)中(I,T)代表一个positive配对, alpha>0是一个margin值。[x]_+表示max(x,0)。公式第一项相当于以图像 I 为查询项,计算其所有negative配对的文本T^的值,第二项是以T为查询项。

然后使用2分的高斯混合模型(Gaussian Mixture Model)来拟合上述loss,将原始数据集划分为clean和noisy两部分数据。(简单理解,高斯混合模型可以看做一种聚类算法,想知道详细的聚类过程和公式可以自行百度,这里不再赘述

由于神经网络在self-divide情况下会出现错误累积的问题[1],本文采取了co-teaching paradigm来应对这个问题。具体而言,本文独立地训练两个网络

,他们的初始化不同,batch也不同。在每一个epoch里, A和B网络会构建他们自己的样本loss分布,划分他们自己的clean和noisy数据。然后各自划分的clean和noisy数据被用来训练另一个网络,本文称为协同划分(co-divide)。如图2中(a)部分。

需要注意的是,本文在协同划分之前,在所有训练数据上使用了一个warmup过程,为了达到公式(2)的一个初始收敛结果。从后面的消融实验可以看出,如果不使用这个warmup过程,模型的训练很难收敛。

2. 协同纠正模块(co-rectify module)

该部分的作用是对划分之后的数据进行标签的纠正。就是说划分后的noisy数据里面也许还有true positive数据,要找到它们并加入clean划分中;同时划分后的clean数据里面也许还有false positive数据,要降低它们的负面影响。具体的纠正过程如下,纠正之后得到新的划分情况:  

公式(4)中 P(I,T)代表本文的模型对配对的预测标签。公式(4)可以这样理解:对clean子集里的数据,它的新标签由旧标签和模型预测标签加权求和得到;对noisy子集里的数据标签则完全来自模型预测标签,不使用原来的标签了。

公式(4)的另一个贡献是设计了预测函数P。对于通常的noisy label问题而言,如果要重新给这种数据打标签,只需要预测一个label值就可以(比如0,1等)。但是对于图像-文本匹配问题而言,不存在一个具体的标签,通常计算的是图像和文本间的相似度。那么直观上看,设置一个相似度阈值,就能将数据区分开,但是该阈值需要设置为多少、不同数据集下该阈值是否不同?这又引入新的难题。

所以本文设计了一种数据驱动的自适应预测函数P(I,T)来预测给定图像-文本配对的标签:

上式中b是batch size,s是相似度margin,它是在一个mini-batch中,给定的图像-文本配对(I,T)的相似度与其他所有negative配对的相似度的差值。tao是基于s的最大10%相似度配对的相似度margin的平均值。最后,相似度margin大于tao的配对被预测为1,其他配对的标签为[0,1)。 

3. 鲁棒的跨模态匹配

本文提出了一个novel的三元组学习方法来解决噪声对应问题,将纠正的标签作为三元组loss中soft margin,具体公式如下:

公式(6)中 T^ 和 I^ 是hardest negative样本(意思是负样本中最难以区分的样本,具体解释说明见[2],使用该负样本的含义是:如果模型能够区分负样本中最难以区分的样本,那么其他所有的负样本模型都可以轻易区分了)。

soft margin alpha^的计算方式如下:

 其中m是curve参数,y^是纠正后的标签。公式(7)实际意义是:当y^接近0时,也就是样本不太匹配时,alpha^是一个较小的值;反之当y^接近1,也就是样本配对很positive时,alpha^是个较大的值,也就是说模型能以较大的margin区分positive的配对和它对应的negative配对。

伪代码:

 模型在两个地方用到了triplet loss,分别是:计算每个样本的loss用于划分clean和noisy数据的 L_w 和 控制pos和neg样本间的距离的模型总loss L_soft 。主要区别在于前者是fix margin而后者是soft margin,前者使用了所有负样本的平均值,而后者使用了hardest negative样本。

如果L_w使用hardest negative样本,会带来划分数据的不稳定性,不好。

实验:

数据集:

  • Flickr30k,包含31000张图像,每张图像对应5个标题(captions);
  • MS-COCO,包含123287张图像,每张图像对应5个标题;
  • Conceptual Captions;包含3.3 million张图像,每张图像对应1个标题。本文使用其一个子集CC152K进行实验;
  • 由于前两个数据集标注地很好,因此本文在实验中,随机打乱它们训练集中部分图像-文本对来模拟噪声对应情况。而第三个数据集是直接从网上爬取的,所以本身就有3%-20%的数据是没有正确对应的。

任务:跨模态检索(用文本检索图像,用图像检索文本);

对比方法:SCAN,VSRN,IMRAM,SGRAF,SGR,SAF;

指标:K个结果中的召回率(recall at K, R@K,即在检索结果的前K个数据中出现正确结果的比例)。本文实验中测试了R@1,R@5,R@10指标;

实验设置:

  • 图像先经过Faster-RCNN得到36个region proposals,每个RP被编码为2048维度的向量,然后通过一个全连接层将图像特征映射到一个共享空间中。
  • 文本使用Bi-GRU编码并映射到共享空间中。
  • 在计算图像-文本相似度时,使用图推理技术(graph reasoning technique)。
  • 使用Adam optimizer,batch size为128,word embedding 维度是300,共享空间里特征维度是2048,margin alpha=0.2,m=10。
  • 在推理阶段,使用A和B两个网络的相似度预测结果的平均值作为最终检索结果。
  • 为了避免过拟合,使用验证集上所有recall值的和作为模型的挑选指标。
  • 其他实验设置详见附录。

结果分析:

如上表1,在Flickr30K和MS-COCO 1K数据集上(完整MS-COCO结果见附录),作者分别使用了0%,20%,50%的noisy比例来模拟noisy correspondence情况。作者还使用SGR方法在claen Flickr30K和MS-COCO 1K上进行了实验,如表中SGR-C所示。SGR×(星号)代表使用一个triplet loss预训练的方式在SGR上(使之能够处理noisy的数据)的结果。

从表1可以看出在没有noisy correspondence的情况下,NCR性能和SGRAF不相上下。而当数据中存在噪声对应时,NCR比其他方法性能高很多,甚至比在clean数据集上训练的SGR-C结果还好。

如上表2,CC152K数据集本身就包含noisy correspondence数据,因此NCR方法比其他所有对比方法效果都好很多。SGR和SGR×结果对比表明SGR方法对noisy数据非常敏感,鲁棒性不强。

与预训练模型对比:

本节与预训练模型CLIP对比,CLIP体现的是利用超大量的数据来弥补可能存在的noisy数据的影响,而NCR体现的是合理设计的算法就足够用来解决noisy数据问题了。

从上表3可以看出,即使CLIP在4亿文本配对上进行预训练了,但是随着在有噪声的数据集上的fine-tune,performance逐渐降低。而针对noisy数据进行了算法设计的NCR,性能与CLIP差不多,在noisy数据增多的情况下,性能甚至超过CLIP。 

鲁棒性和泛化性分析:

如上图3(a),作者将Flickr30K中noise ratio从0%逐渐增加到60%,以测试不同NCR方法的鲁棒性。进一步,为了验证NCR中想法的泛化性,作者使用NCR扩展SCAN方法,记为NCR-SCAN。从图中可以看到,NCR和NCR-SCAN随着noise ratio的增加,性能更强,表现更加平稳。 

协同划分和协同纠正的可视化:

作者对Flickr30K中20%的数据进行了noisy处理。使用NCR-SCAN模型处理数据(使用NCR的结果见附录)。如上图3(b)所示,数据集中每一个样本的loss值绘制为分布图。图中绿色部分是clean样本的loss分布,红色部分是noisy样本的分布,明显可见clean样本的loss低于noisy样本的loss,证实了DNN网络的记忆效应。也说明借助loss值区分clean和noisy样本是可行的。

如上图3(c)绘制的是纠正后的样本的软标签值,可以看出clean样本和noisy样本的差距,说明在三元组学习中可以有效区分noisy样本,降低负样本对模型的影响。

消融实验:

如上表4是本文的消融实验,可以看出NCR的各部分都是有效的。

噪声实例:

如上图4列举了一些由NCR识别出的noisy样本。前4个样本图像和文本是完全无关的 ,最后一个样本虽然图像和文本中都有“beach”元素,但是文本表达的含义与图像不符,NCR仍然视其为noisy样本。

总结:

本文是对跨模态匹配任务中噪声对应问题的第一个尝试工作。并提出了一个自适应的预测方法和一个soft margin的三元组loss学习方式来实现对噪声数据的处理,实验表明本文模型具有较强的鲁棒性。

深远影响:

本文,提出并解决了噪声对应问题,会有以下几点贡献:

  • 降低了人工标注和对齐多模态数据的工作;
  • 没有标注过、对齐过的图像和文本等多模态数据也可以被模型所用,那么多模态领域就会有更多更多的可用数据了(现有多模态工作大多使用对齐好的数据,比如CLIP)。

同时,本文也许会带来一些负面的影响,包括但不仅限于:

  • 根据数据的特征进行自动化判决会带来的偏差的风险,特别是在航空、医疗保健和自动驾驶骑车等领域(本文划分数据集是基于样本自身的loss,这会受到数据bias的影响);
  • 由于NCR能自动纠正噪声对应,降低了对标注数据的人工需求,可能会带来失业率提升(这也太凡尔赛了吧)。

参考文献:

[1] Bo Han, Quanming Yao, Xingrui Yu, Gang Niu, Miao Xu, Weihua Hu, Ivor Tsang, and Masashi Sugiyama. Co-teaching: Robust training of deep neural networks with extremely noisy labels. arXiv preprint arXiv:1804.06872, 2018.

[2]  Fartash Faghri, David J Fleet, Jamie Ryan Kiros, and Sanja Fidler. Vse++: Improving visualsemantic embeddings with hard negatives. arXiv preprint arXiv:1707.05612, 2017.

个人理解和问题:

1.在消融实验中,没有co-divide部分,只做co-rectify和warmup的模型是如何实现的?不划分数据集的话如何去纠正呢?

2.还是消融实验中,去掉了warmup的模型为什么性能会那么那么差?关键点在哪里?代码中实际是如何做warmup的?

猜你喜欢

转载自blog.csdn.net/me_yundou/article/details/123264186