BERT新轉變:面向視覺基礎進行預訓練| NeurIPS 2019論文解讀

AMiner學術頭條發表於2019-12-27

ViLBERT: Pretraining Task-Agnostic Visiolinguistic Representations for Vision-and-Language Tasks

論文作者:

Jiasen Lu, Dhruv Batra, Devi Parikh, Stefan Lee(佐治亞理工學院、俄勒岡州立大學、Facebook AI Research)

論文地址:

https://www.aminer.cn/pub/5db9297647c8f766461f745b/

論文程式碼:

https://github.com/jiasenlu/vilbert_beta

BERT新轉變:面向視覺基礎進行預訓練| NeurIPS 2019論文解讀

摘要

本文提出ViLBERT(Vision-and-Language BERT),該模型學習影像內容和自然語言的無任務偏好的聯合表徵。ViLBERT在BERT的基礎上擴充套件為多模態雙流模型,在各自的流中處理影像和文字輸入,這兩個流通過共注意力transformer層進行互動。該模型在Conceptual Captions資料集上進行預訓練,再將其遷移應用到多個視覺-語言任務:視覺問答,視覺常識推理,指示表達(referring expressions)和基於字幕的影像檢索。ViLBERT應用到下游任務時僅需對基礎架構進行少量新增。實驗結果表明本文的ViLBERT在4個下游任務中顯著優於面向特定任務的最先進模型。

ViLBERT代表了一種轉向:從將學習視覺和語言之間的基礎知識僅作為任務訓練的一部分,轉向將視覺基礎知識作為一種可預訓練和可遷移的能力。

介紹

視覺理解任務包括通過在影像、視訊甚至整個3D環境中生成或響應自然語言已經取得了穩步的進展。這些方法和對應的任務可以歸為"vision-and-language"。儘管人們普遍需要將自然語言和視覺刺激結合起來,即進行視覺基礎訓練,但用於vision-and-language任務的方法缺乏一個統一的基礎以提升這種能力。相反,最主要的策略是先基於其他大規模任務分別預訓練語言和視覺模型,然後將其作為具體任務訓練的一部分學習基礎知識。這種方案學習到的基礎知識並不牢靠,當視覺-語言資料有限或有偏時,模型泛化能力很差。

先預訓練再遷移的學習方案在計算機視覺自然語言處理中廣為應用。這種易用且表示能力強大的方案已經成為標配。對於vision-and-language任務來說使用這種方案當然也是必不可少的,與此同時考慮視覺和語言之間的關係也同等重要。比如即使狗品種分類的視覺表徵是完美的,但是當下遊vision-and-language模型無法將該視覺表徵與形如"小獵犬"或"牧羊人"這樣的近似短語進行關聯時,這種完美的視覺表徵也是近乎無用。因此,本文提出一種通用的視覺基礎模型,這種模型可以學習上述的這些聯絡,並將它們運用到多個vision-and-language任務中。換句話說,ViLBERT是面向視覺基礎的預訓練。

為學習視覺和語言的聯合表徵,本文參照了最近在監督學習方面取得的成果。在NLP領域的佼佼者如ELMo、BERT、GPT等,這些模型都取得了令人矚目的成果。本文通過類似的方法來學習視覺基礎知識,我們需要先確定一個視覺和語言能夠相互對應的資料集。本文選用的是Conceptual Captions資料集,該資料集大概包括330萬張影像,每張影像帶有弱關聯的描述標題。這些影像均來源於網路上帶有alt-text的影像。補充一點,所謂alt-text是在html語法中圖片的替代文字,當圖片失效或是無法顯示時,瀏覽器顯示會被文字替代。

本文提出的ViLBERT是一個能夠從視覺-語言資料集中學習到任務無關的視覺基礎知識的聯合模型。ViLBERT擴充套件了BERT模型以共同推理文字和影像。本文的關鍵創新點在於提出一種雙流機制,即分別面向視覺和語言的流。該雙流能夠在共注意力transformer層進行互動。該結構能夠適應每種模態的不同處理需求,並在不同表示深度上提供模態之間的互動。實驗結果表明,該結構優於單流統一模型。

