多模态模型汇总-按需更新一
注意:时间逆序排列
关键词:Unicoder-VL, VisualBERT, ViLBERT, VideoBERT
多模态模型汇总-按需更新一:2019年发布的多模态模型汇总
多模态模型汇总-按需更新二:2020年发布的多模态模型汇总
多模态模型汇总-按需更新三:2021年发布的多模态模型汇总
模型详情
Unicoder-VL [19.08]
Unicoder-VL: A Universal Encoder for Vision and Language by Cross-modal
Pre-training
CV常用模型:VGG, ResNet,是基于ImageNet的CNN模型,对图片进行类别预测,常用作图片分类,图片检索,目标检测任务。一般,会通过这些模型提取的视觉特征,再进行task-specific模型。
NLP常用预训练模型:BERT,XLNet,RoBERTa等,在常用的NLP任务上都达到SOTA。一般,会通过这些预训练模型进行fine-tuning,实现下游任务。
NLP是长序列,而CV,比如ImageNet只有categorical labels,相当于短序列,如何将这两种内容做cross-model?
本文提出Unicoder-VL,multi-layer transformer结构,旨在构建图片和长序列的预训练模型,实现2个模态的联合表征。
数据:3.8M 图文对齐数据,包含3M的CC和0.8M的SBU Captions。
模型:12 layers of Transformer blocks,最大序列长度为144。
Linguistic Embedding
- 输入文本经过WordPiece:;
- 在文本首尾加入special token,[CLS]和[SEP];
- 对视觉信息,额外加入[IMG]表示;
- 最终的sub-word token Embedding = LayerNorm(word embedding + position embedding)
Image Embedding
- 使用Faster R-CNN提取图上每个region的pooled ROI features 和5D的location features,每张图片提取检测分数大于0.2的top-100个ROIs;
注意:Faster R-CNN不参与模型训练,会保留每个检测的predicted label,用于目标检测任务。 - visual和location的features经过FC后,投影到同一个embedding space;
- 最终的Visual Embedding = LayerNorm(FC(FC(visual embedding + location embedding)))
- 最终image regions可表示为:
预训练任务
- MLM: masked language modeling
随机mask 15%的输入,通过周边文本和整个image regions预测。
- MOC:masked object classification
随机mask 15%的图片区域,其中90%用zero-initialized vector替代真实向量,10%维持原状。
将模型(Faster-R CNN)检测到的置信度最高的类别作为真实标签,模型提取被masked的region向量 + FC + Softmax,得到K个标签结果。
- VLM:visual-linguistic matching
和图文匹配(ITM)一个意思,用[CLS] + FC预测图文是否对齐。
:图文匹配
因此,预训练损失函数为:
实验
3种实验设置
- zero-shot:不做fine-tuning,直接test;
虽然结果不如3,但暗示了,Unicoder-VL学习到了cross-model知识。 - task-specific train:不做pre-training,直接在对应任务上做训练;
实验结果显示,Unicoder-VL模型比之前大部分方案都要优秀。 - pre-train + fine_tune:先pre-training,再按下游任务进行fine-tuning。
实验结果显示,都达到SOTA。
2种任务
-
Image-text retrieval
实验数据:MSCOCO和Flicker30K
将图文检索视为排序问题,每对图文(w,v)数据随机采样3个负样本。
目标:和VLM任务一样有一个score function ,计算triplet loss,最大化正样本之间的距离。
用x和y表示2个模态,表示负样本集合,和表示2个模态的负样本,hardest triplet loss表示为:
结合排序问题后的loss:
其中: -
VCR:visual commonsense reasoning
实验数据:110k电影场景,包含290k的QA
任务:根据问题和视觉,选择最合适答案,VQA和QAR,后者是answer justification。
模型:模型输入为concat的问题和每个可能答案。
QA:
QAR: ,这里的answer是正确答案。
效果:达到SOTA。
VisualBERT [19.08]
VisualBERT 模型框架
数据:COCO image caption dataset,一张图片对应5个描述。
输入:对齐的文本和图片
模型:stack of transformer
Embedding:由3种embedding组成:
- 经过Faster-RCNN的视觉bounding region特征表达 ;
- 用于区别视觉和文本embedding的segment embedding ;
- 对齐文本和bounding region的position embedding 。
Fusion
几种特征融合的方式如下:
- 初始化参数来自BERT,图文特征提取后,直接使用transformer,进行信息交互;
- 图文分别使用transformer,再接一个新的transformer层进行图文信息交互;
- 不进行预训练,直接进行下游任务。
实验结果显示,预训练模型+ early-fusion结果最佳。
预训练任务
- Task-Agnostic Pre-training
1.1 masked language model with image,用剩余文本和视觉信息预测被masked的文本,被masked的文本对应的视觉信息没有被masked;
1.2 Sentence-image prediction,图文匹配,2个描述作为文本输入,其中一个描述和视觉对齐,另一个有50%的可能性来自随机抽取的其他描述。 - Task-Specific Pre-training,发现在进行fine-tuning前,如果目标领域训练1.1的任务,对task-specific的任务有帮助。
- Fine-tuning。
实验
- VQA: visual question answering
- VCR: visual commonsense reasoning
- NLVR: natural language for visual reasoning
- region-to-phrase grounding (Flickr30K)
ViLBERT [FAIR 19.08]
ViLBERT: Pretraining Task-Agnostic Visiolinguistic Representations for Vision-and-Language Tasks
ViLBERT ViLBERT 模型框架
Two-stream,每个模态分别处理,再通过attention-based interaction进行fusion。这种方式比较灵活调整每个模态和模态交叉的网络深度。
数据:Conceptual Captions dataset
输入:对齐的图文数据
文本:
图片:,region features组成,来自目标检测得到的bounding box。
视觉信息缺乏排序,因此通过空间位置构建一个5-d(normalzied 左上到右下)的vector。
模型:双流模型,文本和图片进入2个Transformers。
每个模态首先经过自己的TRM(transformer block),然后进入Co-TRM(co-attentional transformer)进行信息交互。
模型输出final representation:
预训练任务
- Masked multi-modal modeling
对文本和图片进行mask,然后重建。对masked的图片,预测的是语义分类分布,这种分布会和目标检测模型的分布做KL divergence。 - Multi-modal alignment prediction
输入image-text pair ,使用,作为视觉和文本表达,通过element-wise product和一个二分类的linear layer预测图文数据是否匹配。负样本来自随机选择的其他图片or描述。
VideoBERT [Google Research 19.04]
VideoBERT: A Joint Model for Video and Language Representation Learning
A simple say to learn high level video representations that capture semantically meaningful and temporally long-range structure.
通过BERT学习,其中x是经过视频分类模型得到的视觉序列,而y是通过ASR (automatic speech recognition system)转成文本的语音序列,以实现text-to-video和video-to-text任务。
一般做视频分类需要大规模的有标签数据,数据收集比较贵,对应的标签信息比较少,不足以表达很多信息。而且,一般会分割成几秒的短视频,而VideoBERT可以处理长视频。
而无监督的学习中,一般会使用一个静态随机变量表征视频,然后RNN,VAE,GAN进行decode。而VideoBERT使用BERT模型,无需其他隐层随机变量来表征visual token。
数据:YouCook II dataset
输入:对齐的文本token和视觉token
- 文本:经过ASR的文本序列,使用off-the-shelf LSTM-based语言模型增加标点符号进行序列分割,再接BERT处理方案;
- 视觉:
2.1 视频帧经过ConvNet得到特征;
2.2 经过S3D模型,average pooling后得到1024d的特征向量;
2.3 经过hierarchical k-means进行聚类,vector quantization得到的visual words。
如何对齐文本和视觉:
- 如果ASR可行,根据ASR提取的的开始和截止时间戳,将这段时间的视频token作为一段视频序列;
- 如果ASR不可行,则将16个视频token视为一段序列。
文本和视觉的输入可表示为:
[CLS] orange chicken with [MASK] sauce [>] v01 [MASK] v08 v72 [SEP]
其中:
[>]:文本和视觉信息的分隔符;
v01, v08, v72:visual token;
[CLS]:判断文本和视觉是否对齐
模型:BERT-large模型
文本:随机concat的2个可能不那么对齐的短序列,构成一个长序列;
视频:随机下采样1~5个视频token,提高鲁棒性,促进模型学习到长时动态信息。
预训练任务
3种训练:text-only、video-only和video-text。video-text在进行mask时,也是对齐的。意味着text的token被mask,video对应token也会被mask。
Loss:3种训练方式加权求和。
实验
- Zero-shot action classification
概率模型,预测被masked的verb或者noun信息; - Transfer learning for captioning
VideoBERT作为特征提取器,将视觉和文本token进行average和concat后,用到下游任务上。