王峰,石方宇,趙佳,張雪松,王雪楓
阜陽師范大學(xué)計(jì)算機(jī)與信息工程學(xué)院,阜陽 236041
視覺問 答(visual question answering,VQA)(Antol 等,2015)任務(wù)是人工智能領(lǐng)域新興的一項(xiàng)研究內(nèi)容,屬于自然語言處理和計(jì)算機(jī)視覺交叉領(lǐng)域,具有廣泛的應(yīng)用前景,逐漸成為熱門研究方向。視覺問答任務(wù)要求模型根據(jù)給定的問題和與問題相關(guān)的圖像給出相應(yīng)答案,這種需要處理跨模態(tài)信息的任務(wù)對模型有著非常高的要求。與傳統(tǒng)的基于文本的問答任務(wù)不同,視覺問答需要模型根據(jù)圖像回答對應(yīng)的問題。模型不僅需要使用自然語言處理技術(shù)和圖像處理技術(shù)對問題文本和圖像進(jìn)行處理,還需要融合這兩種不同模態(tài)的特征來推理答案。相較于文本,圖像模態(tài)的特征所包含信息更加復(fù)雜,模型很難理解圖像中各目標(biāo)物之間的語義關(guān)系和空間關(guān)系,而且文本和圖像模態(tài)的特征屬于不同的特征空間,在特征融合時(shí)也存在一定困難。因此視覺問答是一個(gè)復(fù)雜且困難的研究方向。
隨著深度學(xué)習(xí)的發(fā)展,視覺問答模型從早期簡單的特征融合分類模型轉(zhuǎn)變?yōu)樯疃壬窠?jīng)網(wǎng)絡(luò)模型,準(zhǔn)確率得到極大提升。視覺問答任務(wù)有專門的數(shù)據(jù)集,用于訓(xùn)練模型并衡量模型的性能。使用較為廣泛的數(shù)據(jù)集VQA v2.0(Goyal 等,2017),是通過對VQA v1.0(Antol 等,2015)進(jìn)行優(yōu)化得到的。圖1 展示了VQA v2.0 數(shù)據(jù)集的部分樣本實(shí)例。在視覺問答數(shù)據(jù)集中,答案通常分為“yes∕no”、“number”和“other”3種類型,這3種類型的預(yù)測準(zhǔn)確率也是判斷一個(gè)模型優(yōu)劣的重要標(biāo)準(zhǔn)。目前的模型在VQA v2.0數(shù)據(jù)集上已經(jīng)有了較高的預(yù)測準(zhǔn)確率。
圖1 VQA v2.0數(shù)據(jù)集部分樣本實(shí)例Fig.1 Sample examples of VQA v2.0 dataset
但Agrawal等人(2018)發(fā)現(xiàn),當(dāng)前的視覺問答模型容易利用數(shù)據(jù)集中答案的分布規(guī)律而不是圖像與問題的結(jié)合來得到正確答案,在回答某一類問題時(shí),預(yù)測的答案往往是訓(xùn)練集中此類問題出現(xiàn)次數(shù)最多的答案,模型在預(yù)測時(shí)僅通過問題就能夠得到正確答案,說明視覺問答任務(wù)中存在嚴(yán)重的語言先驗(yàn)問題,并且模型未將圖像信息充分利用,無法滿足視覺問答的任務(wù)需求。為了解決這個(gè)問題,他們對VQA v2.0 數(shù)據(jù)集進(jìn)行了重新分割,得到了VQA-CP v2.0(countering priors in vqa )數(shù)據(jù)集。VQA-CP v2.0 數(shù)據(jù)集的訓(xùn)練集和測試集中的答案分布不均衡,模型如果僅通過答案分布規(guī)律回答問題,在測試集上的預(yù)測準(zhǔn)確率將會很低,該數(shù)據(jù)集由于能夠衡量模型受到語言先驗(yàn)影響的程度,因此成為目前視覺問答任務(wù)最常用的數(shù)據(jù)集。當(dāng)前的模型因?yàn)槭艿秸Z言先驗(yàn)的影響,在VQA-CP v2.0 數(shù)據(jù)集上的表現(xiàn)并不能令人滿意。
與現(xiàn)實(shí)生活相同,視覺問答數(shù)據(jù)集中的每一類問題都有與之對應(yīng)的一類答案。例如,詢問圖像中物體數(shù)量的問題,答案都是“number”類型的答案,詢問“是否”的問題,答案都為“yes∕no”類型的答案,這種關(guān)系是一一對應(yīng)的。但是由于語言先驗(yàn)等原因,模型往往只通過問題和答案之間的表面關(guān)系來回答問題,沒有學(xué)習(xí)到問題和答案之間這種更深層次的對應(yīng)關(guān)系,存在答非所問現(xiàn)象。模型應(yīng)該回答“yes∕no”類型的答案,卻回答了“number”類型的答案,如圖2所示。
圖2 答非所問現(xiàn)象示例Fig.2 An example of irrelevant answer phenomenon
為了緩解這一現(xiàn)象,本文提出使用答案掩碼對模型的預(yù)測結(jié)果進(jìn)行遮蓋的方法,將預(yù)測結(jié)果的概率分布限制在問題對應(yīng)的答案類型中,通過訓(xùn)練使模型學(xué)習(xí)到問題和答案類型之間的對應(yīng)關(guān)系,提高模型的預(yù)測準(zhǔn)確率。首先,通過K-means 算法對數(shù)據(jù)集中的答案重新聚類,并為每一類答案生成一個(gè)由0、1 組成的答案掩碼向量。然后,使用預(yù)訓(xùn)練的答案類型識別模型預(yù)測輸入問題對應(yīng)的答案類型,并根據(jù)該預(yù)測結(jié)果選擇相應(yīng)的答案掩碼。使用基礎(chǔ)視覺問答模型得到初步的概率分布向量,并將問題對應(yīng)的答案掩碼與概率分布向量進(jìn)行融合,遮蓋無關(guān)答案的概率分布。最后,使用數(shù)據(jù)集中的樣本對模型進(jìn)行訓(xùn)練,優(yōu)化基礎(chǔ)視覺問答模型的網(wǎng)絡(luò)參數(shù),緩解答非所問現(xiàn)象,提高模型預(yù)測準(zhǔn)確率。
視覺問答任務(wù)自提出以來便引起廣泛關(guān)注,其流程可以總結(jié)為特征提取、特征融合以及答案預(yù)測3個(gè)步驟(Zhou等,2015)。
視覺問答模型通常使用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)提取圖 像特征。Simonyan 和Zisserman(2014)提出的VGGNet(Visual Geometry Group Network)和Szegedy 等人(2015)提出的GoogLeNet 是早期視覺問答模型常用的視覺特征提取器,但是由于參數(shù)量大、訓(xùn)練速度慢等原因,逐漸被精度更高、訓(xùn)練速度更快的ResNet(residual network)(He 等,2016)所取代。目前,視覺問答模型最常用是Faster R-CNN(region-based convolutional neural network)(Ren 等,2017)模型。對于問題文本,模型通常使用循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)提取特征。模型使用GloVe(global vectors for word representation)(Pennington 等,2014)獲取詞向量表示,并通過長短期記憶(long short-term memory,LSTM)或雙向循環(huán)門控單元(gated recurrent unit,GRU)(Cho 等,2014)對詞向量進(jìn)行編碼?;谧⒁饬C(jī)制 的Transformer(Vaswani 等,2017)和BERT(bidirectional encoder representation from transformers)(Devlin 等,2019)也是目前常用的文本特征提取器。
在特征融合方面,F(xiàn)ukui 等人(2016)提出的MCB(multimodal compact bilinear)模型使用雙線性池化的方法進(jìn)行特征融合;Ben-Younes 等人(2017)為了解決雙線性模型參數(shù)量過多的問題,提出了基于Tucker 分解的模型,在保證雙線性交互的同時(shí)大量減少了模型的參數(shù),提高了特征融合的效率;Yu 等人(2017)提出多模態(tài)分解雙線性池化的方法,引入了注意力機(jī)制進(jìn)行特征聯(lián)合嵌入。除此之外,基于注意力機(jī)制的模型也有很好的表現(xiàn)。Yang 等人(2016)提出的SANs(stacked attention networks)模型通過問題對圖像進(jìn)行多次堆疊式的注意力引導(dǎo),查找圖像中與問題相關(guān)的區(qū)域并推測答案;Lu 等人(2016)提出的共同注意模型主張兩個(gè)模態(tài)的特征相互引導(dǎo),同時(shí)關(guān)注圖像和問題的關(guān)鍵區(qū)域;Anderson等人(2018)提出的UpDn(up-down)模型使用自底向上和自上而下注意力相結(jié)合的方式融合特征,是視覺問答任務(wù)的經(jīng)典模型,且具有良好的可擴(kuò)展性,后來的模型大多都在UpDn的基礎(chǔ)上進(jìn)行改進(jìn)。
除以上方面,Wu等人(2016)從外部知識庫中引入了與圖像、問題相關(guān)的先驗(yàn)知識對模型進(jìn)行訓(xùn)練,加深模型對圖像的理解。Li等人(2019)提出關(guān)系感知圖注意模型,利用圖關(guān)系網(wǎng)絡(luò)和注意力機(jī)制輔助模型理解圖像中各目標(biāo)物之間的語義關(guān)系和空間關(guān)系,提高了模型的性能。
視覺問答模型特征提取的發(fā)展依賴于計(jì)算機(jī)視覺和自然語言處理技術(shù)的進(jìn)步。在當(dāng)前條件下,視覺問答模型在特征融合方面還可以進(jìn)行深入研究,基于外部知識和圖關(guān)系網(wǎng)絡(luò)的模型也有廣闊的研究前景。
Agrawal 等人(2016)對視覺問答模型進(jìn)行分析,發(fā)現(xiàn)大部分模型的泛化性很差。Jabri 等人(2016)也發(fā)現(xiàn),模型僅學(xué)習(xí)答案的分布規(guī)律就能取得不錯(cuò)的效果。Kafle 等人(2017)對視覺問答任務(wù)的未來工作進(jìn)行分析,指出需要提高模型對圖像的關(guān)注并平衡數(shù)據(jù)集的偏差。Agrawal 等人(2018)明確指出,視覺問答任務(wù)中存在語言先驗(yàn)現(xiàn)象,并對數(shù)據(jù)集進(jìn)行了重新劃分。由于這種語言先驗(yàn)性,模型不能真正理解圖像的內(nèi)容,不能準(zhǔn)確學(xué)習(xí)到問題和答案類型之間的聯(lián)系,容易出現(xiàn)答非所問現(xiàn)象。
目前,克服語言先驗(yàn)的方法大致分為兩類,一類是平衡數(shù)據(jù)集,另一類是通過對抗或融合的方式抵消語言先驗(yàn)。Chen 等人(2020)提出生成反事實(shí)樣本的CSS(counterfactual samples synthesizing)模型,通過生成的反事實(shí)樣本平衡數(shù)據(jù)集。Liang 等人(2020)對CSS 模型進(jìn)行改進(jìn),通過對比學(xué)習(xí)使模型更加關(guān)注圖像和問題的關(guān)鍵信息。Zhu 等人(2020)提出SSL(self-supervised learning)模型,引入自監(jiān)督學(xué)習(xí)的思想,生成負(fù)樣本平衡數(shù)據(jù)集并利用負(fù)樣本產(chǎn)生的監(jiān)督信號對基礎(chǔ)模型進(jìn)行指導(dǎo),增加模型對圖像的關(guān)注度。Cadène等人(2019)提出RUBi(reducing unimodal biases)模型,通過一個(gè)“僅問題模型”來捕獲偏差,并將其預(yù)測結(jié)果生成的掩碼向量與基礎(chǔ)模型的預(yù)測結(jié)果進(jìn)行融合,動態(tài)調(diào)整損耗以補(bǔ)償偏差。Clark 等人(2019)提出LMH 模型,將基礎(chǔ)模型的預(yù)測結(jié)果與“僅問題模型”的預(yù)測結(jié)果進(jìn)行融合,減輕了語言先驗(yàn)。
對于由語言先驗(yàn)引起的答非所問現(xiàn)象,也有學(xué)者進(jìn)行研究。Gokhale 等人(2020)提出MUTANT 模型,使用經(jīng)過突變生成的反事實(shí)樣本進(jìn)行訓(xùn)練,并計(jì)算模型預(yù)測的答案類型與真實(shí)答案類型的損失,迫使模型學(xué)習(xí)問題和答案類型之間的關(guān)系,減少答非所問現(xiàn)象。Jing 等人(2020)提出的模型將問題分解為多種表示形式,計(jì)算問題類型表示和答案之間的相關(guān)性得分并映射成(0,1)之間的掩碼向量,最后使用掩碼向量對答案進(jìn)行遮蓋,進(jìn)而得到預(yù)測結(jié)果。Guo 等人(2022)通過一個(gè)映射函數(shù)將融合后的問題和圖像特征映射為掩碼向量,并對基礎(chǔ)視覺問答模型的預(yù)測結(jié)果進(jìn)行遮蓋。Agrawal 等人(2018)提出GVQA(grounded visual question answering)模型,通過問題類型預(yù)測模型對問題的答案類型進(jìn)行預(yù)測,并將預(yù)測結(jié)果與基礎(chǔ)視覺問答模型的預(yù)測結(jié)果相加。賈蔭鵬(2020)將答案類型預(yù)測模型的預(yù)測結(jié)果作為“第三模態(tài)”特征,與問題和圖像特征融合來預(yù)測答案。
這些方法都對緩解答非所問現(xiàn)象有所幫助,但是也存一些問題。MUTANT模型使用的答案類型種類較少,模型學(xué)習(xí)到的問題和答案類型之間的關(guān)系不夠精確;GVQA 等使用答案掩碼的模型生成的答案掩碼不能消除無關(guān)答案對結(jié)果的影響;賈蔭鵬在重新劃分答案類別時(shí)使用了大量的人工標(biāo)注,在融合“第三模態(tài)”特征時(shí)也引入了一些噪聲,影響實(shí)驗(yàn)結(jié)果。本文方法與上述方法不同,在保證模型能夠正確識別問題對應(yīng)的答案類型的同時(shí),盡可能地將答案類型劃分得更為細(xì)致,使用0、1 組成的答案掩碼對無關(guān)答案進(jìn)行遮蓋,以消除無關(guān)答案對實(shí)驗(yàn)結(jié)果的影響。
本文方法的總體框架如圖3 所示。其中,黑色箭頭表示數(shù)據(jù)傳輸方向,黃色箭頭為梯度反向傳播方向,?為選擇器,⊙為點(diǎn)乘。首先,對數(shù)據(jù)集中的候選答案進(jìn)行聚類,并為每個(gè)答案類型C生成答案掩碼mC。然后,通過答案類型識別模型預(yù)測問題對應(yīng)的答案類型,并根據(jù)預(yù)測結(jié)果Pqc(C|Q)選擇相應(yīng)的答案掩碼,使用基礎(chǔ)視覺問答模型對輸入的圖像和問題進(jìn)行預(yù)測,得到初步的預(yù)測結(jié)果fvqa(v,q);最后,將基礎(chǔ)視覺問答模型的預(yù)測結(jié)果與答案掩碼融合,得到最終的預(yù)測答案P,計(jì)算損失并反向傳播梯度,優(yōu)化基礎(chǔ)視覺問答模型。
圖3 總體框架Fig.3 Overall framework
由于數(shù)據(jù)集中的答案類型劃分不夠細(xì)致,使用原有的答案類型生成的答案掩碼無法高效地過濾無關(guān)答案,模型無法學(xué)習(xí)到問題和答案類型之間更細(xì)致的對應(yīng)關(guān)系。為了解決這個(gè)問題,首先對數(shù)據(jù)集中的答案進(jìn)行聚類,由于數(shù)據(jù)集中的答案數(shù)量較多,大部分模型將出現(xiàn)次數(shù)超過9 次的答案作為候選答案,因此僅對這些候選答案進(jìn)行聚類。不同數(shù)據(jù)集的候選答案數(shù)量不同,其中VQA v2.0中的候選答案有2 410 個(gè),VQA-CP v1.0 有1 691 個(gè),VQA-CP v2.0有2 274 個(gè)。圖4 展示了VQA-CP v2.0 中的部分候選答案及出現(xiàn)次數(shù)??梢钥闯觯瑪?shù)據(jù)集中各答案的數(shù)量不同,由單詞和短語組成,包含顏色、數(shù)字、物體等類別。
圖4 VQA-CP v2.0數(shù)據(jù)集部分候選答案及出現(xiàn)頻次Fig.4 Partial candidate answers and frequency of VQA-CP v2.0 dataset
2.1.1 答案特征提取
對答案進(jìn)行聚類首先需要得到答案的向量表示。數(shù)據(jù)集中的答案包含單詞和短語,并且它們之間不存在上下文關(guān)系,傳統(tǒng)的Word2Vec(word to vector)(Mikolov 等,2013)和Glove 不能提取答案特征。由于需要對答案進(jìn)行聚類,原數(shù)據(jù)集中的答案類型也不能作為真實(shí)標(biāo)簽訓(xùn)練LSTM提取答案特征。采 用CLIP(contrastive language-image pre-training)(Radford 等,2021)作為編碼器提取答案特征。CLIP使用4 億個(gè)圖像、文本對來訓(xùn)練圖像編碼器和文本編碼器,能夠?qū)D像映射到文本描述對應(yīng)的類別中,預(yù)訓(xùn)練的文本編碼器提取的文本特征帶有豐富的跨模態(tài)信息。視覺問答任務(wù)中問題對應(yīng)的答案也來源于圖像,使用CLIP 提取數(shù)據(jù)集中的答案特征有利于下一步的聚類工作。
2.1.2 答案聚類
使用K-means 算法將答案聚為k類。給定答案向量集A={a1,a2,…,am},首先在A中隨機(jī)選擇k個(gè)質(zhì)心向量U={μ1,μ2,…,μk},然后計(jì)算第i個(gè)答案向量ai和第j個(gè)質(zhì)心向量μj的距離dij,將ai劃分至與其距離最小的答案簇Cj中,在答案簇中重新選擇新的質(zhì)心向量具體為
經(jīng)過多次迭代,得到最終的k個(gè)答案簇,最后根據(jù)該聚類結(jié)果對數(shù)據(jù)集中的答案類型進(jìn)行修改。
2.1.3 答案掩碼生成
本文方法使用答案掩碼對預(yù)測結(jié)果中的無關(guān)答案進(jìn)行遮蓋,為每一類答案生成一個(gè)由0、1 組成的答案掩碼向量,用0遮蓋無關(guān)答案的概率分布。
在將答案重新分類后,為k類答案生成k個(gè)不同的答案掩碼。在視覺問答任務(wù)中,同一個(gè)模型在加載數(shù)據(jù)時(shí)生成的答案標(biāo)簽是固定的,答案標(biāo)簽的每個(gè)元素都對應(yīng)一個(gè)答案。對于類別Cj,首先定義一個(gè)向量s={0}n×1,n為候選答案個(gè)數(shù)。然后確定Cj中的所有答案在答案標(biāo)簽中的位置,并將s中對應(yīng)位置的元素置為1,即得到答案掩碼mj={0,1}n×1。
得到答案掩碼后,還需要選擇使用哪一類答案掩碼對預(yù)測結(jié)果進(jìn)行遮蓋。為此,設(shè)計(jì)了一個(gè)答案類型識別模型,識別問題對應(yīng)的答案類型,如圖5 所示。答案類型識別模型主要有兩個(gè)作用。1)檢驗(yàn)聚類結(jié)果是否滿足要求。根據(jù)問題和答案類型之間的對應(yīng)關(guān)系,可以通過答案類型識別模型的預(yù)測準(zhǔn)確率來檢驗(yàn)聚類結(jié)果是否滿足需求。如果模型準(zhǔn)確率高,說明問題和答案類型的關(guān)聯(lián)性強(qiáng)、聚類結(jié)果好;反之則說明聚類結(jié)果不能滿足要求,需要重新進(jìn)行聚類。2)根據(jù)預(yù)測結(jié)果選擇答案掩碼。使用答案類型識別模型對問題對應(yīng)的答案類型進(jìn)行預(yù)測,并根據(jù)預(yù)測該結(jié)果選擇相應(yīng)的答案掩碼。
圖5 答案類型識別模型整體結(jié)構(gòu)Fig.5 Overall structure of answer type identification model
本文將問題識別答案類型看作一個(gè)多分類任務(wù),設(shè)計(jì)了一個(gè)分類模型來加以實(shí)現(xiàn)。給定N組樣本H=,其中Qi、Ci為第i組樣本的問題和答案類別,目標(biāo)是學(xué)習(xí)一個(gè)映射函數(shù)fqc:Q→Ck×1,通過該映射函數(shù)可以由問題得到答案類型的預(yù)測結(jié)果。
對于輸入的問題,首先通過GloVe 模型得到詞嵌入,然后通過GRU 對詞嵌入向量進(jìn)行編碼,獲得問題特征向量q,最后通過分類器對答案類型進(jìn)行預(yù)測。具體為
得到預(yù)測結(jié)果后,計(jì)算結(jié)果與真實(shí)標(biāo)簽的損失Lqc,并根據(jù)該損失優(yōu)化模型參數(shù)。具體為
式中,gci表示第i個(gè)樣本的真實(shí)答案類型標(biāo)簽。
本文方法需要根據(jù)問題選擇正確的答案掩碼,因此要求答案類型識別模型有較高的預(yù)測準(zhǔn)確率。為此,使用預(yù)訓(xùn)練好的答案類型識別模型與基礎(chǔ)模型進(jìn)行融合,并且在訓(xùn)練過程中僅對基礎(chǔ)視覺問答模型進(jìn)行優(yōu)化,答案類型識別模型不參與反向傳播過程。
給定N組樣本D=其中Ii、Qi、ai為第i組樣本的圖像、問題和答案,視覺問答模型的目的是學(xué)習(xí)一個(gè)映射函數(shù)fvqa:I×Q→An×1,通過該函數(shù)可以生成n個(gè)候選答案的概率分布。
本文方法具有良好的可移植性,為了驗(yàn)證該方法的效果,將其與具有代表性UpDn、RUBi、LMH 和CSS模型作為基礎(chǔ)模型進(jìn)行融合。
UpDn 模型采用Glove 對問題文本進(jìn)行詞嵌入,并用GRU 提取問題特征向量q。對于圖像,UpDn 采用基于自底向上注意力的Faster R-CNN 提取特征v。得到問題和圖像特征后,UpDn利用問題特征引導(dǎo)圖像特征生成自上而下的注意力,關(guān)注圖像中的關(guān)鍵區(qū)域,得到答案的概率分布向量Pvqa,具體為
預(yù)測結(jié)果與真實(shí)答案標(biāo)簽gai的交叉熵?fù)p失LUpDn為
通過式(7)得到LUpDn后,計(jì)算梯度并反向傳播,調(diào)整網(wǎng)絡(luò)參數(shù)。
RUBi 在UpDn 的基礎(chǔ)上增加了一個(gè)僅問題模型,該模型學(xué)習(xí)映射函數(shù)fqa:Q→An×1,根據(jù)輸入的問題預(yù)測相應(yīng)的答案。僅問題模型可具體表示為
RUBi將UpDn和僅問題模型融合得到最終的預(yù)測結(jié)果。具體為
式中,⊙表示點(diǎn)乘含義,σ表示sigmoid激活函數(shù)。
計(jì)算該結(jié)果與答案標(biāo)簽的交叉熵?fù)p失LQM,并計(jì)算僅問題模型與答案標(biāo)簽的交叉熵?fù)p失LQO,兩者相加作得到LRUBi。
LMH 也引入僅問題模型減輕語言先驗(yàn)問題。與RUBi 的策略不同,LMH 引入的僅問題模型使用問題類型(問題的疑問詞)作為輸入進(jìn)行預(yù)測,用于捕獲數(shù)據(jù)集中的偏差。LMH 將UpDn 和僅問題模型融合得到預(yù)測結(jié)果,具體為
式中,p=fvqa(v,q),b=fqa(q),g(x)是一個(gè)可學(xué)習(xí)的函數(shù),函數(shù)表示為softplus(ω·hi),ω為可學(xué)習(xí)的參數(shù)向量,(·)為實(shí)際點(diǎn)乘運(yùn)算,hi為第i個(gè)樣本在模型最后一個(gè)隱藏層的狀態(tài)。
計(jì)算交叉熵?fù)p失LLM,為了防止g(x)=0 時(shí)模型無法學(xué)習(xí)到偏差,在損失中加入懲罰項(xiàng),得到最終的損失LLMH,具體為
式中,λ為超參數(shù),H(z)=
CSS 使用反事實(shí)樣本訓(xùn)練模型來減輕語言先驗(yàn)。首先計(jì)算問題中各單詞或圖像的各個(gè)區(qū)域?qū)ψ罱K答案的貢獻(xiàn)度,然后根據(jù)貢獻(xiàn)度確定問題的關(guān)鍵單詞或圖像的關(guān)鍵區(qū)域并進(jìn)行遮蓋,最后為其分配錯(cuò)誤答案,得到反事實(shí)樣本。CSS 模型以UpDn 為基礎(chǔ),在訓(xùn)練過程中使用LMH 的方法計(jì)算損失并優(yōu)化模型。
將本文方法與基礎(chǔ)模型進(jìn)行融合。以UpDn 為例,對于輸入的第i組樣本,答案類型識別模型預(yù)測該組樣本的問題對應(yīng)的答案類型為Cj,因此選擇答案掩碼mj對UpDn 模型的預(yù)測結(jié)果進(jìn)行遮蓋,得到最終預(yù)測結(jié)果Pi。具體為
式中,vi和qi為第i組樣本中的圖像和問題特征向量。
最后,計(jì)算預(yù)測結(jié)果與真實(shí)答案標(biāo)簽的交叉熵?fù)p失Loss,并根據(jù)該損失調(diào)整基礎(chǔ)模型的網(wǎng)絡(luò)參數(shù)。
本文使用視覺問答領(lǐng)域中的3 個(gè)大型公開數(shù)據(jù)集對融合模型進(jìn)行訓(xùn)練和評估。
1)VQA v2.0 數(shù)據(jù)集。VQA v2.0 分為訓(xùn)練集(train)、驗(yàn)證集(val)和測試集(test)。該數(shù)據(jù)集的圖像都來自MS COCO(microsoft common objects in context )數(shù)據(jù)集(Lin 等,2014)。訓(xùn)練集包含82 783 幅圖像、443 757 個(gè)問題和4 437 570 個(gè)答案;驗(yàn)證集包含40 504 幅圖像、214 354 個(gè)問題和2 143 540 個(gè)答案;測試集包含81 434 幅圖像和447 793 個(gè)問題。VQA v2.0 在VQA v1.0 的基礎(chǔ)上進(jìn)行了優(yōu)化,為每幅圖像增加了1 個(gè)問題和對應(yīng)的答案,對數(shù)據(jù)集進(jìn)行了擴(kuò)充。對于每個(gè)問題,都有兩幅相似的圖像與之對應(yīng),并且由這兩幅圖像得到的答案也互不相同。通過增加樣本的方式平衡數(shù)據(jù)集,迫使模型關(guān)注圖像來回答問題,在一定程度上減少了語言先驗(yàn)性。
2)VQA-CP v1.0 數(shù)據(jù)集。由于VQA v1.0 訓(xùn)練集和測試集的答案分布相似,對于同一類問題,模型不需要關(guān)注圖像,只需要回答訓(xùn)練集上該類問題出現(xiàn)次數(shù)最多的答案就能夠在測試集上取得不錯(cuò)的效果,存在較強(qiáng)的語言先驗(yàn)性。VQA-CP v1.0 對其進(jìn)行重新分割,將訓(xùn)練集和測試集打亂,通過貪心算法使訓(xùn)練集和測試集的答案分布盡可能不同,模型無法利用語言先驗(yàn)性在驗(yàn)證集上獲得好的效果。
3)VQA-CP v2.0 數(shù)據(jù)集。雖然VQA v2.0 通過增加樣本的方式減輕了語言先驗(yàn)性,但是其訓(xùn)練集和驗(yàn)證集上的答案分布仍然相似。例如詢問數(shù)量的問題,訓(xùn)練集和驗(yàn)證集出現(xiàn)最多的答案都為“1”,不管圖像中有多少物體,模型只需要回答“1”就能在驗(yàn)證集上取得不錯(cuò)的結(jié)果,語言先驗(yàn)依然嚴(yán)重。經(jīng)過重新分割,VQA-CP v2.0 改善了這種現(xiàn)象,圖6 為數(shù)據(jù)集中較為常見的“How many”和“What color is the”類型的問題在訓(xùn)練集和測試集上的答案分布情況,由于答案數(shù)量較多,僅展示了出現(xiàn)次數(shù)最多的前5個(gè)答案及其占比情況。從圖6 可以看出,VQA-CP v2.0 訓(xùn)練集和測試集答案分布差異較大,能夠更好地衡量模型受語言先驗(yàn)影響的程度,是目前最常用的視覺問答數(shù)據(jù)集。本文使用模型在VQA-CP v2.0 數(shù)據(jù)集上的準(zhǔn)確率作為衡量模型性能的主要指標(biāo)。
實(shí)驗(yàn)在Linux Ubuntu 20.04.1操作系統(tǒng)上進(jìn)行,GPU 型號為GeForce RTX 2080 Ti,深度學(xué)習(xí)框架為PyTorch 1.7.1。實(shí)驗(yàn)代碼均采用Python 語言編寫,版本為Python 3.9.5和Python 2.7.5.
本文方法采用的基礎(chǔ)視覺問答模型的代碼均來自官方,實(shí)驗(yàn)中未對模型的超參數(shù)進(jìn)行修改。設(shè)置聚類類別數(shù)k=6,batch_size=512,訓(xùn)練次數(shù)epoch=50。
實(shí)驗(yàn)主要在VQA-CP v2.0 數(shù)據(jù)集上進(jìn)行,以模型在VQA-CP v2.0 測試集上的總體準(zhǔn)確率以及在“yes∕no”、“number”、“other”3 種問題上的準(zhǔn)確率作為衡量標(biāo)準(zhǔn)。本文雖然對數(shù)據(jù)集的答案類別進(jìn)行了重新劃分,但是為了保證實(shí)驗(yàn)結(jié)果的公平性和權(quán)威性,仍然按照原始數(shù)據(jù)集的評分標(biāo)準(zhǔn)進(jìn)行評分。
本文方法選擇UpDn、RUBi、LMH 和CSS 基礎(chǔ)模型進(jìn)行融合實(shí)驗(yàn),為了直觀地展示本文方法的有效性和可移植性,將融合后的模型與基礎(chǔ)模型在VQACP v2.0 及VQA v2.0 上的準(zhǔn)確率進(jìn)行比較,如表1所示。
表1 本文方法融合不同基礎(chǔ)模型在VQA-CP v2.0測試集和VQA v2.0驗(yàn)證集上的準(zhǔn)確率Table 1 The accuracies of our method with different basic models on VQA-CP v2.0 test set and VQA v2.0 val set/%
由表1可以看出,融合了本文方法的4種模型在VQA-CP v2.0 數(shù)據(jù)集上的準(zhǔn)確率都有提高,其中UpDn 和LMH 模型分別提高了2.15%和2.29%,CSS模型提高了2.02%,達(dá)到60.14%,是目前視覺問答模型在該數(shù)據(jù)集上的較高水平。RUBi、LMH 和CSS都基于UpDn 模型進(jìn)行改進(jìn),這些模型雖然在VQACP v2.0 數(shù)據(jù)集上的提高了準(zhǔn)確率,但在VQA v2.0上的效果并不如原模型。而本文方法不僅提高了模型在VQA-CP v2.0 數(shù)據(jù)集上準(zhǔn)確率,同時(shí)也提高了大部分模型在VQA v2.0上的準(zhǔn)確率,說明本文方法有更好的泛化性。
為進(jìn)一步驗(yàn)證本文方法的泛化性,在VQA-CP v1.0 數(shù)據(jù)集上進(jìn)行擴(kuò)展實(shí)驗(yàn),結(jié)果如表2 所示??梢钥闯?,本文方法使大部分模型的準(zhǔn)確率都有所提高。結(jié)合在VQA-CP v2.0和VQA v2.0上的表現(xiàn),表明本文方法具有良好的泛化性。
表2 本文方法融合不同基礎(chǔ)模型在VQA-CP v1.0測試集上的準(zhǔn)確率Table 2 The accuracies of our method with different basic models on VQA-CP v1.0 test set/%
表3 展示了本文方法與一些視覺問答經(jīng)典模型和表現(xiàn)較好的模型進(jìn)行比較的結(jié)果。其中包括堆疊式注意力模型SANs(stacked attention networks )、雙線性池化模型MCB(multimodal compact bilinear )、同樣關(guān)注答案類型的GVQA(grounded visual question answering )模型、基于自監(jiān)督學(xué)習(xí)的SSL(selfsupervised learning )模型、視覺問答經(jīng)典模型UpDn、目前在VQA-CP v2.0 上表現(xiàn)較好的RUBi、LMH 和CSS 模型以及基于CSS 模型的CSS+LC 模型。由于目前表現(xiàn)最好的MUTANT 模型在生成突變樣本時(shí)進(jìn)行了大量的人工標(biāo)注,并且使用了預(yù)訓(xùn)練的LXMERT(learning cross-modality encoder representations from transformers )模型(Tan 和Bansal,2019),參數(shù)量巨大,未與其進(jìn)行比較。
表3 不同模型在VQA-CP v2.0測試集上的準(zhǔn)確率Table 3 The accuracies of different models on the VQA-CP v2.0 test set/%
從表3 可以看出,融合本文方法后的CSS 模型在VQA-CP v2.0 數(shù)據(jù)集上的有較好的表現(xiàn),準(zhǔn)確率優(yōu)于其他模型。
本文方法在多個(gè)模型上都有很好表現(xiàn),提高了模型性能。為了驗(yàn)證融合本文方法在提高模型精度中的作用,在VQA-CP v2.0測試集上進(jìn)行消融實(shí)驗(yàn),結(jié)果如表4 所示。其中,Q_CSS 代表僅遮蓋問題的關(guān)鍵單詞生成反事實(shí)樣本,V_CSS 代表僅遮蓋圖像的關(guān)鍵區(qū)域生成反事實(shí)樣本??梢钥闯?,將本文方法與生成反事實(shí)樣本的LMH 模型融合,可以提高模型的準(zhǔn)確率。反事實(shí)樣本和LMH 起到平衡數(shù)據(jù)集的作用,本文方法促使模型學(xué)習(xí)問題和答案類型之間的關(guān)系,從而提高了模型的性能。
表4 本文方法在CSS模型上的消融實(shí)驗(yàn)Table 4 Ablation experiment of this method on CSS model
在答案聚類過程中,需指定答案類別數(shù)k,即將答案劃分為多少類。超參數(shù)k對模型的準(zhǔn)確率有一定影響。k值越大,每個(gè)答案類型包含的答案數(shù)量越少,答案掩碼能夠遮蓋更多的無關(guān)答案,但答案類型識別模型的準(zhǔn)確率會降低;反之,答案掩碼的作用會減小,但答案類型識別模型的準(zhǔn)確率會提高。為此進(jìn)行了超參數(shù)實(shí)驗(yàn),結(jié)果如圖7 所示??梢钥闯觯S著k的增大,問題類型識別模型的準(zhǔn)確率不斷降低,融合后的CSS 模型的準(zhǔn)確率大體上也呈現(xiàn)降低趨勢。在k=6 時(shí),答案掩碼的覆蓋范圍和問題類型識別模型的準(zhǔn)確率達(dá)到平衡,模型的準(zhǔn)確率最高,因此取k=6。將VQA-CP v2.0 數(shù)據(jù)集中的答案聚類為6 類,分別為yes∕no、number、color、time、country 和other。圖8 展示了聚類前后各種答案類型在數(shù)據(jù)集上的分布情況??梢钥闯觯垲惡髷?shù)據(jù)集中的答案類別更多,每個(gè)類別所占比重較原數(shù)據(jù)集也有所不同,生成的答案掩碼更加準(zhǔn)確,模型能夠?qū)W習(xí)到問題和答案類型之間更細(xì)致的關(guān)系。
圖7 k取值對模型準(zhǔn)確率的影響Fig.7 The influence of k value on model accuracy
圖8 聚類前后各答案類型分布圖Fig.8 Distribution of answer types before and after clustering((a)original dataset;(b)after clustering)
從結(jié)果來看,本文方法在總體上提升了模型的預(yù)測準(zhǔn)確率,提高了模型的性能。對于答非所問現(xiàn)象,對CSS、LMH 模型以及本文方法在VQA-CP v2.0上的預(yù)測結(jié)果進(jìn)行了對比分析,本文方法改善了模型答非所問現(xiàn)象,達(dá)到了預(yù)期效果。圖9 展示了部分實(shí)例的模型預(yù)測結(jié)果對比。
圖9 部分實(shí)例的模型預(yù)測結(jié)果對比Fig.9 Comparison of model prediction results of partial examples
本文提出一種通過答案掩碼對基礎(chǔ)視覺問答模型預(yù)測結(jié)果進(jìn)行遮蓋的方法,減少無關(guān)答案對最終結(jié)果的影響,通過訓(xùn)練使模型學(xué)習(xí)到問題和答案類型之間的對應(yīng)關(guān)系。在VQA-CP v2.0數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,本文方法能夠提高模型的預(yù)測準(zhǔn)確率。同時(shí),在VQA v2.0和VQA-CP v1.0數(shù)據(jù)集上的實(shí)驗(yàn)證明了本文方法具有較好的泛化性,在VQA-CP v2.0 數(shù)據(jù)集上的消融實(shí)驗(yàn)證明了本文方法的有效性。本文方法能夠改善答非所問的現(xiàn)象,提高了模型的性能。
但是,本文方法對模型準(zhǔn)確率的提升程度有限,尤其是在VQA v2.0和VQA-CP v1.0數(shù)據(jù)集上,這說明本文方法的泛化性不夠強(qiáng),模型不能準(zhǔn)確學(xué)習(xí)到問題和答案之間更深層次的關(guān)系。究其原因,是答案聚類效果不夠好、答案類型識別模型準(zhǔn)確率不夠高所致。下一步的工作重心將放在提高聚類效果及答案類型識別模型準(zhǔn)確率上。在提高聚類效果方面,可以使用其他方法獲取答案特征。例如,采用視覺問答模型對每個(gè)候選答案的預(yù)測概率作為候選答案的特征進(jìn)行聚類。還可以借鑒Si等人(2021)提出的答案重排序方法,將視覺問答模型預(yù)測結(jié)果中概率最高的部分候選答案歸為一類,并根據(jù)問題類型對這些類別進(jìn)行合并,得到最終結(jié)果。在優(yōu)化答案類型識別模型方面,可以調(diào)整模型的網(wǎng)絡(luò)結(jié)構(gòu),提高模型的預(yù)測準(zhǔn)確率。除此之外,還可以選擇性能更好的LXMERT 等模型作為基礎(chǔ)模型與本文方法進(jìn)行融合。從理論上來說,本文方法適用于各種問答任務(wù),可以考慮將本文方法應(yīng)用于其他問答任務(wù)中。