CVPR 2021 | 从理论和实验角度深入剖析对比损失中的温度超参数

249436e0b94c3d74a6ac0c1bf2e45d48.gif

©作者 | 李想

学校 | 哈尔滨工业大学(深圳)

研究方向 | 自然语言处理

ca5a657f17f3c9945780e563d31617bf.png


Foreword

这次的论文笔记的内容是 CVPR'21 的一篇论文“Understanding the Behaviour of Contrastive Loss” [1]。与以前看的很多讲模型这类论文不同,这篇论文没有模型,没有 SOTA,而是对对比学习的损失函数中的 temperature 参数这个点进行深入剖析,更多的是偏数学理论的内容,并做实验进行验证,以此来达到题目所说的理解对比学习损失函数的目的。虽然网上已经有了这篇论文的笔记了,我还是决定自己写一遍,对论文的理解和印象可能更深刻一点。如有错误,还望指正。

f010af4eae800f4cd526690043e1aab8.png

论文标题:

Understanding the Behaviour of Contrastive Loss

论文链接:

https://arxiv.org/abs/2012.09740

a49c0bdbc93dd5ba8d6d9d07a1783e0d.png

Background

在写这篇论文笔记之前,我想先简单写一写对另一篇 ICML'20 的论文“Understanding Contrastive Representation Learning through Alignment and Uniformity on the Hypersphere” [2] 的一点背景 ,因为 CVPR 这篇论文算是一定程度上 Follow 了他们的工作。

ICML 这篇论文提出了两个对比学习的重要特性:Alignment 和 Uniformity. 定义如下:

Alignment:对于 Positive pair 中的两个样本,应该被映射到相邻近的特征中。(即 Encoder 需要将相似的样本编码为相似的特征向量)

Uniformity:所有特征向量应该在超球面空间*(hypersphere)中几乎均匀地分布,以保留数据中尽可能多的信息。(即特征分布需要最大化保留信息)

15711c0600bc37149aeea5d5bd10767f.png

其实我认为这两个特性也自然地体现了对比学习的目的 ,即 和与其相似的正样本 在 编码后的相似度 ,应该远大于 和与其不相似的负样本 编码后的相似度。而这两个特性,从对比学习的 loss 也能窥知一二。

07f5e1b37d3949a51ef61defff06a74e.png

其中 。

可以简单地将二者的公式写成如下形式 [3]:(这公式看着简单,要用 LaTex 打出来可学到好几个命令 \underset, \mathop, \limits, \rm 什么的)

d34aa8d6be3ce65a2fc7f1ab8c0ec450.png

eacf164308eee1e82566287a26eeddb6.png

其中, 为 positive pair 的分布, 为 data distribution,即样本数据分布。

作者通过实验验证了这两个特性与模型性能的关系,即通过以上公式计算出的 Alignmen 和 Uniformity 两种度量值越小,encoder 能够得到更好的表示,模型表现越好(Acc 越高)。即下图中越蓝的点,准确率越高,且集中在左下角,两个度量值都很小的地方。

bae37d808dbe8b22f7701b5dd0a1bfa3.png

▲ Alignment和Uniform度量值与模型Performance的关系

这两个 metric 代码也非常简单,作者直接贴到了论文里。

# bsz : batch size (number of positive pairs)
# d : latent dim
# x : Tensor, shape=[bsz, d]
# latents for one side of positive pairs
# y : Tensor, shape=[bsz, d]
# latents for the other side of positive pairs
def align_loss(x, y, alpha=2):
   return (x - y).norm(p=2, dim=1).pow(alpha).mean()

def uniform_loss(x, t=2):
   return torch.pdist(x, p=2).pow(2).mul(-t).exp().mean().log()

接下来我们回到最初的 CVPR 这篇论文:

Understanding the Behaviour of Contrastive Loss

3d03e2fd4ebf46c6e6a897e665af2913.png

Introduction

我认为这篇论文就是上一篇的一个递进,其一个核心思想就是引入样本之间潜在的语义结构的概念:模型得到的特征表示过于均匀(uniformity)的话,会不能很好地容忍语义相似的样本(语义相似的样本表示分离较远),从而破坏了这种样本之间潜在的语义结构,影响下游任务的表现。

① 从这一个 idea 出发,作者将这种现象定义为一种 uniformity-tolerance 的两难困境(我们既希望特征表示足够均匀地分布使其便于分割开,又希望其能容忍语义结构相似的样本);—> ② 而为什么会出现这种现象,作者用对比学习 loss 中的参数 temperature  作为切入点,探讨了其是如何影响 embedding 的分布;—> ③ 而如何影响这种分布是因为 temperature 的大小控制使得 contrastive loss 有一种 hardness-aware 的特性,即 temperature 越小,对那些更难的负样本的 Gradient 梯度更大,使得这些样本的特征表示更加分离,从而得到的整体的特征分布更加均匀。

