Datawhale干貨
作者:張義杰 單位:中國移動云能力中心
(相關(guān)資料圖)
前言
視覺-語言 (Vision-Language, VL) 是計算機視覺和自然語言處理這兩個研究領(lǐng)域之間形成的交叉領(lǐng)域,旨在賦予 AI 系統(tǒng)從多模態(tài)數(shù)據(jù)中學(xué)習(xí)有效信息的能力。受 NLP 預(yù)訓(xùn)練語言模型(如BERT\GPT等)的啟發(fā),視覺-語言預(yù)訓(xùn)練 (Vision-Language Pre-training, VLP) 逐漸受到關(guān)注,成為如今 VL 任務(wù)的核心訓(xùn)練范式。本文對 VLP 領(lǐng)域近期的綜述文章進行整理,回顧其最新的研究進展,旨在提供一份 VLP 入門指南。
什么是視覺-語言任務(wù)?
首先,我們需要知道視覺-語言任務(wù)是什么?顧名思義,視覺-語言任務(wù)指的是處理視覺和語言這兩種多模態(tài)信號輸入的任務(wù),根據(jù)歷史工作主要可以分為三類:
圖像-文本任務(wù)。這一類任務(wù)在 VL 研究中最重要并且也最廣泛,包含視覺問答、圖像描述、圖像-文本檢索等任務(wù)(如圖 1 中橙色部分)。另外圍繞這些任務(wù),若干其它的相關(guān)任務(wù)被提出。例如文本-圖像生成,它被看作是圖像描述的孿生任務(wù),模型需要根據(jù)輸入的文本生成高保真圖像。本文后續(xù)介紹的 VLP 模型主要以圖像-文本任務(wù)為主。視作 VL 問題的 CV 任務(wù)。傳統(tǒng)的 CV 領(lǐng)域中的圖像分類、目標檢測和分割任務(wù)等(如圖 1 中粉色部分)被看作是單純的計算機視覺問題。而隨著 CLIP 和 ALIGN 等多模態(tài)大模型的出現(xiàn),研究人員意識到語言監(jiān)督信號也可以在 CV 任務(wù)中發(fā)揮重要作用。具體做法是,首先利用從網(wǎng)絡(luò)上抓取的帶噪聲的大規(guī)模圖像-文本對數(shù)據(jù),從頭開始對視覺編碼器進行預(yù)訓(xùn)練。其次,不再將監(jiān)督信號(例如類別標簽)用作獨熱編碼向量,而是考慮標簽中所蘊含的語義信息,并將這些 CV 任務(wù)視作 VL 問題來解決。視頻-文本任務(wù)。除了靜態(tài)的圖像,視頻也是一種重要的視覺表現(xiàn)形式。那么自然,上述所有圖像-文本任務(wù)都有相應(yīng)的視頻-文本任務(wù),例如視頻字幕、視頻檢索和視頻問答任務(wù)等(如圖 1 中綠色部分)。與圖像相比,視頻輸入的特殊性要求系統(tǒng)不僅要捕獲單個視頻幀中的空間信息,還要捕獲視頻幀之間固有的時序依賴性。
圖 1:視覺-語言任務(wù)圖示
模型結(jié)構(gòu)
受預(yù)訓(xùn)練語言模型 (PLM) 的啟發(fā),以及 NLP 和 CV 領(lǐng)域越來越多地使用基于 Transformer 的統(tǒng)一架構(gòu)的趨勢,關(guān)于視覺-語言預(yù)訓(xùn)練的研究也受到越來越多的關(guān)注。VLP 主要通過在大規(guī)模數(shù)據(jù)上進行預(yù)訓(xùn)練來學(xué)習(xí)不同模態(tài)之間的語義對應(yīng)關(guān)系。例如,在圖像-文本預(yù)訓(xùn)練中,我們希望模型將文本中的“狗”與圖像中“狗”的樣子相關(guān)聯(lián)。在視頻-文本預(yù)訓(xùn)練中,我們期望模型將文本中的對象/動作映射到視頻中的對象/動作。為了實現(xiàn)這一目標,需要巧妙地設(shè)計 VLP 的模型架構(gòu),使模型有能力挖掘不同模態(tài)之間的關(guān)聯(lián)。
具體來講,給定圖像-文本對,VL 模型首先分別通過視覺編碼器和文本編碼器提取視覺特征 = {1, ··· , M} 和文本特征 = {1, ··· , N}。這里,M 是圖像的視覺特征數(shù)量,它可以是圖像區(qū)域/網(wǎng)格/圖像塊的數(shù)量,具體取決于所使用的特定的視覺編碼器,N 則是句子中子詞的數(shù)量。然后將視覺和文本特征送入多模態(tài)融合模塊來產(chǎn)生跨模態(tài)表示,然后在生成最終輸出之前可選擇地將其送入至解碼器。圖 2 展示了這個通用框架的結(jié)構(gòu)。在許多情況下,圖像/文本主干、多模態(tài)融合模塊和解碼器之間沒有明確的界限。一般將模型中僅以圖像/文本特征作為輸入的部分稱為相應(yīng)的視覺/文本編碼器,將模型中同時以圖像和文本特征作為輸入的部分稱為多模態(tài)融合模塊。除此之外,如果有額外的模塊將多模態(tài)特征作為輸入來生成輸出,則稱之為解碼器。
圖 2:基于Transformer的VL模型的通用框架
視覺編碼器
視覺編碼器主要分為三種類型:(i) 對象檢測器 (OD),(ii) 卷積神經(jīng)網(wǎng)絡(luò) (CNN),以及 (iii) Vision Transformer (ViT):
基于OD區(qū)域特征:使用 Object Detectors(例如 Faster R-CNN)識別圖像中的目標區(qū)域,獲取每個目標區(qū)域的特征表示。例如在圖 3 中,ViLBERT 通過提取邊界框及其視覺特征來生成圖像的區(qū)域特征,并與文本特征拼接輸入到主模型中。雖然區(qū)域特征是對象級的且語義豐富,但是提取區(qū)域特征往往十分耗時,并且訓(xùn)練好的 OD 通常在預(yù)訓(xùn)練期間被凍結(jié),這可能會限制 VLP 模型的容量?;贑NN網(wǎng)格特征:為了解決上述兩個問題,研究人員嘗試了不同的方法來以端到端的方式預(yù)訓(xùn)練 VL 模型。其中,PixelBERT 和 CLIP-ViL 提出將卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)格特征和文本一起直接輸入到到后續(xù)的 Transformer 中。此外,SOHO 首先使用已學(xué)習(xí)的視覺字典離散化網(wǎng)格特征,然后將離散化特征輸入到它們的跨模態(tài)模塊中。雖然直接使用網(wǎng)格特征會很有效,但 CNN 和 Transformer 所使用地優(yōu)化器通常不一致。例如,PixelBERT 和 CLIP-ViL 在 Transformer 使用 AdamW,而在 CNN 中使用 SGD?;赩iT 圖像塊特征:第三種編碼器類型來源于 Vision-Transformer,它首先將圖像切分成圖像塊,然后將其展平為向量并線性投影以獲得圖像塊的嵌入序列。同時,一個可學(xué)習(xí)的特殊標記 [CLS] 嵌入也被添加到序列中。這些圖像塊嵌入,與可學(xué)習(xí)的 1D 位置嵌入和潛在的圖像類型嵌入相加后,被饋送到多層的 Transformer 塊中以獲得最終的輸出圖像特征。隨著 ViT 的發(fā)展,這種視覺特征編碼方式逐漸成為主流,與前兩種方式相比它運行效率更高,不需要依賴預(yù)先訓(xùn)練好的 Object Detection 模型或前置的 CNN 特征提取模塊。
總之,無論使用什么視覺編碼器,輸入圖像都被表示為一組特征向量 = {1, ··· , M}。
圖 3:ViLBERT中的OD區(qū)域特征
文本編碼器
文本編碼器的處理方式遵循 BERT 和 RoBERTa 等預(yù)訓(xùn)練語言模型。如圖 4 所示,首先將輸入句子分割成子詞序列。然后在句子的開頭和結(jié)尾插入兩個特殊標記以生成輸入文本序列。在獲得文本嵌入之后,現(xiàn)有的工作要么將它們直接輸入給多模態(tài)融合模塊,要么在融合之前輸入給若干個文本信息處理層。對于前者,融合模塊通常使用 BERT 進行初始化,文本編碼器和多模態(tài)融合也因此作用在單個 BERT 模型中,在這種情況下,我們將文本編碼器視為詞嵌入層。在歷史的工作中,研究人員研究了使用 BERT、RoBERTa、ELECTRA、ALBERT 和 DeBERTa 等多種不同的模型進行文本編碼。簡而言之,無論使用什么文本編碼器,輸入文本都表示為一組特征向量 = {1, ··· , N}。
圖 4:文本編碼器輸入表示
多模態(tài)融合
多模態(tài)融合模塊旨在將編碼自不同模態(tài)的信息整合成一個穩(wěn)定的多模態(tài)表征。對于像 CLIP 和 ALIGN 這樣的雙編碼器模型,融合是通過兩個全局圖像和文本特征向量之間的點積來執(zhí)行的。對于融合編碼器,它以 = {1, ··· , M} 和 = {1, ··· , N} 作為輸入,并學(xué)習(xí)表示為 = {1, ··· , M} 和 = {1, ··· , N}。多模態(tài)融合模塊主要有兩類,即單流模式和雙流模式,也稱作 merged attention 和 co-attention,如圖 5 所示。
單流模式指的是將視覺和文本編碼特征組合在一起,然后輸入單個 Transformer 塊中,如圖 5(a) 所示。單流架構(gòu)通過合并注意力來融合多模態(tài)輸入,通常也被叫做 merged attention。單流架構(gòu)的參數(shù)效率更高,因為兩種模式都使用相同的參數(shù)集。雙流模式是指視覺和文本編碼特征沒有組合在一起,而是獨立輸入到兩個不同的 Transformer 塊,如圖 5(b) 所示。這兩個 Transformer 塊不共享參數(shù),而是通過交叉注意力實現(xiàn)跨模態(tài)交互,因此也被叫做 co-attention。
圖 5:多模態(tài)融合圖示
僅編碼器 vs. 編碼器-解碼器
大多數(shù) VLP 模型僅包含編碼器,其中跨模態(tài)表示直接輸入到基于 MLP 的輸出層來生成最終輸出。這種設(shè)計自然適合 VL 理解任務(wù),例如 VQA 和視覺推理。當用于圖像描述時,結(jié)構(gòu)類似的編碼器充當解碼器,通過使用因果掩碼逐個標記地生成輸出圖像描述文本。
最近,受到 NLP 領(lǐng)域中 T5 和 BART 的啟發(fā),VL-T5\SimVLM\OFA 等提出使用基于 Transformer 的編碼器-解碼器架構(gòu),其中跨模態(tài)表示首先被送入解碼器,然后送入輸出層。在這些模型中,解碼器同時關(guān)注編碼器表示和先前生成的標記,以自回歸地方式產(chǎn)生輸出。使用編碼器-解碼器架構(gòu)可以實現(xiàn)各種圖像-文本任務(wù)的統(tǒng)一和 VLP 模型的零樣本/少樣本學(xué)習(xí),并且也很自然地適合生成類的任務(wù)。圖 6 展示了僅編碼器和編碼器-解碼器架構(gòu)之間的說明性比較。
圖 6:僅編碼器 vs. 編碼器-解碼器
預(yù)訓(xùn)練目標
預(yù)訓(xùn)練目標指導(dǎo)模型如何學(xué)習(xí)視覺-語言的關(guān)聯(lián)信息。歷史工作中的主流預(yù)訓(xùn)練目標主要可以分為三大類:Masked Language Modeling (MLM)、Masked Vision Modeling (MVM) 和 Vision-Language Matching (VLM)。
Masked Language Modeling
MLM 源自于 NLP 領(lǐng)域,由于 BERT 將其改編為一種新穎的預(yù)訓(xùn)練任務(wù)而廣為人知。為了以視覺信息為條件對語言進行建模,VLP 模型中的 MLM 與預(yù)訓(xùn)練語言模型中的 MLM 類似,但它不僅通過剩下的未遮蔽文本標記,而且還通過視覺標記來預(yù)測被遮蔽的文本標記。根據(jù)經(jīng)驗,遵循 BERT 的 VLP 模型以 15% 的概率隨機遮蔽每個文本輸入標記,并在遮蔽的過程中 80% 的時間里使用特殊標記 [MASK] 替換被遮蔽的標記,10% 的時間使用隨機文本標記,還有 10% 的時間使用原始標記來進行遮蔽操作。其公式定義如下: