多模态论文串讲-学习笔记(上)

入门参考:跟着chatgpt一起学|多模态入门-优快云博客

学习参考:多模态论文串讲·上【论文精读·46】_哔哩哔哩_bilibili,强烈推荐这个博主啊,感觉比沐神讲的还要清楚,非常喜欢。

本文介绍只使用transformer encoder的方法,下中会介绍使用transformer encoder和decoder的方法。

目录

1.ViLT CLip回顾

(a) VSE

(b) CLIP

(c)ViLBERT/UNITER

(d) ViLT

一个好的模型结构:

2.ALBEF

摘要:

模型结构:

动量蒸馏

消融实验

 

​3.VLMO

摘要:

模型结构

MoME Transformer:

LOSS

分阶段预训练

模型效果


1.ViLT CLip回顾

图片部分对应4种类型的图文多模态模型,蓝色部分是从这个模型中学到的较好的部分,最右边的是融合这些好的部分的模型结构。

(a) VSE

visual embedding(VE)的大小远大于text embedding(TE),两者也都远大于最终的模态交互(MI),其中VE是来源于目标检测(OD)预训练算法中的,MI就是简单的点乘。

(b) CLIP

之前也有讲过:【经典论文】打通文本图像的里程碑--clip_clip论文-优快云博客

双塔模型,通过对比学习,将已有的图片文本对在空间上拉的更近。

对图文匹配任务而言效果好,且高效。

缺点:在VQA,VR,VE这些任务上性能不够好(模态之间的交互不足)

(c)ViLBERT/UNITER

在VSE的基础上,使用transformer的encoder或者别的更复杂的模型结构来进行模态之间的交互

(d) ViLT

为了将目标检测从视觉端拿掉,有局限性。

使用基于patch的视觉特征来替代使用基于bounding box的视觉特征,visual embedding是基于patch的,所以VE的大小较小,大大降低了复杂度。而相应的MI,类似与上面的C类里的方法,复杂度较高。

缺点:

性能不够高,可能比不过c类中的方法。有可能是数据集的bias,也有可能是视觉部分不够强。(VE是随机初始化的)

推理快,但是训练慢。(4million的数据集,64张32G GPU训练3天)

一个好的模型结构:

ITC:Image Text Contrastive Loss,对比学习的loss

MLM:Mask Language Modeling Loss,bert中的loss,遮住一个词再去预判这个词

ITM:Image Text Matching Loss

更大的视觉特征

2.ALBEF

摘要:

1.ALBEF使用ITC(图像文本对比损失函数),在融合之前,将视觉特征和文本特征进行了对齐。

        之前的工作,使用Transformer来融合视觉特征和文本特征,而这个视觉特征是已经学习好的,后续并没有基于end-end继续学习,所以视觉特征和文本特征是没有对齐的。

2.使用momentum distillation这种自训练的方式去学习,提升模型在noisy数据集上的表现。

        使用momentum model来生成伪标签,再使用momentum distillation来提升表现。

模型结构:

  • 视觉特征:ViT,一个标准的ViT(什么是VIT?-优快云博客
    • 预训练参数:Data Efficient Vision Transformer(DEiT)
  • 文本特征:Bert,使用Bert模型进行初始化,但是只用了bert中的6层做文本特征,另外6层做模态之间的交互。
  • Momentum Model:也是一个ViT和Bert,参数是从上述的ViT和Bert通过moving average得到。阈值:0.995,Momentum Model会更稳定,产出更稳定的图像文本特征。(可参考MOCO)
  • ITM:判断VE和TE是否是同一个对。
    • 缺点:太简单了,负样本很容易学出来。
    • hard negative:每个batch内,每个图片基于ITC,找到和当前图片最相似的作为负样本。
  • MLM:类似于bert,也是对文本进行mask,但是会借助图像特征来帮助预测。

ALBEF每次做2次forward,一次使用原始的I和T(ITC,ITM),一次使用原始的I和mask之后的T’(MLM)

动量蒸馏

原因:网上爬下来的数据是noisy data,里面的正样本对中的文本可能和图片没什么关系,而负样本反而能很好地描述这个图像,可能比ground_truth还好。这种one-hot的label对于ITC和MLM而言是不友好的,使得模型学习困难。

构建:在已有的模型之上,使用EMA(exponential moving average),生成伪标签。

LOSS:在已有的基础上,添加基于伪标签的loss,因为伪标签是softmax score,所以使用KL散度来计算loss

ITC loss 公式:

MLM loss公式

伪标签示例,可以看到,伪标签描述的可能比ground_truth结果更好。

消融实验

在4M的数据集上,Momentum Modeling的提升可能比其他几种方式的提升要小一些,但是方向是不错的。在14M的数据集上,可能会更好。

3.VLMO

论文地址:https://arxiv.org/abs/2111.02358v2

摘要:

之前模型的弊端:

        双塔模型,clip和align,速度快,但是在其他下游任务中的表现不好。

       单塔模型:fusion-encoder,效果好,但是下游任务推理速度特别慢。

贡献:

  1. 提出了Mixture-of-Modality-Expert,后续推理时,根据任务的不同,选择不同的Expert网络。
  2. 提出了stage-wise pretraining strategy,利用单模态领域丰富的数据集,分阶段进行训练。

模型结构

MoME Transformer:

在Transformer的结构基础上,针对不同的输入,用3个FFN替代原先的FFN,分别代表了三个专家网络。

self-attention层是完全share weights的。

LOSS

和ALBEF一致

ITC:计算时类似一个clip模型,双塔输入

ITM/MLM:Fusion Encoder,单塔输入,图像和文本一起输入,

64张V100的卡训练2天。

分阶段预训练

  1. 使用图像数据进行预训练,V-FFN和self-attention层都可以进行训练,没有需要冻住的。
  2. 使用文本数据进行预训练,此时V-FFN和self-attention层都被冻住,仅训练L-FFN。
    1. 比较有意思的一点是,仅在图像数据上预训练好的self-attention在文本数据中也工作的很好,也在很多工作上验证过。但是反过来不行,推测可能图像数据蕴含的内容更丰富?
  3. 都可以进行训练

模型效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值