这里的更难的负样本,是指那些与锚点 anchor   很相似/属于同一类的样本(对于 而言,其增强的样本 才是正样本,其余都叫做负样本),所以对于 encoder 来说,要区分开他们的表示会更难。

虽然我觉得好像我复述的这一段故事好像也说得通,但是这篇论文实际上的结构好像跟我的思路是相反的。作者是 ③ 先提出 contrastive loss 的 hardness-aware 特性,—> ② 再提出这种特性是 temperature 这个参数导致和控制的,—> ① 最后提出 temperature 与 uniformity 之间的关系,并以此定义 uniformity-tolerance dilemma 这个现象。

为了更好地理解作者提出的语义结构的影响,作者用下图作解释。对于 (a) (b) 两种 embedding 分布而言,我们将 与 的 embedding 交换,并不会改变其对比学习的 loss,但是,(a) 的这种分布将两个都是“狗”的样本 表示集中在一起,两个都是“车”的样本 表示集中在一起,比 (b) 这种分布在下游任务中表现更好,因为它能够体现出样本间潜在的语义结构。

我觉得这个图很有意思,当时还以为作者下面要讲怎么在 hypershere 上通过不停地交换来使得同类样本更近了(大雾)。现在回过头来看,其实这个图也一定程度上体现出 uniformity-tolerance 的关系,即这个图代表着一种理想情况:当 uniformity 保持不变时,特征表示却能够更加体现出语义结构(更能容忍语义结构相似的样本)。这也是作者后面做实验想要达到的一个效果。

700004cc796e0810daa55da9eda01c82.png

那 temperature 是不是真的会影响 embedding 的分布呢(②)作者用 T-SNE 可视化了 和 两种情况下的 embedding 分布。可以看到 时分布更加均匀(uniform),而 时分布更加局部集中-全局分离(即相似/同类的样本更集中,不相似/不同类的样本相隔更远)。也就是从这里,作者提出 uniformity-tolerance 困境的(①)。

54d1d651824c3bf0676e097706439929.png

b410be5f4986f53ef36b93bfbc25f92d.png


Hardness-aware Property ③

作者在对比学习原始 loss,即 Eq.(1) 的基础上,提出一个简单形式的 loss,也可以满足拉近 positive pair 和分隔 negative samples 的目的:

4db946307df06a8f14ba8069834e9a34.png

作者将 Eq.(1) 的原始 loss 对正例相似度 和负例相似度 求导,得到以下两个式子:

3209d19f8c17a115aae4d090aa8433cf.png

6a1881c7e1e32d714f3a411ea1a47b9b.png

其中,

574e221247d903efae709c8ebe4c9c7a.png

通过 (6) 作者发现对于不同的 negative sample ,其梯度是与 (7) 中的分子 成比例的(对于样本 的所有负样本 而言, 的分子不同,分母相同),不同的 的梯度不同( 越大,梯度越大; 越小,则越放大了这个梯度),因此体现出其 Hardness-aware 的特性。这个特性与简单化的 loss Eq.(4) 不同, 对 求导后只是固定的值 。

观察 (5) 式,其实 与 (6) 式的 是一样的( 和 都只是表示一个不同于 的负样本编号,二者可以互换),两个梯度的绝对值之比

8e7bf0abce419e57e3f22714cc9093de.png

3f5068d90a9bcc5ff6c4c84eba77be38.png

来表示对于负样本 的相对梯度,则所有负样本的相对梯度和为 1,即 满足概率分布,概率和为 1。

f726f72edde6a7aabb6b636c67e02169.png

根据 Eq.(8),作者画出了不同的 值下 关于 的分布,如下图。横坐标为 ,纵坐标为 ,不同颜色的线代表不同的 值。可以发现,当 temperature 越小(蓝色线), 相似度越大时, 陡增;而 相似度很小时,曲线趋于均匀平滑。也就是说,对于与 越相近的负样本 ,loss 对其“惩罚”就越大(梯度越大)。当 非常小时,会导致对比 loss 只集中火力在离 最近的那一两个样本上,试图将他们分隔开 ②。

ec7c8e70166788b09660d6b1f01bc529.png

ef5eed0724f32fe8dd234ccfa5e7d08f.png


Uniformity-Tolerance Dilemma ①


作者分别用两小节介绍了 Uniformity 和 Tolerance 两个属性,并绘制了在不同数据集下,不同 temperature 与两个属性值的关系。由于 Uniformity 在 Background 那节里介绍过了,这里主要介绍一下 Tolerance 的定义和计算方式。

Tolernace:指对于属于同一类的样本他们的平均相似度,表示语义相关的样本的分布集中程度。

4932167f36078c92ba613f0f19af5acd.png

其中, 表示 的类别, 是一个指示函数(indicator function),当 时,其值为 1;当 时,其值为 0。

63256cc3e21096652bf1ca5cd6226178.png

7064d1b04f62244a061216db8a2137db.png

