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

2021-08-04  本文已影响0人  第一个读书笔记

注意:时间逆序排列
关键词: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:w = \lbrace{w_1, ..,w_T \rbrace}
  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可表示为:v = \lbrace{v_1, ..,v_I \rbrace}

预训练任务

  1. MLM: masked language modeling
    随机mask 15%的输入,通过周边文本和整个image regions预测。
    L_{MLM}(\theta) = -E_{(w,v) \sim D} log p_{\theta}(w_m|w\neg m, v)
  2. MOC:masked object classification
    随机mask 15%的图片区域,其中90%用zero-initialized vector替代真实向量,10%维持原状。
    将模型(Faster-R CNN)检测到的置信度最高的类别作为真实标签,模型提取被masked的region向量v_m + FC + Softmax,得到K个标签结果。
    L_{MOC}(\theta) = \sum_i^M CE(c(v_m^i) - g_{\theta}(v_m^i))
  3. VLM:visual-linguistic matching
    和图文匹配(ITM)一个意思,用[CLS] + FC预测图文是否对齐。
    L_{VLM}(\theta) = -E_{(w,v) \sim D}[y log s_{\theta}(w,v) + (1-y)(1-s_{\theta}(w,v))])

I[y=1]:图文匹配
因此,预训练损失函数为:L = (L_{MLM} + L_{MOC}) \cdot I[y=1] + L_{VLM}

实验

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 s_{\theta}(w,v),计算triplet loss,最大化正样本之间的距离。
    用x和y表示2个模态,N_y表示负样本集合,y^-h^-表示2个模态的负样本,hardest triplet loss表示为:
    L_{hard}(x,y) = \sum_{y^- \in N_y} \lbrace{ max [0, \gamma - s(x,y) + s(x,y_h^-)] \rbrace}
    结合排序问题后的loss:
    L = \lambda_1L_{hard}(w,v) + \lambda_2 L_{hard}(w,v)
    其中:\gamma = 0.2, \lambda_1 = 1.0, \lambda_2 = 1.0

  2. VCR:visual commonsense reasoning
    实验数据:110k电影场景,包含290k的QA
    任务:根据问题和视觉,选择最合适答案,VQA和QAR,后者是answer justification。
    模型:模型输入为concat的问题和每个可能答案。
    QA: w = \lbrace{q_1, ...,q_n,;a_1,...,a_n \rbrace}
    QAR: w = \lbrace{q_1, ...,q_n,;a_1^*,...,a_n^*,; r_1,..,r_n \rbrace},这里的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特征表达 f_o
  2. 用于区别视觉和文本embedding的segment embedding f_s
  3. 对齐文本和bounding region的position embedding f_p

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
输入:对齐的图文数据
文本:w_0,...w_T
图片:v_1, ...,v_{ \t},region features组成,来自目标检测得到的bounding box。
视觉信息缺乏排序,因此通过空间位置构建一个5-d(normalzied 左上到右下)的vector。
模型:双流模型,文本和图片进入2个Transformers。
每个模态首先经过自己的TRM(transformer block),然后进入Co-TRM(co-attentional transformer)进行信息交互。
模型输出final representation
h_{v_0},...,h_{ v_{\t}}
h_{w_0},...,h_{w_T}

预训练任务

  1. Masked multi-modal modeling
    对文本和图片进行mask,然后重建。对masked的图片,预测的是语义分类分布,这种分布会和目标检测模型的分布做KL divergence。
  2. Multi-modal alignment prediction
    输入image-text pair \lbrace{IMG, v_1, ...,v_t, CLS, w_1, ...,w_T, SEP \rbrace},使用h_{IMG},h_{CLS}作为视觉和文本表达,通过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学习p(x,y),其中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后,用到下游任务上。
上一篇下一篇

猜你喜欢

热点阅读