从多篇2021年顶会论文看多模态预训练模型最新研究进展
?PaperWeekly 原創 ·?作者 | 小馬
單位 | FightingCV公眾號運營者
研究方向 | 計算機視覺
背景
1.1.什么是預訓練
目前隨著數據量爆炸式的增長,靠人工去標注更多數據是非常昂貴,并且也不太現實的。因此預訓練的方式就出現了,也逐漸成為了一種主流的方法。那到底什么是預訓練呢?簡單地說,預訓練就是:“使用盡可能多的訓練數據,從中提取出盡可能多的共性特征,從而能讓模型對特定任務的學習負擔變輕。”
預訓練將學習分成了兩步:
1)首先將大量低成本收集的訓練數據放在一起,經過某種預訓方法去學習其中的共性知識 ;
2)然后,再使用相關特定域的少量標注數據進行微調,模型就可以從共性知識出發,學習這些特定領域數據的特性知識 。
舉個例子,如上圖所示,比如我們要學習“英文法律文書關鍵詞提取”這個任務,最直接的方法就是 A 中的學習步驟一樣,直接從這些已經標注好的英文法律文書關鍵詞的數據集上進行學習,這也就是深度學習里面最常見的一種學習方法——監督學習 ;還有一種方法就是,我們先在大量不需要標注的英文資料和法律資料上進行學習,然后再在標注好的“英文法律文書關鍵詞”數據集上進行學習,由于我們在學習大量英文資料和法律資料的時候已經具備了一定的知識基礎,所以在學習特定任務的時候就會有更高的效率,這就是“預訓練+微調”的思路。通常情況下,“預訓練+微調”的方法能夠比傳統監督學習的方法具有更快的擬合速度和更高的性能上限 。
1.2 NLP 單模態預訓練
在多模態預訓練模型出現之前,預訓練首先是在 NLP 中出現的,上圖展示了 NLP 任務中預訓練近幾年的發展。因為過去幾年,文字數據是非常多的,所以不少研究者爬取了大規模的本文數據,基于這些大規模的文本數據,用一些簡單的預訓練任務進行預訓練,然后在下游任務上進行微調,實現了非常好的效果。
下面簡單的介紹一個 NLP 預訓練中比較經典的模型——BERT:
Token Embedding:對輸入的句子采用 WordPiece embeddings 之后的結果。
Segment Embedding:相鄰句子采用不同的標志分隔,形如 111111111100000011111100000。
Position Embedding:Transformer 中的絕對位置編碼,賦予句子中每個單詞位置信息。
BERT 的結構如上圖所示,首先就是將三類 embedding 的結果進行相加得到輸入,然后利用基于 Transformer 的結構對輸入的特征進行建模。在預訓練過程中,主要執行兩個任務:
1)Mask LM :在選擇 mask 的 15% 的詞當中,80% 情況下使用 mask 掉這個詞,10% 情況下采用一個任意詞替換,剩余 10% 情況下保持原詞匯不變。MLM 的任務就是去預測這些被 mask 的詞,這個任務讓模型學習了單詞之間的建模 。
2)NSP (Next Sentence Prediction ) :它將訓練語料分為兩類,一是將 50% 語料構建成正常語序的句子對,比如對于 A-B 句子對,B 就是 A 的實際下一個句子,那么標記為 isnext;二是將 50% 語料構建成非正常語序句子對,B 是來自語料庫的隨機句子,標記為 notnext。然后模型預測 B 到底是不是 A 句子的下一個句子,使模型具有句子級別的識別能力 。
通過這兩個預訓練任務,模型可以學習到語言領域上的一些通用知識,因此可以促進 NLP 領域下游任務的訓練。
1.3?CV 單模態預訓練
CV 領域中,和“微調+預訓練”模式比較接近的方法,應該就是對比學習。對比學習同樣用的是沒有標注的數據,也就是說數據集里只有圖片而沒有標簽。對比學習的目標是學習一個編碼器,此編碼器對同類數據進行相似的編碼,并使不同類的數據的編碼結果盡可能的不同 。也就是說對比學習本質上其實就是用了聚類的思想:縮小與正樣本間的距離,擴大與負樣本間的距離 。如下面的公式所示:
其中 ? 代表樣本之間的距離。
現在就能把問題轉換成了,如何構建正負樣本的問題。如上圖所示,大多數都是通過數據增強的方法來創建正負樣本的,即,同一張圖片進行不同數據增強方法得到樣本就是正樣本,不同圖片數據增強得到的樣本就是負樣本,然后根據上面聚類的思想來進行訓練。因此,大部分對比學習的 pipeline 都如下圖所示:
1.4?多模態預訓練
在多模態領域中,由于高質量的多模態標注數據較少,所以這幾年也出現了基于 Transformer 結構的多模態預訓練模型,通過海量無標注數據進行預訓練,然后使用少量的標注數據進行微調即可。
多模態預訓練模型能夠通過在大規模數據上的預訓練學到不同模態之間的語義對應關系,比如對齊文本形式的“狗”和圖片中的“狗”的語義信息。
目前的多模態預訓練模型按照網絡的結構分類,大致可以分為兩類,第一類為單流(single-stream)模型 ,第二類為雙流(two-stream)模型 。如上圖所示,單流模型中,視覺特征和文本特征一開始就 concat 在一起,然后直接輸入到 Encoder 中;雙流模型就是將視覺特征和文本特征首先在兩個獨立的 Encoder 中進行編碼,然后再輸入到 cross attention 進行多模態特征的融合。
預訓練任務
多模態預訓練的任務還是比較多的,也有不少文章會針對特定的 motivation 來提出精心設計的預訓練任務。這里介紹幾個比較常見的多模態預訓練任務。
2.1?MLM 預訓練任務
在 Masked Language Modeling(MLM)預訓練任務中,需要在 sentence tokens 中隨機 MASK 掉一些 token,然后模型基于其他的本文 token 和所有的圖像 token 來預測這些被 mask 掉的 token。
2.2?MRM 預訓練任務 (MRC)
在 Masked Region Classification(MRC)預訓練任務中,需要在 region token 中隨機 mask 掉一些 token,然后根據其他的圖片 token 和所有的文本 token 來預測這些被 mask 的 token。具體來說就是,每個 region 都會有 Faster R-CNN 得到一個 label,模型需要預測 mask token 的類別,使之和 Faster R-CNN 的 label 相同。
2.3?MRM 預訓練任務 (MRC-KL )
在 Masked Region Classification-KL Divergence(MRC-KL)預訓練任務中,同樣是隨機 mask region token,但是不同的這里不是做分類任務,而是需要計算 Faster R-CNN 特征和 Mask region 的分布差異,使得 Mask region 的分布和 Faster R-CNN 特征的分布盡可能相似,所以損失函數用的是 KL 散度。
2.4?ITM 預訓練任務
Image-TextMatching(ITM)中,需要對輸入的 Image-Text Pair 隨機替換 Image 或者 Text,最后預測輸入的 Image 和 Text 是否有對應關系,所以這是一個二分類的問題。
多模態下游任務
3.1?Visual Question Answering
VQA 就是對于一個圖片回答圖片內容相關的問題。將圖片和問題輸入到模型中,輸出是答案的分布,取概率最大的答案為預測答案。
3.2?Visual Entailment
在 Visual Entailment 中,Image 是前提,Text 是假設,模型的目標是預測 Text 是不是“Entailment Image”,一共有三中 label,分別是 Entailment、Neutral 和 Contradiction。
在 pipeline 中,我們將 Image 和 Text 輸入到模型中,輸出是三個 label 中的一個作為預測分類。
3.3?Natural Language for Visual Reasoning
NLVR(Natural Language for Visual Reasoning)任務中,需要同時輸入兩張 Image 和一個描述,輸出是描述與 Image 的對應關系是否一致,label 只有兩種(true/false)。
在 pipeline 中,我們將 Images 和 Text 輸入到模型中,輸出是兩個 label 中的一個作為預測分類。
3.4?Visual Commonsense Reasoning
Visual Commonsense Reasoning 中,任務是以選擇題形式存在的,對于一個問題有四個備選答案,模型必須從四個答案中選擇出一個答案,然后再從四個備選理由中選出選擇這個答案的理由。
在訓練的過程中,我們將問題和四個備選答案連接到一起再分別與圖片輸入到模型中,輸出為四個得分,得分最高的為預測答案。選擇理由是過程也是類似。
3.5?Referring Expression Comprehension
Referring Expression Comprehension 任務中,輸入是一個句子,模型要在圖片中圈出對應的 region。
對于這個任務,我們可以對每一個 region 都輸出一個 score,score 最高的 region 作為預測 region。
3.6?Image-Text Retrieval
在 Image-Text Retrieval 任務中,就是給定一個模態的指定樣本,在另一個模態的 DataBase 中找到對應的樣本。
這個任務 Image-Text Matching 任務非常相似,所以在 fine-tune 的過程中就是選擇 positive pair 和 negative pair 的方式來訓練模型。
2021 多模態預訓練工作
4.1 SOHO—CVPR 2021 Oral
4.1.1?論文地址
論文標題:
Seeing Out of tHe bOx: End-to-End Pre-training for Vision-Language Representation Learning
收錄會議:
CVPR 2021 Oral
論文鏈接:
https://arxiv.org/pdf/2104.03135.pdf
代碼鏈接:
https://github.com/researchmm/soho
4.1.2?Motivation
使用 Faster R-CNN 提取的 region 特征會存在一些缺點:
1)忽略檢測框外的上下文信息;
2)提取的視覺特定會被局限在目標檢測器預定義的類別中;
3)目標檢測器依賴大規模標注數據,并且存在質量低、噪聲大等問題。
因此,作者基于 grid 特征提出了一個預訓練的模型 SOHO。
4.1.3?方法
SOHO 是一個雙流的預訓練模型,預訓練包括 ITM、MLM、MVM。這篇文章的重點是提出了一個視覺字典的概念,因為圖片的像素特征非常多樣,增加了模型學習的難度。因此作者提出了視覺字典 ,將每個 grid 的特征和視覺字典中的特征進行對應,相當于把每個 grid 的低級語義映射到了視覺字典中的高級語義,從而降低了優化的難度。在訓練過程中,同時優化視覺字典和模型參數。
4.2 ViLT—ICML 2021
4.2.1?論文地址
論文標題:
ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision?
收錄會議:
ICML 2021
論文鏈接:
https://arxiv.org/abs/2102.03334
代碼鏈接:
https://github.com/dandelin/vilt
4.2.2?Motivation
作者發現基于 Region 特征的預訓練模型,98% 以上的時間都花在了提取視覺特征上;基于用 ResNet 提取的 grid 特征,75% 的時間都花在了提取視覺特征上。因此,作者希望用一種非常簡單的方式來進行視覺特征的提取,從而來減少這個 overhead。
4.2.3?方法
所以作者采用了 ViT 的 patch embedding 的方式來提取視覺特征,并且模型用 ViT 預訓練好的參數進行初始化。此外,由于是直接對原圖進行 embedding 的,所以作者在訓練的時候也用到數據增強的方法來提高性能。
4.3?VinVL—CVPR 2021
4.3.1?論文地址
論文標題:
VinVL: Revisiting Visual Representations in Vision-Language Models????????????????????????????????????
收錄會議:
CVPR 2021
論文鏈接:
https://arxiv.org/abs/2101.00529
代碼鏈接:
https://github.com/pzzhang/VinVL
4.3.2?Motivation
與 ViLT 不同,這篇文章認為目前預訓練模型的瓶頸在于,目標檢測器提取的特征不夠好。如上圖所示,左邊是 BUTD 的檢測結果,右圖是本文提出的檢測器的檢測結果。作者通過在更大數據集上訓練更好的目標檢測器,并用該檢測器提取特征,來提升了預訓練模型的性能。
4.3.3?方法
原來的 BUTD 的目標檢測器就是在 VG 數據集上訓練,為了能夠獲得語義更加豐富的特征。作者將現有的四個目標數據集進行了合并,獲得了一個信息量、數據量更大的目標檢測數據集,并在這個數據集上訓練目標檢測器。然后基于這個模型提取的視覺特征來進行多模態預訓練,從而提升了模型的性能。
4.4?ALIGN—ICML 2021
4.4.1?論文地址
論文標題:
Scaling Up Visual and Vision-Language Representation Learning With Noisy Text Supervision
收錄會議:
ICML 2021
論文鏈接:
https://arxiv.org/abs/2102.05918
4.4.2 Motivation
目前多模態預訓練模型的數據集大多是圖片-文本對,但是這些本文數據對通常是需要人工標注或者在網上爬取之后進行人工的篩選,這使得目前這類數據集中數據量的大小也就在 1000 萬左右。因此,在這篇文章中,作者在網上爬取了大量圖片,然后通過簡單的機器篩選,剩下 10 億個有噪聲的圖文對來進行訓練,從而提升模型的性能。
4.4.3?方法
作者采用了雙編碼器的結果對圖片和文本分別進行編碼,然后基于對比學習的損失函數來學習圖文對是否匹配,從而在圖文匹配任務上達到了 SOTA 的性能。
4.5?E2E-VLP—ACL 2021
4.5.1?論文地址
論文標題:
E2E-VLP: End-to-End Vision-Language Pre-training Enhanced by Visual Learning
收錄會議:
ACL 2021
論文鏈接:
https://arxiv.org/abs/2106.01804
4.5.2?Motivation
目標檢測器得到 region 特征會存在一定的局限性,比如目標檢測的知識受限、目標檢測階段非常耗時。因此,在本文中作者采用了一個端到端的模型“Backbone+Transformer”來進行預訓練,從而避免這些缺點。但是有一個問題是,backbone 提取的 grid 特征無法獲得對象級別的信息,因此作者在本文中提出了兩個額外的預訓練任務來解決這一個問題。
4.5.3?方法
如上圖所示,除了經典的 MLM 和 ITM 預訓練任務之后,作者還在 Encoder 后面采用了一個 Decoder 來執行兩個額外的預訓練任務——object detection 和 image captioning。
對于目標檢測,作者采用了 DETR 的方式,最小化 Decoder 生成結果和 Faster R-CNN 的生成結果之間的損失,這個預訓練任務可以使模型進行對象級別信息的感知;對于 Image Captioning,也就是最小化生成句子和 ground truth 之間的損失,這個預訓練任務可以促進模型對視覺信息和文本信息的對齊。
4.6 KD-VLP
4.6.1?論文地址
論文標題:
KD-VLP: Improving End-to-End Vision-and-Language Pretraining with Object Knowledge Distillation
論文鏈接:
https://arxiv.org/abs/2109.10504
4.6.2?Motivation
這篇文章的 Motivation 和 E2E-VLP 一樣,也是為了解決端到端模型中的視覺 grid 特征,沒法捕獲對象級信息的問題。這篇文章的方法采用了知識蒸餾的思想,將目標檢測的信息融合到預訓練任務之中。
4.6.3?方法
如上圖所示,除了常用 MLM 和 ITM 預訓練任務之后,作者還加了兩個額外的預訓練任務 OMVM 和 PRA 任務。
OMVM 任務就是每次采樣一個對象,然后根據目標檢測的區域信息,取出 Transformer 的特征中對應區域的特征并進行 avgpool,然后 OMVM 任務需要執行兩個子任務:一個是通過回歸,重建被 mask 之前的特征;另一個是分類,預測 mask 區域中目標的類別。這個任務能夠幫助模型學習對象級別的信息。
PRA 的任務就是最小化“區域-標簽”和“文本短語-標簽”的 KL 散度。這個任務能夠幫助模型學習對象級別跨模態的對齊。
4.7?MURAL—EMNLP 2021
4.7.1?論文地址
論文標題:
MURAL: Multimodal, Multitask Retrieval Across Languages
收錄會議:
EMNLP 2021
論文鏈接:
https://arxiv.org/abs/2109.05125
4.7.2?Motivation
目前的多模態任務大多都是基于英語的,本文希望在同時執行多模態和多語言的任務,因此作者將多模態和多語言任務同時放到了同一個模型中。此外,多模態多語言數據集里的語言數量往往非常有限,因此,作者還加了基于維基百科的多語言數據集來提升模型進行多語言多模態任務的能力。
4.7.3?方法
如上圖所示,作者進行了兩個對比學習的任務,即圖文對的匹配和多語言對的匹配,同時不同語言的文本編碼進行了參數共享,使得模型能夠適應多語言的任務。作者在預訓練過程中同時訓練這兩個任務,使得模型能夠適應多模態、多語言的場景。
總結
本文簡要介紹了 CV、NLP、多模態預訓練的一些基礎知識,以及 2021 年一些最新的多模態預訓練工作的核心思想。多模態預訓練模型能夠通過預訓練任務,在大規模容易獲得多模態數據中學習一些共性知識,然后在下游任務中基于特定數據集、特定任務進行微調,學習特性知識,從而達到比直接學習下游任務更好的效果。
目前,多模態預訓練模型的進步和研究主要來自三個方面:
1.?基于更好的預訓練任務進行預訓練 。因為預訓練階段學習的是一些模型的共性知識,所以預訓練任務最好是基于更少的任務假設,來挖掘多模態數據共有的一些聯系;
2. 基于更大規模的數據集進行預訓練 。預訓練的數據量越大,模型就能夠學習更多樣本之間的聯系,學習更加通用的共性知識,從而提高模型的泛化能力。
3.?基于參數量更大的模型進行預訓練 。隨著預訓練數據量的增加,一個簡單的模型往往不能學習到大量數據集的知識,因此,一個參數量更多、建模能力更強的模型對于學習大規模數據的共性知識也是必要的。
特別鳴謝
感謝 TCCI 天橋腦科學研究院對于 PaperWeekly 的支持。TCCI 關注大腦探知、大腦功能和大腦健康。
參考文獻
https://zhuanlan.zhihu.com/p/159620066
https://zhuanlan.zhihu.com/p/76912493
Pre-trained Models for Natural Language Processing: A Survey
https://zhuanlan.zhihu.com/p/149904753
https://www.jianshu.com/p/801b472882b2
https://zhuanlan.zhihu.com/p/346686467
https://zhuanlan.zhihu.com/p/410442591
https://zhuanlan.zhihu.com/p/412126626
https://zhuanlan.zhihu.com/p/402997033
https://zhuanlan.zhihu.com/p/114069179
https://mp.weixin.qq.com/s/ondgiFryYqB6-sf-v4pLXQ
更多閱讀
#投 稿?通 道#
?讓你的文字被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學術熱點剖析、科研心得或競賽經驗講解等。我們的目的只有一個,讓知識真正流動起來。
📝?稿件基本要求:
? 文章確系個人原創作品,未曾在公開渠道發表,如為其他平臺已發表或待發表的文章,請明確標注?
? 稿件建議以?markdown?格式撰寫,文中配圖以附件形式發送,要求圖片清晰,無版權問題
? PaperWeekly 尊重原作者署名權,并將為每篇被采納的原創首發稿件,提供業內具有競爭力稿酬,具體依據文章閱讀量和文章質量階梯制結算
📬?投稿通道:
? 投稿郵箱:hr@paperweekly.site?
? 來稿請備注即時聯系方式(微信),以便我們在稿件選用的第一時間聯系作者
? 您也可以直接添加小編微信(pwbot02)快速投稿,備注:姓名-投稿
△長按添加PaperWeekly小編
🔍
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
·
總結
以上是生活随笔為你收集整理的从多篇2021年顶会论文看多模态预训练模型最新研究进展的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2018雅加达亚运会电竞项目时间 中国队
- 下一篇: 开通微众银行有风险吗