摘要
注意力捕獲模态内和模态間的依賴關系,可能已經成為解決視覺問答的最廣泛使用的機制。本文中,我們提出一種改善的基于注意力的結構,我們在編碼器-解碼器架構中加入一個Attention on Attention(AoA)子產品,能夠決定注意力結果和查詢之間的關系,注意力子產品為每個查詢生成權重平均值。另一方面,AoA子產品首先利用注意力結果和目前上下文生成一個資訊向量和一個注意力門,然後添加另一個注意力通過将兩者相乘來生成最終參與的資訊。我們也提出了多模态融合子產品來結合視覺和文本資訊,融合子產品的目标是動态決定應該從每個模态中考慮多少。在VQA v2資料集上的實驗證明我們的方法相比于基線方法實作了更好的表現。
一、介紹
受深度神經網絡近期優點的啟發,基于注意力的方法被廣泛用于解決計算機視覺問題,VQA中的注意力方法現在變為大多結構的重要組成部分。[27]首先将基于注意力的方法引入VQA,[17,36]使用協同注意力,這些更全局、協同注意的方法的局限性是,它們無法模組化單個圖像區域和單詞之間的互動和注意力。為解決此問題,密集協同注意力被提出(BAN,DCN),其中每個圖像區域都能與問題中的任何單詞互動,能夠更好了解和推理圖像-問題關系。
然而密集協同注意力的瓶頸在于缺乏每個模态的自注意力。是以[34]提出MCAN,MCA子產品級聯組成。然而,雖然有表現力且高度靈活,但這種形式的注意力仍然有一個局限性。具體來說,結果總是一個模型參與的值對的權重組合,當模型參與的沒有密切相關的上下文時(如沒有上下文單詞或圖像區域存在的一個單詞),可能會出現問題。在這種情況下,注意力會導緻有噪聲或更分散的輸出向量,進而對性能産生負面影響。
使用[10]的啟發,本文我們利用AoA子產品的想法來解決上述限制。AoA子產品多次級聯形成一個在注意力網絡中的新的子產品化協同注意力(MCAoAN),是對子產品化協同注意力網絡(MCAN)的改進擴充。AoA子產品通過使用類似于GLU[6]的兩個獨立的線性變換生成一個資訊向量和一個注意力門,注意力結果和查詢上下文連接配接在一起,通過一個線性變化,我們可以得到一個資訊向量,同樣地,通過另一個sigmoid激活函數的線性變換,獲得一個注意力門。通過元素乘法,我們最終得到了參與的資訊,其中建立了多個注意力頭的關系,隻保留最相關的一個,丢棄所有不相關的注意力結果。是以,模型能夠預測更準确的答案。我們還提出了一種多模态融合機制,在結合圖像和語言特征時動态調節模态重要性。
我們的貢獻:(1)我們引入了Attention on Attention子產品來形成一個在注意力網絡上的子產品化協同注意力(MCAoAN)。MCAoAN捕獲視覺和語言模态的模态内和模态間的注意力,也能減輕來自不相關上下文的資訊。(2)我們也提出一種基于多模态注意力的融合機制,以結合圖像和問題特征。我們的融合網絡動态地決定怎樣對每個模态權重,生成最終的特征表示來預測正确答案。(3)在VQA-v2資料集上的實驗表明,提出的方法優于競争者,在視覺問答方面明顯優于基線方法。
二、相關工作
2.1 視覺問答
[33](2016)引入了一個注意力網絡來支援圖像問答任務的多步推理。[26](2019)提出了一個模型不可知架構,依賴于周期一緻性來學習VQA模型。[31](2019)提出一種差分網絡(DN),一種新的即插即用子產品,使用成對特征間的差異來降低噪聲和學習特征間的内部依賴性。
[17](2016)引入一個協同注意力網絡以分層的方式共同推理圖像和問題注意力。[36](2018)提出一種通過應用問題嵌入的自注意力和問題條件注意力來減少不相關特征的架構。[18(2017), 25(2017)]提出多模态注意力,同時關注圖像、問題或答案特征。最近,[7(2016),12(2016),35(2017) ]提出雙線性注意力來定位更準确的區域。[20](2017)提出一種對多模态推理和比對的多步雙重關注。這些基于共同注意力的方法的一個主要局限性在于缺乏不同模态間的密集互動。[34(2019),11(2018)]提出密集協同注意力方法,但在與查詢不相關的情況下,密集協同注意力可以生成不相關的向量。通過[10](2019)的啟發,本文我們結合AoA子產品和子產品化協同注意力網絡來提升現有結構。
2.2 VQA的融合政策
現有的VQA模型的融合可以分為兩類:線性和雙線性。線性模型如[17(2016),33(2016)]和[15(2016),20(2017)]分别使用了元素求和與元素相乘。雙線性使用更細粒度的方法,如[7](2016)使用外積融合多模态特征,[12](2016)使用循環投影,然後是元素級乘法。[35](2017)提出一種具有協同注意力學習的多模态分解雙線性池化方法(MFB)。[31](2019)提出了一種基于差分網絡的融合方法,首先計算圖像和文本特征元素之間的差異,然後結合差分表示來預測最終答案。
本文提出一種基于注意力的多模态融合方法通過動态決定對每個模态配置設定多少權重來結合圖像和問題特征,使用權重的特征來預測最終答案。
三、方法
MCAoAN包含MOAoA層,該層由兩個主要注意力單元組成:在注意力上的自注意力(SAoA)和在注意力上的引導注意力(GAoA)單元。
3.1 SAoA和GAoA單元
SAoS單元是多頭自注意力機制的擴充,多頭注意力包含N個平行的頭,每個頭可以表示為一個縮放的點積注意力函數:
Q,K,v分别對應于query,key,value,這個注意力函數的輸出是權重平均向量。首先計算Q和K之間的相似性分數,使用softmax歸一化,然後将标準化分數和V一起使用,生成權重平均向量V',d是Q和K的次元。
多頭注意力子產品總是生成權重向量,不管在Q和K/V之間發現任何的關系,是以此方法容易誤導或産生錯誤答案。是以我們結合另一個注意力函數來衡量注意力結果V‘和查詢Q之間的關系。最終的AoA塊将通過兩個獨立的線性變換生成一個資訊向量I和注意力門G:
AoA塊通過資訊向量和注意力門之間的元素乘法添加了另外的注意力,而且,SAoA在AoA塊之後使用一個點狀前饋層,隻考慮輸入特征X。
我們也提出另一種注意力單元--在注意力中的引導注意力(GAoA)單元,與SAoA不同的是,GAoA在兩個輸入特征X和Y(X通過Y引導)之後使用AoA塊和一個點狀前饋層。在兩個注意力單元中,前饋層将AoA塊的輸出特征應用兩個全連接配接層以及ReLU和dropout函數(即FC(4d)-ReLU-dropout(0.1)-FC(d))。
SAoA将輸入特征X和輸出的參與特征Z作為X,GAoA将兩個輸入特征X和Y以及生成的參與特征Z作為由Y特征引導的輸入X,X和Y分别表示圖像和問題特征。
3.2 MCAoA層
MCAoA層(圖3)包含兩個注意力單元,MCAoA被設計為處理多模态的互相作用。我們使用級聯的MCAoA層。對于兩個輸入特征,MCAoA層首先使用兩個單獨的SAoA單元來分别标注X和Y的模态内互動,然後使用GAoA單元來捕獲Y引導X特征的模态間關系。
3.3 MCAoAN
首先将輸入預處理為适當的特征表示,使用将ResNet-101作為骨幹在Visual Genome資料集預訓練的Faster R-CNN來處理輸入圖像。從Faster R-CNN中檢測到的對象的中間特征被認為是視覺表示。根據[34],我們考慮一個門檻值來獲得被檢測對象的動态數量,最終圖像特征由特征矩陣X表示。
輸入問題首先被标記化,然後裁剪到最多14個單詞,預訓練好的GloVe嵌入用于将每個詞轉換為一個向量表示,導緻一個單詞序列的大小為n*300的最終表示。将單詞嵌入輸入到一層LSTM網絡,通過捕獲所有單詞的輸出特征,生成最終的查詢特征矩陣。
将兩個輸入特征傳遞給包含級聯MCAoA層的編碼器-解碼器子產品,編碼器通過疊加L個SAoA單元來學習注意力問題特征YL,解碼器通過使用查詢特征YL堆疊L個GAoA單元來學習參與的圖像特征XL。
3.4 多模态融合
本文提出兩種多模态融合網絡:1)多模态注意力融合,2)多模态Mutan融合。根據[34],首先使用兩層的MLP(如FC(d)-ReLU-Dropout(0.1)-FC(1)),生成參與特征X'和Y':
現在我們有來自兩個模态的豐富參與特征,同時每種模态應該使用來互相産生注意力以進行更好的預測。是以,我們需要決定,從每種模态中應該使用多少資訊。根據[19],在多模态融合中,我們對X'和Y'應用連接配接,然後是一系列全連接配接層(如FC(1024)-Dropout(0.2)-FC(512)-Dropout(0.2)-FC(2)-Softmax)(圖5(a))。這些操作的輸出是一個二維特征向量,對應于兩種模态對答案預測的重要性。在此之後,我們為每個模态生成參與特征(如A和B)的權重平均值,類似于式4和5,A和B與參與的視覺和文本特征X'和Y'結合,最後,融合的特征被送入一個LayerNorm來穩定訓練,然後建立一個全連接配接層和sigmoid激活來生成預測答案Z。我們使用二值交叉熵損失(BCE)來訓練網絡。
另一方面,我們也利用一種強大的融合技術,MUTAN融合。這個網絡與以上模型相似,但用全連接配接層的MUTAN融合取代了連接配接(如Dropout(0.2)-FC(2)-Softmax)。
四、實驗
4.1 資料集
VQA v2資料集
4.2 實驗和實作細節
跟随[34]的實驗控制,多頭注意力中頭的數量是8,多頭和AoA塊的潛在次元均為512,是以每個頭的次元為64,答案詞彙表是3129.
為了訓練MCAoA網絡,我們使用了β1=0.9和β2=0.98的Adam求解器。我們将我們的網絡訓練到13個epoch,批大小為64,大約需要24小時來完成訓練。學習速率設定為min(2.5Te−5,1e−4),其中T表示目前epoch。當10≤T時,學習速率開始每2期衰減1/5。
4.3 消融研究
級聯層的數量(L):MCAoA層由L個堆疊的SAoA和GAoA單元組成。從表1中我們可以看出,最初,随着L值的增加,模型的性能也在提高,直到L=6。在那之後,性能就達到了飽和。我們在最終的模型中使用L=6。我們使用預設的[34]超參數的驗證集。
每個單獨元件的有效性:我們改進後的體系結構有兩個重要的組成部分:(1)MCAoAN網絡,由SAoA子產品和GAoA子產品以及(2)多模态融合結合圖像和語言特征,在這裡,我們描述了兩種不同的融合機制:Mutan融合和多模式注意融合。表2在驗證集上展示了單個元件的實驗結果,并與MCAN比較。從表中看出,将SAoA和GAoA子產品與MCAN相結合,提高了VQA系統的性能。
此外,我們認為一種複雜的方法聚合語言和視覺特征來支援多模态推理,對于進一步提升性能至關重要。更具體地說,我們提出的具有兩個多模态融合子產品的MCAoAN在整個驗證集上都優于基線約2%的精度,表示融合子產品對于結合視覺和語言表示是重要的。多模态注意融合表現最好。我們提出的方法中的每個元件對于提高VQA系統的性能都很重要。
4.4 實驗結果
我們重新運作PyTorch實作,表3和表4分别顯示了使用test-dev和test-std的實驗結果。離線評估隻支援驗證集(如圖2)。
圖6顯示了使用我們的方法在驗證集上的一些定性結果。從實驗結果中,我們看出我們的方法優于其它基線方法。
圖7中我們還可視化了多模态融合,以比較MCAN[34]和我們提出的多模态注意融合如何能夠正确地關注圖像和問題元素。圖像上和問題前面的分數代表每種模态的權重。我們也通過邊界框和詞顯示注意力,圖像中較亮的邊界框、綠色和較深的顔色代表了更高的注意力分數。我們可以看到,我們提出的方法能夠更多地關注正确的答案。此外,圖8還顯示了使用我們的方法進行的典型失敗案例。
五、結論
本文中,我們提出一種改善的基于端到端的注意力的結構,我們提出的模型包括對具有多模态融合架構的注意力子產品的模化協同注意力。在本文中,我們提出了兩種版本的多模态融合:多模态注意融合和多模态mutan融合。實驗結果表明,該模型中的各元件都提高了VQA系統的性能。此外,最終的網絡在VQA-v2資料集上取得了顯著的性能。