50億圖文中提取中文跨模態基準,奇虎360預訓練框架超越多項SOTA

機器之心專欄

作者:奇虎360人工智能研究院和清華大學

視覺語言預訓練(VLP)主要學習視覺與自然語言之間的語義對應關係。得益於海量數據、Transformer 等優秀架構、CLIP 等跨模態模型以及硬件設備的支持,一系列開創性的工作探索了 VLP 模型,並在各種視覺語言任務上取得了顯著進展。

藉助大規模訓練語料庫(主要是英語),衆多 VLP 模型已被證明對下游任務有益。然而中文視覺語言數據集很少,並且存在各種侷限性。針對大規模預訓練模型加下游任務精調的經典模式,中文跨模態領域缺少一個包含大量優質數據,且完整定義了預訓練數據集、多個下游任務訓練集及下游任務測試集的數據基準。

如何構建一個完整、公平且具有高質量文本描述的中文跨模態基準成爲一個亟需解決的問題。

最近,奇虎 360 人工智能研究院和清華大學的研究者在其最新論文中重點關注了大規模視覺語言數據集和跨模態表徵學習模型。研究者提出了一個大規模中文跨模態基準數據集 Zero,它包含了兩個被稱爲 Zero-Corpus 的預訓練數據集和五個下游任務數據集,一定程度上填補了中文圖文跨模態領域數據集的空白。進一步,研究者們還提出了一個視覺語言預訓練框架 R2D2,用於大規模跨模態學習,基於所提出的 Zero-Corpus 數據集進行預訓練,並在多個下游任務上進行測試,R2D2 取得了多項超越 SOTA 的結果。上述數據集和模型,均已開源。

研究者還嘗試用更大的 2.5 億內部數據集訓練 R2D2 模型,相對 2300 萬數據,模型效果依然有顯著提升。特別是在零樣本任務上,相對此前的 SOTA,在 Flickr30k-CN 數據集上,R@M 提升到 85.6%(提升了 4.7%),在 COCO-CN 數據集上,R@M 提升到 80.5%(提升了 5.4%),在 MUGE 數據集上,R@M 提升到 69.5%(提升了 6.3%)。

論文地址:https://arxiv.org/pdf/2205.03860.pdf

Zero-Corpus 預訓練數據集是由一個包含 2300 萬圖文對的完整版本和一個包含 230 萬圖文對的更小子集版本組成。其中,完整的預訓練數據集從搜索引擎中收集,包含有圖像和對應的文本描述,並根據用戶點擊率(CTR)從 50 億個圖文中過濾得到。在完整版本上訓練 VLP 模型可能需要大量的 GPU 資源,因此爲便於學術研究,研究者還提供了具有完整版本 10% 圖文對的子集 230 萬版本。

除了兩個預訓練數據集之外,研究者還爲長短文本的圖文檢索和圖文匹配任務提供了五個高質量的下游數據集。特別值得一提的是 Flickr30k-CNA,它是一個經過人工翻譯的比 Flickr30k-CN 更準確的數據集,可被用來對比中英文跨模態模型的效果,也可以用來研究翻譯語料質量對於結果的影響。

對於 VLP 模型,研究者提出了一個用於跨模態學習的全新預訓練框架 R2D2。這個框架將雙塔模型和單塔模型結合,在圖像模態表示和文本模態表示的基礎上,利用交叉注意力機制,融合圖文信息,並受推薦系統和在線廣告等技術的啓發,使用全局對比預排序(Global Contrastive Pre-Ranking, GCPR)來獲得跨模態表示,最終使用細粒度排序(Fine-Grained Ranking, FGR)進一步提升模型性能。

進一步,研究者還介紹了一種雙向蒸餾方法,包括目標導向型蒸餾(Target-guided Distillation,TgD)和特徵導向型蒸餾(Feature-guided Distillation,FgD)。其中,目標導向型蒸餾提升了從噪聲標籤中學習的穩健性,特徵導向型蒸餾旨在提升 R2D2 的泛化性。

數據集概覽

預訓練數據集 Zero Corpus

現有數據收集方法存在兩個主要的侷限。其一,僅通過爬取方式收集到的圖文對圖文對應關係較弱,存在較大噪聲;其二,圖像往往只包含一個對應文本,文本數據缺乏多樣性。

爲了克服上述侷限,研究者爲中文圖文預訓練創建了一個新數據集——Zero Corpus。他們對圖像搜索引擎中的 50 億張圖像,按照用戶點擊進行排序,排序靠前的圖片表明用戶查詢時點擊次數最多,說明該圖片和搜索查詢文本最相關。進一步,研究者還刪除了不恰當和有害的文本描述,並過濾掉有害的圖片。上述流程,最大程度提高了圖片和文本數據的對應關係,過濾得到高質量圖片。研究者依照上述方式共處理得到大約 2.5 億最相關且高質量的圖文對,最終隨機抽取其中 2300 萬個圖文對用於構建公開預訓練數據集。