在Conceptual Captions進行預訓練時涉及的目標函式

(1)給定輸入,預測被遮蔽的字和影像區域的語義;

(2)預測影像和文字是否語義匹配。

在預訓練之後引入4個vision-and-language 任務:

(1)視覺問答

(2)視覺常識推理

(3)指示表達;

(4)基於字幕的影像檢索

ViLBERT在上述4個任務上都取得了SOTA結果。這裡選用的基準是面向具體任務最先進模型(分別獨立預訓練視覺和語言模型),實驗結果表明ViLBERT在各個任務上都提升了2~10個百分點的精度。此外,ViLBERT針對這些任務的修改很簡單,所以該模型可以作為跨多個視覺和語言任務的視覺基礎。

方法

與BERT相關的基礎理論就不贅述了。這裡主要介紹ViLBERT對於BERT的改進。ViLBERT與BERT的對比見於Figure 1。ViLBERT修改BERT中query條件下的key-value注意力機制,將其發展成一個多模態共注意transformer模組。

BERT新轉變:面向視覺基礎進行預訓練| NeurIPS 2019論文解讀

Figure 1:本文基於transformer框架引入的一種新型共注意力機制。在多頭注意力中交換的key-value對,該結構使得vision-attended語言特徵能夠併入視覺表徵(反之亦然)。

(一)ViLBERT:聯合影像和文字表徵的BERT擴充

受BERT的啟發,可以發展出類似的模型並訓練出能夠從文字-影像對中學習到影像和文字的聯合表徵。具體到本文,我們考慮的是靜態影像及其對應描述文字的聯合表徵。

一種對BERT改動最小的簡單方法是:通過聚類簡單地將視覺輸入的空間離散化,將這些看得到的"token"與文字輸入完全一樣對待,然後預訓練一個BERT模型。這種框架有如下缺點:

(1)初始化的聚類可能造成錯誤離散化和丟失視覺細節;

(2)以相同的方式對待兩種模式的輸入,忽略了它們可能需要不同級別的處理。這其實是由於固有的複雜性或其輸入表徵的初始抽象級別所需要的。比如,影像區域之間的關係可能比句子中的單詞弱,而視覺特徵本身往往已經是一個非常深的網路的輸出;

(3)強制將預訓練的權重去適應大量額外的視覺"token"可能會破壞已經學習的BERT語言模型

本文提出一個雙流架構,分別對每種模態進行建模,然後通過一組基於注意力的互動將它們融合在一起。這種方法允許對每種模態使用可變的網路深度,並支援不同深度的跨模態連線。

ViLBERT的模型如Figure 2所示。該模型由分別作用於影像區域和文字段的2個平行BERT-style的模型組成。每個流都是由一系列的transformer blocks(TRM)和共注意力transformer層(Co-TRM)組成。其中Co-TRM是用以模態之間資訊的交換。需要注意的是,流之間的資訊交換是被限制於特定層的,所以,文字流在與視覺特徵進行交流之前有更多的處理。這也符合我們的直覺,所選擇的視覺特徵已經相對高階,與句子中的單詞相比,視覺特徵需要有限的上下文聚合。

BERT新轉變:面向視覺基礎進行預訓練| NeurIPS 2019論文解讀

Figure 2:ViLBERT由兩個平行的流組成,分別是視覺流(綠色)和語言流(紫色),這兩個流在共注意力transformer層進行互動。這種結構允許每個模態有不同的深度,並通過共注意力機制實現稀疏互動。虛線框下的乘數下標表示重複的層。

• 共注意力Transformer層:

本文引入的共注意力transformer層如Figure 1b所示。給定中間態的視覺表徵和語言表徵,該模組計算query、key和value矩陣(與標準的transformer block一樣)。但是,每個模態中的keys和values輸入到其他模態的多頭注意力block。因此,注意力block為每一種依賴於另一種模態產生注意池化(attention-pooled )特徵。這會在視覺流中表現為影像條件下的語言注意力,在語言流中表現為語言條件下的影像注意力。後者模仿了vision-and-language模型中常見的注意力機制。Transformer block的其餘部分與BERT一樣,包括與初始化表徵的殘差相加:產生一個多模態特性。一般來說,對vision-and-language的共同注意力並不是一個新概念(之前已有學者提出),現有工作表明類似的共注意Transformer結構在視覺問答任務是有效的。

