多模态模型汇总-按需更新一

注意:时间逆序排列
关键词: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

https://arxiv.org/pdf/1908.06066.pdf

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个模态的联合表征。

Unicoder-VL 模型框架

数据:3.8M 图文对齐数据,包含3M的CC和0.8M的SBU Captions。
模型:12 layers of Transformer blocks,最大序列长度为144。
Linguistic Embedding

  1. 输入文本经过WordPiece:;
  2. 在文本首尾加入special token,[CLS]和[SEP];
  3. 对视觉信息,额外加入[IMG]表示;
  4. 最终的sub-word token Embedding = LayerNorm(word embedding + position embedding)

Image Embedding

  1. 使用Faster R-CNN提取图上每个region的pooled ROI features 和5D的location features,每张图片提取检测分数大于0.2的top-100个ROIs;
    注意:Faster R-CNN不参与模型训练,会保留每个检测的predicted label,用于目标检测任务。
  2. visual和location的features经过FC后,投影到同一个embedding space;
  3. 最终的Visual Embedding = LayerNorm(FC(FC(visual embedding + location embedding)))
  4. 最终image regions可表示为:

预训练任务

  1. MLM: masked language modeling
    随机mask 15%的输入,通过周边文本和整个image regions预测。
  2. MOC:masked object classification
    随机mask 15%的图片区域,其中90%用zero-initialized vector替代真实向量,10%维持原状。
    将模型(Faster-R CNN)检测到的置信度最高的类别作为真实标签,模型提取被masked的region向量 + FC + Softmax,得到K个标签结果。
  3. VLM:visual-linguistic matching
    和图文匹配(ITM)一个意思,用[CLS] + FC预测图文是否对齐。

:图文匹配
因此,预训练损失函数为:

实验

3种实验设置

  1. zero-shot:不做fine-tuning,直接test;
    虽然结果不如3,但暗示了,Unicoder-VL学习到了cross-model知识。
  2. task-specific train:不做pre-training,直接在对应任务上做训练;
    实验结果显示,Unicoder-VL模型比之前大部分方案都要优秀。
  3. pre-train + fine_tune:先pre-training,再按下游任务进行fine-tuning。
    实验结果显示,都达到SOTA。

2种任务

  1. Image-text retrieval
    实验数据:MSCOCO和Flicker30K
    将图文检索视为排序问题,每对图文(w,v)数据随机采样3个负样本。
    目标:和VLM任务一样有一个score function ,计算triplet loss,最大化正样本之间的距离。
    用x和y表示2个模态,表示负样本集合,和表示2个模态的负样本,hardest triplet loss表示为:

    结合排序问题后的loss:

    其中:

  2. VCR:visual commonsense reasoning
    实验数据:110k电影场景,包含290k的QA
    任务:根据问题和视觉,选择最合适答案,VQA和QAR,后者是answer justification。
    模型:模型输入为concat的问题和每个可能答案。
    QA:
    QAR: ,这里的answer是正确答案。
    效果:达到SOTA。


VisualBERT [19.08]

https://arxiv.org/pdf/1908.03557.pdf

VisualBERT 模型框架

数据:COCO image caption dataset,一张图片对应5个描述。
输入:对齐的文本和图片
模型:stack of transformer
Embedding:由3种embedding组成:

  1. 经过Faster-RCNN的视觉bounding region特征表达 ;
  2. 用于区别视觉和文本embedding的segment embedding ;
  3. 对齐文本和bounding region的position embedding 。

Fusion
几种特征融合的方式如下:

  1. 初始化参数来自BERT,图文特征提取后,直接使用transformer,进行信息交互;
  2. 图文分别使用transformer,再接一个新的transformer层进行图文信息交互;
  3. 不进行预训练,直接进行下游任务。

实验结果显示,预训练模型+ early-fusion结果最佳。

预训练任务

  1. Task-Agnostic Pre-training
    1.1 masked language model with image,用剩余文本和视觉信息预测被masked的文本,被masked的文本对应的视觉信息没有被masked;
    1.2 Sentence-image prediction,图文匹配,2个描述作为文本输入,其中一个描述和视觉对齐,另一个有50%的可能性来自随机抽取的其他描述。
  2. Task-Specific Pre-training,发现在进行fine-tuning前,如果目标领域训练1.1的任务,对task-specific的任务有帮助。
  3. Fine-tuning。

实验

  1. VQA: visual question answering
  2. VCR: visual commonsense reasoning
  3. NLVR: natural language for visual reasoning
  4. region-to-phrase grounding (Flickr30K)

ViLBERT [FAIR 19.08]

ViLBERT: Pretraining Task-Agnostic Visiolinguistic Representations for Vision-and-Language Tasks

https://arxiv.org/abs/1908.02265

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

预训练任务

  1. Masked multi-modal modeling
    对文本和图片进行mask,然后重建。对masked的图片,预测的是语义分类分布,这种分布会和目标检测模型的分布做KL divergence。
  2. 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

https://arxiv.org/abs/1904.01766

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

一般做视频分类需要大规模的有标签数据,数据收集比较贵,对应的标签信息比较少,不足以表达很多信息。而且,一般会分割成几秒的短视频,而VideoBERT可以处理长视频。
而无监督的学习中,一般会使用一个静态随机变量表征视频,然后RNN,VAE,GAN进行decode。而VideoBERT使用BERT模型,无需其他隐层随机变量来表征visual token。

VideoBERT 模型框架

数据:YouCook II dataset
输入:对齐的文本token和视觉token

  1. 文本:经过ASR的文本序列,使用off-the-shelf LSTM-based语言模型增加标点符号进行序列分割,再接BERT处理方案;
  2. 视觉:
    2.1 视频帧经过ConvNet得到特征;
    2.2 经过S3D模型,average pooling后得到1024d的特征向量;
    2.3 经过hierarchical k-means进行聚类,vector quantization得到的visual words。

如何对齐文本和视觉

  1. 如果ASR可行,根据ASR提取的的开始和截止时间戳,将这段时间的视频token作为一段视频序列;
  2. 如果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种训练方式加权求和。

实验

  1. Zero-shot action classification
    概率模型,预测被masked的verb或者noun信息;
  2. Transfer learning for captioning
    VideoBERT作为特征提取器,将视觉和文本token进行average和concat后,用到下游任务上。

你可能感兴趣的:(多模态模型汇总-按需更新一)