360 x 清華大學:圖文跨模態表示最新研究成果公開

語言: CN / TW / HK

分享嘉賓 :鄧亞峰 碳矽智慧 創始人&CEO

編輯整理:吳雪松

出品平臺:DataFunTalk

導讀: 在網際網路領域,文字是最常見的資料呈現形式,其次是影象、影片。這幾種不同模態的資料不是截然分開獨立存在的,而是緊密融合在一起的。比如,在圖文檢索任務中,需要用文字去搜索影象;在影片搜尋推薦任務中,影片中除了影象外,存在的標題、字幕和語音都可以對映為文字;在文章配圖等場景中,需要建模文字和圖片的關係。所以,圖文跨模態表示是網際網路領域最常見的任務之一,非常重要。今天主要跟大家分享360人工智慧研究院、清華大學和360搜尋事業部在圖文跨模態領域合作完成的一個工作,包括圖文跨模態資料集 Zero 和圖文跨模態表示框架 R2D2 。

全文會圍繞以下六點展開:

  • 圖文跨模態表示 背景介紹

  • 中文圖文跨模態資料集 Zero

  • 圖文跨模態預訓練框架R2D2

  • 實驗結果

  • 業務落地

  • 總結

01

圖文跨模態表示 背景介紹

首先和大家分享下圖文跨模態表示的背景。

在網際網路領域,最常見的資料存在形式是文字,其次是影象、影片。大部分情況下,這些不同模態的資料不是截然分開的,而是融合在一起的。比如,常見的網頁既有文字又有圖片,是圖文混合資料。

這就導致,在網際網路領域中很多工都和圖文跨模態表示相關。比如,圖文檢索任務,是用文字去搜索影象;影片搜尋推薦任務,影片中除了影象外,無論標題、字幕或語音,都可以對映為文字;文章配圖或廣告配圖,也需要建模文字和影象的關係。所以,圖文跨模態表示從某種意義上來講是網際網路領域裡應用最廣,最有價值的技術之一。

提到圖文跨模態表示,就不得不提 CLIP 這個工作。從架構的角度來講,CLIP用的是雙塔架構,即影象經過影象編碼器轉變為向量表示,文字也經過文字編碼器轉變為向量表示,兩個向量間可以計算相似度,最後通過對比學習來學習編碼器。CLIP 雖然架構簡潔,但效果卻非常驚豔,很重要的原因是使用了上億的圖文匹配資料進行訓練。基於CLIP的圖文跨模態表示,可以將影象分類任務轉變為一個影象文字檢索任務,如上圖右側所示,取得了非常好的效果,並且影象類別可以擴充套件。

如果圖文跨模態表示做好,那麼使用文字去控制影象的生成也會取得不錯的效果。比如DALLE-2 的工作,模型的上半部分是一個CLIP模型,通過把影象和文字向量表示對映到同一個空間中,就可以使用文字向量表示獲得影象的向量,然後再反向生成影象,從而實現了用文字語義控制影象生成。

因為CLIP等模型中,影象編碼器是單獨一路,文字編碼器也是單獨一路,所以一般稱之為雙塔模型。 針對中文圖文跨模態表示,在CLIP基礎上,國內很多團隊做過很好的改進工作,其中最有名的是WenLan,包括 1.0 和2.0,還有華為的Wukong模型。

(1) WenLan1.0模型 ,在CLIP的基礎上,構造圖文跨模態對比學習任務,框架利用了檢測器的資訊,並且在每個 Batch 的反樣本之外,還構建了更多的反樣本來幫助模型任務訓練。WenLan2.0 訓練資料量更大,支援多種語言,並且去掉了對檢測器的依賴。

(2) Wukong模型 ,在 CLIP框架基礎上,除了文字和影象的全域性表示做對比學習之外,還將細粒度的文字 Token和影象 Token做對齊,從而能學習到更細節的對應語義資訊。此外,Wukong使用了一億訓練資料做模型訓練,且開源了資料。

