注意:時間逆序排列
關(guān)鍵詞:Unicoder-VL, VisualBERT, ViLBERT, VideoBERT
多模態(tài)模型匯總-按需更新一:2019年發(fā)布的多模態(tài)模型匯總
多模態(tài)模型匯總-按需更新二:2020年發(fā)布的多模態(tài)模型匯總
多模態(tài)模型匯總-按需更新三:2021年發(fā)布的多模態(tài)模型匯總
模型詳情
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,實現(xiàn)下游任務。
NLP是長序列,而CV,比如ImageNet只有categorical labels,相當于短序列,如何將這兩種內(nèi)容做cross-model?
本文提出Unicoder-VL,multi-layer transformer結(jié)構(gòu),旨在構(gòu)建圖片和長序列的預訓練模型,實現(xiàn)2個模態(tài)的聯(lián)合表征。

數(shù)據(jù):3.8M 圖文對齊數(shù)據(jù),包含3M的CC和0.8M的SBU Captions。
模型:12 layers of Transformer blocks,最大序列長度為144。
Linguistic Embedding
- 輸入文本經(jīng)過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,每張圖片提取檢測分數(shù)大于0.2的top-100個ROIs;
注意:Faster R-CNN不參與模型訓練,會保留每個檢測的predicted label,用于目標檢測任務。 - visual和location的features經(jīng)過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%的圖片區(qū)域,其中90%用zero-initialized vector替代真實向量,10%維持原狀。
將模型(Faster-R CNN)檢測到的置信度最高的類別作為真實標簽,模型提取被masked的region向量+ FC + Softmax,得到K個標簽結(jié)果。
- VLM:visual-linguistic matching
和圖文匹配(ITM)一個意思,用[CLS] + FC預測圖文是否對齊。
:圖文匹配
因此,預訓練損失函數(shù)為:
實驗
3種實驗設(shè)置
- zero-shot:不做fine-tuning,直接test;
雖然結(jié)果不如3,但暗示了,Unicoder-VL學習到了cross-model知識。 - task-specific train:不做pre-training,直接在對應任務上做訓練;
實驗結(jié)果顯示,Unicoder-VL模型比之前大部分方案都要優(yōu)秀。 - pre-train + fine_tune:先pre-training,再按下游任務進行fine-tuning。
實驗結(jié)果顯示,都達到SOTA。
2種任務
Image-text retrieval
實驗數(shù)據(jù):MSCOCO和Flicker30K
將圖文檢索視為排序問題,每對圖文(w,v)數(shù)據(jù)隨機采樣3個負樣本。
目標:和VLM任務一樣有一個score function,計算triplet loss,最大化正樣本之間的距離。
用x和y表示2個模態(tài),表示負樣本集合,
和
表示2個模態(tài)的負樣本,hardest triplet loss表示為:
結(jié)合排序問題后的loss:
其中:VCR:visual commonsense reasoning
實驗數(shù)據(jù):110k電影場景,包含290k的QA
任務:根據(jù)問題和視覺,選擇最合適答案,VQA和QAR,后者是answer justification。
模型:模型輸入為concat的問題和每個可能答案。
QA:
QAR:,這里的answer是正確答案。
效果:達到SOTA。
VisualBERT [19.08]

數(shù)據(jù):COCO image caption dataset,一張圖片對應5個描述。
輸入:對齊的文本和圖片
模型:stack of transformer
Embedding:由3種embedding組成:
- 經(jīng)過Faster-RCNN的視覺bounding region特征表達
;
- 用于區(qū)別視覺和文本embedding的segment embedding
;
- 對齊文本和bounding region的position embedding
。
Fusion
幾種特征融合的方式如下:
- 初始化參數(shù)來自BERT,圖文特征提取后,直接使用transformer,進行信息交互;
- 圖文分別使用transformer,再接一個新的transformer層進行圖文信息交互;
- 不進行預訓練,直接進行下游任務。
實驗結(jié)果顯示,預訓練模型+ early-fusion結(jié)果最佳。
預訓練任務
- 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,發(fā)現(xiàn)在進行fine-tuning前,如果目標領(lǐng)域訓練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


Two-stream,每個模態(tài)分別處理,再通過attention-based interaction進行fusion。這種方式比較靈活調(diào)整每個模態(tài)和模態(tài)交叉的網(wǎng)絡深度。
數(shù)據(jù):Conceptual Captions dataset
輸入:對齊的圖文數(shù)據(jù)
文本:
圖片:,region features組成,來自目標檢測得到的bounding box。
視覺信息缺乏排序,因此通過空間位置構(gòu)建一個5-d(normalzied 左上到右下)的vector。
模型:雙流模型,文本和圖片進入2個Transformers。
每個模態(tài)首先經(jīng)過自己的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預測圖文數(shù)據(jù)是否匹配。負樣本來自隨機選擇的其他圖片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是經(jīng)過視頻分類模型得到的視覺序列,而y是通過ASR (automatic speech recognition system)轉(zhuǎn)成文本的語音序列,以實現(xiàn)text-to-video和video-to-text任務。

一般做視頻分類需要大規(guī)模的有標簽數(shù)據(jù),數(shù)據(jù)收集比較貴,對應的標簽信息比較少,不足以表達很多信息。而且,一般會分割成幾秒的短視頻,而VideoBERT可以處理長視頻。
而無監(jiān)督的學習中,一般會使用一個靜態(tài)隨機變量表征視頻,然后RNN,VAE,GAN進行decode。而VideoBERT使用BERT模型,無需其他隱層隨機變量來表征visual token。

數(shù)據(jù):YouCook II dataset
輸入:對齊的文本token和視覺token
- 文本:經(jīng)過ASR的文本序列,使用off-the-shelf LSTM-based語言模型增加標點符號進行序列分割,再接BERT處理方案;
- 視覺:
2.1 視頻幀經(jīng)過ConvNet得到特征;
2.2 經(jīng)過S3D模型,average pooling后得到1024d的特征向量;
2.3 經(jīng)過hierarchical k-means進行聚類,vector quantization得到的visual words。
如何對齊文本和視覺:
- 如果ASR可行,根據(jù)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個可能不那么對齊的短序列,構(gòu)成一個長序列;
視頻:隨機下采樣1~5個視頻token,提高魯棒性,促進模型學習到長時動態(tài)信息。
預訓練任務
3種訓練:text-only、video-only和video-text。video-text在進行mask時,也是對齊的。意味著text的token被mask,video對應token也會被mask。
Loss:3種訓練方式加權(quán)求和。
實驗
- Zero-shot action classification
概率模型,預測被masked的verb或者noun信息; - Transfer learning for captioning
VideoBERT作為特征提取器,將視覺和文本token進行average和concat后,用到下游任務上。