Figure 4 表示了不同的 temperature(横轴)在不同的数据集上对 的度量值大小(纵轴),随着 temperature的增大, 在减小,也就是 在增大,根据其计算方式,说明 embedding 的分布变得更不均匀了。而对于 Figure 5 则可以看到,随着 temperatrue 的增大,tolerance 这个值也在增大,说明语义相关的样本的相似度在变大。

一个理想的模型,应该是局部聚集,全局均匀的,也就是 tolerance 要大的同时,uniformity 要小。但根据上面两个图,tolerance 增大时,uniformity 也在增大;tolerance 减小时,uniformity 也在减小,这便形成了一个作者所定义的 Uniformity-Tolerance Dilemma。所以对于一般的对比学习 loss 而言,如何选择一个合适的 temporature 来平衡 embedding 的聚集性和均匀性,是需要根据具体问题来权衡的。


我觉得这个思想可以说是一定程度上继承了 Background 那节里的 ICML 那篇论文的思想,那里的 Alignment 和这里的 Tolerance 很像,但是,也正如我在 Introduction 开头所写的,这篇论文主要就是引入了样本之间语义结构的概念。Alignment 只是考虑了 Positive pair 的聚集程度,而这篇论文进一步,考虑了同一类相似样本的聚集程度。


020f73a219dc9e03232f9e55fcb3d1d4.png


Breaking Point


作者利用了之前的一篇研究工作中提出的 Hard contrastive loss 策略 [4],在计算对负样本的梯度时,只截取相似度大于某个阈值的负样本计算(如选取 Top K 最近的负样本)。

这样的话,相当于放大了负样本的作用,使得当 temperature 变大时,模型最后形成的 embedding 分布会更均匀一点,而不会像 Figure 4 那样随着 temperature 增大 embedding 分布变得更不均匀。

以此缓解 Uniformity-Tolerance Dilemma 中调节 temperature 对 uniformity 变化的影响。也呼应了Figure 1 中“当 uniformity 保持不变时,特征表示却能够更加体现出语义结构“的目的。

Hard Contrastive Loss 定义如下:

8c036ed33222d9555907e54a3767820d.png

其中, 是负样本与 anchor 的一个相似度分界点,对于相似度在 这个区间(informative interval)的负样本被看作是 informative hard negative samples(与 anchor 更相似,更难将他们分隔开),而对于相似度在 这个区间,则被称作 uninformative interval。在计算 loss 时, 的这些负样本,使其 。相当于将原本负样本的梯度比例分布(如 Figure 3)压缩到 informative interval 的这个区间,从而增强模型对在该区间内负样本的“惩罚”,集中火力把与 相似的负样本推远。

采用 得到的不同数据集下,不同 temperature 与 Uniformity 和 Tolerance 两个属性值的关系图如下。将 Figure 6 和 Figure 4 相比可以发现,此时随着 temperature 增大,Uniformity 保持较稳定不变。此时增大 temperature 便可以在保持 uniformity 不增大的情况下,增大 Tolerance,即模型得到的 embedding 既保持均匀,又能局部聚集,从而保留一定潜在语义结构,破解上一节所说的 Uniformity-Tolerance Dilemma 问题。

9dab324ee91e10d2f322137a18310197.png

48cbaa57f702007b86b4e4b3e304ae82.png

28b2aab2440dc1766521503b8417995d.png


Conclusion


在本篇论文中,作者从 temperature 这个参数入手,从理论和实验的角度指出 Contrastive Loss 是一个 hardness-aware 的损失函数,而 temperature 在控制 embedding 分布中扮演着重要作用,并由此提出一种 Uniformity-Tolerance Dilemma 问题。针对这个问题,未来还有待研究,比如,从 Tolerance 着手(?)。

*注1:超球面空间 hypersphere:当所有类别的样本很好地各自聚集在一起并在空间中形成一个球面时,他们是线性可分的。而这一特性是欧几里得空间做不到的。如下图,用一个线性分类器,可以找到一个角度切割球面将“猫”这一类的样本与其他样本分隔开。

1f0f25d4f765b774d9a661cf79225fb5.png

▲ Hypersphere

outside_default.png

参考文献

outside_default.png

[1] Understanding the Behaviour of Contrastive Loss , CVPR 2021

[2] Understanding Contrastive Representation Learning through Alignment and Uniformity on the Hypersphere ICML 2020

[3] SimCSE: Simple Contrastive Learning of Sentence Embeddings

[4] Local aggregation for unsupervised learning of visual embeddings ICCV 2019

特别鸣谢

感谢 TCCI 天桥脑科学研究院对于 PaperWeekly 的支持。TCCI 关注大脑探知、大脑功能和大脑健康。

更多阅读

1fc53419c9cdb5be356c168bcf4fcd3c.png

f59c4bb7eac92491ddcf4a82a1d02fe1.png

f5a11013983b3d946e17d430a919adcc.png

3210ada3099c32ab62de9b69b7f5b370.gif

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算

📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿

1fe50be939659472e1de600051d53a90.png

△长按添加PaperWeekly小编

🔍

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

·

dfcbc688524221fdbcc051ebfc5c048d.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值