在做影象和文字表示的時候,存在 兩種思路 ,即 單塔模型 雙塔模型

  • 一種思路是把影象 單獨通過一個  Encoder 文字 單獨通過一個  Encode r   然後再進行資訊互動 的雙塔結構 。上面提到的 CLIP、WenLan、PanGu都是雙塔結構。由於雙塔模型,可以單獨對影象和文字做特徵提取,因此在影象檢索類任務上,速度比較快,但由於圖文資訊只在全域性上有資訊互動,所以,效果較差。

  • 另一種思路是把影象和文字 聯合起來一起 輸入,讓資料在網路的每一層都做資訊互動 單塔 結構 ,UNITER、OSCAR、M6等是單塔結構。單塔結構往往不是用在圖文檢索這樣粗粒度的任務上,而主要用在細粒度的任務上,這些任務對樣本Label 要求比較高。單塔結構由於資訊的充分互動在效果上往往會更好,而且,更適合細粒度任務,但由於同時需要文字和影象才能進行計算,所以計算效率往往較低。

02

中文圖文跨模態資料集Zero

下面介紹中文圖文跨模態資料集——Zero。

優質的資料集對於一個領域發展而言至關重要。雖然,行業裡有一些圖文跨模態資料集,但缺少定義了預訓練資料集以及多個下游任務資料集的完整協議 而且,預訓練資料集要適合學術界使用,同時需要更高質量、更豐富的下游任務。

Zero的提出是基於公平公正,對學術界可用的初衷。剛好 360 有這樣的條件,在搜尋中,積累了非常多的圖文資料,資料質量要比在網際網路上爬取的資料質量更高。最終,我們釋出了一個包括 2300 萬和 230 萬的預訓練資料集,之所以有 230 萬的設定,就是因為考慮到學術界做 2300 萬資料預訓練在計算量上可能會存在挑戰。Zero 包含兩個預訓練資料集,以及五個下游任務資料集,希望Zero的出現,能夠讓學術界也開始在圖文跨模態的任務上捲起來。如果有更大的算力,可以在 2300 萬上做預訓練,如果沒有則可以在 230 萬上做訓練。這樣大家就在一個完全一致且公平的設定上做比較,可以更多地關注演算法本身的效果。

下面具體介紹一下構建Zero資料集的過程。

1. 2個預訓練資料集

如上圖左側,獲取一個如 Image Caption 這樣精確標註的資料,成本是比較高的。

對於搜尋點選資料,在使用者搜尋某個查詢詞的時候,會點選一個或幾個影象,通過點選次數對資料進行過濾,可以得到文字和影象有較強對應關係的資料對。這些資料,再通過大量的自動化過濾,去除可能含有不良資訊的資料,最終從幾十億資料中,提取到 2.5 億優質資料。再從中隨機抽取 2300 萬以及 230 萬資料,就完成了Zero預訓練資料集的構建。

Zero跨模態資料集相較之前資料集的特色在於,它是真實場景的使用者資料,在圖文的對應關係上,因為使用使用者行為做了過濾,所以比在網際網路上爬取並處理的資料質量更高。我們的試驗結果也證明了這樣的結論。這個資料集包含兩個預訓練資料集,以及五個下游任務資料集。每一條資料,除了查詢詞和影象外,還包括標題、周邊文字以及 Url,整個資料庫都是對外開放的。

2. 5個下游任務資料集

為了更好地對比各個模型的效果,我們共構建了五個下游任務:

  • 長文字圖文匹配分類任務

  • 短文字圖文匹配分類任務

  • 長文字圖文互檢任務

  • 短文字圖文互檢任務

  • 更新的Flickr30k資料集

之所以對Flickr30k做處理,是因為Flickr30k是英文圖文跨模態領域非常主流的測試資料,為了更好地比較中文圖文跨模態模型和英文圖文跨模態模型的結果,需要一個優質的Flickr30k中文對應資料集。過去曾經有一個人工翻譯測試集、自動翻譯訓練集的版本Flickr30k-CN,但自動翻譯存在較多錯誤。所以,我們找了6個專業人士重新對訓練集和測試集進行了翻譯。在上圖的例子中,可以看到,原有資料集Flickr30k-CN存在較多的標註錯誤,通過重新標註,錯誤基本上都被糾正了,新的資料集我們稱作Flickr30k-CNA。

03

圖文跨模態預訓練框架R2D2

下面主要介紹一下我們提出的圖文跨模態預訓練框架R2D2。R2D2來自於星球大戰裡邊讓人印象深刻的那個機器人,而R2簡寫是因為我們的預訓練框架做了兩次Rank,D2簡寫是因為我們的預訓練框架做了兩次Distillation。

上圖顯示了整個 R2D2框架 ,下半部分,影象使用了VIT架構做表示,影象被表示為多個Patch,經過 Image encoder 輸出影象向量,右側是Text encoder,我們使用了RoBERTa,下面整體是一個雙塔結構,和CLIP一樣。

在框架上面部分,為了讓圖文資訊更好互動,把影象和文字資訊進行Cross Attention。最終共使用了四部分 Loss,第一個是跟CLIP一樣的對比學習Loss,稱作GCPR,第二個是文字-影象的細粒度匹配分類 Loss,第三個是影象-文字的細粒度匹配分類 Loss,第四個是文字的 MLM(遮蓋語言模型)Loss。

這個框架類似於網際網路領域裡搜尋/推薦/廣告最常用的召回和排序框架,底層的雙塔模型,主要目標是快速排除大量容易的干擾,保證召回可能的結果。上層的單塔模型,利用更細粒度的資訊互動,主要針對比較難的干擾,類似於精排的邏輯。

1 .   Pre - Ranking + Ranking框架

(1) 全域性對比 排序 損失函式 ,和CLIP相似,區別在於增加了 Distilling 的改進,此外,在構建反樣本對時,CLIP只在單卡的 Batch 內做,Zero則使用多卡的資料構建更多的反樣本對。

(2) 細粒度排序Loss ,這個損失函式的目標是處理更難區分的反樣本,對於正樣本而言,都會被送到上層做處理,但是隻會把比較難的反樣本送到上層進行處理,並且採用了二分類的loss,影象和文字都使用了這個 Loss。

(3) 掩碼語言建模   Loss ,即Mask Language Model,只用在文字一側。如上圖所示,其他工作中,在同時把 MLM 和其它 loss 一起用的時候,會用 MLM 迭代一輪,其它Loss再迭代一輪,交替進行。而在Zero框架中,我們把細粒度排序 Loss 和 MLM Loss 看作是聯合訓練任務,一起進行迭代訓練,每一輪只迭代一次,這樣在訓練速度上會有一定優勢,我們統稱為增強訓練 ET。

在整個訓練過程中,影象的底層VIT特徵一直是固定不變的。這是因為,如果同時訓練影象特徵,訓練速度非常慢,並且在我們的試驗中,開啟影象特徵會使效果變差。

2 .   Target - guided   Distillation + Feature - guided   Distillation

在CLIP Loss基礎上,我們還使用了目標導向型蒸餾,即除了真實的One Hot標籤外,同時結合教師模型輸出的軟標籤做Label。這樣做的好處是,圖文的對應關係,並不是絕對的1/0關係,而是存在中間的狀態,軟標籤更能反應真實的情況。教師模型輸出取了歷史模型的指數滑動平均。在訓練的過程中,為了增加反樣本,我們維護了一個歷史的反樣本佇列,並根據樣本的時效性,對樣本進行重要性加權。

進一步,我們還使用了目標導向型蒸餾,即在特徵輸出上去擬合教師模型。 教師模型可以看作多個模型的分佈,最終利用交叉熵 Loss 來約束學生模型與教師模型分佈一致。

總結一下, R 2 D 2 框架對比 之前的框架 在CLIP 雙塔框架 基礎上 將雙塔模型和單塔模型進行結合,利用了二者的優點 一定 創新性 。其中雙塔部分,文字和影象各自的編碼器,做好各模態自己的表示,最終保證召回,而單塔部分,充分進行資訊互動,更好地區分更難的反樣本。

