天天看點

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

目錄

一、文獻摘要介紹

二、網絡架構介紹

三、實驗分析

四、結論

這是視覺問答論文閱讀的系列筆記之一,本文有點長,請耐心閱讀,定會有收貨。如有不足,随時歡迎交流和探讨。

一、文獻摘要介紹

Visual question answering (VQA) requires joint comprehension of images and natural language questions, where many questions can’t be directly or clearly answered from visual content but require reasoning from structured human knowledge with confifirmation from visual content. This paper proposes visual knowledge memory network (VKMN) to address this issue, which seamlessly incorporates structured human knowledge and deep visual features into memory networks in an end-to-end learning framework. Comparing to existing methods for leveraging external knowledge for supporting VQA, this paper stresses more on two missing mechanisms. First is the mechanism for integrating visual contents with knowledge facts. VKMN handles this issue by embedding knowledge triples (subject, relation, target) and deep visual features jointly into the visual knowledge features. Second is the mechanism for handling multiple knowledge facts expanding from question and answer pairs. VKMN stores joint embedding using key-value pair structure in the memory networks so that it is easy to handle multiple facts. Experiments show that the proposed method achieves promising results on both VQA v1.0 and v2.0 benchmarks, while outperforms state-of-the-art methods on the knowledge-reasoning related questions.

作者認為視覺問題解答(VQA)需要對圖像和自然語言問題有共同的了解,在這些問題中,許多問題無法直接或清晰地從視覺内容中得到回答,但需要從結構化的人類知識中進行推理并從視覺内容中得到證明。本文提出了視覺知識記憶網絡(VKMN)來解決這個問題,它在端到端學習架構中将結構化的人類知識和深層的視覺特征無縫地整合到了記憶網絡中。與利用外部知識支援VQA的現有方法相比,本文重點介紹了兩個缺失的機制。首先是将視覺内容與知識​​事實整合在一起的機制。 VKMN通過将知識三元組(主題,關系,目标)和深層視覺特征共同嵌入視覺知識特征中來處理此問題。第二是處理從問答對擴充的多個知識事實的機制。 VKMN使用鍵值對結構将聯合嵌入存儲在記憶體網絡中,以便輕松處理多個事實。實驗表明,該方法在VQA v1.0和v2.0基準測試中均取得了可喜的結果,而在有關知識推理的相關問題上卻優于最新方法。

二、網絡架構介紹

VKMN是從密鑰值存儲網絡(key-value memory network)派生出來的,在QA任務中已經被證明是有效的,下面進行介紹。

  • 輸入子產品,使用CNN模型對輸入圖像進行編碼,使用RNN模型對問題進行編碼,并通過聯合嵌入這兩個模型的輸出來進一步獲得查詢表示;
  • 知識發現子產品,通過子圖哈希從預先建立的視覺知識庫中根據查詢問題或自動圖像标題檢索相關知識條目;
  • 聯合視覺和知識嵌入子產品,它聯合嵌入視覺特征和知識三元組(或三元組的一部分),以便于存儲在鍵值存儲網絡中;
  • 記憶子產品,它接收查詢問題,讀取存儲的鍵值形成視覺知識特征,并預測答案。

圖2說明了提出的VKMN模型如何在視覺問題回答上工作

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

圖3給出了有關不同子產品在VKMN中如何互動的詳細示意圖。 

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

2.1Encoding of Image/Question Inputs

輸入圖像 

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

和問題 

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

 在饋入記憶網絡之前需要處理成特征向量。我們使用ImageNet預訓練的CNN模型處理輸入圖像,并使用LSTM模型處理問題。可以将來自兩種模态的特征向量共同嵌入到等式1中定義的單個視覺注意描述中,以進行答案預測。提出了幾種方法來學習VQA的端到端多模式聯合嵌入,包括VQA 2016挑戰賽獲獎者解決方案MCB 和最新解決方案MLB 。

        在本文中,我們直接利用MLB進行視覺問題對編碼。我們将具有空間注意輸出(又稱MLB第一階段輸出)的MLB表示為

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

,LSTM編碼的問題向量表示為

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

,其中

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

已經投影到與具有一個内部完全連接配接(FC)層的

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

相同的維空間,即

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

,查詢表示是

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

的低秩雙線性池的聯合嵌入作為

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

其中

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

表示兩個向量之間的Hadamard乘積(逐元素乘積),

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

是出于查詢目的的視覺問題對的視覺關注描述。

2.2Knowledge Spotting with Sub-graph Hashing

        在闡述視覺知識表示的細節之前,我們介紹了如何發現與視覺問題相關的知識條目。首先,給定預建構的可視化知識庫中的所有知識三元組

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

,生成實體集

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

,關系集

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

。我們稱

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

為條目集,它包含知識庫中所有不同的條目。然後,隻要問題中的一個短語(或自動生成的标題)與條目集

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

中的一項比對,就使用子圖散列方法提取條目。為了減少視覺知識提取的不精确性,我們限制每個知識三元組至少包含兩個從問題(或自動生成的标題)中提取的條目,随後建立N個知識三元組的一個小子集

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