• 影像表徵:

本文基於一個預訓練的目標檢測網路生成影像區域特徵及其視覺特徵。與文字中的詞不同,影像區域是天然無序的。為此本文使用了一個5維的向量對區域位置編碼,從而實現影像空間位置的編碼。這5個維度分別是歸一化後的bounding boxes的左上角和右下角的座標以及影像區域的覆蓋佔比。然後通過對映將其維數與視覺特徵的維數相匹配,並對它們進行求和。此外,將特定的IMG token作為影像區域序列的起始,並用IMG token最後的輸出表徵整個影像。換句話說,帶有空間位置編碼資訊的視覺特徵的均值池化表徵整個影像。

• 訓練任務和目標:

訓練ViLBERT時採用了2個預訓練的任務:

(1)遮蔽多模態建模

(2)預測多模態對齊

遮蔽多模態建模任務如Figure 3a所示:

BERT新轉變:面向視覺基礎進行預訓練| NeurIPS 2019論文解讀

Figure 3:在Conceptual Captions資料集上訓練ViLBERT,訓練過程使用兩個任務目標以學習視覺基礎。在學習遮蔽多模態中,模型需要根據帶遮蔽的輸入重建出被遮蔽掉的影像區域分類結果或詞。在預測多模態任務中,模型需要預測標題描述是否與影像匹配。

• 遮蔽多模態建模:

與標準BERT一樣,ViLBERT中詞和影像區域輸入的遮蔽佔比大概是15%,在給定剩餘輸入的情況下,對輸入進行重建。遮蔽影像區域的時候,90%時候是直接遮蔽,另外10%的時候保持不變。文字的遮蔽方式與BERT一樣。需要注意的是,本文並不直接預測被遮蔽掉的特徵值,而是預測對應影像區域在語義類別上的分佈。為能夠對此進行監督學習,本文采用用於特徵抽取的預訓練的目標探測模型的輸出分佈。訓練的目標是最小化這兩個分佈的KL散度。這種選擇反映了這樣一種概念,即語言通常只識別視覺內容的高階語義,不太可能重建精確的影像特徵。此外,應用迴歸損失可能會使其難以平衡遮蔽影像和文字輸入引起的損失。

• 預測多模態對齊:

多模態對齊任務如Figure 3b所示,其目標是預測影像-文字對是否匹配對齊,即本文是否描述了影像。以影像特徵序列的起始IMG token和文字序列的起始CLS token的輸出作為視覺和語言輸入的整體表徵。借用vision-and-language模型中另一種常見結構,將IMG token的輸出和CLS token的輸出進行element-wise product作為最終的總體表徵。再利用一個線性層預測影像和文字是否匹配。

實驗設定

(一)訓練ViLBERT

• 資料集:

本文使用Conceptual Captions資料集,該資料集原本是有330萬影像-標題對,但是由於部分連結失效,本文只使用能夠下載到的310萬的資料對。

• 實施細節:

本文用BERT_base模型對ViLBERT中的語言流進行初始化。該BERT模型基於BookCorpus和English Wikipedia進行預訓練。之所以選用BERT的base版主要是出於訓練時間的考慮。至於更強大的BERT的large版可能會進一步提高效能,這將在未來進行試驗。

使用基於Visual Genome資料集預訓練的Faster R-CNN模型抽取影像區域特徵。選用類別探測概率高於自信度閾值的區域,並保持10~36個的高分值的bounding boxe。視覺流中的Transformer和共注意力transformer blocks的隱含層大小為1024,注意力頭為8個。

(二)Vision-and-Language遷移任務

對預訓練ViLBERT用4個Vision-and-Language任務和一個診斷任務評測。這些任務具體分別是:

(1)視覺問答(VQA),使用VQA 2.0資料集;

(2)視覺常識推理(VCR),使用Visual Commonsense Reasoning (VCR)資料集;

(3)指示表達(referring expressions),所謂的指示表達是對給定的自然語言指代找到對應的影像區域。本文使用的是RefCOCO+資料集;

