視覺問答全景概述:從數據集到技術方法
印度理工學院 Akshay Kumar Gupta 近日發布了一篇論文,對視覺問答方面的數據集和技術進行了盤點和比較。機器之心對本文內容進行了摘要式的編譯介紹。
視覺問答(visual question answering/ VQA)是結合自然語言處理和計算機視覺技術的一種新興任務。本文是一份視覺問答技術研究情況的調查,我們在文中列舉了一些用于解決這個任務的數據集和模型。調查的第一部分詳細介紹了用于 VQA 的不同數據集,并比較了各數據集的特點。調查的第二部分詳細介紹了 VQA 的不同模型,分為四個類型:非深度學習模型、無注意機制(without attention)的深度學習模型、有注意機制(with attention)的深度學習模型以及其它模型。最后,我們比較這些模型的性能,并為今后的工作提供一些方向。
一、引言
視覺問答是最近幾年出現的一個新任務,并引起了機器學習社區的關注(Antol 等,2015)(Wu 等,2016a)。該任務通常分為向計算機展示圖像和向計算機詢問有關圖像的問題兩個步驟。答案可以是以下任何形式:單詞、短語、是/否回答、從幾個可能的答案中選擇或在空白處填寫答案。
視覺問答任務具有重要性和吸引力,因為它結合了計算機視覺和自然語言處理領域。計算機視覺技術用來理解圖像,NLP 技術用來理解問題。此外,兩者必須結合起來才能有效地回答圖像情境中的問題。這相當具有挑戰性,因為傳統上這兩個領域使用不同的方法和模型來解決各自的任務。
本調查詳細介紹了用于解決視覺問答任務的數據集和模型,并對這些模型在各數據集上運行的效果進行了比較。本文分為 4 個部分:第 2 部分介紹 VQA 數據集,第 3 部分介紹模型,第 4 部分討論結果并提供一些未來的可能方向。
二、數據集
在過去 2-3 年中,出現了幾個大型的面向 VQA 任務的數據集。表 1 是這些數據集的情況摘要。
表 1:VQA 數據集
三、模型
隨著深度學習技術的廣泛普及,VQA 任務被提出時,深度學習領域各種計算機視覺和 NLP 技術已經有了很大發展。因此,文獻中幾乎所有關于 VQA 的工作都涉及深度學習方法,而不是采用更經典的方法,如圖模型(graphical model)。在本部分第 1 小節中,作者詳細介紹了幾個沒有用神經網絡方法的模型,以及作者在這些模型中使用的幾個簡單基線(baseline)算法。第 2 小節介紹了無注意機制的深度學習模型。第 3 小節詳細介紹了用于 VQA 的有注意機制的深度學習模型。所有模型的結果總結在表 2 和表 3 中。
1. 非深度學習方法
(1) 回答類型預測(Answer Type Prediction/ATP)
(Kafle 和 Kanan,2016)提出了一個用于 VQA 的貝葉斯框架,他們用模型預測一個問題的答案類型,并用它來產生答案。可能的答案類型隨著數據集的不同而有所不同。例如,對于 COCO-QA,他們考慮四種答案類型:對象、顏色、計數和位置。
給定圖像 x 和問題 q,模型計算答案 a 和答案類型 t 的概率:
遵循貝葉斯定理。然后,計算所有答案類型邊際分布概率得到 P(A=a|x,q)。對于給定的問題和答案,分母是常數可以忽略。
他們用三個獨立的模型對分子中的 3 個概率進行建模。第 2 和第 3 個概率都使用 logistic 回歸進行建模。問題的特征采用跳躍思維向量表征(skip-thought vector representation)(Kiros 等人,2015)(他們使用預訓練的跳躍思維模型)。第 1 個概率為條件多元高斯模型,原理上與二次判別分析(Quadratic Discriminant Analysis)相似。此模型采用了原始圖像特征。
作者還介紹了一些簡單的基線算法,如僅將圖像特征或僅將問題特征饋送到 logistic 回歸,將圖像和問題特征同時饋送到邏輯回歸,以及將相同的特征饋送到多層感知器。他們在 DAQUAR、COCO-QA、Visual7W 和 VQA 數據集上進行了評估。
(2) 多元世界(Multi-World)問答
(Malinowski 和 Fritz,2014)這篇論文將基于問題和圖像的答案概率建模為
。這里 T 為隱藏變量,它對應于從問題語義分析器(semantic parser)得到的語義樹(semantic tree)。W 是世界,代表圖像。它可以是原始圖像或從分割塊獲得的附加特征。使用確定性評價(deterministic evaluation)函數來評估 P(A|T,W)。使用簡單的對數線性模型得到 P(T|Q)。這個模型被稱為 SWQA。
作者進一步將其擴展到多元世界的場景,用來模擬分割和分類標簽的不確定性。不同的標簽代表不同的 W,所以概率模型為
這里,S 是帶有類標簽分布的一組分割圖像集。因此,從分布中抽樣分割圖像時將得到其對應的一個可能的 W。由于上述方程很復雜,作者僅從 S 中抽樣固定數量的 W。
這個模型稱為 MWQA。這些模型在 DAQUAR 數據集上進行評估。
2. 無注意機制的深度學習模型
VQA 的深度學習模型通常使用卷積神經網絡(CNN)來嵌入圖像與循環神經網絡(RNN)的詞嵌入(word embedding)來嵌入問題。這些嵌入以各種方式組合和處理以獲得答案。以下模型描述假設讀者熟悉 CNN(Krizhevsky 等人,2012)以及 RNN 變體,如長短時記憶(LSTM)單元(Hochreiter 和 Schmidhuber,1997)和門控循環單位(Gated Recurrent Unit/GRU)(Cho 等人,2014)。
一些方法不涉及使用 RNN。我們在開頭已經討論過這些模型。
(1) iBOWING
(Zhou 等人,2015)提出了一種叫做 iBOWING 的基線模型。他們使用預訓練的 GoogLeNet 圖像分類模型的層輸出來提取圖像特征。問題中每個詞的詞嵌入都被視為文本特征,因此文本特征是簡單的詞袋(bag-of-word)。連接圖像和文本的特征,同時對答案分類使用 softmax 回歸。結果表明,該模型在 VQA 數據集上表現的性能與幾種 RNN 方法相當。
(2) Full-CNN
(Ma 等人,2015)提出了一種僅用 CNN 的模型,稱為 Full-CNN。模型使用三種不同的 CNN:一種用于編碼圖像,一種用于編碼問題,一種用于將圖像和問題的編碼結合在一起并產生聯合表征。
圖像 CNN 使用與 VGG 網絡相同的架構,并從該網絡的第二層獲取長度為 4096 的向量。這通過另一個完全連接的層,以獲得大小為 400 的圖像表征向量。句子 CNN 涉及 3 層卷積和最大池化(max pooling)。卷積感受野(receptive field)的大小設置為 3。換句話說,核函數(kernel)會計算該詞及其相鄰的鄰居。聯合 CNN 稱為多元模態 CNN(multi-modal CNN),在問題表征上的卷積感受野大小為 2。每個卷積運算都在完整的圖像上進行。將多元模態 CNN 的最終表征結果傳入 softmax 層以預測答案。該模型在 DAQUAR 和 COCO-QA 數據集上進行評估。
以下模型同時使用了 CNN 和 RNN 算法。
(3) 神經元詢問(Ask Your Neurons/AYN)(Malinowski 等人,2016)
該模型使用 CNN 對圖像 x 進行編碼并獲得圖像的連續向量表征。問題 q 使用 LSTM 或 GRU 網絡進行編碼,其中在時間 t 步驟的輸入是問題的第 t 個詞 q_t 的詞嵌入與圖像向量編碼。問題編碼是最終時間步驟獲得的隱藏向量。作者使用的一個簡單的詞袋基線是將問題的所有詞嵌入的總和作為編碼。
解碼答案可以用兩種不同的方式,一種是對不同答案的分類,另一種是答案的生成。分類由完全連接層生成輸出并傳入覆蓋所有可能答案的 softmax 函數。另一方面,生成由解碼器 LSTM 執行。在每個時間點的 LSTM 將前面生成的詞以及問題和圖像編碼作為輸入。下一個詞使用覆蓋詞匯表的 softmax 函數來預測。需要注意的一點是,該模型在編碼器和解碼器 LSTM 之間共享一些權重。該模型在 DAQUAR 數據集上進行評估。
(4) Vis + LSTM(Ren 等人,2015)
該模型與 AYN 模型非常相似。該模型使用 VGG 網絡的最終層來獲得圖像編碼使用 LSTM 對問題進行編碼。與之前的模型相反,在編碼問題之前,它們將圖像編碼作為第一個「詞」傳入 LSTM 網絡。該 LSTM 的輸出先通過完全連接層,然后通過 softmax 層。
作者還提出了一種使用雙向 LSTM 的 2Vis+BLSTM 模型。向后的 LSTM 也將圖像編碼作為第一個輸入。兩個 LSTM 的輸出相連接,然后通過一個 dense 和 softmax 層。
(5) 動態參數預測(DPPnet)(Noh 等人,2016)
本論文的作者認為,設定一組固定參數并不足以滿足 VQA 任務。他們采用 VGG 網絡架構,刪除最終 softmax 層,并添加三個全連接層,并最后使用覆蓋所有可能答案的 softmax 函數。這些完全連接層的第 2 層沒有固定的一組參數。相反,參數來自 GRU 網絡。該 GRU 網絡用于對問題進行編碼,并且 GRU 網絡的輸出通過完全連接層給出候選參數的權重小向量。然后使用逆哈希函數(inverse hashing function)將該向量映射到第 2 完全連接層所需的參數權重大向量中。這種哈希(hashing)技術被用于避免預測全部的參數權重而帶來的計算成本高昂,并避免由此導致的過擬合。或者可以將動態參數層視為將圖像表征和問題表征相乘得到的聯合表征,而不是傳統的以線性方式組合。該模型在 DAQUAR、COCO-QA 和 VQA 數據集上進行評估。
3. 基于注意機制的深度學習技術
基于注意機制的技術是最受歡迎的技術之一,在機器翻譯(Bahdanau 等人,2014)、圖像描述(Xu 等人,2015)等眾多任務中使用。對于 VQA 任務,注意機制模型聚焦在圖像、問題或兩者的重要部分,從而有效地給出答案。
(1) Where To Look(WTL)
(Shih 等人,2016)提出了以下稱為 WTL 的基于注意機制的模型。他們使用 VGGnet 對圖像進行編碼,并連接最后兩層 VGGnet 的輸出,以獲得圖像編碼。問題表征是通過對問題中每個詞的詞向量求平均得到的。在圖像特征集上計算注意向量,以確定圖像中的哪個區域重要。該向量用下面的方式計算:如果 V=(-→v1,-→v2 ... -→vK)是圖像特征的集合,而-→q 是問題嵌入,則第 j 個區域的重要性被計算為 g_j=(A-→vj+bA)T(B-→q+bB)
注意向量的權重通過標準化-→g 獲得。最終的圖像表征是不同區域的注意值加權和。這與嵌入問題相連接,并傳入 dense+softmax 層。該模型在 VQA 數據集上進行評估。損失函數是基于 VQA 評估指標的最大邊際損失(margin based loss)。
(2) 循環空間注意(Recurrent Spatial Attention/R-SA)(Zhu 等人,2016)
本模型在兩個方面比上一個模型超前一步。首先,它使用 LSTM 對問題進行編碼,其次,在掃描問題的每個詞之后,它重復地計算圖像的注意值。更具體地說,在 LSTM 的每個時間步長 t,我們反復計算圖像特征的注意值加權和 r_t,r_t 用作 LSTM 的下一個時間步長的附加輸入。利用 LSTM 之前的隱藏狀態 ht-1 和圖像本身,用于得到 r_t 的注意向量的權重用 dense+softmax 層計算得出。從生理角度,當我們閱讀問題時,我們會不斷地決定圖像的哪部分需要注意,而現在注意的部分取決于當前的詞和 ht-1 狀態前的注意加權圖像。
該模型在 Visual7W 數據集上進行評估,該數據集用于文本回答任務以及指點任務(指出圖像中的區域作為答案)。實際和預測答案之間的 softmax 交叉熵損失函數(cross entropy loss)用于文本回答任務。對于指點任務,通過采用表示該區域的特征的點積和 LSTM 的最后狀態來獲得候選區域的對數似然值(log likelihood)。再次使用交叉熵損失函數來訓練模型。
(3) 堆疊注意網絡(Stacked Attention Networks/SAN)(Yang 等人,2016)
本模型在思想上與之前的模型相似,因為它反復計算對圖像的注意向量,以獲得更細粒度的視覺信息來預測答案。然而,雖然之前的模型對問題逐詞計算,本模型首先使用 LSTM 或 CNN 對整個問題進行編碼。這里的問題編碼用與之前類似的方程來注意圖像。然后,連接注意加權圖像與問題編碼,并將其再次用于計算對原始圖像的注意。這可以重復 k 次,之后使用問題和最終圖像表征來預測答案。作者認為,這種「堆疊」注意有助于模型迭代地丟棄圖像中不重要的區域。作者對 k=1 和 k=2 進行了實驗,并在 DAQUAR、COCO-QA 和 VQA 數據集上進行評估。
(4) 層次協同注意(Hierarchical Co-attention/CoAtt)(Lu 等人,2016)
本文不同于之前基于注意的方法,它的模型除了對視覺注意外,還同時注意問題(問題的哪部分重要)。模型有兩種協同注意的形式:1)并行協同注意,其中圖像和問題的注意同時進行。這通過計算親和矩陣(affinity matrix)C=tanh(Q^TWI) 來完成,其中 W 是可學習的權重矩陣,C_ij 表示問題中第 i 個詞和圖像中第 j 個區域的親和值。該矩陣 C 用于獲得圖像和問題注意向量。2)交替協同注意,這里我們迭代地注意圖像,然后查詢,然后再次注意圖像(類似于 SAN 的思想)。
作者使用的另外一個想法是在不同的抽象層上編碼問題:詞、短語和問題層面。通過 LSTM 獲得問題的表征,而從 CNN 獲得詞和短語的表征。該模型在 VQA 和 COCOQA 數據集上進行評估。
4. 其它模型
不同于前面的模型,下面的模型使用了更多的思想,而不僅僅是在計算圖像或問題的注意值方面作改變。
(1) 神經模塊網絡(NMN/Neural Module Network)
(Andreas 等人,2016)該模型為每個圖像和問題同時不間斷地生成一個神經網絡。具體的實現方式為:從各種基于問題的子模塊中選擇,并組合它們生成神經網絡。有五種模塊:注意 [c](其計算給定圖像和給定 c 的注意映射;c 可以是「狗」,然后注意 [狗] 將嘗試找到含有狗的圖像),分類 [c](對于給定的圖像和注意映射,其輸出屬于 c 的標簽的分布;c 可以是「顏色」),重新注意 [c](它使用注意映射并基于 c 重新計算這個映射;c 可以是「上面」,意味著將注意力向上移動),測量 [c](它僅通過注意映射輸出標簽的分布)和組合 [c](它合并由 c 確定的兩個注意映射,c 可以是「與」或「或」)。
決定組合哪些模塊之前,模型首先使用依存句法分析器(dependency parser)來解析問題,并使用此依存關系創建基于中心詞的符號表達。本論文的一個例子是「What is standing on the field(站在運動場上的是什么)」變為「what(stand)」。然后用這些符號形式來確定要使用的模塊。之后通過反向傳播端到端(end-to-end)地訓練整個系統。模型在 VQA 數據集與一個更具挑戰性的合成數據集(由于發現 VQA 數據集不需要太多的高級推理或組合)上評估。
(2) 包含知識庫
(Wu 等人,2016b)提出了「詢問任何問題」(Ask Me Anything/AMA)模型,該模型試圖借助外部知識庫中的信息來幫助指導視覺問答。它首先基于圖像的標題獲得一組屬性,如對象名稱、屬性等。圖像標題模型在 MS-COCO 數據集上使用標準的圖像加標題技術訓練。該模型生成 256 個可能的屬性,并且屬性生成器使用 VGG 網絡的變體在 MS-COCO 數據集上訓練。前 5 個屬性用于生成查詢 DBpedia 數據庫的語句。每次查詢返回一個用 Doc2Vec 算法排序匯總的文本。該匯總文本作為附加輸入傳給生成回答的 LSTM 解碼器。模型在 VQA 和 COCO-QA 數據集上進行評估。
表 2:不同模型在 DAQUAR(部分)、DAQUAR(全部)、COCO-QA 數據集上的表現
表 3:不同模型在 VQA 數據集上的表現
四、討論以及未來的工作
在所有 VQA 數據集上,深度學習模型的表現比早期基于圖模型的方法出色,這已經成為近年來的趨勢。然而,有趣的是,我們看到 ATP 模型的表現優于非注意模型,這證明簡單地引入卷積和/或循環神經網絡是不夠的:原則上識別相關的圖像部分是重要的。ATP 甚至可以與一些注意模型(如 WTL 和 SAN)相媲美甚至表現更好。
CoAtt 的表現有顯著的提升,該模型首先注意問題然后注意圖像。這對于長問題可能是有幫助的,由于這些問題更難用 LSTM/GRU 編碼表示為單個向量,因此首先對每個詞進行編碼,然后使用圖像來注意重要的詞,這樣有助于提高模型的準確率。NMN 模型使用了為每個(圖像/問題)對自動組合子模型的新穎想法,它的表現效果類似于在 VQA 數據集上的 CoAtt 模型,但是在需要更高級推理的合成數據集上優于所有模型,表明該模型在實際中可能是一種有價值的方法。然而,需要更多的測試來判斷該模型的性能。
在 COCO-QA 數據集上表現最好的模型是 AMA 模型,它包含外部知識庫(DBpedia)的信息。這樣做的一個可能的原因是知識庫幫助解決涉及常識的問題,而這些知識可能不在數據集中。該模型在 VQA 數據集上的表現不是很好,這可能是因為這個數據集沒有太多的問題需要常識。自然地這種模型會為未來的工作帶來兩大方向。第一個方向是認識到外部知識的必要性:某種 CoAtt 和 AMA 的混合模型加上是否訪問知識庫的決策器可能會兼有兩種模型的優點。該決策器可能是面向應用的,以實現端到端的訓練。第二個方向是探索使用其它知識庫,如 Freebase、NELL 或 OpenIE 的信息提取。
正如我們所看到的,在這個任務上,注意值的新穎計算方法能持續改善模型的效果。這也是在文本問答(textual question answering)任務中看到的,因此可以用文本問答的更多模型來指導 VQA 模型。對各種 VQA 數據集的性能上限估計的研究將是非常有價值的,以便找到可能的改進方法,特別是對于自動生成的 COCO-QA 數據集。最后,大多數 VQA 任務將回答視為分類任務。將回答作為生成任務將是有趣的,但數據集的收集和評估方法仍然是一個有待解決的問題。
五、結論
盡管 VQA 只有幾年的發展時間,VQA 任務已經得到了跨越式發展。VQA 的深度學習方法持續收到了最多的關注并擁有最先進的結果。我們調查了這些模型中最突出的一些模型,并列出了它們在各種大型數據集上的表現。我們不斷看到在許多數據集上顯著的性能改進,這意味著未來在此任務上很大的創新空間。
論文原文請訪問:https://arxiv.org/abs/1705.03865
【本文是51CTO專欄機構機器之心的原創譯文,微信公眾號“機器之心( id: almosthuman2014)”】