背景介绍
什么是VL
Vision and language
将视觉与语言进行一定程度的结合,从而产生出一些新的应用与挑战
有哪些任务类型
字幕生成Image Captioning
图像检索Image Retrieval
视觉问答Visual Question Answering
图像中标出文字描述的目标Grounding Referring Expression
视觉对话Visual Dialog
什么是VLP
(图图传不上来orz)
VLP模型中主要有三个组件,即 visual embedding(VE)、textual embedding(TE)和modality fusion(MF)。VE和TE通常分别用图像和文本进行预训练,而MF则将VE和TE提取的特征进行融合。在海量数据集上进行预训练对于提高在小数据集下游任务的性能至关重要,因为学习到的表示可以在下游任务中进行传输。
为什么要用VLP
针对下游任务的有标签数据集成本高、规模较小,而大规模数据集通常是无标签的。利用无标签或弱标签数据进行预训练能更好的学习符合下游任务的特征,再在带标签的下游任务数据集中进行微调。
BLIP:Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation
当前VLP模型的局限
- 大多数现有的预训练模型只在基于理解的任务或基于生成的任务中表现出色
- 性能的提高在很大程度上是通过扩大从网络上收集的有噪声的图像-文本对的数据集实现的,而这是一个次优的监督来源。
原因
- 模型角度:大多数方法要么采用基于编码器的模型,要么采用编码器-解码器模型。然而,基于编码器的模型不太容易迁移到文本生成任务中,而编码器-解码器模型还没有被成功地用于图像-文本检索任务。
- 数据角度:大多数最先进的方法使用从网络上收集的图像-文本对进行预训练。尽管通过扩大数据集获得了性能上的提高,但是带噪音的网络文本对于视觉语言学习来说是次优的.
多模态混合编码器-解码器MED
(图图依然传不上来)
模型结构:
1、单模态编码器(Unimodal encoder),对图像和文本分别进行编码。文本编码器(text encoder)与BERT相同,在文本输入的开头附加一个[CLS]标记,以总结句子。
2、以图像为基础的文本编码器(Image-grounded text encoder),通过在自注意力(SA)层和前馈网络(FFN)之间为文本编码器的每个Transformer块插入一个额外的交叉注意力(CA)层来注入视觉信息。一个特定任务的[Encode]标记被附加到文本上,[Encode]的输出embedding被用作图像-文本对的多模态表示。
3、以图像为基础的文本解码器(Image-grounded text decoder),用因果自注意力层(causal self-attention layer)替代编码器中的双向自注意力层。用[Decode]标记来表示一个序列的开始和结束。
损失函数:
1、用图像-文本对比(ITC)损失来训练单模态编码器,通过鼓励正image-text对 比 负样本对具有更高的相似度来对齐visual transformer 和test transformer 的特征空间,使视觉和语言表征保持一致。
2、图像-文本匹配(ITM)损失:学习图像-文字对的多模态表示,以捕捉图像-文字对的细粒度对齐。同时是个二分类任务,来区分正对和负对。为了增强多样性,采用了难负样本对挖掘策略,一个batch中选择相似度高的负样本对进行loss计算。
3、语言建模(LM)损失,用了0.1的label smooth.解码器用于生成图像描述。
如何实现任务:
字幕生成:
图文匹配:
图文问答:
字幕生成器-过滤器CapFilt
将预先训练好的MED微调为两个模块:一个是给定网络图像产生合成标题的captioner,另一个是去除原始网络文本和合成文本中的噪声标题的Filter。
(模型结构图传不上来)
字幕器
用于生成给定网络图像的字幕。是一个 image-grounded text decoder,用LM目标进行微调,用于解码给定文字的图像。
过滤器
用于删除噪声图像-文本对。是一个image-grounded text encoder,用ITC和ITM进行微调,学习文字和图像是否匹配。如果ITM head预测文本和图片不匹配,则删除噪声对。最终形成新的数据集用于预训练。
字幕器和过滤器都是从同一预训练的MED模型初始化的,并在COCO数据集上单独微调。
实验结果
图图传不上来 自己去看论文
总之很牛逼