學習視覺和語言的多粒度對齊?字節提出新多模態預訓練方法 X-VLM:代碼已開源!
?寫在前面
視覺語言預訓練提高了許多視覺語言任務的性能。但是,現有的多數預訓練方法依賴目標檢測器(object detectors)提取基于物體的視覺特征,以此學習細粒度的視覺和語言對齊,例如物體(object)級別。然而,這種方法存在識別視覺概念有限、圖像編碼上下文信息丟失和計算效率低下的問題。
在本文中,字節跳動人工智能實驗室提出了 X-VLM,以統一的方法學習多粒度的視覺和語言對齊,不依賴目標檢測方法且不局限于學習圖片級別或物體級別的對齊。 該方法在廣泛的視覺語言任務上獲得了最先進的結果,例如:圖像文本檢索 (image-text retrieval)、視覺問答(VQA)、視覺推理(NLVR)、視覺定位 (visual grounding)、圖片描述生成(image captioning)。
論文標題:
Multi-Grained Vision Language Pre-Training: Aligning Texts with Visual Concepts
論文鏈接:
https://arxiv.org/abs/2111.08276
代碼鏈接:
https://github.com/zengyan-97/X-VLM
研究背景
▲ 圖1:現有兩類的方法(a, b)和X-VLM(c)
現有的多模態預訓練模型大致分為兩類:1)依賴目標檢測器提取基于物體的視覺特征,以此學習細粒度的視覺和語言對齊,如圖 1 中(a)。這些方法要么直接利用預先訓練的目標檢測器,要么將目標檢測過程合并到多模態預訓練中;2)用 CNN 或者視覺 Transformer 編碼整張圖片,直接學習文本和圖片特征之間的粗粒度對齊,如圖 1(b)。
這兩種方法都存在問題。首先,基于目標檢測的方法會識別圖片中所有可能的物體,其中不乏一些與配對文本無關的。此外,這種方法所提取的基于物體的視覺特征可能會丟失物體之間的信息(可以認為是一種上下文信息)。而且,我們也很難預先定義需要識別的物體種類。而第二種方法則較難學習到細粒度的視覺和語言對齊,例如:物體級別的對齊。這種細粒度的對齊關系被之前的工作證實對于視覺推理(visual reasoning)和視覺定位(visual grounding)任務很有幫助。
實際上,對于多模態預訓練,有以下公開數據以供模型訓練:1)圖片和圖片標題;2)區域標注,例如:圖 1 中的文本“man crossing the street”關聯到了圖片中的某個具體區域。然而,之前的工作卻粗略地將區域標注與整張圖片對齊;3)物體標簽,例如“backpack”,這些標簽被之前的工作用來訓練目標檢測器。
與之前的做法不同,本文中作者提出 X-VLM,以統一的方式利用上述數據學習多粒度的視覺和語言對齊,而不依賴目標檢測方法且不局限于學習圖像級別或物體級別的對齊。作者提出學習多粒度視覺和語言對齊的關鍵在于,如圖 1(c)所示:1)給出文本,定位圖片中的視覺概念,以邊界框的回歸損失和交并比損失優化;2)同時拉齊文本和對應的視覺概念,通過常用的對比學習損失,匹配損失,MLM 損失優化。實驗證明,X-VLM 能在下游任務中有效利用預訓練時學到的多粒度視覺和語言對齊,在多種視覺語言任務上獲得非常優秀的表現。
方法
▲ 圖2:X-VLM框架
X-VLM 由一個圖像編碼器,一個文本編碼器,一個跨模態編碼器組成。
圖 2 左側給出了視覺概念 V(可以是物體/區域/圖片)的編碼過程:該圖像編碼器采用視覺 Transformer,將輸入圖片分成 patches 編碼。然后,給出任意一個邊界框,簡單地通過取框中所有 patch 表示的平均值獲得區域的全局表示。
再將該全局表示和原本框中所有的 patch 表示按照原本順序整理成序列,作為該邊界框所對應的視覺概念的表示。 通過這樣的方式獲得圖片本身( )和圖片中視覺概念( , , , )的編碼。與視覺概念對應的文本,則通過文本編碼器一一編碼獲得,例如圖片標題、區域描述、物體標簽。
X-VLM 采用常見的模型結構,其不同之處在于預訓練的方法。作者通過以下兩類損失進行優化:
第一,給出文本,例如: (text)、 (text1)、 (text2)、 (text3),預測圖片 中的對應視覺概念的邊界框:
是跨模態編碼器在 [CLS] 位置的輸出向量。Sigmoid 函數是為了標準化。Ground-truth 對應了( ),依次是標準化后的的中心橫坐標、中心縱坐標、寬、高。最后,該損失是邊界框的 GIoU 損失和 L1 損失之和。作者認為在同一張圖片中,給不同文字,要求模型預測出對應的視覺概念,能使模型更有效地學習到多粒度的視覺語言對齊。該損失也是首次被使用在多模態預訓練中。
第二,同時優化模型去拉齊文本和對應的視覺概念,包括了物體/區域/圖片與文本的對齊。 作者使用多模態預訓練中常見的三個損失優化,依次是:
1)對比學習損失:
, 是 ground-truth 相似度,對角線為 1,其余為 0 。 , 是模型基于文字編碼器輸出和圖像編碼器輸出所計算的相似度。
2)匹配損失:
是基于跨模態編碼器計算,預測所給( )對是否匹配(換句話說,0/1分類)。對于每對正例,作者采樣一對負例。
3)Masked Language Modeling 損失:
中的一些詞已經被隨機替換成了 [MASK], 是跨模態編碼器在詞 位置的輸出向量所計算的詞表概率分布。
實驗
作者使用多模態預訓練中常見的 4M 圖片數據集進行實驗,同時也在一個 16M 數據集下驗證了模型效果,如下表所示:
▲ 表1:兩種預訓練數據集
其中,標注(# Ann)是區域標注和物體標簽的總稱。可以看出,有些數據集沒有圖片標題(Captions),例如 Visual Genome,有些數據集沒有圖片標注,例如 CC-3M/12M。
▲ 表2:在圖像文本檢索任務上的實驗結果
表 2 展示了在圖像文本檢索任務(MSCOCO 和 Flickr30K)上的表現。可以看出在 4M 圖片數據集下訓練的 X-VLM 就已經超過了之前的方法。
▲ 表3:在多種下游視覺語言任務上的實驗結果
表 3 展示了在視覺推理(VQA2.0 和 NLVR2)、視覺定位(RefCOCO+)、圖片描述生成(COCO Captio)上的模型表現。結合表 2 和表 3,可以看出,相比之前的方法,X-VLM 支持更多種類的下游任務,并且在這些常見的視覺語言任務上都取得了最先進的表現。
總結
在本文中,作者提出了 X-VLM,以統一的方法學習多粒度的視覺和語言對齊,不依賴目標檢測方法且不局限于學習圖片級別或物體級別的對齊。這種預訓練方法適用于廣泛的下游任務,除了視覺推理,還同時在圖像文本檢索、視覺定位、圖片描述生成任務上取得了最先進的表現。全部代碼均已開源,可掃下方二維碼體驗。