ViLBERT: Pretraining Task-Agnostic Visiolinguistic Representations for Vision-and-Language Tasks 論文作者: Jiasen Lu, Dhruv Batra, Devi Parikh, Stefan Lee(佐治亞理工學(xué)院、俄勒岡州立大學(xué)、Facebook AI Research) 論文地址: https://www./pub/5db9297647c8f766461f745b/ 論文代碼: https://github.com/jiasenlu/vilbert_beta 摘要本文提出ViLBERT(Vision-and-Language BERT),該模型學(xué)習(xí)圖像內(nèi)容和自然語言的無任務(wù)偏好的聯(lián)合表征。ViLBERT在BERT的基礎(chǔ)上擴(kuò)展為多模態(tài)雙流模型,在各自的流中處理圖像和文本輸入,這兩個流通過共注意力transformer層進(jìn)行交互。該模型在Conceptual Captions數(shù)據(jù)集上進(jìn)行預(yù)訓(xùn)練,再將其遷移應(yīng)用到多個視覺-語言任務(wù):視覺問答,視覺常識推理,指示表達(dá)(referring expressions)和基于字幕的圖像檢索。ViLBERT應(yīng)用到下游任務(wù)時僅需對基礎(chǔ)架構(gòu)進(jìn)行少量添加。實驗結(jié)果表明本文的ViLBERT在4個下游任務(wù)中顯著優(yōu)于面向特定任務(wù)的最先進(jìn)模型。 ViLBERT代表了一種轉(zhuǎn)向:從將學(xué)習(xí)視覺和語言之間的基礎(chǔ)知識僅作為任務(wù)訓(xùn)練的一部分,轉(zhuǎn)向?qū)⒁曈X基礎(chǔ)知識作為一種可預(yù)訓(xùn)練和可遷移的能力。 介紹視覺理解任務(wù)包括通過在圖像、視頻甚至整個3D環(huán)境中生成或響應(yīng)自然語言已經(jīng)取得了穩(wěn)步的進(jìn)展。這些方法和對應(yīng)的任務(wù)可以歸為"vision-and-language"。盡管人們普遍需要將自然語言和視覺刺激結(jié)合起來,即進(jìn)行視覺基礎(chǔ)訓(xùn)練,但用于vision-and-language任務(wù)的方法缺乏一個統(tǒng)一的基礎(chǔ)以提升這種能力。相反,最主要的策略是先基于其他大規(guī)模任務(wù)分別預(yù)訓(xùn)練語言和視覺模型,然后將其作為具體任務(wù)訓(xùn)練的一部分學(xué)習(xí)基礎(chǔ)知識。這種方案學(xué)習(xí)到的基礎(chǔ)知識并不牢靠,當(dāng)視覺-語言數(shù)據(jù)有限或有偏時,模型泛化能力很差。 先預(yù)訓(xùn)練再遷移的學(xué)習(xí)方案在計算機(jī)視覺和自然語言處理中廣為應(yīng)用。這種易用且表示能力強(qiáng)大的方案已經(jīng)成為標(biāo)配。對于vision-and-language任務(wù)來說使用這種方案當(dāng)然也是必不可少的,與此同時考慮視覺和語言之間的關(guān)系也同等重要。比如即使狗品種分類的視覺表征是完美的,但是當(dāng)下游vision-and-language模型無法將該視覺表征與形如"小獵犬"或"牧羊人"這樣的近似短語進(jìn)行關(guān)聯(lián)時,這種完美的視覺表征也是近乎無用。因此,本文提出一種通用的視覺基礎(chǔ)模型,這種模型可以學(xué)習(xí)上述的這些聯(lián)系,并將它們運用到多個vision-and-language任務(wù)中。換句話說,ViLBERT是面向視覺基礎(chǔ)的預(yù)訓(xùn)練。 為學(xué)習(xí)視覺和語言的聯(lián)合表征,本文參照了最近在自監(jiān)督學(xué)習(xí)方面取得的成果。在NLP領(lǐng)域的佼佼者如ELMo、BERT、GPT等,這些模型都取得了令人矚目的成果。本文通過類似的方法來學(xué)習(xí)視覺基礎(chǔ)知識,我們需要先確定一個視覺和語言能夠相互對應(yīng)的數(shù)據(jù)集。本文選用的是Conceptual Captions數(shù)據(jù)集,該數(shù)據(jù)集大概包括330萬張圖像,每張圖像帶有弱關(guān)聯(lián)的描述標(biāo)題。這些圖像均來源于網(wǎng)絡(luò)上帶有alt-text的圖像。補充一點,所謂alt-text是在html語法中圖片的替代文字,當(dāng)圖片失效或是無法顯示時,瀏覽器顯示會被文字替代。 本文提出的ViLBERT是一個能夠從視覺-語言數(shù)據(jù)集中學(xué)習(xí)到任務(wù)無關(guān)的視覺基礎(chǔ)知識的聯(lián)合模型。ViLBERT擴(kuò)展了BERT模型以共同推理文本和圖像。本文的關(guān)鍵創(chuàng)新點在于提出一種雙流機(jī)制,即分別面向視覺和語言的流。該雙流能夠在共注意力transformer層進(jìn)行交互。該結(jié)構(gòu)能夠適應(yīng)每種模態(tài)的不同處理需求,并在不同表示深度上提供模態(tài)之間的交互。實驗結(jié)果表明,該結(jié)構(gòu)優(yōu)于單流統(tǒng)一模型。 在Conceptual Captions進(jìn)行預(yù)訓(xùn)練時涉及的目標(biāo)函數(shù): (1)給定輸入,預(yù)測被遮蔽的字和圖像區(qū)域的語義; (2)預(yù)測圖像和文本是否語義匹配。 在預(yù)訓(xùn)練之后引入4個vision-and-language 任務(wù): (1)視覺問答; (2)視覺常識推理; (3)指示表達(dá); (4)基于字幕的圖像檢索。 ViLBERT在上述4個任務(wù)上都取得了SOTA結(jié)果。這里選用的基準(zhǔn)是面向具體任務(wù)最先進(jìn)模型(分別獨立預(yù)訓(xùn)練視覺和語言模型),實驗結(jié)果表明ViLBERT在各個任務(wù)上都提升了2~10個百分點的精度。此外,ViLBERT針對這些任務(wù)的修改很簡單,所以該模型可以作為跨多個視覺和語言任務(wù)的視覺基礎(chǔ)。 方法與BERT相關(guān)的基礎(chǔ)理論就不贅述了。這里主要介紹ViLBERT對于BERT的改進(jìn)。ViLBERT與BERT的對比見于Figure 1。ViLBERT修改BERT中query條件下的key-value注意力機(jī)制,將其發(fā)展成一個多模態(tài)共注意transformer模塊。 Figure 1:本文基于transformer框架引入的一種新型共注意力機(jī)制。在多頭注意力中交換的key-value對,該結(jié)構(gòu)使得vision-attended語言特征能夠并入視覺表征(反之亦然)。 (一)ViLBERT:聯(lián)合圖像和文本表征的BERT拓展受BERT的啟發(fā),可以發(fā)展出類似的模型并訓(xùn)練出能夠從文本-圖像對中學(xué)習(xí)到圖像和文本的聯(lián)合表征。具體到本文,我們考慮的是靜態(tài)圖像及其對應(yīng)描述文本的聯(lián)合表征。 一種對BERT改動最小的簡單方法是:通過聚類簡單地將視覺輸入的空間離散化,將這些看得到的"token"與文本輸入完全一樣對待,然后預(yù)訓(xùn)練一個BERT模型。這種框架有如下缺點: (1)初始化的聚類可能造成錯誤離散化和丟失視覺細(xì)節(jié); (2)以相同的方式對待兩種模式的輸入,忽略了它們可能需要不同級別的處理。這其實是由于固有的復(fù)雜性或其輸入表征的初始抽象級別所需要的。比如,圖像區(qū)域之間的關(guān)系可能比句子中的單詞弱,而視覺特征本身往往已經(jīng)是一個非常深的網(wǎng)絡(luò)的輸出; (3)強(qiáng)制將預(yù)訓(xùn)練的權(quán)重去適應(yīng)大量額外的視覺"token"可能會破壞已經(jīng)學(xué)習(xí)的BERT語言模型; 本文提出一個雙流架構(gòu),分別對每種模態(tài)進(jìn)行建模,然后通過一組基于注意力的交互將它們?nèi)诤显谝黄?/span>。這種方法允許對每種模態(tài)使用可變的網(wǎng)絡(luò)深度,并支持不同深度的跨模態(tài)連接。 ViLBERT的模型如Figure 2所示。該模型由分別作用于圖像區(qū)域和文本段的2個平行BERT-style的模型組成。每個流都是由一系列的transformer blocks(TRM)和共注意力transformer層(Co-TRM)組成。其中Co-TRM是用以模態(tài)之間信息的交換。需要注意的是,流之間的信息交換是被限制于特定層的,所以,文本流在與視覺特征進(jìn)行交流之前有更多的處理。這也符合我們的直覺,所選擇的視覺特征已經(jīng)相對高級,與句子中的單詞相比,視覺特征需要有限的上下文聚合。 Figure 2:ViLBERT由兩個平行的流組成,分別是視覺流(綠色)和語言流(紫色),這兩個流在共注意力transformer層進(jìn)行交互。這種結(jié)構(gòu)允許每個模態(tài)有不同的深度,并通過共注意力機(jī)制實現(xiàn)稀疏交互。虛線框下的乘數(shù)下標(biāo)表示重復(fù)的層。 · 共注意力Transformer層: 本文引入的共注意力transformer層如Figure 1b所示。給定中間態(tài)的視覺表征和語言表征,該模塊計算query、key和value矩陣(與標(biāo)準(zhǔn)的transformer block一樣)。但是,每個模態(tài)中的keys和values輸入到其他模態(tài)的多頭注意力block。因此,注意力block為每一種依賴于另一種模態(tài)產(chǎn)生注意池化(attention-pooled )特征。這會在視覺流中表現(xiàn)為圖像條件下的語言注意力,在語言流中表現(xiàn)為語言條件下的圖像注意力。后者模仿了vision-and-language模型中常見的注意力機(jī)制。Transformer block的其余部分與BERT一樣,包括與初始化表征的殘差相加:產(chǎn)生一個多模態(tài)特性。一般來說,對vision-and-language的共同注意力并不是一個新概念(之前已有學(xué)者提出),現(xiàn)有工作表明類似的共注意Transformer結(jié)構(gòu)在視覺問答任務(wù)是有效的。 · 圖像表征: 本文基于一個預(yù)訓(xùn)練的目標(biāo)檢測網(wǎng)絡(luò)生成圖像區(qū)域特征及其視覺特征。與文本中的詞不同,圖像區(qū)域是天然無序的。為此本文使用了一個5維的向量對區(qū)域位置編碼,從而實現(xiàn)圖像空間位置的編碼。這5個維度分別是歸一化后的bounding boxes的左上角和右下角的坐標(biāo)以及圖像區(qū)域的覆蓋占比。然后通過映射將其維數(shù)與視覺特征的維數(shù)相匹配,并對它們進(jìn)行求和。此外,將特定的IMG token作為圖像區(qū)域序列的起始,并用IMG token最后的輸出表征整個圖像。換句話說,帶有空間位置編碼信息的視覺特征的均值池化表征整個圖像。 · 訓(xùn)練任務(wù)和目標(biāo): 訓(xùn)練ViLBERT時采用了2個預(yù)訓(xùn)練的任務(wù): (1)遮蔽多模態(tài)建模 (2)預(yù)測多模態(tài)對齊 遮蔽多模態(tài)建模任務(wù)如Figure 3a所示: Figure 3:在Conceptual Captions數(shù)據(jù)集上訓(xùn)練ViLBERT,訓(xùn)練過程使用兩個任務(wù)目標(biāo)以學(xué)習(xí)視覺基礎(chǔ)。在學(xué)習(xí)遮蔽多模態(tài)中,模型需要根據(jù)帶遮蔽的輸入重建出被遮蔽掉的圖像區(qū)域分類結(jié)果或詞。在預(yù)測多模態(tài)任務(wù)中,模型需要預(yù)測標(biāo)題描述是否與圖像匹配。 · 遮蔽多模態(tài)建模: 與標(biāo)準(zhǔn)BERT一樣,ViLBERT中詞和圖像區(qū)域輸入的遮蔽占比大概是15%,在給定剩余輸入的情況下,對輸入進(jìn)行重建。遮蔽圖像區(qū)域的時候,90%時候是直接遮蔽,另外10%的時候保持不變。文本的遮蔽方式與BERT一樣。需要注意的是,本文并不直接預(yù)測被遮蔽掉的特征值,而是預(yù)測對應(yīng)圖像區(qū)域在語義類別上的分布。為能夠?qū)Υ诉M(jìn)行監(jiān)督學(xué)習(xí),本文采用用于特征抽取的預(yù)訓(xùn)練的目標(biāo)探測模型的輸出分布。訓(xùn)練的目標(biāo)是最小化這兩個分布的KL散度。這種選擇反映了這樣一種概念,即語言通常只識別視覺內(nèi)容的高級語義,不太可能重建精確的圖像特征。此外,應(yīng)用回歸損失可能會使其難以平衡遮蔽圖像和文本輸入引起的損失。 · 預(yù)測多模態(tài)對齊: 多模態(tài)對齊任務(wù)如Figure 3b所示,其目標(biāo)是預(yù)測圖像-文本對是否匹配對齊,即本文是否描述了圖像。以圖像特征序列的起始IMG token和文本序列的起始CLS token的輸出作為視覺和語言輸入的整體表征。借用vision-and-language模型中另一種常見結(jié)構(gòu),將IMG token的輸出和CLS token的輸出進(jìn)行element-wise product作為最終的總體表征。再利用一個線性層預(yù)測圖像和文本是否匹配。 實驗設(shè)置(一)訓(xùn)練ViLBERT· 數(shù)據(jù)集: 本文使用Conceptual Captions數(shù)據(jù)集,該數(shù)據(jù)集原本是有330萬圖像-標(biāo)題對,但是由于部分鏈接失效,本文只使用能夠下載到的310萬的數(shù)據(jù)對。 · 實施細(xì)節(jié): 本文用BERT_base模型對ViLBERT中的語言流進(jìn)行初始化。該BERT模型基于BookCorpus和English Wikipedia進(jìn)行預(yù)訓(xùn)練。之所以選用BERT的base版主要是出于訓(xùn)練時間的考慮。至于更強(qiáng)大的BERT的large版可能會進(jìn)一步提高性能,這將在未來進(jìn)行試驗。 使用基于Visual Genome數(shù)據(jù)集預(yù)訓(xùn)練的Faster R-CNN模型抽取圖像區(qū)域特征。選用類別探測概率高于自信度閾值的區(qū)域,并保持10~36個的高分值的bounding boxe。視覺流中的Transformer和共注意力transformer blocks的隱含層大小為1024,注意力頭為8個。 (二)Vision-and-Language遷移任務(wù)對預(yù)訓(xùn)練ViLBERT用4個Vision-and-Language任務(wù)和一個診斷任務(wù)評測。這些任務(wù)具體分別是: (1)視覺問答(VQA),使用VQA 2.0數(shù)據(jù)集; (2)視覺常識推理(VCR),使用Visual Commonsense Reasoning (VCR)數(shù)據(jù)集; (3)指示表達(dá)(referring expressions),所謂的指示表達(dá)是對給定的自然語言指代找到對應(yīng)的圖像區(qū)域。本文使用的是RefCOCO+數(shù)據(jù)集; (4)基于字幕的圖像檢索,使用Flickr30k數(shù)據(jù)集; (5)零樣本的基于字幕的圖像檢索。上述任務(wù)都是由特定下游數(shù)據(jù)集微調(diào),在零樣本任務(wù)中,直接將預(yù)訓(xùn)練的ViLBERT應(yīng)用于Flickr30k數(shù)據(jù)集中的多模態(tài)對齊預(yù)測。 下游任務(wù)的微調(diào)策略其實很簡單,只需增加一層分類器。這與社區(qū)內(nèi)為每個這些任務(wù)開發(fā)專門模型所做的重大努力形成鮮明的對比。 實驗結(jié)果與分析(一)ViLBERT的基準(zhǔn)模型 (1)Single-Stream。使用一個BERT架構(gòu)處理多模態(tài)輸入,這意味著視覺輸入和文本輸入要共享參數(shù)。與ViLBERT相比,該模型無需改動BERT體系結(jié)構(gòu),從而顯著地提高了視覺處理的深度并提早了模式之間的交互。與該基準(zhǔn)比較,以確定本文雙流體系結(jié)構(gòu)的影響。該基準(zhǔn)由于兩個流始終交互,所以無法緩存任何表征以提高效率。由于高計算成本,本文不在圖像檢索和零樣本圖像檢索任務(wù)中評估該基準(zhǔn)模型。 (2)沒有使用預(yù)訓(xùn)練的ViLBERT。需要注意的是,該基準(zhǔn)仍然對語言流進(jìn)行BERT的初始化,并使用與完整ViLBERT模型相同的Faster R-CNN模型進(jìn)行圖像區(qū)域的表征。與此基準(zhǔn)進(jìn)行比較,以隔離偏好特定任務(wù)的基線模型的增益,這些基準(zhǔn)模型可能是由于架構(gòu)、語言初始化或視覺特性,而不是在Conceptual Captions數(shù)據(jù)集上預(yù)訓(xùn)練所帶來的增益。 (二)上述下游任務(wù)的基準(zhǔn)模型 (1)VQA:DFAF (2)VCR:R2C (3) RefCOCO+:MAttNet (4)基于字幕的圖像檢索:SCAN 具體實驗結(jié)果如 Table 1 所示。 基于Table 1 有以下重要發(fā)現(xiàn): (1)ViLBERT顯著優(yōu)于singl-stream模型; (2)預(yù)訓(xùn)練能夠提升視覺語言表征; (3)在vision-and-language任務(wù)上使用ViLBERT+微調(diào)的方案十分強(qiáng)大。 總之,這些結(jié)果表明ViLBERT能夠?qū)W習(xí)視覺-語言之間的重要關(guān)系,而這種關(guān)系能夠在下游任務(wù)中被利用。 (三)視覺流深度的影響 在Table 2中對比了ViLBERT不同深度的遷移結(jié)果。 這里的深度是指CO-TRM-TRM blocks(Figure 2中的虛線部分)的重復(fù)數(shù)量??梢园l(fā)現(xiàn),對于VQA和圖像檢索任務(wù)更大的深度,性能單調(diào)增加,直到層深度為6。同樣,隨著深度的增加,零樣本圖像檢索也會繼續(xù)取得顯著的提升。相比之下,VCR和RefCOCO+似乎更適合使用較淺的模型。 (四)大規(guī)模訓(xùn)練數(shù)據(jù)的優(yōu)點 從Conceptual Caption數(shù)據(jù)集中隨機(jī)取25%和50%的子集,并使用與上面相同的設(shè)置進(jìn)行預(yù)訓(xùn)練和finetune ViLBERT。可以看出準(zhǔn)確性隨著數(shù)據(jù)量的增加而單調(diào)增長,這意味著ViLBERT可能會受益于更多的預(yù)訓(xùn)練數(shù)據(jù)集。 (五)ViLBERT在預(yù)訓(xùn)練過程中學(xué)到了什么 為了解ViLBERT在基于Conceptual Caption數(shù)據(jù)集的預(yù)訓(xùn)練中學(xué)到了什么。用零樣本基于標(biāo)題的圖像檢索任務(wù)來評估。零樣本任務(wù)的性能(Table 1右)顯著低于有微調(diào)的模型(31.86 vs 52.20 R1)。對于沒有看到Flickr30k圖像或標(biāo)題該模型也能夠正常執(zhí)行(31.86 vs 48.60 R1)。這表明ViLBERT在預(yù)訓(xùn)練中學(xué)會了視覺和語言之間的語義對齊。 總結(jié)本文面向圖像和文本提出一個聯(lián)合模型,并在自動收集的大規(guī)模數(shù)據(jù)集上進(jìn)行預(yù)訓(xùn)練從而學(xué)習(xí)到視覺基礎(chǔ)知識。本文提出的ViLBERT中引入了一種新的雙流框架,該雙流框架中使用了共注意力transformer blocks。ViLBERT遷移到多個vision-and-language任務(wù)時超過了最先進(jìn)水平。此外,將ViLBERT遷移到這些任務(wù)是簡單和容易實現(xiàn):只需要為每個任務(wù)添加一個分類器。 · 未來工作: 未來要考慮將模型擴(kuò)展到其他vision-and-language任務(wù)(包括那些生成式的任務(wù))以及多任務(wù)學(xué)習(xí)。 作者| 劉杰鵬(開源股份) 排版| 學(xué)術(shù)菠菜 校對| 蕓仔 青青子衿 責(zé)編| 學(xué)術(shù)渣 優(yōu)學(xué)術(shù) |
|