趙 磊,高聯麗,宋井寬
(電子科技大學計算機科學與工程學院 成都 611731)
當前,計算機視覺[1]與自然語言處理[2]相結合的跨模態任務獲得大量關注,如圖像描述生成(image captioning)[3-4]、視覺問答(visual question answering)[5-6]等。視覺對話任務是指計算機根據圖片、圖片描述以及歷史對話信息對人所提出的問題進行流暢自然地回答。視覺對話技術可以應用于大量的實際生活場景中,如協助視覺障礙患者完成對周圍環境的感知;如升級客服系統,使之智能化地對消費者所提出的問題作答;或讓機器人擁有類似于人的交流能力。
視覺對話是一項充滿挑戰性的任務。其中,視覺共指消解問題是關鍵的一個研究點,它是指如何找到問題中的代詞在圖片中的具體目標指代。在視覺對話任務中最常用的數據集VisDial 中,有近38%的問題以及19%的答案包含代詞,如‘he’‘his’‘it’‘there’‘they’‘that’‘this’等。文獻[7]通過神經模塊網絡確定問題中的代詞在歷史對話中所指代的具體實體,然后從輸入的圖片完成視覺定位。文獻[8]提出了適用于視覺對話的雙重注意力網絡,它通過多頭注意力機制學習問題與歷史對話信息之間的潛在關聯,然后利用自底向上的注意力機制完成視覺上的目標檢測。文獻[9]提出了遞歸的視覺注意力來對歷史對話進行遍歷,直至找到高置信度的視覺指代。總結先前的工作,它們都是通過文本定位和視覺定位兩個步驟來解決視覺共指消解問題。然而,每一步過程都有可能產生誤差,從而導致最終回答的問題精度不足。誤差產生的主要原因是問題中的代詞在對話歷史中所指代的目標依然難以確定。如在歷史對話中其指代的目標在比較靠前的輪次,或者存在語義相近,容易混淆的文本目標,這都容易導致文本定位的誤差。而由歷史對話中所找到的文本指代完成視覺定位同樣容易產生誤差。其原因為圖像中背景信息比較復雜,如背景中有同目標類似的物體,亦或其背景的顏色特征、紋理特征與目標相近等,容易誤檢而造成誤差。同時先前工作都忽視了在很多情況下,問題的回答不需要利用歷史對話,簡單的視覺信息可以直接完成作答。
本文將對話過程中已完成定位的視覺信息存儲在外部的記憶庫中,從而將上述的兩個步驟進行整合。在每回答一個問題時,不需要從歷史對話中尋找問題中代詞具體的指代,而是直接從視覺記憶庫中進行讀取。通過外部視覺記憶庫對文本定位和視覺定位的整合,將先前的兩步定位可能產生的誤差縮減為對單步視覺記憶讀取的誤差,理論上單步的誤差要小于兩步的誤差。為了更好地處理視覺信息可直接作答的情形,在讀取視覺記憶庫的時候,采用了自適應的方式,即動態地學習一個置信度。進一步地,引入視覺殘差連接來緩解此問題,從而更好地應對不同的情況。
(q2,a2),···,(qt?1,at?1)),以及候選答案A。視覺類數據包括圖片I,以及視覺記憶庫Mt=(m0,m1,···,mt?1)。
視覺對話任務中的輸入主要包括文本類數據和視覺類數據兩種模態數據。其中,文本類數據包括當前輪次所提出的問題qt,歷史對話Ht=(C,(q1,a1),
本文對文本類數據均利用詞嵌入方法將每一個詞映射為詞向量。隨后,映射后的當前問題qt利用自注意力機制得到帶權重的詞向量qa,用以表示在問題中重要的詞語。同時,將映射之后的歷史對話和候選答案都輸入LSTM 中,取最后一個隱藏層的狀態為其對應特征,分別為=(h0,h1,···,ht?1)和Aλ。
視覺類數據中的圖片I利用在Visual Genome上預訓練好的Faster R-CNN 提取目標級特征V=(v1,v2,···,vn)。本文將提取的目標數量固定為36 個。初始的視覺記憶庫m0是由圖片描述C對圖片I進行軟注意力計算所得。
本文所采用的網絡框架為編碼器?解碼器模式。整體框架圖如圖1 所示,其中自適應視覺記憶模塊是整個網絡的重點。它的輸入為當前問題的帶權重特征qa對圖片I的特征V進行注意力計算所得到的視覺特征Vq,具體如下:


圖1 本文所設計的自適應視覺記憶網絡AVMN 的框架圖
式中,fq和fv分別表示非線性變換函數;“ ?”表示哈達瑪積;“·”表示矩陣相乘。
之后,Vq輸入到自適應視覺記憶模塊中讀取外部的視覺記憶庫以完成初步的目標定位。其詳細流程如算法1 所示。
算法1 自適應視覺記憶模塊數據讀寫流程:


考慮到在很多情形下問題的回答不需要用到視覺相關的歷史信息,直接利用問題便可從圖片中定位到目標特征。因此,本文將Vq經過線性變換處理后得到的特征輸入到sigmoid 函數中學習一個參數λ,并用此參數得到帶有權重的外部視覺記憶信息。然后利用軟注意力機制讀取到視覺記憶,具體如下:

式中,fv_a表示非線性變換。進一步地,將視覺特征Vq與取得的視覺記憶做融合,也可以視為對視覺特征Vq做殘差連接。具體融合方式為:

式中,FC 均表示全連接線性變換;Norm 和Gate分別表示L2 正則化運算和門函數;[,]表示向量之間的級聯操作。此階段所讀取到的最終特征mt還要被更新到外部記憶庫中。
為進一步地提煉所讀取出來的視覺特征,使其更專注于所提出的問題,利用經過自注意力計算的問題qa對mt做如下計算:

式中,σ表示sigmoid 函數。同時將歷史對話作為答案生成的補充信息。同樣利用注意力機制使歷史對話中的有效信息集中到相關問題上,具體為:

最終將當前問題特征、外部記憶庫所讀出來的視覺特征及歷史對話特征進行融合,具體方式為:

式中,fq_h_v為線性變換;[,]表示級聯操作;F則是融合之后的特征,也是整個框架中編碼器的輸出。它之后被輸入到解碼器中,用以給候選的100 個答案進行排序。
本文中解碼器采用多任務學習機制,即判別式和生成式的融合。其中,判別式解碼器是通過計算每個候選答案的特征與編碼器輸出的融合特征之間的點乘相似度,用softmax 函數獲得候選答案的后驗概率。并通過對交叉熵損失函數的最小化來訓練模型。生成式編碼器是用LSTM 語言模型來直接生成答案,并通過對數似然損失函數完成訓練。本文將兩者損失函數相加,完成對最終模型的訓練。
本文所有實驗都在數據集VisDial1.0[10]上進行。該數據集采集于Amazon Mechanical Turk 數據采集平臺。其中,訓練集的圖片均來自于COCO 2014 數據集,共包含大約12.3 萬張圖片。驗證集和測試集的圖片則采集于Flickr 數據集,分別包含2000 和8000 張圖片。訓練集和驗證集中,每張圖片對應10 輪問答,測試機則僅有一輪問答。每個問題都包含有100 個候選答案。
實驗中所采用的評價指標共4 類,包括:平均排序(mean)、平均排序倒數(mean reciprocal rank,MRR)、召回率(recall@)、歸一化折現累計收益(normalized discounted cumulative gain,NDCG)。
平均排序用于表示人工標注的正確答案在所有候選答案排序中的平均排名。平均排序倒數是指將所有正確答案的排名取倒數,并做平均化處理。召回率表示在所有候選答案的排序中人工標注的正確答案位于前k所占的比例,本文將k設置為1、5 和10。歸一化折現累計收益則是考慮到候選答案中可能存在多個正確答案的情形,它旨在處罰那些正確但又排名較低的答案。
本文所設計的模型主要基于PyTorch1.0 實現。模型在數據集上共訓練15 個周期,批大小設為32,初始學習率設為0.001,經歷一個熱身周期,并在第10 個周期后降至0.0001。訓練優化器選用Adam。
為驗證本文所設計模型的有效性,將此模型和近年來效果最優的算法進行對比。對比方法包括:
1)VGNN[11]:利用圖神經網絡將視覺對話模擬為基于局部觀測節點的圖模型推導。每輪對話被視為圖節點,對應的回答表示為圖中缺失的一個值。
2)CorefNMN[7]:利用模塊神經網絡完成字詞級別的目標定位。
3)DVAN[12]:以雙重視覺注意力網絡來解決視覺對話中的跨模態語義相關性。充分地挖掘了局部視覺信息和全局視覺信息,并利用3 個階段的注意力獲取來生成最終的答案。
4)FGA[13]:針對視覺對話的因子圖注意力方法,可以有效地整合多種不同模態的數據。
5)RVA[9]:用于遍歷歷史對話信息的遞歸注意力機制。
6)DualVD[14]:自適應的雙重編碼模型。學習更豐富的、全面的視覺特征用以回答多樣的問題。
表1 為本文所提出的算法AVMN 與上述方法在VisDial1.0 測試集上的實驗結果在平均排序倒數(MRR)、召回率(recall@k)、平均排序(mean)、歸一化折現累計收益(NDCG)各項指標上的對比。其中,AVMN*表示解碼器為判別式的,AVMN 表示解碼器采用多任務學習方式,在訓練的時候加入了生成式損失函數。
從表1 可看出,本文所提出的AVMN 即使在沒有加入生成式損失函數的情況下已經在各項指標上全面超過了各對比方法。在采用多任務學習方式后,實驗結果又獲得了可觀的提升,進一步和對比方法拉開了一定差距。具體地,完整的AVMN 在平均倒數排序MRR 上的結果比所有對比方法中最優的方法DualVD 提升了0.6%,在召回率R@1 上比效果最佳的FGA 提升了0.59%,在同樣代表精確性的平均排序上取得了4.03 的結果。在保證答案的精確度的同時,它在歸一化折現累計收益NDCG 上也取得了56.92 的結果,相比相關的最優方法取得了0.7%的提升。FGA 在R@5 上的結果比AVMN 略高,但是它利用因子圖將多種類型數據進行交互,所取得的提升建立在代價較大的計算上。以上實驗結果證明了AVMN 的先進性。

表1 本文算法與其他算法的結果對比
AVMN 在VisDial1.0 上的定性實驗結果如圖2所示。其中Baseline 代表沒有加入自適應視覺記憶模塊的基準模型,GT 代表人工標注的正確答案,Predict 代表AVMN 預測的答案。從圖中前兩個示例可以看出,AVMN 所生成的答案相較基準模型更為準確,和GT 一致。同時,它也可以對不存在代詞的問題進行準確的回答,如后兩個示例所示。

圖2 本文所設計的自適應視覺記憶網絡AVMN 在VisDial1.0 數據集上的定性結果
在此實驗部分,設計針對本文所提出的算法AVMN 中主要組成部分在VISDial1.0 驗證集上的消融實驗。實驗中主要設置了兩個算法的變體:1)沒有使用記憶庫的原始模型;2)僅使用了記憶庫,但沒有采用自適應讀取的模型。表2 為消融實驗的結果展示。值得注意的是,此實驗部分中所有模型的解碼器是判別式的。

表2 針對算法主要模塊的消融實驗結果
表2 中第一行是原始模型的實驗結果。記憶代表AVMN 中使用的記憶庫。從數據可看出,原始模型相比完整模型的實驗結果表現較差。第二行為加入記憶庫后模型的實驗結果。它在平均排序倒數MRR 和歸一化折現累計收益NDCG 上提升明顯,尤其在NDCG 上,提升幅度超過1%。其原因是視覺記憶相比之前的方法縮減了定位步驟,其中間誤差減少,準確性以及相關性隨之提升。第三行是加入對記憶庫自適應讀取后完整模型的實驗結果。相較于進加入記憶庫后的模型,它主要在召回率R@5 和R@10 上取得了較大的提升。其原因是自適應讀取的加入使得本不需要歷史信息的問題得到了更精確的回答。
本文設計了一種為解決視覺對話中視覺共指消解的自適應視覺記憶網絡AVMN。先前的方法為緩解指代模糊的問題,基本都是分兩步,先從歷史對話中找到代詞的具體指代,然后再從圖片中定位到視覺目標。視覺記憶網絡直接將對話歷史中已完成定位的視覺信息存儲到外部的記憶模塊中。這種方式將兩步縮減為一步,減少在文本定位和視覺定位兩步過程中所產生的誤差。同時在面臨僅需要圖片便能回答的問題,加入了對外部視覺記憶的自適應讀取,以及初始圖片的殘差連接。在視覺對話領域最流行的數據集VisDial 上的實驗結果證明了本文所設計模型相較于其他優秀算法的先進性。消融實驗驗證了視覺記憶網絡內對最終結果的影響,更進一步地證明了它的有效性。