原文鏈接:https://arxiv.org/pdf/1911.06258
Motivation

任務為TextVQA(詳情見上一篇推送)。現有模型大多是基於兩個模態的結合機制(如問題與圖片特征的attention、問題與OCR提取文本的attention等),將TextVQA當做分類任務,並且單步產生答案(從OCR賦值或者直接生成。作者提出了M4C模型,基於多模態(問題、圖片、文本)的transformer架構和對於圖片中文本的豐富表征,將所有模態中的實體投射到一個共同的語義embedding空間,並進行self-attention,可以進行分步預測產生答案。
Model

模型將問題中的單詞、圖片中識別到的物體、OCR識別文本作為向量投射到一個共同的embedding空間中,然后在所有的特征上使用多層transformer,豐富單個模態內以及模態相互之間的表征。解碼時輸入前一步的預測結果來進行下一步預測,每一步從OCR文本中復制或者從固定詞匯表中選取。


共同embedding空間
問題單詞embedding:用預訓練的BERT對單詞進行embedding,並進行微調。
識別物體embedding:用Faster R-CNN識別物體,對每個物體提取外觀特征x^fr_m,再引入四維向量x^br_m表示位置特征,其中x^br_m=

W和H是圖片的寬度和高度。隨后用線性變換將兩個特征投射到d維空間並求和。

LN是layer normalization。最終的embedding為d維。
OCR文本embedding:表示了文本的字符、外觀(字體顏色等)、空間位置信息。首先用OCR提取出文本,然后
①對每個OCR token用FastText得到向量x^ft_n(word embedding並含有subword信息);
②對bounding box使用Faster R-CNN提取特征;
③用PHOC提取token中的字符特征;
④獲得bounding box的位置特征,與物體的位置類似。

最終OCR embedding為:

模態融合以及分步預測
對K個問題embedding、M個物體embedding、N個OCR embedding組成的d維空間,使用L層Transformers,使得每個實體可以自由地和與其他實體結合,即便不是來自同一個模態。Transformers的輸出是一系列d維向量。
通過迭代解碼來預測答案,解碼器與transformer層相同。一共進行T步,每一步的單詞來自OCR或者固定詞匯表。解碼時會將前一步的預測單詞輸入,用動態指針網絡預測下一個單詞。設

是OCR token經過transformers的輸出,第t步transformer對應x^dec_t輸出z^dec_t,據此預測V維詞匯表第i個單詞的分數y^voc_t,i,以及N維OCR分數第n個token的分數y^ocr_t,n。

拼接后對y^all_t取argmax,選擇得分最高的元素作為本步預測結果。
如果t步的預測單詞是OCR單詞,就在t+1步將其表征x^ocr_n當做transformer的輸入x^dec_t+1;如果t步預測的是固定詞匯表中的單詞,就將其對應的權重向量w^voc_i當做x^dec_t+1。
額外加入了位置embedding以及type embedding(用來說明上一步預測來自OCR還是詞匯表)。加入了<begin>和<end>token作為預測的起始和終止。
訓練時對於OCR單詞和詞匯表單詞,使用多標簽sigmoid loss。其他參數細節見論文4.1節及附表。
Experiments

首先是TextVQA數據集上的實驗。圖中LoRRA為TextVQA數據集的baseline模型,w/o dec代表去除迭代預測步驟。DCD_ZJD是2019年TextVQA challenge的冠軍模型,MSFT_VTI是今年M4C出現前的第一名。最后一行的模型使用了ST-VQA數據集參與預訓練。

上圖中分別刪去了M4C答案空間中的固定詞匯表、OCR文本,准確率均有很大下滑,體現出同時使用固定詞匯表、動態OCR單詞的重要性。

本圖分析了最大解碼步數對正確率的影響。從一步到兩步經歷了一個很大的性能提升。

上圖為在ST-VQA數據集上的實驗,ST-VQA與TextVQA類似,不同之處在於采取了ANLS作為評價指標。M4C比冠軍模型VTA的ANLS提高了0.18。

上圖為在OCR-VQA數據集上的實驗。OCR-VQA的數據主要為書籍封面,詢問的問題包括作者、題目、版本、年代等等,問題較為固定且數據較多,因而准確率較高。
上圖為ST-VQA上一些預測結果的示例,藍色表示來自固定詞匯表,黃色表示來自OCR。f和h說明模型對於大量文本或者文本和物體關系密切的問題存在缺陷。
上圖為TextVQA上一些錯誤示例,結果說明錯誤的主要來源是OCR錯誤,因而可以通過改善OCR模型來提升性能。