模型和使用程式碼都已開源,歡迎大家關注。

04

實驗結果

在中文圖文跨模態領域,公開報道結果能用來對比的工作並不多,這裡主要是用Wukong和Wenlan2.0的結果做對比。Zero在模型上有VIT Base和VIT Large兩個版本,在訓練資料上有230萬、2300萬以及2.5 億三個預訓練資料集。

  • 從結果來看,相同訓練資料條件下,VIT Large模型要顯著好於VIT Base模型;在同樣的模型上,預訓練資料量越大,結果越好。

  • 與此前 SOTA 結果相比,使用230萬資料訓練的模型,已經可以在大多數任務上超過此前 SOTA,使用2300萬資料訓練的模型全面超越SOTA,2.5億資料訓練的模型效果更加顯著。

上圖彙總了本文提出的模型在 Zero的五個下游任務上的結果。為了研究精標註的Flick30K-CNA資料對於訓練結果的影響,我們測試了Filckr30K-CNA訓練的模型,與Flickr30k-CN訓練的模型,在Filckr30K-CN的測試集上的結果,發現確實有所提升,證明了訓練集人工標註的價值。其它四個資料集上,只包含本文工作結果,可以看出,當模型容量更大的時候,效果會更好。

我們做了消融實驗來分析各個機制的影響,上圖中,R2D2中顯示的是各個機制融合的最終版本結果,是所有結果中最好的。

其中,PRD2的結果是對於 CLIP的改進,即把雙塔特徵,拿出來進行計算。可以看出,這個對於 CLIP 改進的特徵還是要比 R2D2最終的結果顯著差。

去掉 ET 機制,即 MLM 和細粒度分類任務聯合機制,結果有一個點左右下降,說明這個機制對結果影響較大。去掉目標導向蒸餾和特徵導向蒸餾,結果也有下降。

在Zero Shot實驗中,2300萬資料訓練的模型,要比此前的 SOTA 模型好一些,而 2.5 億資料訓練的模型,則顯著好於 SOTA :

  • Flickr30k-CN 上提升了4.7%,達到85.6%。

  • Coco資料集上提升了5.4%,達到80.5%。

  • MUGE資料集上提升了6.3%,達到69.5%。

MUGE是一個比較偏商品的資料集,我們的訓練集中有關商品的資料很少,上面的結果說明,預訓練模型學到了比較通用的表示。

我們還做了一些視覺化的工作,做得比較簡單。 根據R2D2模型的引數,將文字對應影象的注意力分數在影象上進行視覺化。 可以看到,模型學習到了一些區域對應關係。

05

業務落地

圖文跨模態模型,在網際網路的很多工上都有落地價值。比如在文字搜圖、配圖以及影片內容理解中。360搜尋事業部在 R2D2 模型落地業務中,已經做了很多嘗試,取得了不錯的結果,歡迎更多同學在自己的業務場景下嘗試。

06

總結

本篇文章主要介紹了中文跨模態資料集Zero和圖文跨模態表示框架 R2D2,其中 Zero包括兩個預訓練資料集和五個下游任務資料集,預訓練資料集包括2300萬和230萬兩個版本。Zero,可以讓學術界和工業界在同一個起跑線上做演算法的研究和對比,避免只是比拼算力和資料。

預訓練框架R2D2,借鑑前面工作的很多技巧,是一個很優雅的框架,對網際網路搜廣推領域的同學,會感覺很熟悉。而且,這些模型和資料都已經開源,歡迎大家使用和反饋。

最後做個廣告,我最近開啟了一次新的歷程,創立了一家叫碳矽智慧(Carbon Silicon AI)的公司,碳是組成生命的基礎元素,矽是組成計算機的基礎元素,我們希望把最先進的計算機AI技術與最先進的生命科學技術結合,用 AI計算驅動生命科學。

我自己一直在尋找AI落地的垂直方向,而生命科學剛好滿足兩個條件:一是生命科學能惠及每個生命,非常有使命感,二是 AI計算將在其中起到核心驅動作用。

