位元組 AI Lab 提出多模態模型:X-VLM,學習視覺和語言多粒度對齊

寫在前面

視覺語言預訓練提高了許多下游視覺語言任務的效能,例如:圖文檢索、基於圖片的問答或推理。有朋友要問了,除了在公開的學術任務上使用更大的模型/更多的資料/技巧把指標刷得很高,

多模態預訓練模型有什麼實際應用呢?

位元組 AI Lab 提出多模態模型:X-VLM,學習視覺和語言多粒度對齊

為此,位元組跳動 AI Lab Research 團隊提出了X-VLM,首次提出學習多粒度的視覺和語言對齊。實驗證明,這種預訓練方法十分高效,模型規模無需很大,預訓練資料無需很多, 僅216M引數量的X-VLM就能在廣泛的多模態任務上獲得了十分優秀的表現,例如:影象文字檢索、基於圖片的問答或推理、視覺定位、圖片描述生成。目前,X-VLM 在位元組跳動的真實應用場景上超過了業界常用的多個模型,完成了上線,服務於如今日頭條等業務。相關論文已被ICML 2022接收。

位元組 AI Lab 提出多模態模型:X-VLM,學習視覺和語言多粒度對齊

論文:https://arxiv。org/abs/2111。08276

程式碼:https://github。com/zengyan-97/X-VLM

比如,

X-VLM 學到了多粒度的視覺和語言對齊

,能為圖片生成更正確的描述物體和物體間關係的句子,這項能力被應用到了位元組跳動的公益專案上。有視覺障礙的趙先生常用今日頭條瞭解時事新聞,他一直有個期待:“希望和普通人一樣‘看’到全部資訊內容。” 今日頭條上超過三分之二的資訊內容帶有圖片,為了解決視障人士的讀圖難題,今日頭條App最近應用了 X-VLM 的生成能力,可以自動識別圖片併為它們配上描述。

位元組 AI Lab 提出多模態模型:X-VLM,學習視覺和語言多粒度對齊

為了讓他們“看”見每張圖片,我們做了個小改進

此外,X-VLM的理解和生成能力還被使用在大力智慧學習燈的自動批改功能上。下圖展示了補全短語題型以及模型預測的結果:

位元組 AI Lab 提出多模態模型:X-VLM,學習視覺和語言多粒度對齊

搭配了自動解題功能的大力智慧學習燈廣受家長好評,這項能力還在持續最佳化中。

位元組 AI Lab 提出多模態模型:X-VLM,學習視覺和語言多粒度對齊

研究背景

位元組 AI Lab 提出多模態模型:X-VLM,學習視覺和語言多粒度對齊

現有的多模態預訓練模型大致分為兩類:

1)依賴目標檢測器提取基於物體(例如:車、人、樹、揹包)的特徵來表示圖片,這種方法可以學習到物體級別的視覺和語言對齊,如圖1中(a)所示。這些方法要麼直接利用預先訓練的目標檢測器,要麼將目標檢測過程合併到多模態預訓練中;

2)用 ResNet 或者 Vision Transformer 編碼整張圖片,只學習圖片和文字之間的對齊,如圖1(b)所示。

這兩種方法都存在一定的問題。首先,基於目標檢測的方法會識別圖片中所有可能的物體,其中不乏一些與配對文字無關的。此外,這種方法所提取的基於物體的視覺特徵可能會丟失物體之間的資訊(可以認為是一種上下文資訊)。而且,這種方法只能識別有限種類的物體,我們很難預先定義合適的物體類別。而第二種方法則比較簡單直接,但是較難學習到細粒度的視覺和語言對齊,例如:物體級別的對齊。這種細粒度的對齊關係被之前的工作證實對於視覺推理 (visual reasoning) 和視覺定位 (visual grounding) 任務很有幫助。

實際上,對於多模態預訓練,有以下公開資料以供模型使用:1)圖片和圖片標題;2)區域標註,例如:圖1中的文字 “man crossing the street” 關聯到了圖片中的某個具體區域。然而,之前的工作卻粗略地將區域標註與整張圖片對齊;3)物體標籤,例如 “backpack”,這些標註被之前的工作用來訓練目標檢測器。

與之前的做法不同,本文中作者提出

X-VLM,以統一的方式利用上述資料高效地學習多粒度的視覺和語言對齊,能夠避免高開銷的目標檢測過程,也不侷限於學習影象級別或物體級別的對齊

。具體來說,作者提出可以使用基於 Vision Transformer 的 patch embeddings 來靈活表示各種粒度大小的視覺概念,如圖1(c)所示:例如,視覺概念 “backpack” 由2個patch組成,而視覺概念 “man crossing the street” 由更多的patch組成。

因此,X-VLM學習多粒度視覺和語言對齊的秘訣在於:

1)使用 patch embeddings 來靈活表示各種粒度的視覺概念,然後直接拉齊不同粒度的視覺概念和對應文字

,這一過程使用常用的對比學習損失、匹配損失、和MLM損失最佳化;

2)更進一步,在同一張圖片中,給出不同的文字,要求模型能預測出對應粒度的視覺概念的座標,以邊界框座標的迴歸損失和交併比損失最佳化。實驗證明,這種預訓練方法

十分高效,模型規模無需很大,預訓練資料無需很多,X-VLM 就能在下游多種多模態理解/生成任務上獲得非常優秀的表現**。

方法

位元組 AI Lab 提出多模態模型:X-VLM,學習視覺和語言多粒度對齊

