本文主要是介绍【论文极速读】ERNIE VIL 2.0,多模态模型的一种多视角预训练范式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言
ERNIE VIL 2.0提出了多视角预训练范式,可以充分地利用图文数据中的各类型文本数据,加速模型预训练,提高跨模态模型的表征能力,本文进行论文读后笔记。如有谬误请联系指出,本文遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明并且联系笔者,谢谢 。
∇ \nabla ∇ 联系方式:
e-mail: FesianXu@gmail.com
github: https://github.com/FesianXu
知乎专栏: 计算机视觉/计算机图形理论与应用
公众号:机器学习杂货铺3号店
在ERNIE VIL 1.0[2,3]中,作者通过扩展Mask Language Model到多模态模型上,实现多模态模型的建模。其数据采用的是<Image, Caption>
的数据对,如Fig 1.所示。 通常caption是对图片的视觉描述,可以由人工标注而来,也可以像Conceptual Captions(CC)和SBU Captions(SBU)数据集一样,从互联网数据中自动挖掘得到。模型采用的单塔双流交互模型,如Fig 2.所示。
ERNIE VIL 1.0采用单塔交互模型意味着无法采用类似于CLIP[4,5]的方式,通过扩大batch size的方式进行大规模对比学习,以提高表征能力。而且只采用了caption信息进行预训练,不免浪费了互联网图片中丰富的文本信息。如Fig 3.所示,网页中的图片附带有着众多不同类型的文本信息可供使用,如图片的标题,图片的类别信息(可以是用户自选的),图片对应的上下文信息等,这些文本信息或多或少都与图片有所关联,在预训练中或多或少能提供帮助。不仅如此,甚至还可以用Object Detector进行图片中的实体识别,对图片进行打tag,生成一系列文本。同时,在商业系统中还能通过点击信号,挖掘出用户query与图片的样本对<query, image>
。
在ERNIE VIL 2.0中,作者采用了双塔模型,同时采用了CLIP的方式,通过使用112张A100 GPU和all_gather
操作,将总batch size提高到了7168。并且,最主要的是,在该论文中作者提出了“多视角对比学习(multi-view contrastive learning)”,其中的多视角指的是同一个模态中(图片、文本),不同视角的表达。比如对于图片而言,可以对图片进行图片增强(image augmentation),比如图片抖动,随机crop等。通过这种手段能生成两个视角的图片, I v 1 I_{v1} Iv1表示原图, I v 2 I_{v2} Iv2表示进行图片增强后的图片。对于文本模态而言,作者认为除了caption之外,这个图片的其他可用文本信息就可视为是多视角文本信息,比如在本文中,作者认为图片的tags是其多视角文本。那么, T v 1 T_{v1} Tv1为图片的caption, T v 2 T_{v2} Tv2为图片的tags(可以是用户自己选定的,也可以是Object Detector等模型生成的)。如Fig 4.所示,与单视角对比学习相比,同个模态内和跨模态间都可以组建对比损失。如公式(1-1)所示,其中 S + S^{+} S+为正样本对组合, S − S^{-} S−为负样本对组合,其中的 i , j i,j i,j表示样本编号。如公式(1-2)所示,通过infoNCE损失对(1-1)中的各类型pair进行损失建模。整个ERNIE-VIL 2.0的模型结构如Fig 4. ©所示。
S + = { ( I v 1 i , I v 2 i ) , ( T v 1 i , T v 2 i ) , ( I v 1 i , T v 1 i ) , ( T v 1 i , I v 1 i ) } S − = { ( I v 1 i , I v 2 j ) , ( T v 1 i , T v 2 j ) , ( I v 1 i , T v 1 j ) , ( T v 1 i , I v 1 j ) } , i ≠ j (1-1) \begin{align} S^{+} &= \{(I_{v1}^{i}, I_{v2}^{i}), (T_{v1}^{i}, T_{v2}^{i}), (I_{v1}^{i}, T_{v1}^{i}), (T_{v1}^{i}, I_{v1}^{i})\} \\ S^{-} &= \{(I_{v1}^{i}, I_{v2}^{j}), (T_{v1}^{i}, T_{v2}^{j}), (I_{v1}^{i}, T_{v1}^{j}), (T_{v1}^{i}, I_{v1}^{j})\}, i \neq j \end{align} \tag{1-1} S+S−={(Iv1i,Iv2i),(Tv1i,Tv2i),(Iv1i,Tv1i),(Tv1i,Iv1i)}={(Iv1i,Iv2j),(Tv1i,Tv2j),(Iv1i,Tv1j),(Tv1i,Iv1j)},i=j(1-1)
L ( x , y ) = − 1 N ∑ i N log exp ( ( h x i ) T h y i / τ ) ∑ j = 1 N exp ( ( h x i ) T h y j / τ ) (1-2) L(x, y) = -\dfrac{1}{N} \sum_{i}^N \log\dfrac{\exp((h_{x}^i)^{\mathrm{T}} h_{y}^i/\tau)}{\sum_{j=1}^N \exp((h_{x}^i)^{\mathrm{T}} h_{y}^j/\tau)} \tag{1-2} L(x,y)=−N1i∑Nlog∑j=1Nexp((hxi)Thyj/τ)exp((hxi)Thyi/τ)(1-2)
实验结果就不贴出来了,笔者感觉这种方法比较有意思的是,它可以通过多视角文本样本扩充一些抽象实体的语义。如Fig 5.所示,对于(a)中的caption提到的“Dinner”,“晚餐”本质上是一个抽象的实体,没有具象化到某一类型具体的食物,而通过Object Detector得到的tag,我们能知道图片中存在西红柿,洋葱,食物等等实体,通过建立caption和tag的关联,可以让模型学习到Dinner的具象化语义。对于Fig 5. (b)和©而言,BMW E90是宝马的其中一个型号,而Gatos Manx应该是主人给猫取的爱称。汽车型号这种语义非常稀疏,而猫的姓名更是稀疏无比,在训练样本中甚至可能没有其他共现的文本出现了,这种语义很难学习出来。而通过建立caption和tag的关联,可以让模型学习到BWM E90是一种白色汽车,而Gatos Manx是一只猫(当然这个有风险,也许有人也叫这个名字呢,emm,但是如同“旺财”“福贵”在猫狗上取名的概率更大一样,这样学习出来的bias似乎也并不是没有可取之处呢?)。因此通过多视角文本的多模态预训练方式,可以扩充抽象语义,学习出稀疏语义。这是ERNIE VIL 2.0一文给予笔者最大的启发。
Reference
[1]. Shan, Bin, Weichong Yin, Yu Sun, Hao Tian, Hua Wu, and Haifeng Wang. “ERNIE-ViL 2.0: Multi-view Contrastive Learning for Image-Text Pre-training.” arXiv preprint arXiv:2209.15270 (2022).
[2]. Yu, Fei, Jiji Tang, Weichong Yin, Yu Sun, Hao Tian, Hua Wu, and Haifeng Wang. “Ernie-vil: Knowledge enhanced vision-language representations through scene graph.” arXiv preprint arXiv:2006.16934 (2020).
[3]. https://blog.csdn.net/LoseInVain/article/details/116275484,【论文极速看】ERNIE-VIL 一种基于场景图解析的多模态表征方法
[4]. Radford, A., Kim, J. W., Hallacy, C., Ramesh, A., Goh, G., Agarwal, S., … & Sutskever, I. (2021). Learning transferable visual models from natural language supervision. arXiv preprint arXiv:2103.00020.
[5]. https://blog.csdn.net/LoseInVain/article/details/119516894, CLIP-对比图文多模态预训练的读后感
这篇关于【论文极速读】ERNIE VIL 2.0,多模态模型的一种多视角预训练范式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!