。為了處理視覺知識庫中的長尾效應,我們在知識圖上執行知識三級擴充,以包括所提取的N個知識三級的直接鄰域。圖4說明了子圖哈希和知識三元組展開的一個示例。 最後,我們建立了一個記憶網絡,可以記憶M個知識條目(M> N)。 如果擴充的知識子集的大小小于M,則将附加空條目。

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

2.3Joint Embedding of Visual and Knowledge

        出發點是來自輸入子產品的空間注意視覺特征

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

和來自知識定位子產品的知識條目

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

。我們需要學習一個聯合嵌入,以結合

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

一起。由于

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

是文本表示,我們引入了一個映射函數

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

來得到實值特征向量

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

。這裡的

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

可以是bagof-words(BoW)表示,word2vec transformation,甚至知識嵌入,如TransE。

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

的特征維數和

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

通常是不同的,即

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

。我們将它們投影到相同的空間,并應用MLB捕獲它們的聯合表示

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

其中

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

是雙曲正切函數(在實驗中偏于

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

函數),

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

是将

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

投影到同一維空間的矩陣。

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

之是以稱為視覺知識注意描述,是因為它将視覺特征

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

與知識輸入

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

內建在一起。

        作者認為

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

捕獲了更多關于知識的細粒度資訊,而不是來自MLB的空間注意視覺特征

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

,其中注意是基于整個問題的。

2.4Visual Knowledge Memory Network

 Key-value design. 哪一部分的設計應該是關鍵的,哪一部分應該是價值的,這是相當靈活的。在傳統的QA問題中,給定三元組<s,r,t>,人們通常将前兩個(s和r)作為鍵,而将後一個t作為值。但是,VQA并非如此,因為我們不知道視覺問題中缺少知識三元組的哪一部分。以剩餘項為值的鍵有三種組合:(1)(s,r)為鍵;(2)(s,t)為鍵;(3)(r,t)為鍵。在實踐中,我們分别為這三種情況建構了三個記憶塊,如圖2所示,并将其命名為三重複制。這對區分問題是有用的,如“牙刷是用來做什麼的?”和“什麼是用來刷牙的?”。為了簡單起見,在下面的研究中隻詳細說明了作為(s,r)鍵項和t作為值項的情況。假設

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

,其中根據設計的鍵值映射,

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

對應于s,r,t。為確定鍵表示

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

和值表示

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

具有相同的維數,我們使加法假設類似于continuous bag-of-words(CBOW),并得出

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

,如下所示:

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

利用記憶在VKMN中的設計的鍵值對,推斷包括三個步驟:尋址相關知識,讀取相應值并回答問題,将在下面逐漸讨論它們。

Key addressing. 給定一個查詢q,我們對每個候選記憶槽進行尋址,并通過将問題與每個鍵進行比較來配置設定相關機率:

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

其中 · 表示内積,A是記憶網絡的參數矩陣,将 

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

 投影到與q相同的特征空間中,并且

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

Value reading. 在值讀取步驟中,通過具有尋址可能性的權重平均讀取記憶插槽的值,并将傳回的向量o定義為:

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

在本文中,我們隻在收到o後用

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

對查詢進行一步更新。

Question answering.對于VQA任務,不同答案的數量是固定的,是以問題回答被重新預測為分類問題。我們使用權重矩陣為

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

 的FC層基于

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

預測答案,如下所示

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

        VKMN中的所有參數矩陣

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

均采用基于随機梯度下降(SGD)的反向傳播算法進行了端到端訓練。

三、實驗分析

        在輸入子產品中,我們遵循MLB,使用ResNet-152作為視覺特征提取的骨幹網絡。MLB注意特征向量

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

為2400維,問題嵌入向量

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

也投影到同一維,聯合視覺和知識嵌入子產品通過

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

輸出300維特征。我們嘗試了不同的嵌入方法,如BOW(GloVe)和TransE,最後選擇TransE。在記憶子產品中,我們将記憶槽号設定為8。如果提取的子圖大小小于8,則用零填充空槽。

表1 在VQA1.0上面的消融研究準确率

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

表2:VQA v1.0資料集上與最先進方法的結果比較。

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

表3:VQA v2.0測試标準集的結果。

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

表4:不同對象大小組的結果。

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

圖5:給定查詢圖像和問題的預測答案和top-5知識三元組分數的示例。

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

圖6:一些失敗案例與注意力圖。

用于視覺問答的學習視覺知識記憶網絡模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

四、結論

In this paper, we present the Visual Knowledge Memory Network (VKMN) method as an efficient way to leverage pre-built visual knowledge base for accurate visual question answering. Experiments show that VKMN achieves promising results on VQA v1.0 and v2.0 benchmarks, and outperforms state-of-the-art methods on the knowledge reasoning related questions (i.e., the “other” answer-type in both benchmarks).

在本文中,作者提出了視覺知識存儲網絡(VKMN)方法,将其作為一種有效的方式來利用預先建立的視覺知識庫來準确地回答視覺問題。 實驗表明,VKMN在VQA v1.0和v2.0基準測試中取得了可喜的結果,并且在與知識推理相關的問題(即兩個基準測試中的“其他”答案類型)方面均優于最新方法。

繼續閱讀