從技術角度看,生命科學領域有非常多沒有被很好解決的問題,而這個領域中真正懂 AI建模的同學還很少,遠沒有 CV 和 NLP領域卷,所以機會很多;此外,我們在 CV 和 NLP領域積累的經驗和方法,包括跨模態表示、預訓練大模型等,都對生命科學有非常多的借鑑價值。歡迎更多同學加入到這個領域中來,做一些有價值且不同的事情。

以上,就是今天的分享,謝謝大家!

07

QA環節

Q1:多模態和生命科學 主要 哪些方面的結合

A1:在生命科學領域裡,大家過去習慣把任務簡單割裂地看待,將每個任務獨立對待,這樣會造成能利用的資料和資訊很少。生命科學領域存在多種不同模態的資料,分子是一種模態,蛋白是一種模態,疾病、基因、DNA、RNA都是不同的模態,這些模態間都存在關聯。比如當考慮蛋白靶點和疾病的關係時,或者考慮小分子和蛋白的關係時,都可以用多模態的思路去建模。而且,一種資訊也可以有不同的表示形式,比如小分子的2D和3D結構,也可以近似看作是多模態問題,這個思路可以用來構建預訓練模型。

Q2:R2D2比較複雜,能夠直接在線上部署麼?

A2:R2D2框架分為兩級,其中,第一級和CLIP是一樣是雙塔結構,直接把影象或文字轉換為一個特徵向量,可以提前計算儲存下來,所以比較適合做大規模檢索任務。但第二級的單塔模型,需要同時輸入圖文兩路資訊,工程上會難使用一些,比較適合在精排階段使用。大家可以看到,這和搜尋推薦廣告裡邊的召回排序邏輯是一樣的,先用第一級特徵在幾十億或者更大規模的資料庫中用向量檢索召回,然後用第二級模型做排序,計算更有區分度的分數用來把最好的匹配結果挑出來。

Q3:從事 NLP 的同學參與到生命科學中,這個技術壁壘高不高?

A3:在生命科學領域裡邊,從資料形式上來講,分子有兩種表示形式。一種是一維序列形式,叫作 SMILES,類似 NLP領域的文字序列,只不過是由碳氫氧氮等元素和鍵組成。第二種表示形式是Graph,原子作為節點,共價鍵作為邊。同樣,蛋白質、基因等資訊也可以用一維序列或者圖來進行表示。所以,從資料形式上看,和 我們在 NLP領域遇到的資訊表示形式很相似。同樣,模型會使用 GNN或者Transformer,也和NLP領域很相近。當然,生命科學領域還需要很多領域知識,需要一定的適應時間,但從演算法角度看,並沒有什麼障礙。

從某種意義上, AI模型在各個領域是在逐步走向統一的。換句話講,就如同統一的程式語言一樣,無論是 CV、NLP、語音或生命科學領域,未來都會用類似 Transformer這樣的模型進行建模,雖然不同領域會有所區別,但是不同領域解決問題的辦法會逐漸統一,且相互借鑑。就如同過去幾年, CV和 NLP領域互相借鑑了很多,同樣,生命科學領域也會受益於 CV和 NLP領域的技術進步。

歡迎更多感興趣的同學加入一起解決生命科學領域的問題,這裡是深度學習應用的藍海。

今天的分享就到這裡,謝謝大家。

在文末分享、點贊、在看,給個3連擊唄~

01 / 分享嘉賓

02 / 專題電子書 限時免費送

03 / 報名看直播 免費領PPT

04 / 關於我們

DataFun: 專注於大資料、人工智慧技術應用的分享與交流。發起於2017年,在北京、上海、深圳、杭州等城市舉辦超過100+線下和100+線上沙龍、論壇及峰會,已邀請超過2000位專家和學者參與分享。其公眾號 DataFunTalk 累計生產原創文章800+,百萬+閱讀,14萬+精準粉絲

  分享、點贊、在看 ,給個 3連擊 唄! :point_down: