視覺語言預訓練 (VLP) 提高了許多視覺語言任務的性能。但是,大多數現有的預訓練模型僅在基於理解的任務或基於生成的任務中表現出色。此外,通過使用從web收集的嘈雜的圖像-文本對來擴展數據集,在很大程度上實現了性能改進,但這是監督的次優來源。
在本文中,作者提出了BLIP,這是一個新的VLP框架,可以靈活地轉換到視覺語言理解和生成任務。BLIP通過引導字幕有效地利用了嘈雜的web數據,其中字幕器(captioner)生成合成字幕,而過濾器(filter)則刪除了嘈雜的字幕。作者在廣泛的視覺語言任務上獲得了最先進的結果,例如圖像文本檢索 ,圖像字幕和VQA。當以zero-shot方式直接轉移到視頻語言任務時,BLIP還表現出很強的泛化能力。
BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation
論文:https://arxiv.org/abs/2201.12086
代碼:https://github.com/salesforce/BLIP
視覺語言預訓練最近在各種多模態下游任務上獲得了巨大的成功。然而,現有的方法有兩個主要的局限性:
1) 模型角度: 大多數方法要麼採用基於編碼器的模型,要麼採用編碼器-解碼器模型。然而,基於編碼器的模型不太容易直接轉換到文本生成任務(例如圖像字幕),而編碼器-解碼器模型尚未成功用於圖像文本檢索任務。2) 數據角度: SOTA的方法(如CLIP、ALBEF等)都在從web上收集到的圖文對上進行預訓練。儘管通過擴展數據集獲得了性能提升,但本文的研究表明,對於視覺語言學習來說,有噪聲的網絡文本是次優的。
為此,作者提出了BLIP: 引導語言圖像預訓練(如上圖所示),以實現統一的視覺語言理解和生成。BLIP是一個新的VLP框架,與現有方法相比,它可以實現更廣泛的下游任務。它分別從模型和數據角度有兩個貢獻:
1) 多模態編碼器-解碼器混合(MED):一種用於有效多任務預訓練和靈活遷移學習的新模型架構。MED可以作為單模態編碼器、基於圖像的文本編碼器或基於圖像的文本解碼器工作。該模型與三個視覺語言目標聯合預訓練:圖像文本對比學習、圖像文本匹配和圖像條件語言建模。2) 字幕和過濾(CapFilt):一種新的數據集增強方法,用於從噪聲圖像-文本對中學習。作者將預先訓練的MED分為兩個模塊: 一個字幕器,用於生成給定web圖像的合成字幕,以及一個過濾器,用於從原始web文本和合成文本中刪除嘈雜的字幕。作者表明,字幕器和過濾器通過引導字幕,在各種下游任務上實現顯著的性能改進。作者還發現,更加多樣化的字幕會帶來更大的收益。BLIP在廣泛的視覺語言任務中實現了最先進的性能。當作者將模型直接轉移到兩個視頻語言任務:文本到視頻檢索和videoQA時,本文的方法還實現了最先進的Zero-shot性能。3.1. Model Architecture
作者使用視覺Transformer 作為圖像編碼器,該圖像編碼器將輸入圖像分成patch,並將它們編碼為嵌入序列,並帶有額外的 [CLS] token來表示全局圖像特徵。與使用預訓練的目標檢測器進行視覺特徵提取相比,使用ViT更易於計算,並且已被較新的方法採用。
為了預訓練一個既有理解能力又有生成能力的統一模型,作者提出了多模態混合編碼器-解碼器(MED),這是一個多任務模型,可以在以下三種結構之一中運行:1) 單模態編碼器,分別對圖像和文本進行編碼。文本編碼器與BERT相同,其中將 [CLS] token附加到文本輸入的開頭以概括句子。2) Image-grounded文本編碼器,通過在文本編碼器的每個transformer塊的自注意 (SA) 層和前饋網絡 (FFN) 之間插入一個額外的交叉注意 (CA) 層來注入視覺信息。文本中附加了一個特定於任務的[Encode] token,[Encode]的輸出嵌入被用作圖像-文本對的多模態表示。3) Image-grounded文本解碼器,將基於圖像的文本編碼器中的雙向自注意力層替換為因果自注意力層。[Decode] token用於表示序列的開始,而[EOS] token用於表示其結束。3.2. Pre-training Objectives作者在預訓練期間共同優化了三個目標,其中兩個基於理解的目標和一個基於生成的目標。每個圖像-文本對僅需要一次通過計算較重的視覺Transformer的正向傳遞,而三次通過文本轉換器的正向傳遞,以激活不同的結構以計算如下所述的三個損失函數。
圖像文本對比損失 (ITC) 激活單模態編碼器。其目的是對齊視覺transformer和文本transformer的特徵空間,通過鼓勵正圖像-文本對具有相似的表示來實現。事實證明,這是提高視力和語言理解的有效目標。圖像文本匹配損失(ITM)激活圖像文本編碼器。它的目的是學習圖像-文本多模態表示,捕捉視覺和語言之間的細粒度對齊。ITM是一個二分類任務,給定其多模態特徵,模型使用ITM頭 (線性層) 來預測圖像-文本對是正 (匹配) 還是負 (不匹配)。語言建模損失(LM)激活image-grounded文本解碼器,該解碼器旨在生成給定圖像的文本描述。它優化了交叉熵損失,從而訓練模型以自回歸方式最大化文本的可能性。在計算損失時,作者採用0.1的標籤平滑。與廣泛用於VLP的MLM損失相比,LM使模型具有將視覺信息轉換為連貫字幕的泛化能力。為了在利用多任務學習的同時進行有效的預訓練,文本編碼器和文本解碼器共享除SA層之外的所有參數。原因是編碼和解碼任務之間的差異最好由SA層捕獲。尤其是,編碼器採用雙向自注意來構建當前輸入token的表示,而解碼器採用因果自注意來預測下一個token。另一方面,嵌入層、CA層和FFN在編碼和解碼任務之間的作用類似,因此共享這些層可以提高訓練效率,同時受益於多任務學習。3.3. CapFilt
由於高昂的標註成本,存在有限數量的高質量人工標註圖像文本對 ,如COCO。最近的研究利用了大量從網絡上自動收集的圖像和文本對。但是,這些文本通常無法準確描述圖像的視覺內容,從而使它們成為嘈雜的信號,對於學習視覺語言對齊不是最佳的。
作者提出了字幕和過濾(Captioning and Filtering,CapFilt),這是一種提高文本語料庫質量的新方法。上圖給出了CapFilt的圖示。它引入了兩個模塊:一個用於生成給定web圖像的字幕的字幕器,以及一個用於去除噪聲圖像-文本對的過濾器。字幕器和過濾器都是從同一個預訓練過的MED模型中初始化的,並在COCO數據集上單獨微調。微調是一個輕量級的過程。具體地說,字幕器是一個基於圖像的文本解碼器。它與LM目標相結合,對給定圖像的文本進行解碼。給定web圖像,字幕器生成合成字幕。過濾器是一個基於圖像的文本編碼器。它與ITC和ITM的目標相結合,以了解文本是否與圖像匹配。過濾器會去除原始web文本和合成文本中的噪聲文本,如果ITM頭預測文本與圖像不匹配,則該文本被視為噪聲文本。最後,作者將過濾後的圖像-文本對與人類標註對結合起來,形成一個新的數據集,並使用該數據集預訓練一個新模型。

