OPT: Omni-Perception Pre-Trainer for Cross-Modal Understanding and Generation
2021-07-21 20:23:07
Paper: https://arxiv.org/pdf/2107.00249.pdf
Code: Not available yet
1. Background and Model:
本文提出一種聯合三個模態的預訓練模型,以取得更好的結果。模型 OPT 的示意圖如下所示,該模型是一個大型語料庫上進行學習的,包含了 language-vision-audio 三元組。可以通過多任務學習的方式進行學習,可以有效地適應到下游任務,給定單個,雙流,甚至三個模態的輸入。模型包含三個 single-modal encoders, a cross-modal encoder, two cross-modal decoders.
跨模態理解需要對齊輸入,從細粒度符號級別 到 粗粒度樣本級別。工作的方式就是跨模態的翻譯,cross-modal generation, 可以進行模態級別的建模。 所以作者提出的 OPT 模型可以從三個角度進行學習,即:token-level,modality-level,sample-level 進行建模。
從模型結構的角度上來說,主要分為如下三個部分:
1.1 Single-Modal Encoder:
Text Encoder: 首先利用 WordPieces 對文本進行划分,得到符號序列。最終的 embedding 是通過對每一個符號映射和位置編碼相加,然后用 layer-norm layer 進行處理;
Vision Encoder: 利用 Faster rcnn 模型提取視覺表示,即 ROI features。然后編碼了其 7-D 的位置特征 [x1, y1, x2, y2, w, h, w*h],其中 x1 y1 x2 y2 是 box 的頂點坐標,w 和 h 分別表示該區域的寬和高。然后,視覺信息和位置信息分別用兩個 fc layer 映射到同一個空間。通過將兩個 fc 的輸出相加,得到該分支的結果。然后輸入到 layer-norm layer 中。
Audio Encoder: 作者利用 wav2vec 2.0 得到音頻信息符號,提取每一個符號的特征,然后輸入到 layer-norm 中得到最終 audio 的特征。
1.2 Cross-modal Encoder:
作者引入了一個跨模態編碼器來進行多個模態的融合,其實就是簡單地 concatenate,然后輸入到一個 transformer 模塊中:
1.3 Cross-Modal Decoder:
作者這里引入了兩個 decoder 分支,一個是 text decoder,一個是 vision decoder。其中文本解碼器就是 Transformer 進行單詞的預測。視覺解碼器則是 two-stage framework:離散表示學習 和 語言建模。
第一階段聚焦於將 image 轉換為 離散的 codes,dVAE 模型用於實現該過程。第二階段是,建構了一個 language model,來學習產生 code sequence。
2. Pre-training Tasks:
作者構建了三個預訓練任務進行自監督學習:
1). token-level modeling,
這個思路較為常見,即利用產生式模型的機制,對三個模態分別進行掩模處理,預測對應被 mask 掉的部分;
2). modality-level modeling,
Modality-level masking: 作者以 30% 的概率去擦除其中一個 或者 兩個模態的輸入。三個模態均被擦除的可能性被設置為 0. 畢竟,還是要有可用信息的嘛。以使得 OPT 模型可以在模態缺失的條件下,取得較好的下游任務適應,即可以處理單個模態,兩個模態和三個模態輸入的任務設定。
Denoising Text Reconstruction: 利用 Transformer decoder 進行輸入文本的重構;
Denoising Image Reconstruction: 利用 VAE 模型來重構圖像樣本;
3). sample-level modeling.
對於 text-image-audio 樣本對,作者隨機的對其中的 1-2 個模態進行替換,以讓模型去區分到底是不是 matching 的:
如上圖所示,共分為 5 種情況。作者提取 [CLS] 符號的輸出表示,作為三元組的聯合表達,然后輸入到 fc layer 和 sigmoid 函數中,去預測得分。預測的得分是 5-D 的輸出。
3. Experiments:
==