X-VLM 由一個影象編碼器,一個文字編碼器,一個跨模態編碼器組成。

圖2左側給出了視覺概念 (可以是物體/區域/圖片)的編碼過程:該影象編碼器基於Vision Transformer,將輸入圖片分成patch編碼。然後,給出任意一個邊界框,靈活地透過取框中所有patch表示的平均值獲得區域的全域性表示。再將該全域性表示和原本框中所有的patch表示按照原本順序整理成序列,作為該邊界框所對應的視覺概念的表示。透過這樣的方式獲得圖片本身(I)和圖片中視覺概念(V1,V2,V3)的編碼。與視覺概念對應的文字,則透過文字編碼器一一編碼獲得,例如圖片標題、區域描述、或物體標籤。

X-VLM採用常見的模型結構,其不同之處在於預訓練的方法。作者透過以下兩類損失進行最佳化:

第一,在同一張圖片中,給出不同的文字,例如:T(text)、T1(text1)、T2(text2)、T3(text3),要求模型預測圖片中對應視覺概念的邊界框:

位元組 AI Lab 提出多模態模型:X-VLM,學習視覺和語言多粒度對齊

位元組 AI Lab 提出多模態模型:X-VLM,學習視覺和語言多粒度對齊

xjcls是跨模態編碼器在 [CLS] 位置的輸出向量。Sigmoid 函式是為了標準化預測的邊界框。Ground-truth bj對應了 ,依次是標準化後的的中心橫座標、中心縱座標、寬、高。最後,該損失是邊界框座標的迴歸損失(L1)和交併比損失(GIoU)之和。

作者認為在同一張圖片中,給不同文字,要求模型預測出對應的視覺概念,能使模型更有效地學習到多粒度的視覺語言對齊。該損失也是首次被使用在多模態預訓練中。

第二,使用patch embeddings來靈活表示各種粒度的視覺概念,然後直接最佳化模型去拉齊不同粒度的文字和視覺概念,包括了物體/區域/圖片與文字的對齊。作者使用多模態預訓練中常見的三個損失最佳化,依次是:

1)對比學習損失:

位元組 AI Lab 提出多模態模型:X-VLM,學習視覺和語言多粒度對齊

yv2t,yt2v ∈ Rbsz x bsz是ground-truth相似度, 對角線為1,其餘為0。

pv2t, pt2v ∈ Rbsz x bsz是模型基於文字編碼器輸出和影象編碼器輸出所計算的相似度。

2)匹配損失:

位元組 AI Lab 提出多模態模型:X-VLM,學習視覺和語言多粒度對齊

pmatch是基於跨模態編碼器計算,預測所給 對是否匹配(換句話說,0/1分類)。對於每對正例,作者取樣一對負例。

3)Masked Language Modeling損失:

位元組 AI Lab 提出多模態模型:X-VLM,學習視覺和語言多粒度對齊

T(估計值)中的一些詞已經被隨機替換成了 [MASK],pj(V, T(估計值))是跨模態編碼器在詞tj位置的輸出向量所計算的詞表機率分佈。

實驗

作者使用多模態預訓練中常見的中等規模的4M和16M圖片資料集進行實驗,如下表所示:

位元組 AI Lab 提出多模態模型:X-VLM,學習視覺和語言多粒度對齊

其中,標註(# Ann)是區域標註和物體標籤的總和。可以看出,有些資料集沒有圖片標題,例如Visual Genome(VG),有些資料集沒有圖片標註,例如CC-3M/12M。

位元組 AI Lab 提出多模態模型:X-VLM,學習視覺和語言多粒度對齊

表2展示了在影象文字檢索任務 (MSCOCO和Flickr30K) 上的表現。即使,之前的方法在更大量的內部資料上預訓練或者模型規模更大,在4M圖片資料集下訓練的X-VLM就已經可以超過之前的方法。

位元組 AI Lab 提出多模態模型:X-VLM,學習視覺和語言多粒度對齊

表3展示了在視覺推理 (VQA2。0和NLVR2)、視覺定位 (RefCOCO+) 、圖片描述生成 (COCO Caption) 上的模型表現。為了公平的對比,X-VLM 沿用了之前工作的 fine-tune 方法,沒有進行額外的調整。結合表2和表3,可以看出,相比之前的方法,X-VLM支援更多種類的下游任務,並且在這些常見的視覺語言任務上都取得了十分優秀的表現。

總結和討論

在本文中,作者提出了X-VLM以學習多粒度的視覺和語言對齊,能夠避免高開銷的目標檢測過程,也不侷限於學習影象級別或物體級別的對齊。

X-VLM 的秘訣在於:

1)基於 patch embeddings 靈活表示各種粒度的視覺概念,然後直接拉齊不同粒度的視覺概念和對應文字;

2)更進一步,在同一張圖片中,給出不同的文字,要求模型能預測出對應視覺概念的座標。實驗證實這種預訓練方法十分高效。

在實驗部分,作者使用常用的4M和16M資料,訓練總引數量216M的 X-VLM ,就能超過更大規模的模型或使用大量預訓練資料的模型,在下游多種多模態理解/生成任務上取得非常優秀的表現。並且,位元組跳動的工程師們也把 X-VLM 用在了真實的業務場景上,例如:為視障人群描述圖片內容,小學生作業的自動批改。實際上,X-VLM 還十分擅長細粒度的 retrieval,visual grounding 等任務。