標題:基於知識的視覺問答的多模態知識提取與積累
來源:CVPR 2022https://arxiv.org/abs/2203.09138
代碼:https://github.com/AndersonStra/MuKEA
一、問題提出
一般的基於知識的視覺問答(KB-VQA) 要求具有關聯外部知識的能力,以實現開放式跨模態場景理解。
現有的研究主要集中在從結構化知識圖中獲取相關知識,如ConceptNet和DBpedia,或從非結構化/半結構化知識中獲取相關知識,如Wikipedia和Visual Genome。雖然這些知識庫通過大規模的人工標注提供了高質量的知識,但一個局限性是,它們從純文本的知識庫中獲取相關知識,這些知識庫僅包含由一階謂詞或語言描述表示的事實,因此這種知識庫很難表示高階謂詞和多模態知識,而這些知識是回答復雜問題所必需的,所以現有的模型無法很好的進行視覺理解。
如何為VQA場景構建與視覺相關且可解釋的多模態知識的研究較少。
目標:不使用外部文本為主的知識庫,通過VQA數據集學習包含着圖片以及問題、回答等多模態信息的綜合知識表示。
二、主要模型
本文提出了一種針對KB-VQA任務的多模態知識提取與積累框架(MuKEA)。核心是獨立於已有的知識庫,通過對VQA樣本的觀察,積累關系復雜的多模態知識,並基於自積累的知識進行可解釋推理。
做法:
(1)提出了一種用顯式三元組表示多模態知識單元的模式。
頭部實體:問題所指的視覺對象embedding
尾部實體:事實答案的embedding
關系:圖像和問題之間的隱性
(2)提出了三個損失函數,從粗到細學習三元組的表示。
(3)在此基礎上,提出了一種基於預訓練和微調的學習策略,從域外(VQA 2.0)和域內的VQA樣本中逐步積累多模態知識,用於可解釋推理。
2.1 多模態知識三元組抽取:
(h, r, t):h包含由問題聚焦的圖像中的視覺內容,t是給定問題-圖像對的答案的表示,r描述了包含多模態信息的h和t之間的隱式關系
圖像與問題編碼:由於預訓練的視覺語言模型對模態內隱式關聯和跨模態隱式關聯的建模能力較強,故利用預訓練的LXMERT模型對問題和圖像進行編碼,在此基礎上進一步提取多模態知識三元組。
步驟:
Step1:針對圖像,應用Faster R-CNN抽取圖像\(i\)中的一組對象\(O=\left\{o_i\right\}_{i=1}^K\left(K=36\right)\),並通過視覺特征向量\(f_i\)(維度為2048維)和空間特征向量\(b_i\)(維度為4維)來表示每個對象。
Step2:針對問題,使用WordPiece對問題Q進行建模,獲得D 個token序列。
Step3:視覺特征\(f_i\)和\(b_i\)輸入預訓練的LXMERT,得到對象O的視覺embedding,記為\(V\in R^{K\times d_v}\left(d_v=768\right)\);同樣的,得到token序列的embedding,記為= 768) \(Q\in R^{D\times d_v}\)。
頭部實體提取:圖像中的上下文中與問題最相關的部分。
Step1:求出圖像中每個對象與問題中每個token的相似度,得到對象-問題相似度矩陣A:
Step2:使用注意力獲取到最相關的視覺內容。利用A上的行向最大值來計算每個對象與問題的相關性:
然后利用注意力來根據\(a_i^{v-q}\)選取最相關的對象作為頭部實體。此處使用Gumbel-Softmax來獲得近似的one-hot類別分布。對象\(o_i\)的注意力權重計算如下:
其中,\({g_i}_{i=1}^K\)為獨立同分布的標准Gumbel分布的隨機變量,τ為溫度參數。
最后得到頭部實體表示h:
其中,V為對象O的視覺embedding,,FFN表示包含兩個全連接層的前饋網絡。
【參考:https://www.cnblogs.com/initial-h/p/9468974.html
Softmax傾向於獲取到最有可能的類別,損失了概率的信息;
Gumbel-Softmax: 對於n維概率向量π,對π對應的離散隨機變量\(\pi_i\)添加Gumbel噪聲,再取樣:
其中,\({g_i}_{i=1}^K\)是獨立同分布的標准Gumbel分布的隨機變量,標准Gumbel分布的CDF為:
這是Gumbel-Max trick。可以看到由於這中間有一個argmax操作,這是不可導的,所以用softmax函數代替,也就是Gumbel-Softmax Trick。
用Gumbel分布做Re-parameterization使得整個圖計算可導,同時樣本點最接近真實分布的樣本。】
關系抽取:多模態知識圖中的關系定義為觀察到的實例化對象與回答之間的復雜隱含關系。從[CLS]令牌中提取多模態表示,並送入FFN層以獲得關系嵌入,記為r。
尾部實體提取:尾部實體定義為(圖像-問題-答案)中的答案。在訓練階段,將ground truth answer設置為尾部實體,學習其表示t。在推理階段,將KB-VQA任務定義為一個多模態知識圖補全問題,預測最優尾部實體作為答案。
2.2 三元組表示學習
Triplet TransE Loss:給定一個圖像-問題對,設A+和A−表示其集合為正確和不正確的答案。設h和r表示提取的對應頭部實體表示和關系表示。希望\(h+r\)與每個t∈A+之間的距離比\(h + r\)與每個 t∈A-之間的距離小一定幅度γ:
Triplet Consistency Loss:Triplet TransE Loss存在問題:當訓練過程中正負對之間的距離小於γ時,模型將停止從三元組學習。為了進一步推動t的embedding學習滿足嚴格拓撲關系,我們采用均方誤差(MSE loss)學習正樣本:
Semantic Consistency Loss:為了縮小尾部節點embedding和頭部節點以及關系之間的語義異構差距,使用softmax進行分類,並優化負對數似然損失:
最終的損失函數:
2.3 訓練:
采用兩階段訓練策略,逐步積累多模態知識:
(1)在VQA 2.0數據集上進行預訓練,積累基本的知識; VQA 2.0中Other類的問題作為事實知識,用於預訓練任務。
(2)對下游KB-VQA任務的訓練數據進行調優,積累更復雜的特定領域的多模態知識。
2.4預測:
把答案預測看作一個多模態知識圖補全問題。給出一個圖像和一個問題,將它們輸入到網絡中,得到了頭部實體\(h_{inf}\)和關系\(r_{inf}\)的embedding。計算\(h_{inf}+r_{inf}\)與查找表T中每個尾部實體\(t_i\)之間的距離,選取距離最小的尾實體為預測答案:
三、實驗
3.1 數據集:
OK-VQA、KRVQA
KRVQA:基於常識的無偏視覺問答數據集,包括知識無關的推理和知識有關的推理,還有基於外部知識的多步推理。
3.2 實驗對比:
OK-VQA:
最優
KRVQA:
MuKEA在“知識無關”問題上比其他模型准確率有大幅提升,表明即使是傳統的視覺問題也需要多模態常識來學習低級視覺內容和高級語義。
在兩步推理的第3類問題上,MuKEA不如一些模型,因為這些問題的答案多為關系,而MuKEA的預測的尾部實體多為事實實體。(這也是一種未來的改進方向)
3.3 消融實驗:
3.4 長尾效應分析:
證明多模態知識對長尾知識具有較強的泛化能力。
3.5 模型可解釋性:
四、存在的問題
圖1:尼龍 (√) 帆布(×)
圖2:科威特航空公司(√) 聯合包裹服務(×)
(1)數據集訓練場景有限,模型缺乏足夠的多模態知識。
(2)未能提取出一些三元組。由於頭部實體及其關系是在無監督模式(LXMERT)下提取的,視覺相似的內容會導致注意力的偏差。
五、Tips
本文提出了一種新的基於知識的視覺問答框架,該框架注重多模態知識的提取和積累,而不是使用外部知識庫。采用預訓練和微調策略,逐步積累多模態知識。
后續可以考慮如何將MuKEA學習到的多模態知識與知識庫有效結合。