天天看點

【文獻閱讀】BAN——雙線性注意力網絡Bilinear Attention Networks(J. Kim等人,NIPS,2018,有代碼)一、文章概況二、文章導讀三、文章詳細介紹四、小結

一、文章概況

文章題目:《Bilinear Attention Networks》

這篇文章是VQA領域非常經典的一篇文章,最近看到的很多新文章都提到了這篇文章。

文章下載下傳位址:http://papers.nips.cc/paper/7429-bilinear-attention-networks.pdf

文章引用格式:J. Kim, J. Jun, B. Zhang. "Bilinear Attention Networks." Conference and Workshop on Neural Information Processing Systems(NIPS). 2018

項目位址:可以參考https://github.com/jnhwkim/ban-vqa   (pytorch實作)

二、文章導讀

先放上這篇文章的摘要部分:

Attention networks in multimodal learning provide an efficient way to utilize given visual information selectively. However, the computational cost to learn attention distributions for every pair of multimodal input channels is prohibitively expensive. To solve this problem, co-attention builds two separate attention distributions for each modality neglecting the interaction between multimodal inputs. In this paper, we propose bilinear attention networks (BAN) that find bilinear attention distributions to utilize given vision-language information seamlessly. BAN considers bilinear interactions among two groups of input channels, while low-rank bilinear pooling extracts the joint representations for each pair of channels. Furthermore, we propose a variant of multimodal residual networks to exploit eight-attention maps of the BAN efficiently. We quantitatively and qualitatively evaluate our model on visual question answering (VQA 2.0) and Flickr30k Entities datasets, showing that BAN significantly outperforms previous methods and achieves new state-of-the-arts on both datasets.

注意力網絡在多模态學習中提供了一種有效學習視覺資訊的方式。然而,它需要大量的計算開銷來學習注意力分布,一般解決這個問題則是分别建立兩個的注意力分布而忽略互動。這篇文章作者提出了BAN網絡,來盡可能的利用視覺和語言資訊。BAN在輸入的兩個通道中群組中用雙線性互動, 低秩的雙線性池化提取兩個通道的聯合表示。此外,作者還提出了多模态殘差網絡的變種形式,來充分利用BAN網絡的注意力圖。最後作者基于VQAv2資料集,從數量和品質上進行評估,表明BAN比之前的方法更好,達到了最好的效果。

三、文章詳細介紹

VQA是涉及到語言和視覺的交叉問題,目前,視覺注意力(visual attention)在多模态學習任務中取得了非常大的成功,另外,文本注意力(textual attention)也可以作為補充。目前的協同注意力網絡(co-attention networks)雖然能夠有選擇的關注問題關鍵詞和圖像關鍵區域,但是卻忽視了兩者的互動造成計算量增長。

這篇文章,作者将協同注意力擴充為雙線性注意力,如果問題中涉及到多個關鍵詞,那麼就會對每個關鍵詞使用視覺注意力來查找關鍵視覺區域。基于此,作者提出了雙線性注意力網絡BAN(bilinear attention networks),此外作者還提出了一個多模态殘差網絡MRN(multimodal residual networks)的變種來充分利用BAN的多重雙線性注意力圖,這與之前的多重注意力圖的連接配接形式不同。因為殘差學習方法用殘差的綜合替代了連接配接。

BAN模型的主要結構如下所示:

【文獻閱讀】BAN——雙線性注意力網絡Bilinear Attention Networks(J. Kim等人,NIPS,2018,有代碼)一、文章概況二、文章導讀三、文章詳細介紹四、小結

作者的主要貢獻在于:

• We propose the bilinear attention networks (BAN) to learn and use bilinear attention distributions, on top of the low-rank bilinear pooling technique. (提出了雙線性注意力網絡BAN)

• We propose a variant of multimodal residual networks (MRN) to efficiently utilize the multiple bilinear attention maps generated by our model. Unlike previous works, our method successfully utilizes up to 8 attention maps. (提出了多模态殘差網絡MRN的變種)

• Finally, we validate our proposed method on a large and highly-competitive dataset, VQA 2.0. Our model achieves a new state-of-the-art maintaining simplicity of model structure. Moreover, we evaluate the visual grounding of bilinear attention map on Flickr30k Entities outperforming previous methods, along with 25.37% improvement of inference speed taking advantage of the processing of multi-channel inputs. (在VQAv2資料集上進行驗證,作者提出額的模型達到了一個新的最好成果。)

1. 低秩雙線性池化(Low-rank bilinear pooling)

低秩雙線性模型(Low-rank bilinear model):低秩雙線性模型是為了減少雙線性權重矩陣Wi的秩,為此,雙線性權重矩陣Wi可以表示為

【文獻閱讀】BAN——雙線性注意力網絡Bilinear Attention Networks(J. Kim等人,NIPS,2018,有代碼)一、文章概況二、文章導讀三、文章詳細介紹四、小結

,在省略偏執bias标量輸出f為,其中

【文獻閱讀】BAN——雙線性注意力網絡Bilinear Attention Networks(J. Kim等人,NIPS,2018,有代碼)一、文章概況二、文章導讀三、文章詳細介紹四、小結

表示點乘:

【文獻閱讀】BAN——雙線性注意力網絡Bilinear Attention Networks(J. Kim等人,NIPS,2018,有代碼)一、文章概況二、文章導讀三、文章詳細介紹四、小結

低秩雙線性池化(Low-rank bilinear pooling):對于輸出的向量f,引入池化矩陣P:

【文獻閱讀】BAN——雙線性注意力網絡Bilinear Attention Networks(J. Kim等人,NIPS,2018,有代碼)一、文章概況二、文章導讀三、文章詳細介紹四、小結

單一注意力網絡(Unitary attention networks):假設多通道輸入Y由{y}列向量組成,我們可以使用權重{a}從Y中獲得y:

【文獻閱讀】BAN——雙線性注意力網絡Bilinear Attention Networks(J. Kim等人,NIPS,2018,有代碼)一、文章概況二、文章導讀三、文章詳細介紹四、小結

上式中a代表了注意力分布,使用低秩雙線性池化,a可以由softmax的輸出來表示:

【文獻閱讀】BAN——雙線性注意力網絡Bilinear Attention Networks(J. Kim等人,NIPS,2018,有代碼)一、文章概況二、文章導讀三、文章詳細介紹四、小結

2. 雙線性注意力網絡(Bilinear attention networks)

兩個多通道的輸入X和Y,為了減少兩個輸入通道,引入雙線性注意力圖A:

【文獻閱讀】BAN——雙線性注意力網絡Bilinear Attention Networks(J. Kim等人,NIPS,2018,有代碼)一、文章概況二、文章導讀三、文章詳細介紹四、小結

上式中的A是一個雙線性權重矩陣,上式可以改寫成:

【文獻閱讀】BAN——雙線性注意力網絡Bilinear Attention Networks(J. Kim等人,NIPS,2018,有代碼)一、文章概況二、文章導讀三、文章詳細介紹四、小結

為了友善表達,我們定義一個雙線性注意力網絡函數:

【文獻閱讀】BAN——雙線性注意力網絡Bilinear Attention Networks(J. Kim等人,NIPS,2018,有代碼)一、文章概況二、文章導讀三、文章詳細介紹四、小結

雙線性注意力圖(bilinear attention map):前面提到過,注意力圖的定義為:

【文獻閱讀】BAN——雙線性注意力網絡Bilinear Attention Networks(J. Kim等人,NIPS,2018,有代碼)一、文章概況二、文章導讀三、文章詳細介紹四、小結

注意到A中每一個元素的值都是經過低秩雙線性池化得到的:

【文獻閱讀】BAN——雙線性注意力網絡Bilinear Attention Networks(J. Kim等人,NIPS,2018,有代碼)一、文章概況二、文章導讀三、文章詳細介紹四、小結

是以多重雙線性池化注意力圖就可以表示為:

【文獻閱讀】BAN——雙線性注意力網絡Bilinear Attention Networks(J. Kim等人,NIPS,2018,有代碼)一、文章概況二、文章導讀三、文章詳細介紹四、小結

注意力的殘差學習(Residual learning of attention):靈感來自于多模态殘差網絡MRN,作者在MRN中整合了從多重雙線性注意力圖的聯合表示,第i+1次的輸出表示為:

【文獻閱讀】BAN——雙線性注意力網絡Bilinear Attention Networks(J. Kim等人,NIPS,2018,有代碼)一、文章概況二、文章導讀三、文章詳細介紹四、小結

對最後一次輸出的通道次元求和,就可以得到一個邏輯分類器。

時間複雜度(Time complexity):BAN的時間複雜度與一個多通道輸入相同

3. 相關工作(Related works)

多模态因子線性池化(Multimodal factorized bilinear pooling):之前有文獻做低秩雙線性池化移除了投影矩陣P,但是這對BAN來說是無效的。

協同注意力網絡(Co-attention networks):之前有文獻提出了空間記憶網絡來估算每個image patch之間的相關性,與本文不同的是,它是對相關矩陣的每一個行向量的最大值進行softmax。另外,現有的協同注意力用的都是兩個分離模态的注意力分布。

4. 實驗(Experiments)

(1)資料集

VQA資料集(Visual Question Answering):作者用的是VQA2.0資料集

Flickr資料集(Flickr30k Entities):包含31783張圖244035個标注

(2)預處理

問題嵌入(Question embedding):對于VQA,使用GloVe詞嵌入,将問題最多嵌入為14個單詞向量,短于14個單詞的向量用0補齊;對于Flickr30k,則使用了完整的句子長度,最大82。

