一、背景
文章題目:《Estimating sementic structure for the VQA answer space》
和前面的那篇文章是同一個團隊:【文獻閱讀】GQA-OOD——測試低頻樣本問答的資料集和評估方法(Corentin Kervadec等人,ArXiv,2020,有代碼),這篇文章的思路其實也比較好了解,就是因為一般答案環節都是用分類來做的, 無法度量相似類别,是以作者在答案空間進行了修改。
文獻下載下傳位址:https://arxiv.org/pdf/2006.05726.pdf
文章引用格式:Corentin Kervadec, Grigory Antipov, Moez Baccouche and Christian Wolf. "Estimating sementic structure for the VQA answer space". arXiv preprint, arXiv: 2006.05726, 2020.
項目位址:https://github.com/MILVLG/openvqa
二、文章摘要
Since its appearance, Visual Question Answering (VQA, i.e. answering a question posed over an image), has always been treated as a classification problem over a set of predefined answers. Despite its convenience, this classification approach poorly reflects the semantics of the problem limiting the answering to a choice between independent proposals, without taking into account the similarity between them (e.g. equally penalizing for answering “cat” or “German shepherd” instead of “dog”). We address this issue by proposing (1) two measures of proximity between VQA classes, and (2) a corresponding loss which takes into account the estimated proximity. This significantly improves the generalization of VQA models by reducing their language bias. In particular, we show that our approach is completely model-agnostic since it allows consistent improvements with three different VQA models. Finally, by combining our method with a language bias reduction approach, we report SOTA-level performance on the challenging VQAv2-CP dataset.
一般我們是将VQA視作一個分類問題,盡管這樣處理比較友善,但是問題也很明顯,即在受限于每個獨立的答案,無法考慮答案之間的相似度,導緻模型不能反映問題的語義。作者通過兩種方法來解決這個問題,(1)是在VQA的累呗之間引入相似性測度,(2)loss函數考慮相似估計。這樣就能夠提高VQA模型的泛化性,減少語言偏見。
三、文章介紹
傳統VQA就是将生成答案處理為一個分類問題,這樣做的好處就是易于應用,loss函數可以直接定義。但是這麼做的問題也很明顯(1)破壞模型的泛化性,對于測試集,如果出現訓練集沒有出現的内容,那麼模型就會失效,(2)每個答案之間都是獨立的,而沒有考慮他們之間的語義關系。這就使得模型高度依賴于語言偏見。
本文作者主要解決第二個問題,作者建立了一個semantic loss,它能計算預測答案和真實答案之間的語義距離。其模型結構如下所示:
本文的主要貢獻如下:
1. We design a semantic loss for VQA, which helps the model to better structure its answer space and to learn the semantic relations between the answers. 設計了一個semantic loss
2. We propose two different methods for estimating semantic proximity between answer classes based on word embeddings and annotation statistics, respectively. 提出了兩種不同的方法,分别基于單詞嵌入和标注統計來估算答案之間的語義近似度
3. We demonstrate the effectiveness of our method on the VQAv2-CP [4] and VQAv2 [2] datasets with three different neural models, showing consistency of the improvement over datasets and models.該方法在兩個資料集上都很有效。
4. When combined with other efforts in addressing language bias, our performance improvements add up and achieve performance on-par with the State-Of-The-Art (SOTA) on VQAv2-CP with reasonably complex mode architectures. 與其他方法相比,該方法能夠比較好的解決語言偏見。
1. 相關工作:
将VQA作為分類(VQA as a classification task):VQA的方法,包括基于注意力的方法attention-based networks,基于目标的注意力object-based attention mechanisms,雙線性融合模型bilinear fusion methods,基于Transformer的模型Transformer-based models都是将VQA視作分類問題來處理的。
VQA資料集的偏見(VQA as a classification task):最明顯的就是VQAv1,後來VQAv2改進了很多。
VQA的泛化性(The generalization curse of VQA):早期工作,比如隻看一半的圖檔或者問題,後期還有針對資料集改進的工作。
VQA減少語言偏見(Reducing language biases on VQA):一些工作的思路都能減少語言偏見,比如使用question-only,RUBi,HINT,SRC,DLR等。
2. 答案空間的結構
對于現有的一些資料集,比如VQAv1,給出的正确答案都不止一個,是以一般做分類的時候,都是使用的軟交叉熵作為loss函數。但是這類交叉熵無法反應近似答案之間的相似性。
為了解決這個問題,作者提出了一個新的loss 函數,即semantic loss,定義這個loss函數需要(1)建立嵌入答案的語義空間(2)定義距離函數來測量答案之間的相似性。
(1)投影到語義空間(Projection to a semantic space)
語義空間需要滿足的條件有兩個,一個是結構化,二是能夠被連續的自然神經網絡處理。這裡作者提出了兩個不同的語義空間:
Glove:該空間常用于将離散的字元嵌入到連續的向量,它是通過自監督的方式訓練的。Glove能夠捕捉語義和文法規則。作者直接利用Glove将答案類别投影到向量化的表示。
Co-oc:主要使用統計規則來估計語義近似程度。
(2)兩個語義空間的差異(Differences of the spaces Glove and Co-oc)
兩個稍有不同,Glove用語料庫中出現的單詞,Co-co則是利用人類的标注資料。這裡作者舉了一些例子:
(3)語義空間中的距離(Distances in the semantic space)
這個才是算法的核心,作者使用了餘弦相似度來定義兩個變量的接近程度:
然後可以定義semantic loss:
兩種loss的差異可以如下圖所示:
最後模型的loss可以表示為:
其中CE表示交叉熵,BCE表示二值交叉熵。λ是一個超參數。
4. 實驗
資料集:VQAv2和VQAv2-CP。
對比的算法:
Bottom-Up-Top-Down (UpDn);
Bilinear Attention Network (BAN);
Deep Modular Co-Attention Networks (MCAN);
實驗結果如下表所示:
semantic loss能夠一定程度上提高模型效果:
在VQA2.0上的結果:
再加上RUBi與其他模型的比較結果: