BERT (Bidrectional Encoder Representations from Transformers) 自提出後,憑藉著 Transformer 強大的特徵學習能力以及透過掩碼語言模型實現的雙向編碼,其大幅地提高了各項 NLP 任務的基準表現。
鑑於其強大的學習能力,2019 年開始逐漸被用到多模態領域。其在多模態領域的應用主要分為了兩個流派:一個是單流模型,在單流模型中文字資訊和視覺資訊在一開始便進行了融合;另一個是雙流模型,在雙流模型中文字資訊和視覺資訊一開始先經過兩個獨立的編碼模組,然後再透過互相的注意力機制來實現不同模態資訊的融合。
本文主要介紹和對比五個在圖片與文字互動領域應用的 BERT 模型:VisualBert, Unicoder-VL, VL-Bert, ViLBERT, LXMERT。雖然 VideoBert 是第一個將 Bert 應用到多模態的模型,然而其考慮的是影片流和文字因此不在本文的介紹當中。
以下內容分為兩部分,第一部分介紹單流模型,第二部分介紹雙流模型。
單流模型
1. VisualBERT
論文標題:VisualBERT: A Simple and Performant Baseline for Vision and Language
論文連結:https://arxiv.org/abs/1908.03557
原始碼連結:https://github.com/uclanlp/visualbert
和 BERT 類似,VisualBERT 在結構上採用了堆疊的 Transformer。其在一開始就將文字和圖片資訊透過 Transformer 的自注意力機制進行對齊融合。
其文字部分的輸入為原始的 BERT 文字輸入(詞向量+位置編碼+片段編碼)加上 Token/Image 編碼來表示其是圖片或文字,而圖片部分的輸入則是採用透過 Faster-RCNN 提取的圖片區域特徵加上相應的位置編碼,片段編碼和 Token/Image 編碼(如下圖右側所示)。
VisualBERT 遵循 BERT 一樣的流程,先進行預訓練然後在相應的任務上進行微調,其採用了兩個預訓練任務:第一個是和 BERT 一樣的語言掩碼,第二個則是句子-影像預測 (即判斷輸入的句子是否為相應圖片的描述)。
作者在 VQA,VCR,NLVR2 和 Flickr30k 四個視覺語言任務上進行了測試,結果表明 VisualBERT 在四個任務中都達到了最好的表現或和已知最好表現相近的表現。進一步的消融實驗表明 VisualBERT 可以有效地學習到語言和相應影像區域的聯絡,同時也具有一定的句法敏感性。
2. Unicoder-VL
論文標題:Unicoder-VL: A Universal Encoder for Vision and Language by Cross-modal Pre-training
論文連結:https://arxiv.org/abs/1908.06066
該模型與(1)中的 VisualBERT 極其相似,在結構上同樣採用堆疊的 Transformer,並且同樣在一開始就對影像和語言資訊進行對齊和融合。
其與 VisualBERT 最大的不同在於改模型在輸入端對影像的處理。其文字部分的輸入與(1)中相似。在影像的輸入上,其首先透過 Faster-RCNN 提取區域影像特徵,然後將該特徵與區域影像在影像中的位置編碼進行拼接再經過一個連線層投影到與語言輸入維度相同的空間(如下圖所示)。
同樣的其也遵循先預訓練後微調的模式。該模型在三個任務中進行預訓練,前兩個與(1)相同為語言掩碼和影像語言匹配任務,第三個為影像標籤預測,即預測區域影像所物體類別。
作者在 MSCOO 和 Flicker30K 上分別進行測試,該模型取得了最佳效果。
3. VL-BERT
論文標題:VL-BERT: Pre-training of Generic Visual-Linguistic Representations
論文連結:https://arxiv.org/abs/1908.08530
原始碼連結:https://github.com/jackroos/VL-BERT
與上述兩個模型相同,VL-BERT 在結構上依舊直接採用堆疊的 Transformer。如下圖所示其在輸入端與上述兩個模型略有不同。
首先影像端的輸入由以下幾個編碼的加和構成:a. Faster-RCNN所提取的區域影像特徵和該區域在原影像中位置資訊的拼;b. 位置編碼;c. 片段編碼;d. [IMG] 編碼。
在文字端該模型的輸入為正常 BERT 文字輸入和整個影像特徵的加和。同第二個模型相似,該模型分別在三個任務上進行預訓練分別為:語言掩碼、影像標籤分類和影像語言匹配任務。
作者最後在 VCR, VQA, REC (Referring expression comprehension) 三個任務上測試模型,該模型都取得了最佳或者與最佳相當的表現。
雙流模型
1. ViLBERT
論文標題:ViLBERT: Pretraining Task-Agnostic Visiolinguistic Representations for Vision-and-Language Tasks
論文連結:https://arxiv.org/abs/1908.02265
原始碼連結:https://github.com/facebookresearch/vilbert-multi-task
基於雙流的 ViLBERT,在一開始並未直接對語言資訊和圖片資訊進行融合,而是先各自經過 Transformer 的編碼器進行編碼。分流設計是基於這樣一個假設,語言的理解本身比影像複雜,而且影像的輸入本身就是經過 Faster-RCNN 提取的較高層次的特徵,因此兩者所需要的編碼深度應該是不一樣的。
當兩種模態各自進行編碼後,其輸出會經過一個共注意力機制模組(如下圖右側所示)。該模組也是基於 Transformer 的結構,只是在自注意力機制中每個模組都用自己的 Query 去和另一模組的 Value 和 Key 計算注意力,由此來融合不同模組間的資訊。
該模型在兩個任務上進行了預訓練,第一個任務為掩碼任務,其中語言端和 BERT 的語言掩碼任務一樣,在影像端任務的目標則是當區域影像被掩蓋後模型對其輸出的分類分佈能夠儘可能與用來提取區域特徵的模型(這裡是 Faster-RCNN)的輸出分佈一致因此這裡作者使用 KL 散度作為目標函式;第二個任務則是常規的語言影像匹配任務。
作者分別在 VQA, VCR, GRE, IR, ZSIR 等五個任務中最模型進行測試。該模型在五個任務中都取得了當前最好或與最好相當的表現。其後作者又對預訓練過程進行分析發現與訓練過程中模型已經能夠學習到語言與影像在語義上的對齊關係。
2. LXMERT
論文標題:LXMERT: Learning Cross-Modality Encoder Representations from Transformers
論文連結:https://arxiv.org/abs/1908.07490
原始碼連結:https://github.com/airsplay/lxmert
該模型與 ViLBERT 一樣採用了雙流模型。如下圖所示,語言與影像在一開始先各自經過獨立的編碼層進行編碼,然後再經過一個模態互動編碼層進行語言與影像在語義上的對齊和融合。
在互動編碼層中,該模型同樣的也是使用共注意力機制,即自注意力中的 query 來自一個模態,而 key 和 value 來自另一個模態。該編碼層過後,影像與語言各自又經過一層自注意力層進一步提取高層特徵。
該模型的輸出有三個部分,一個語言端的輸出,一個影像端的輸出,一個多模態的輸出。該模型在與訓練時使用了四個任務:語言掩碼任務,影像掩碼任務(該任務有兩部分,第一部分為預測被掩影像物體類別,第二部分為 ROI 特徵迴歸任務該任務使用 L2 損失函式,語言影像匹配任務和影像問答任務。
最後作者分別在 VQA,GQA 和 NLVR 任務上測試該模型,模型在這些任務上都取得了最好的表現。作者同時又做了一些對比實驗驗證了預訓練有效的提高了模型在最後測試中的表現。
總結
這五篇論文都嘗試把 BERT 的框架遷移到了多模態領域,並類似於 Bert 那樣想在多模態領域建立一個可通用的特徵學習模型。多個實驗表明像 Bert 這樣的架構在多模態領域依舊具有很強的學習能力。
然而,究竟是單流更佳還是雙流更佳還不是很明確,雖然主張單流的論文裡有作者與雙流模型進行比較得出單流更好的結論,但是在雙流的論文裡同樣有與單流的比較而結果是雙流更好。關於單雙流究竟哪個更好或者是與特定任務相關,看來還需要未來更嚴謹的對比實驗來進一步進行驗證。
Reference