研究者還爲每個圖像提供了多樣化的文本描述,包括標題(Title)、內容(Content)和圖像查詢詞(ImageQuery)等。這些包含多個文本在內的信息,可以用於構建不同的跨模態任務,便於更全面地建模和研究圖文之間的跨模態關係。下圖顯示了一些具體例子。

Zero-Corpus 圖文對示例。

下游數據集

爲了評估預訓練模型的性能,大多數工作都會在各種下游數據集上進行實驗。與現有具有英文描述的下游數據集相比,帶有中文文本的下游數據集很少。

爲此,研究者構建了四個中文圖文數據集,分別是 ICM、IQM、ICR 和 IQR。在預訓練數據處理基礎上(經過點擊次數排序,以及優質內容過濾),進一步通過人工標記這些下游任務的標籤,保證數據的準確性。對於每個下游任務數據集,按照 8:1:1 的比例劃分訓練集、驗證集和測試集。與預訓練數據不同的是,這些下游任務的數據集,每個圖像只保留一個對應的文本。

圖像標題匹配數據集(Image-Caption Matching Dataset, ICM)用於長文本圖文匹配分類任務。每個圖像具有一個對應的標題文本,對圖像進行詳細描述。研究者首先使用 CTR 選擇最相關的對,然後通過人工標註校準,共獲得了 40 萬個圖文對,包括 20 萬個正樣本和 20 萬個反樣本。

圖像查詢匹配數據集(Image-Query Matching Dataset, IQM)用於短文本圖文匹配分類任務。與 ICM 數據收集方式相近,只是使用了搜索查詢來替代詳細的描述文本。IQM 同樣包含 20 萬個正樣本和 20 萬個反樣本

圖像標題檢索數據集(Image-Caption Retrieval Dataset, ICR)用於長文本圖文互檢任務。研究者採用與 ICM 相同的規則收集了 20 萬個圖文對。

圖像查詢檢索數據集(Image-Query Retrieval Dataset, IQR)用於短文本圖文互檢任務。研究者採用與 IQM 相同的規則收集了 20 萬個圖文對。

從左到右依次爲 ICM、IQM、ICR 和 IQR 數據集中的圖文示例。

此前的 Flickr30k-CN 使用機器翻譯翻譯了 Flickr30k 的訓練集和驗證集,但機器翻譯的結果普遍存在兩類問題。一方面,部分句子存在一定的翻譯錯誤;另一方面,一些句子的中文語義並不通順。

因此,研究者邀請了六位中英文語言學專業人士重新翻譯了 Flickr30k 的所有數據,並對每個句子進行了雙重檢查,最終生成新數據集 Flickr30k-Chinese All(Flickr30k-CNA),用於進行圖文跨模態任務評測。

Flickr30k、Flickr30k-CN 和本文提出的 Flickr30k-CNA 的示例對比。

方法概述

模型架構

下圖 1 爲 R2D2 預訓練框架的架構概覽,它包含一個文本編碼器、一個圖像編碼器和兩個交叉編碼器。其中,文本編碼器和圖像編碼器分別將文本和圖像轉換爲隱藏狀態的序列。然後,文本和圖像隱藏狀態通過交叉注意力在兩個交叉編碼器中交互。

研究者使用 RoBERTa 作爲文本編碼器。給定文本序列,他們首先使用 RoBERTa-wwm-ext 的 tokenizer 進行 tokenize 處理。在這裡,特殊的[CLS] token 被附加到 tokenized 文本的 head,同時[SEP] token 被附加到 tail。然後,tokenized 文本被輸入到文本編碼器中。

研究者使用 ViT 作爲圖像編碼器。他們首先將輸入圖像縮放到標準尺寸,並將該圖像分成多個 patch。然後每個 patch 進行線性映射並添加位置嵌入。此外,一個可學習的[CLS] token 與 patch 向量串聯。最後,序列向量被輸入到標準 Transformer 模型以獲得圖像隱藏狀態向量。

研究者將圖像和文本隱藏向量融合並輸入到交叉編碼器。具體來說,他們使用線性映射層來更改每個文本特徵和圖像特徵的維度以使它們保持一致。多層 Transformer 藉助交叉注意力融合了兩種模態的特徵信息,併產生了最終的跨模態輸出。

預訓練方法

爲了探索圖文對之間的匹配關係,研究者設計了一種預排序 + 排序的機制,即全局對比預排序(GCPR)和細粒度排序(FGR)。他們還採用掩碼語言建模(MLM)有效地學習跨模態模型的表示。

首先是全局對比預排序。傳統的對比學習旨在對齊多模態數據的表示(如成對圖文),它最大化了正對的相似度分數並最小化了負對的分數。研究者則使用全局對比學習來完成預排序任務,他們在 k 個 GPU 上執行完整的反向傳播。對於每個圖像 I_i 和對應的文本 T_i,圖文和文圖的 softmax 歸一化相似度分數可以如下定義:

全局對比預排序損失通過交叉熵損失 L_c(·)來計算,如下公式 (2) 所示:

然後是細粒度排序。如上所述,研究者使用全局對比預排序來獲得圖像和文本的單個表示。基於這些表示,進一步藉助細粒度排序損失來執行細粒度排序任務。這是一個二元分類任務,旨在預測圖文是否匹配。

研究者將 h_I_[CLS] 和 h_T_[CLS]作爲兩個交叉編碼器的輸出表示。給定一個圖像表示 h_I_[CLS]和一個文本表示 h_T_[CLS],研究者將它們輸入到一個全連接層 g(·)以得到各自的預測概率。令 y 表示爲二元分類的 ground-truth 標籤,研究者對細粒度排序損失進行如下的計算。

研究者將掩碼語言建模損失應用於文圖交叉編碼器,以提高在 token 級別建模文本和圖像之間關係的能力。15% 的文本 token 在輸入中被遮蓋,所有這些 token 被替換成了[MASK] token。

在研究者的模型中,掩碼語言建模任務利用掩碼文本和對應的圖像一起進行去噪,從而增強了文本和圖像之間的交互。由於細粒度排序嚴重依賴這種交互能力,因此研究者提出了增強訓練(ET),它將掩碼語言建模任務集成到了正向圖文對的細粒度排序前向操作中。

雙向蒸餾

大部分圖文預訓練數據由半自動化程序所收集,從而導致其數據帶有噪聲。不準確的標籤可能會誤導模型訓練。爲此,研究者提出目標導向型蒸餾(TgD),一種帶軟目標的基於教師 - 學生的蒸餾。爲了進一步提高預訓練模型的泛化性能,研究者引入了特徵導向型蒸餾(FgD)。爲方便起見,他們將這兩種蒸餾的組合稱爲雙向蒸餾(TwD)。

目標導向型蒸餾:爲了降低從噪聲標籤中學習的風險,研究者建議採用動量更新編碼器產生的軟目標(soft target)。這裡,動量更新編碼器作爲蒸餾的教師模型,由指數移動平均權重得到。

研究者通過係數 α 將相似度得分 s(·,·) 與 one-hot 標籤 y(·,·) 相結合,以生成最終的 soft 標籤。將

表示爲最終 soft 標籤。以

爲例,可定義爲:

考慮到隊列中特徵的有效性隨着時間步長的增加而降低,研究者還維護了一個加權隊列 w 來標記相應位置特徵的可靠性。具體來說,除了新傳入的項之外,該研究每次迭代都將隊列中的每個元素衰減 0.99 倍。因此,研究者將

替換爲等式 2 中的加權交叉熵損失

。使用目標導向型蒸餾,

定義爲:

特徵導向型蒸餾:與 TgD 類似,研究者採用教師 - 學生範式進行特徵導向型蒸餾。以文本編碼器爲例,學生模型是文本編碼器,而教師模型是通過動量更新的編碼器。

爲了進一步提高模型性能,研究者對輸入採用掩碼策略。在具體實現中,將完整的輸入提供給教師模型,將經過遮蓋的輸入提供給學生。依靠動量機制,目標是讓學生的特徵更接近教師的特徵。形式上,教師和學生模型的預測分佈分別定義如下:

研究者利用交叉熵損失進行特徵導向型蒸餾,損失 L_FgD 定義爲:

最後用整體預訓練目標進行模型訓練:

實驗結果

從下表 2 中可以看出,研究者提出的模型在絕大多數任務中都超越了此前的 SOTA,即使僅使用 2.3M 樣本(約爲 Wukong 數據大小的 2.3%)進行訓練時也是如此。對 23M 樣本進行預訓練時,結果更好。在模型層面,R2D2ViT-L 也在所有數據集中都優於 R2D2ViT-B,表明隨着預訓練模型變大,算法效果會變好。

研究者還在所提出的下游數據集上進行實驗,這些實驗結果成爲所提出數據集的基線。特別地,在 Flickr30k-CNA 上進行實驗時,研究者使用 Flickr30k-CNA 的訓練集精調預訓練模型,並在 Flickr30k-CN 的測試集上測試以進行公平比較。從表 2 可以看出,在 Flickr30k-CNA 上微調的 R2D2 優於在 Flickr30k-CN 上微調的 R2D2,因爲人工翻譯的 Flickr30k-CNA 的質量遠高於機器翻譯的 Flickr30k-CN。

與圖文檢索不同,有關中文的圖文匹配 (ITM) 任務的數據集很少。研究者提出了針對中文 ITM 任務的圖像標題匹配數據集 (ICM) 和圖像查詢匹配數據集(IQM),並給出了相應的結果。

研究者使用了 AUC 作爲評價指標。從下表 1 中可以看出,R2D2ViT-L 比 R2D2ViT-B 取得了更好的結果。此外,R2D2ViT-L (23M) 在 ICM 和 IQM 上的表現分別比 R2D2ViT-L (2.3M) 高出約 4.97% 、5.68%。這意味着更多的中文高質量數據能夠提高 R2D2 的泛化能力。

爲了進一步提高性能,研究者用從 50 億樣本中提取的 2.5 億個圖文對進行預訓練。從表 2 可以看出,以最綜合的評估指標 R@M 來衡量,該模型在 Flickr30k-CN、COCO-CN、AIC-ICC、MUGE、Flickr30k-CNA、ICR、IQR 等數據集的所有結果中都超過了 23M 數據訓練的模型,這意味着增加數據量可以增強預訓練模型的能力。同時,這些結果也顯著超越了有公開結果批露的 WenLan2.0 以及 WuKong 的結果,成爲最新的 SOTA。下表 1 中數據則展示了在圖文匹配任務 ICM、IQM 中,更大量的數據訓練的預訓練模型會取得更好的結果。

爲了表明各個機制的作用,研究者在 Zero-Corpus 的子集上(230 萬圖文預訓練數據)進行消融實驗。爲方便起見,在消融實驗中研究者將 R2D2ViT-L 定義爲 R2D2。

細粒度排序 (FGR) 的效果。首先,研究者使用全局對比預排序(GCPR)和雙向蒸餾(TwD)訓練模型,並定義爲 PRD2。PRD2 的設置類似於 CLIP。從下表 3 的第一行和第二行可以看出,R2D2 在圖文檢索任務上的表現顯著優於 PRD2,可以推測出該結果顯著好於 CLIP,這說明了提出的全局對比預排序 + 細粒度排序框架的有效性。

增強訓練 (ET) 的效果。研究者對比了去掉增強訓練後的結果。從下表 3 的第三行可以看出,R2D2 (帶 ET) 在圖文檢索任務上使 recall@1 提高了 0.95%,AUC 從 80.27% 提高到 80.51%。R2D2 的另一個優點是比 R2D2 w/o ET 使用更少的計算資源。R2D2 需要 154.0 GFLOPs 計算量,能夠以每秒 1.4 次迭代的速度運行,而沒有增強訓練的 R2D2 則需要 168.8 GFLOPs 計算量,每秒只能運行 1.1 次迭代。上述結果證明了增強訓練的有效性。

雙向蒸餾的效果。研究者提出的雙向蒸餾包含了目標導向型蒸餾和特徵導向型蒸餾。當移除雙向蒸餾(TwD)時,R@M 從 74.06% 降到 73.10%,AUC 從 80.51% 降到 80.31%。當移除特徵導向型蒸餾(FgD)時,R@M 從 74.06% 降到 73.29%,性能下降明顯,說明在訓練中進行特徵對齊很重要。同時,移除目標導向型蒸餾(TgD)也會導致模型的性能下降。上述結果說明雙向蒸餾是一種提升預訓練模型泛化性的有效方法。

零樣本任務。爲了證明模型的泛化性能,研究者還進行了零樣本遷移實驗。從下表 4 中可以看出,與目前 SOTA 性能的 WukongViT-L 相比,R2D2ViT-L(23M)僅使用了不到 1/4 的數據,卻在 Flickr30k-CN、COCO-CN 上都取得了更好的性能。當引入 2.5 億級別的預訓練數據時,R2D2 的精度獲得進一步提升,相對 WukongViT-L,在 Flickr30k-CN 數據集上,R@M 提升到 85.6%(提升了 4.7%),在 COCO-CN 數據集上,R@M 提升到 80.5%(提升了 5.4%),在 MUGE 數據集上,R@M 提升到 69.5%(提升了 6.3%)。

基於實體的圖像注意力可視化。在本實驗中,研究者嘗試在 COCO-CN 上可視化圖像的注意力。具體來說,他們首先從中文文本中提取一個實體,並計算圖像與實體對的注意力得分。下圖 2 展示了四個不同實體在圖像上的可視化解釋。這表明 R2D2 很好地學會了將文本與圖像中的正確內容對齊。