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