上圖展示了被過濾器接受和拒絕的文本可視化。

上表展示了字幕器(C)和過濾器(F)對數據集bootstrapping的影響。

上表展示了合成字幕生成中beam search和nucleus sampling的比較。

上表展示了在預訓練期間比較文本編碼器和解碼器的不同參數共享策略的實驗結果。

上表展示了字幕器和過濾器之間共享參數的影響。

上表展示了與COCO和Flickr30K數據集上SOTA的圖像文本檢索方法進行比較。
上表展示了Flickr30K上的Zero-shot圖像文本檢索結果。

上表展示了與NoCaps和COCO字幕上最先進的圖像字幕方法進行比較。

上表展示了與VQA和NLVR 2的最新方法進行比較。

上表展示了與VisDial v1.0驗證集的最新方法進行比較。

在MSRVTT數據集的1k測試集上,與最先進的文本到視頻檢索方法進行比較。

上表展示了與VideoQA上最新方法對比的實驗結果。
在本文中,作者提出了BLIP,這是一個新的VLP框架,在廣泛的下游視覺語言任務上具有最先進的性能,包括基於理解和基於生成的任務。BLIP通過注入不同的合成字幕和去除帶噪字幕,使用從大規模帶噪圖像-文本對中引導的數據集,預訓練多模態混合編碼器-解碼器模型。
作者發現,有幾個潛在的方向可以進一步提高BLIP的性能:2)為每幅圖像生成多個合成字幕,進一步擴大預訓練語料庫;3)通過訓練多個不同的字幕器和過濾器,並在CapFilt中組合他們的力量,來模擬模型集成。
ICCV、CVPR、NeurIPS、ICML論文解析匯總:https://github.com/xmu-xiaoma666/FightingCV-Paper-Reading
面向小白的Attention、重參數、MLP、卷積核心代碼學習:https://github.com/xmu-xiaoma666/External-Attention-pytorch
已建立深度學習微信交流群!
每天會在群里分享一些近期的論文,歡迎大家一起學習交流哈~~~
長按下方二維碼添加小助手,加入微信群,記得備註【公司/學校+方向+ID】

