本文介绍的是斯坦福大学在ICLR 2022发表的一篇多模态模型分析文章。这篇文章研究的是一个多模态对比学习模型中常见的问题:为什么不同模态的embedding在表征空间中形成不同的簇,以及这种gap对最终预训练多模态模型在下游任务中效果的影响。文中分析的一些现象是我们在实验中经常遇到的,例如为什么深度学习模型输出的embedding对的cosine往往是大于0的数,并且做了很多有趣的实验进行了分析和验证。
-
论文标题:Mind the Gap: Understanding the Modality Gap in Multi-modal Contrastive Representation Learning
-
下载地址:https://arxiv.org/pdf/2203.02053.pdf
文中将一些经典的多模态对比学习模型中两个模态的embedding,通过降维等方法映射到二维坐标系中。从下图可以看出,不论是哪种模型,两个模态的表征都会出现gap(形成独立的簇)。并且无论是预训练好的模型,还是随机初始化的模型,都存在这个问题。
那么为什么会出现这种现象呢?文中从两个角度进行了分析,一个是深度学习模型本身的cone effect会带来gap,另一个是对比学习损失倾向于保持这种gap。
Core effect在文中的定义可以理解为,使用深度学习模型得到的embedding,会分布在一个狭小的锥形空间里,不论模型的参数是训练好的还是随机的。同时,不同的随机初始化最终产出的embedding会分布在不同的锥形区域。而多模态模型中,一般是两个模态的模型分别随机初始化,这就导致两个模态会随机生成两个锥形区域,从而导致不同模态之间的表示空间存在gap。下面详细介绍一下文中的分析过程。
文中通过模型产出的任意两个embedding的cosine相似度分布来验证这个问题。从模型中获取5000个embedding,然后计算两两embedding的cosine相似度,求出平均cosine和最小cosine。通过下图可以发现,各类模型的cosine值基本都是偏高的,并且很少有负数的cosine值。这表明,模型输出的embedding并不是散落在整个空间中的,而是形成一个从坐标远点向外扩展的狭小锥形中,才会出现cosine取值分布偏大的现象。
那么为什么深度学习模型会出现cone effect现象呢?文中对比了不同激活函数、不同网络层数的模型形成的cosine均值,发现层数越深cosine均值越高,并且当没有激活函数的时候就不会出现cosine均值大于0的情况(如下图所示)。这说明激活函数和网络层数的加深是cone effect现象形成的主要原因。
接下来,文中又对比了不同随机初始化对形成的锥形区域的影响。文中对多个模型进行了25次随机初始化,并绘制了每次随机初始化的embedding区域。可以看到每次随机初始化的锥形区域都是不同的,这说明不同的随机初始化会导致生成的embedding分布在不同的锥形区域。
结合以上的信息就可以推倒出多模态模型两个模态表征存在gap的原因:多模态对比学习一般是双塔结构,一个模态一个塔,每个塔进行随机参数初始化后,导致每个塔有一个自己的锥形区域,并且初始化的随机性导致两个塔的锥形区域不同。
内容中包含的图片若涉及版权问题,请及时与我们联系删除
评论
沙发等你来抢