美文网首页
多模态模型汇总-按需更新一

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

作者: 第一个读书笔记 | 来源:发表于2021-08-04 11:00 被阅读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后,用到下游任务上。

    相关文章

      网友评论

          本文标题:多模态模型汇总-按需更新一

          本文链接:https://www.haomeiwen.com/subject/edtuvltx.html