圖像特征(image feature):作者用的是從下到上的注意力,将Faster R-CNN的輸出作為圖像特征。設定每張圖的目标數目範圍介于[10 100],

(3)非線性和分類器

非線性(Nonlinearity):BAN的非線性用的是ReLU:

【文獻閱讀】BAN——雙線性注意力網絡Bilinear Attention Networks(J. Kim等人,NIPS,2018,有代碼)一、文章概況二、文章導讀三、文章詳細介紹四、小結

其中

【文獻閱讀】BAN——雙線性注意力網絡Bilinear Attention Networks(J. Kim等人,NIPS,2018,有代碼)一、文章概況二、文章導讀三、文章詳細介紹四、小結

表示ReLU(x)=max(x,0),對于注意力圖,則有:

【文獻閱讀】BAN——雙線性注意力網絡Bilinear Attention Networks(J. Kim等人,NIPS,2018,有代碼)一、文章概況二、文章導讀三、文章詳細介紹四、小結

分類器(Classifier):對于VQA,使用了兩層的MLP作為分類器,輸出的數量則是由答案的單詞數量決定的,這裡取3129.損失函數用二值交叉熵。

(4)超參數和調整

這一部分主要介紹了作者設定的一些超參數以及對資料集的調整(主要是做了一定的資料增廣操作)。

5. VQA結果和讨論(VQA results and discussions)

(1)量化結果

與其他模型的比較Comparison with state-of-the-arts:下圖是與2017 VQA Challenge的冠軍模型的比較結果,結果顯示當BAN有8個雙線性注意力圖時精度最高:

【文獻閱讀】BAN——雙線性注意力網絡Bilinear Attention Networks(J. Kim等人,NIPS,2018,有代碼)一、文章概況二、文章導讀三、文章詳細介紹四、小結

然後BAN與其他近期采用了從下到上的注意力模型比較結果:

【文獻閱讀】BAN——雙線性注意力網絡Bilinear Attention Networks(J. Kim等人,NIPS,2018,有代碼)一、文章概況二、文章導讀三、文章詳細介紹四、小結

上圖中的MFH+Bottom-Up的連結為:https://github.com/yuzcccc/vqa-mfb

與其他注意力模型的比較Comparison with other attention methods:這裡主要用到了Unitary attention和co-attention,與其他注意力模型的比較結果如下:

【文獻閱讀】BAN——雙線性注意力網絡Bilinear Attention Networks(J. Kim等人,NIPS,2018,有代碼)一、文章概況二、文章導讀三、文章詳細介紹四、小結

這裡可以看到雙線性注意力模型要比其他的模型效果更好。如下圖中的(a)所示,協同注意力模型比其他注意力模型更容易過拟合,從(b)中可以看到BAN的參數比其他模型的更有效:

【文獻閱讀】BAN——雙線性注意力網絡Bilinear Attention Networks(J. Kim等人,NIPS,2018,有代碼)一、文章概況二、文章導讀三、文章詳細介紹四、小結

(2)注意力的殘差學習

與其他方法的比較Comparison with other approaches:BAN中的注意力殘差學習最後采用的是通道求和的方式而不是連結,這之間的差異其實并不明顯,之不過連結的話參數的數量會很多。

簡化實驗Ablation study:這裡主要是探究注意力圖的多少,分别設定{1,2,4,8,12},然後在驗證集上隻使用前N個注意力圖,來探究驗證精度,結果如上圖的(c).

注意力的熵Entropy of attention:這裡作者隻探究了注意力圖為4的時候,注意力分布的熵的情況,如上圖(d)所示

(3)量化分析

一個可視化結果如下圖所示,問題是“what color are the pants of the guy skateboarding”(踩滑闆的人的褲子是什麼顔色),問題中包含詞語what, pants, guy, 和skateboarding,注意橙色的2号box也被勾出來了:

【文獻閱讀】BAN——雙線性注意力網絡Bilinear Attention Networks(J. Kim等人,NIPS,2018,有代碼)一、文章概況二、文章導讀三、文章詳細介紹四、小結

6. Flickr30k的結果及讨論(Flickr30k entities results and discussions)

這部分内容就不再詳細介紹了,與其他模型的性能對比結果如下:

【文獻閱讀】BAN——雙線性注意力網絡Bilinear Attention Networks(J. Kim等人,NIPS,2018,有代碼)一、文章概況二、文章導讀三、文章詳細介紹四、小結

可視化的示例如下:

【文獻閱讀】BAN——雙線性注意力網絡Bilinear Attention Networks(J. Kim等人,NIPS,2018,有代碼)一、文章概況二、文章導讀三、文章詳細介紹四、小結

四、小結

繼續閱讀