肖婧文,姜士玲,溫俊芳,胡藝馨,王秋艷,宋慶增
(天津工業(yè)大學 計算機科學與技術學院,天津 300387)
目前已有很多學者提出了多種新的模型來處理視覺問答(visual question answering,VQA)任務。Hu等[1]提出了基于神經(jīng)網(wǎng)絡的端到端的視覺推理方法,可以動態(tài)地預測與問題語句描述相關的區(qū)域。Lee等[2]提出了堆疊式交叉注意力網(wǎng)絡,使用自底向上的注意力機制檢測圖片中需要關注的信息。Wenya Guo等[3]提出了一個基于再關注框架的方法,可以通過答案重建初始注意圖,從而更好地理解問題。
然而,圖片中不存在任何物體與問句直接對應的時候,會導致錯誤的匹配及回答。比如,當問題語句包含“婚禮”這類場景詞的時候,因其不是實際物體,即使圖片中存在婚禮通常包含的“神父”、“教堂”、“花”等與婚禮有關的物體,現(xiàn)有的基于物體檢測的深度學習算法也無法進行準確的匹配。
本文針對上述不足,提出了一種基于場景詞分析的視覺問答方法。本文的方法通過結合VQA語句理解、文本匹配、概率分析回答等模塊,提高了面向圖片集的視覺問答任務的回答準確率。
如圖1所示,本文提出的方法可以分成VQA語句理解模塊、文本匹配模塊、概率分析模塊。①VQA語句理解模塊主要采用基于注意力機制的one-shot深度學習模型,基于物體檢測生成第一次答案。當?shù)谝淮未鸢副挥脩糍|疑(希望得到其它答案)或者否定的時候,將啟動如下兩個模塊。②文本匹配模塊,首先檢測并提取圖片及其相關信息中所有出現(xiàn)的物體,然后將這些物體與問題語句進行語義匹配。③概率分析回答模塊通過匹配算法,首先生成候選結果集,之后對選項進行分析,最后選擇最高置信度的答案作為最終答案。
圖1 本文模型的概述
該模塊基于Liang等[4]提出的一種神經(jīng)網(wǎng)絡模型進行搭建,用于推理圖片及問題信息,最后可視化每個子模塊的結果。注意力機制動態(tài)地觀察在全局信息中應該注意哪些子模塊生成的結果?;AVQA模塊的子模塊包含模塊生成器、模塊處理器和分類器,處理視覺特征和文本特征。
1.1.1 問句-圖像模塊的生成
模塊生成器使用卷積神經(jīng)網(wǎng)絡對輸入的所有圖片進行編碼,再用循環(huán)神經(jīng)網(wǎng)絡對所有問句進行編碼。序列編碼器使用長短記憶網(wǎng)絡(long short-term memory,LSTM)對圖片序列和問句序列進行編碼,獲得這些序列之間的關聯(lián)信息。
1.1.2 注意力網(wǎng)絡模塊
如圖2所示,本文的模型使用注意力機制來捕獲圖片序列和問題序列之間的相互聯(lián)系。圖片上下文注意層旨在讓模型基于問題的各個詞語尋找關聯(lián)的圖片上下文范圍和時間步長。首先引進關于時間的關聯(lián)矩陣D∈RL*L,L是序列的最大長度,D是一個對稱矩陣Dij,代表一個問題的第i步和第j步內部的關聯(lián)性。每個上下文Dij(?i,j∈[1,L]), 然后進行如下計算
(1)
式中:wd∈R2a*1,wo∈R4a*2a屬于模型的參數(shù),S是定義的相似函數(shù),oip表示圖像(p=1)序列或文本(p=2)序列的第i個時間步長矢量表示,Q代表問題,共有M個單詞,是切片運算的符號,主要用在向量空間中獲取全部的元素。時間相關矩陣獲取了問題、圖片和文本序列的時間相關性。
(2)
(3)
(4)
(5)
(6)
圖2 本文的注意力機制和經(jīng)典VQA注意機制的比較
1.1.3 輸出模塊
文本匹配在很多自然語言處理(NLP)任務中起到重要作用,例如問題解答(QA),信息檢索(IR)[7]和許多其它任務。在QA匹配任務中,問句與答案可能是因果關系匹配,而不是簡單的語義匹配(例如同義詞[8]),這導致問句和答案之間的語義距離很大。與文本匹配不同的是,本文的任務是要找出圖片上標注的文本與問句文本在語義上是否相等。本文針對相冊里的圖片,基于其場景詞,生成多個不同含義關系的語句。每個句子有一定的意義,所有的語句都是根據(jù)圖像的內容來判斷,再與問句進行匹配,并以置信度最高的答案為最后的輸出。
本文利用對象檢測器通過注意力機制去理解場景。視覺場景不僅僅是孤立的一個個物體,物體之間的關系也組成了有關這個場景的豐富的文本信息。比如,兩張圖片中有一個喂貓的男人和站在貓旁邊的男人,即使是完美的檢測器也很難感知到喂貓的男人與站在貓旁邊的男人之間的細微差別,也會在兩個語義上不同的圖像上產生相似的輸出(貓、男人)。所以在本文中,使用基于場景圖生成[9]的模型(圖片可視化的圖形結構),該模型將圖像作為輸入,能夠提取出所有的物體并生成一個場景圖,預測圖片中所有物體還有它們之間的關系。將圖的迭代問題使用標準RNN解決,通過消息傳遞來迭代地改進其預測,使用聯(lián)合推斷模型可以利用上下文行為去更好地預測對象及其之間的關系。本文的方法將圖片解析為場景圖,然后對多個對象進行推理,解決圖像中出現(xiàn)場景詞的問題,將場景圖形映射到圖像以計算圖像和問題之間的相似性。
該模塊建立一個場景圖,將檢測出來的物體作為節(jié)點,將物體之間的成對關系作為邊,利用結構化知識進行解釋和推理[10]。由于生成出來的場景圖不能直接使用,所以需要將它們轉換為多個視覺-文本對,之后將視覺文本傳送給雙向LSTM。
接著用一個語義匹配模型來估計答案概率分布Pr(P|B,Q)。 如圖3所示,本文將相似性匹配模型應用在場景語句中,給出一對問句Q和視覺文本描述V,單詞嵌入把單詞轉變成d維向量,使用雙向LSTM讀取表示每個輸入句子的單詞向量,隨后衡量這些語義之間的相似性,輸出得分。
圖3 語句相似度匹配模型概述
(7)
下一層稱為上下文表示層,這一層將上下文信息融入到視覺文本對和問題的每個時間步的表示中,采用雙向LSTM為每個問句開始編碼。由N個單詞組成的問題首先被轉換為Glove向量序列,同時將雙向LSTM應用到視覺文本對里,由M個單詞組成的視覺文本序列同樣先被轉換為Glove向量序列。接著采用空間加權匹配如式(8)
m=fm(u1,u2;W)
(8)
u1和u2為兩個D維空間矢量,W為可學習參數(shù)。m為選擇的特征的數(shù)量,且返回值m為一個l維矢量m=[m1…m2…ml]。
然后經(jīng)過兩個加權向量之間的余弦相似性來匹配如式(9)
mk=cosine(Wk°u1,Wk°u2)
(9)
從第k層來看,每個元素mk∈m是一個匹配值,并且它是通過兩個加權矢量之間的余弦相似性來計算的。
本文設計的概率分析模塊,通過推理和分析生成多個描述,然后與問題進行匹配,匹配完后產生得分,選出每個匹配后得分最高的作為候選信息,對每個候選信息語句進行排序。之后,經(jīng)過概率分析器分析與選項中選項置信度最高的結果作為最后的答案進行輸出。
為了能夠從選項中選出最終結果,本文的方法將對這些結果正確的概率進行分析。在對問句與語句進行匹配結束后,需要對匹配結果進行排序,排序函數(shù)為Timsort算法[11],Timsort算法根據(jù)得分從高到低進行排序。算法是將歸并排序和插入排序進行融合而得到的排序算法,它的執(zhí)行效率很高。Timsort算法找到數(shù)據(jù)中已經(jīng)排好序的塊,把每一個已經(jīng)有序的分區(qū)稱為一個Block,每個Block最少要有2個元素。針對升序和降序區(qū)別出每個Block,然后按規(guī)則合并這些Block,排序方法的輸入是一個個有序排列塊,針對這些 Block 序列,每次選取一個 Block出來按規(guī)則進行合并。每次合并會將兩個Block合并成一個 Block,合并的結果保存到棧中。一直進行歸并,直到遍歷完所有的Block,這時將棧上剩余的Block合并到只剩一個Block為止。
如果經(jīng)過匹配的結果答案概率,相似度得分最大的概率作為最終的候選結果。如果不在4個選項中,把最高的概率當成最終的答案的話,可能會使模型找不到正確的答案,從而在選項中隨便選擇一個,導致回答錯誤。所以,對得分前五的數(shù)據(jù)進行處理,與選項進行結合,選出最佳答案。
排名在第一位的固然最有可能成為正確答案,但是排名靠前的如果并不是正確答案,意味著和其相似的答案正確概率也不高。例如,在圖4中答案部分,經(jīng)過前面的描述與問題相似性匹配后,樣本圖片2的桌子相似性得分最高,但是在選項中并沒有桌子這個選項,所以相似性最高的并不能作為最終選擇。其它候選答案也有可能是與選項最符合的答案,樣本圖片1板凳的相似性得分低于桌子的相似性得分,但選項中存在板凳的而沒有桌子選項,所以可以得出的答案為含有板凳的選項。由上可知,本文的模型選取相似度前五的成為候選答案,尋找和選項相似性最高作為最終輸出的答案,提供答案的多樣性。
圖4 概率分析回答模塊概述
(10)
其中,P(Q) 是從4個選項中作為候選答案。
為了驗證本文方法的推理能力,選擇MemexQA數(shù)據(jù)集和Visual7w數(shù)據(jù)集作為測試數(shù)據(jù)集。MemexQA數(shù)據(jù)集[12]由20 860個問題和大約13 591張個人照片組成。模型在14 156個隨機選擇的QA對的訓練集上訓練,并在一組3539個QA對上進行測試。MemexQA數(shù)據(jù)集提供4個答案選項,每個問題只有一個正確答案。Visual7w數(shù)據(jù)集[13]由7萬個問題組成,問題類型有“是什么”,“問地點”,“問時間”,“問是誰”,“問原因”以及“怎么了”。其中有28 020個驗證問題和42 031個測試問題,每個問題有4個答案選擇,通過正確回答問題的百分比來衡量結果。
本文使用場景圖在MemexQA數(shù)據(jù)集和Visual7w數(shù)據(jù)集進行了訓練。由于一般預測關系的方法都是單獨地推測每兩兩物體間的聯(lián)系(位置),疏忽了場景中的其它物體間的聯(lián)系,即鄰近文本的內容對推測關系的關聯(lián)能力。本文使用的模型不是孤立地推斷場景圖的每個組件,而是在場景圖的物體之間傳遞包含上下文信息的消息。本文的方法以圖片作為輸入,產生一個場景圖以及描述。該場景圖由對象類別,它們的邊界框以及對象對之間的語義關系組成。圖5顯示了圖片生成場景圖的結果,可以通過場景圖了解各物體之間的關系。將圖像和對象邊界框作為輸入,并生成對象類標簽(實線橢圓)和每對對象之間的關系謂詞(虛線橢圓)。
圖5 圖片生成場景圖的結果
實驗運用對比方法如下:LSTM、Embedding、Embedding+LSTM、Embedding+LSTM+Concat、DMN+[14]、Soft attention、MCB Pooling[15]和FVTA[4]。表1為各方法在MemexQA數(shù)據(jù)集上的精度對比。由表1可見,相比現(xiàn)有方法,本文方法達到85.4%的精度。
表1 各方法在MemexQA數(shù)據(jù)集不同分支上的結果
當?shù)谝粋€答案出錯時,本文的方法通過再次向模型輸入問題。本文選擇的所有方法都是兩次回答。在MemexQA中有3539個問題,把問題和圖片輸入網(wǎng)絡,本文的模型在第一次機會得到2366個正確答案。對于錯誤答案,將問題再次輸入并使用本文的方法作為第二次機會,對問題中含有場景詞的進行語義再分析。本文的方法在第一次回答錯誤的1173個答案中糾正了656個,而現(xiàn)有方法都無法在第二次糾正錯誤答案。結果表明,本文的方法可以在第二次機會中糾正錯誤答案,并且和現(xiàn)有模型相比獲得更好的準確度。它表明本文的方法具有更優(yōu)的結果,因為它可以解決問題中出現(xiàn)場景詞不容易用一個物體去解釋的問題。
本文模型在14 156個隨機選擇的QA對的訓練集上訓練。如表2所示,在MemexQA數(shù)據(jù)集上,利用單個GPU(NVIDIA GeForce GTX 1650),本文的模型訓練大概需要1 h,iBOWIMG基線模型訓練約40 min;VQA注意力模型BIDAF[5]訓練約1.6 h(一個epoch)。本文的模型訓練時間介于基線模型和純注意力模型之間。在測試過程中,由于本文的模型會在第一個答案出錯時,再次向模型輸入問題,糾正錯誤答案,所以測試時間會相比于所基于的基礎模型慢一倍左右,本文模型在3539個QA對上測試大概需要15 min。因此本文模型更適用于對回答速度要求相對不高,可以通過用戶的反饋,在圖片集上需要找到精確結果的場景。
表2 各模型訓練和測試的時間
MemexQA數(shù)據(jù)集還為每個問題提供了事實真相照片。通過比較注意權重最高的照片和真實照片之間的相關性,以正確回答問題。理想的VQA模型不僅應具有回答問題的高精度,而且還可以找到與真實證據(jù)高度相關的照片。表3列出了檢查模型是否將焦點放在正確的照片上的準確性。本文的方法在尋找問題的相關照片方面勝過其它模型。結果表明,所提出的方法可以捕獲用于回答問題的重要信息。
表3 各方法找到真實圖片的結果
為了進行定性比較,本文選擇一些代表性問題,并根據(jù)圖6中顯示,本文的方法與其它方法回答的答案和檢索到的圖像。如第一個示例所示,系統(tǒng)必須找到正確的照片并在視覺上識別物體以回答問題“我們上一次去婚禮是什么時候?”。本文的關注重點在于有關婚禮的正確照片上,還理解有關婚禮之間的聯(lián)系,從而正確回答了這個問題。而對于其它模型可能輸出錯誤的圖像并得到錯誤的答案。此示例顯示了本文在理解有關場景詞方面對相關性進行建模的性能,勝過現(xiàn)有的模型。對于每個問題,都會顯示答案和從相冊中找到足以證明回答的圖像。正確的圖像和答案在第一個位置,不正確的答案在后邊的位置。
圖6 不同模型在MemexQA數(shù)據(jù)集上的定性比較
Visual7w數(shù)據(jù)集是Visual Genome的子集,其中包含附加注釋。每個問題會有4個選項作為候選答案,其中只有一個是正確答案。另外,問題中提到的所有對象都是可視化的,即與它們在圖像中的描繪的邊框相關聯(lián)。為了公平地比較,僅與單個模型的性能進行比較,而沒有使用其它大型數(shù)據(jù)集(例如Visual Gnome)進行預訓練,而且也沒有額外的數(shù)據(jù),沒有額外的語言嵌入?yún)⑴c。
在此數(shù)據(jù)集上,實驗運用對比方法如下:BOW、LSTM[16]、LSTM+Att[13]、MCB Pooling[15]、MLP(A,Q,I)[17]、Ensemble-All[18]、POS+Att[19]。
首先,對比了BOW基線的兩種變體,第一個版本使用圖像、問題和答案;第二個版本不使用圖像,分別對它們進行訓練,在這兩種情況下,使用默認的Adam優(yōu)化器在50次~60次迭代訓練中即可達到收斂。接著對比了LSTM,LSTM只處理文本信息,無可視化信息,通過序列化輸出的方式得到答案。LSTM+Att模型,該模型在LSTM體系結構中添加了空間注意機制,用于與圖像信息一起對問題進行聯(lián)合編碼,以提高問題編碼的精度。最后本文探索了結合詞性(POS)標簽指導的注意力機制,對比了POS+Att模型,該模型可以捕獲語言-視覺交互并執(zhí)行聯(lián)合推理。
如表4所示,在Visual7w上,本文方法和現(xiàn)有方法的定量結果,將問題分為6種類型,分別為“是什么”,“問地點”,“問時間”,“問是誰”,“問原因”,“怎么了”。6種問題類型的模型準確性分別對應表中的2到7列,總體準確性對應表的最后一列。對于每種單獨的問題類型,本文的模型回答準確性均有所提高,整體檢測精度能達到74.4%。
表4 各方法在Visual7w數(shù)據(jù)集上不同分支上的結果
本文構建了一個模型來解決VQA中關于場景詞的潛在語義信息問題。當?shù)谝淮畏治鰣鼍霸~是錯誤的時候,還有另一次機會重新分析場景詞來得到答案。本文構建的模塊化框架用于回答視覺文本序列的問題,主要使用LSTM訓練語義結構化表示向量,使得簡易的度量可以捕捉語句相似性。本文的方法不僅可以預測正確的答案,還可以找到能幫助用戶理解驗證答案的結果,從而達到了更好的效果。在實際應用當中,給出第二個答案的能力對于人機交互也很重要,AI機器能再次確認圖片中可能出現(xiàn)的物體,通過深刻理解兩個語義之間的含義,能使AI變得更加聰明。
在未來的工作中,將計劃研究如何針對更多的含有場景詞的句式,從而進一步提高模型的實用性。同時,也需要研究如何利用場景中的物體標簽的概率分布[20],來進一步提高圖片識別精度,從而提高匹配及回答精度。