(4)基於字幕的影像檢索,使用Flickr30k資料集;

(5)零樣本的基於字幕的影像檢索。上述任務都是由特定下游資料集微調,在零樣本任務中,直接將預訓練的ViLBERT應用於Flickr30k資料集中的多模態對齊預測。

下游任務的微調策略其實很簡單,只需增加一層分類器。這與社群內為每個這些任務開發專門模型所做的重大努力形成鮮明的對比。

實驗結果與分析

(一)ViLBERT的基準模型

(1)Single-Stream。使用一個BERT架構處理多模態輸入,這意味著視覺輸入和文字輸入要共享引數。與ViLBERT相比,該模型無需改動BERT體系結構,從而顯著地提高了視覺處理的深度並提早了模式之間的互動。與該基準比較,以確定本文雙流體系結構的影響。該基準由於兩個流始終互動,所以無法快取任何表徵以提高效率。由於高計算成本,本文不在影像檢索和零樣本影像檢索任務中評估該基準模型。

(2)沒有使用預訓練的ViLBERT。需要注意的是,該基準仍然對語言流進行BERT的初始化,並使用與完整ViLBERT模型相同的Faster R-CNN模型進行影像區域的表徵。與此基準進行比較,以隔離偏好特定任務的基線模型的增益,這些基準模型可能是由於架構、語言初始化或視覺特性,而不是在Conceptual Captions資料集上預訓練所帶來的增益。

(二)上述下游任務的基準模型

(1)VQA:DFAF

(2)VCR:R2C

(3) RefCOCO+:MAttNet

(4)基於字幕的影像檢索:SCAN

具體實驗結果如 Table 1 所示。

BERT新轉變:面向視覺基礎進行預訓練| NeurIPS 2019論文解讀

基於Table 1 有以下重要發現:

(1)ViLBERT顯著優於singl-stream模型;

(2)預訓練能夠提升視覺語言表徵;

(3)在vision-and-language任務上使用ViLBERT+微調的方案十分強大。

總之,這些結果表明ViLBERT能夠學習視覺-語言之間的重要關係,而這種關係能夠在下游任務中被利用。

(三)視覺流深度的影響

在Table 2中對比了ViLBERT不同深度的遷移結果。

BERT新轉變:面向視覺基礎進行預訓練| NeurIPS 2019論文解讀

這裡的深度是指CO-TRM-TRM blocks(Figure 2中的虛線部分)的重複數量。可以發現,對於VQA和影像檢索任務更大的深度,效能單調增加,直到層深度為6。同樣,隨著深度的增加,零樣本影像檢索也會繼續取得顯著的提升。相比之下,VCR和RefCOCO+似乎更適合使用較淺的模型。

(四)大規模訓練資料的優點

從Conceptual Caption資料集中隨機取25%和50%的子集,並使用與上面相同的設定進行預訓練和finetune ViLBERT。可以看出準確性隨著資料量的增加而單調增長,這意味著ViLBERT可能會受益於更多的預訓練資料集。

(五)ViLBERT在預訓練過程中學到了什麼

為了解ViLBERT在基於Conceptual Caption資料集的預訓練中學到了什麼。用零樣本基於標題的影像檢索任務來評估。零樣本任務的效能(Table 1右)顯著低於有微調的模型(31.86 vs 52.20 R1)。對於沒有看到Flickr30k影像或標題該模型也能夠正常執行(31.86 vs 48.60 R1)。這表明ViLBERT在預訓練中學會了視覺和語言之間的語義對齊。

總結

本文面向影像和文字提出一個聯合模型,並在自動收集的大規模資料集上進行預訓練從而學習到視覺基礎知識。本文提出的ViLBERT中引入了一種新的雙流框架,該雙流框架中使用了共注意力transformer blocks。ViLBERT遷移到多個vision-and-language任務時超過了最先進水平。此外,將ViLBERT遷移到這些任務是簡單和容易實現:只需要為每個任務新增一個分類器。

• 未來工作:

未來要考慮將模型擴充套件到其他vision-and-language任務(包括那些生成式的任務)以及多工學習

相關文章