论文浅尝 - IJCAI2020 | Mucko:基于事实的多层跨模态知识推理视觉问答
論文筆記整理:陳卓,浙江大學計算機科學與技術系,博士研究生。
論文鏈接:https://arxiv.org/pdf/2006.09073
代碼:https://github.com/astro-zihao/mucko
發表會議:IJCAI 2020
任務定義及背景
VQA(視覺問答)顧名思義,也就是結合視覺的信息來回答問題。其于15年被提出,涉及的方法從最開始的聯合編碼,到雙線性融合,注意力機制,組合模型,場景圖,再到引入外部知識,進行知識推理,以及使用圖網絡,近年來取得了長足發展。其中18年Qi Wu等人提出的FVQA[2],提出引入外部知識的KB-VQA問題,并貢獻了這方面的重要數據集,該數據集特點是要回答問題必須依賴圖片以外知識。同時,提出了一種對應解決該問題的方法與思路。
Out of the box[3]這篇文章,簡稱OB,則基于FVQA數據集,將視覺與外部知識信息融合后用圖卷積網絡來解KB-VQA問題。效果比FVQA的Sota要好。把它從58.7%提升到了69.3%。以上是本文工作的背景。
??????????????????????????????????????????
動機
作者對比了前人的工作,一個方向是將問題轉化成關鍵詞,然后在候選事實中根據關鍵詞匹配檢索出對應的支撐事實的pineline方式,比如前文所提的FVQA,但是如果視覺概念沒有被問題完全提及(比如同義詞和同形異義詞)或者事實圖中未捕獲提及的信息(比如它問紅色的柱子是什么,卻沒有提到消防栓),那這類方法就會因為匹配而產生誤差。
另一個方向將視覺信息引入到知識圖中,通過GCN推導出答案,就比如前文提到的out of the box模型。雖然解決了上面的問題但是每個節點都引入了相同且全部的視覺信息,而只有一部分的視覺信息和當前節點是相關的,這樣會引入噪聲。并且每個節點都是固定形式的的視覺-問題-實體的嵌入表示,這使得模型無法靈活地從不同模態中捕獲線索
而本文則較好地解決了上述問題。??????
??????????????????????????????????
模型
以上是模型的整體overview,大體流程是先得到三個不同模態的圖,然后進行模態內知識選擇,跨模態知識推理,最后將中間模態圖的節點進行二分類結果判別。
Part 1:Multi-Modal Graph Construction
文章的出發點是將圖像表示成一個多模態的異構圖,其中包含來自不同模態三個層次的信息(分別是視覺圖、語義圖和事實圖),來互相補充和增強VQA任務的信息。
具體來說,視覺圖包含了圖像中的物體及其位置關系的表示。構造原理是通過訓練好的目標檢測模型比如Faster-RCNN得到圖像中物體的集合,并構造全連接圖。其中每個實體由一個2048維的視覺特征向量和4維空間特征向量,以及對應的label進行表示,而每一條邊則用與兩端節點位置相關的五維特征向量表示。
語義圖包含了用于銜接視覺和知識的高層語義信息,構造原理是先使用Densecap預訓練模型生成圖像的細粒度caption(這既包括單個object的屬性,也包括不同object的關系),然后使用Spice算法根據排名靠前的caption構造一個語義聯系圖。節點代表object的名字或屬性,邊代表關系。最后用GloVe embeddings來表示節點和關系。
事實圖則包含圖像對應的外部知識,它的構造思想參考了out of the box 模型。使用相似性評分技術,根據圖像和問題從事實空間獲得top100的相關事實三元組(這里的事實空間是Conceptnet),然后根據問題預測出的top3 Relation 類型篩選一遍。保留剩下Relations 中符合要求的三元組Facts,最后自然構成圖結構。其中節點和邊的信息同樣用GloVe詞向量進行初始化的。這樣以來得到了一個多模態圖。
Part 2:Intra-Modal Knowledge Selection
在跨模態知識匯聚之前,首先進行的是每個模態內的知識選擇:在問題的引導下確定每個節點和邊在內部圖卷積過程中的分數權重占比,然后進行常規的update操作。也就是說在跨模態之前,先獨立選擇單個模態內有價值的證據,讓和問題相關性強的節點及邊,在圖內部卷積過程中占更大的權重。這三個模態內部的卷積操作都是相同的,只是節點和邊的表示不同。
簡單來說,首先通過注意力機制評估與該問題相對應的每個節點的相關性,得到每個節點i的attention weight αi。其中w是可學習的參數,vi是節點表示,q是經過LSTM的問題編碼。
對于每一條邊而言也是同理。得到邊的attention weight βji。
在得到節點與邊的attention weights后,最后使用消息傳遞網絡更新每一層的內部的節點得到新的節點表示。
Part 3:Cross-Modal Knowledge Reasoning + Learing
跨模態的知識推理是基于part2模態內的知識選擇的結果。考慮到信息的模糊性,不同圖很難顯式地對齊,所以作者采用一種隱式的基于注意力機制的異構圖卷積網絡方法來關聯不同模態的信息,從不同層的圖中自適應地收集互補線索并進行匯聚。包括視覺到事實的卷積和語義到事實的卷積。
比如視覺到事實的卷積場景中,對于事實圖中的每個節點vi,計算視覺圖中每個節點vj和它在問題引導下的相似度注意力分數,越互補的節點它的相似度分數就越高,然后根據這個分數對視覺圖加權求和,得到事實圖中每個節點來自視覺圖層的事實互補信息。
而來自語義的事實互補信息也是一樣的操作。然后使用門控機制將圖像的視覺和語義的互補信息以及fact本身節點的實體特征,進行融合得到事實圖的實體表示。
最后fact graph本身使用一個Attention base 的GCN來聚合剛才得到的節點信息,以上就是跨模態的圖卷積過程。
分別迭代地執行Part2模態內的知識選擇和Part3跨模態的知識推理,執行多個step可以獲得最終的fact實體表示,并將其傳到一個二元分類器,輸出概率最高的實體當做預測的答案。
實驗分析
1.Comparison with Sota
模型在三個數據集上驗證了實驗結果。其中FVQA里面fact的是將圖片中概念在知識庫比如Conceptnet和Dbpedia中查詢得到三元組所得到來的。其本身問題的構造就是依照fact所刻意得到的,每一個問題都會和一個三元組相關。可以看到,該模型在FVQA上表現很好,而傳統的引入外部知識的VQA模型也均有不錯的表現,其中本文模型外最好的就是剛才提到的OB模型。
Top1結果和Top3結果與本文模型相差為3.7%和5.7%。作者給出的解釋是OB沒有在圖像內部進行特征選擇,只是單純地把全局信息進行了拼接操作,所以不如本文。
而另外一個數據集Visual7W KB也和FVQA類似,問題是直接根據Conceptnet生成的。不同點在于他不提供fact。可以看到結果也明顯好于Sota。
第三個數據集OK-VQA比較特殊,這個數據集的QA構造是亞馬遜上人工設定問題人工進行回答,沒有知識庫作為參考,且問題要求必須使用圖片以外的數據,知識跨度大,可以說是目前而言最難的VQA數據集,sota只有30%不到。該模型在OK-VQA上表現的不太好,不過還是比Sota要高大概0.7%。原因猜測是光憑借單一的外部知識庫可能不足以對ok-vqa達到較大提升,所以ok-vqa問題在未來實際上還有很大的提升空間。
2.Ablation Study
本文作者基于FVQA做了消融實驗,分別去掉不同模態的圖以及對應的注意力加權卷積機制,還去掉了多模態圖中邊的信息來進行對比,最后證明以上的工作都是有意義且必要的。
3.Interpretability
該模型另外一個優點是結果具有比較好的解釋性。上圖是FVQA數據下測試的結果。把fact graph中最重要fact所對應的top2視覺和語義對象節點,用虛線連接,虛線上的值表示了跨模態卷積中不同層哪些節點對結果影響重要性更大,結果比較直觀。
熱力條根據最后特征融合時的gate值得到,密度越大則代表對應位置通道的重要性越高。可以發現,在大多數的情況下事實信息會更重要,也就是密度最大。因為FVQA中97.3%的問題都是需要額外知識才能回答的。而密度第二大的區域往往會由問題的類型決定是視覺更重要還是問題更重要。比如第二個圖中問題里面的hold by這個詞無法在圖片中具體體現,所以所以語義信息的占比會更大一些。而第一個圖的話則視覺信息占比更大。
第三張圖片就是與OB模型的對比,對比了部分他們答對并且OB打錯的pair。作者對于該差異的解釋是前文提到的OB模型中每個節點都引入了相同且全部的視覺信息,使得部分噪聲被引入。最后一張圖是說當有多個合理答案的時候模型也會出錯。
[1] Zhu Z, Yu J, Wang Y, et al. Mucko: Multi-Layer Cross-Modal Knowledge Reasoning for Fact-based VisualQuestion Answering[J]. arXiv.
[2] Wang P, Wu Q, Shen C, et al. Fvqa: Fact-based visual question answering. TPAMI, 2018
[3] Narasimhan M, Lazebnik S, Schwing A. Out of the box: Reasoning with graph convolution nets for factual visual question answering. NIPS. 2018
?
?
OpenKG
開放知識圖譜(簡稱 OpenKG)旨在促進中文知識圖譜數據的開放與互聯,促進知識圖譜和語義技術的普及和廣泛應用。
點擊閱讀原文,進入 OpenKG 博客。
總結
以上是生活随笔為你收集整理的论文浅尝 - IJCAI2020 | Mucko:基于事实的多层跨模态知识推理视觉问答的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 论文浅尝 - ICLR2021 | BE
- 下一篇: Java经典基础与高级面试36题和答案