蘇 林, 卜 巍, 鄔向前
(1 哈爾濱工業大學 計算機科學與技術學院, 哈爾濱150001; 2 哈爾濱工業大學 媒體技術與藝術學院, 哈爾濱150001)
信息檢索一直是信息時代推動社會發展的重要引擎,信息檢索可以使人們高效地獲取需要的信息,在日常生活和生產中有著重要的價值。 隨著人工智能的崛起,跨模態圖文檢索的研究也獲得了快速發展,由于其廣闊的應用場景和巨大的社會價值,受到越來越多的重視。 以往研究跨模態圖文檢索主要是研究如何提升神經網絡的學習能力,進而提高檢索的效果。 本文不同于以往的研究思路,從檢索的整體結構入手,借鑒分治思想,將特征信息中的粗粒度信息和精微信息分開,分別獨立學習和匹配。 在一個算法框架中,實現兩個檢索模型,一個負責粗粒度信息學習和檢索匹配,即粗匹配;另一個負責精微信息學習和檢索匹配,即精微匹配。 借鑒混合推薦算法,通過取平均值來整合多個推薦模型,將兩個檢索模型(粗匹配和精微匹配)整合在一起。 粗匹配和精微匹配相結合的檢索方法,顯著提升了圖像檢索文本的效果,并且增強了算法在大規模檢索中的抗干擾性。 本文的主要貢獻總結如下:
(1)將混合推薦方法帶入檢索,提出了粗匹配和精微匹配相結合的跨模態檢索方法。
(2)提升了圖像檢索文本的效果。
(3)增強了算法在大規模檢索中的抗干擾性。
在多層神經網絡方面,David Rumelhart 等提出了BP 網絡的誤差反向后傳BP(Back propagation)學習算法;RUCK D W 等于1990 年提出了多層感知機;Hinton 等于2006 年提出了深度學習的概念。 在損失函數方面,Florian Schroff 等提出了的triple loss損失函數并應用于人臉識別;Olivier Chapelle 等提出了一種旨在直接優化一種流行測量指標的算法;Jun Xu 等提出了基于排序指標直接優化的方法;Fartash Faghri 等提出了使用最難分辨的錯誤項的triple ranking loss。 在跨模態檢索方面,Jiuxiang Gu等提出了將文本生成和圖像生成融合進特征嵌入的方法,以學習到具體接地的表示;Kunpeng Li 等提出了簡單且可解釋的推理模型,以通過區域關系推理和全局語義推理生成增強的視覺表示方法;Sijin Wang 等提出了基于scene graph 的對象匹配和關系匹配的方法。
本文提出的MVSRN 算法是在VSRN[1]的基礎上加入混合檢索,算法流程如圖1 所示。 算法是由兩個檢索匹配任務和一個圖像描述生成任務共3 個任務構成。 兩個匹配任務分別是粗粒度信息的檢索匹配即粗匹配,和精微信息的檢索匹配即精微匹配。

圖1 MVSRN 流程圖Fig. 1 The flow chart of MVSRN
首先圖像通過Faster R-CNN 得到一組在圖像中選定的區域,對于每個選定的區域i,在平均池化層之后提取特征,從而得出2048 維的fi,使用全連接將fi轉換為D 維空間中的特征向量(D 為2048)如公式(1)所示。

得到的是一組圖像特征V ={v1,…,vk},vi∈RD表示,每個特征vi編碼此圖像中的一個對象或此圖像中的一個區域。 用圖卷積對圖像特征集合V中的各個圖像特征vi進行圖卷積運算。 通過公式(2)來構建特征空間中圖像區域之間的成對親和力。

φ(vi)=Wφvi和φ(vj)=Wφvj是兩個特征向量。權重參數Wφ和Wφ可以通過反向傳播來學習。 一個全連接關系圖Gr=(V,E) ,其中V是檢測到的區域的集合,而邊緣集E由親和力矩陣R描述。R是通過使用公式(2)計算每對區域之間的親和力而獲得的。 然后,在此全連接圖上進行圖卷積(GCN),將殘余連接添加到原始GCN 上,如公式(3)所示。

其中,Wg代表尺寸為D×D 的GCN 層權重矩陣,Wr代表殘余結構的權重矩陣,R代表形狀為k×k 的親和矩陣。 對親和矩陣R 進行逐行歸一化,輸出的V?={∈RD是經過圖卷積后的各個圖像特征。∈RD逐一放入GRU中來對所有的圖像特征進行融
通過將圖像特征的序列V?={合,得到整張圖像的特征表示。 在輸入第i個圖像特征時,更新門zi,分析當前輸入區域特征v?i 和最后一步的mi-1,以決定該單元對其存儲單元進行多少更新。 更新門的計算方法如公式(4)所示。

其中,Wz代表權重參數,Uz代表權重參數,σz代表sigmoid 激活函數,bz代表偏差。 用和mi-1計算得到重置門ri,用來決定要忘記的內容。 與更新門類似地計算出ri,如公式(5)所示。

生成候存儲單元,候選存儲單元中的信息用于更新存儲單元mi-1中的信息。 候選存儲單元的計算方式如公式(6)所示。

其中σm表示tanh 激活函數,°表示逐元素乘法,ri代表重置門。 然后,用當前的對上一步的mi-1進行更新,得到當前的mi計算公式(7)所示。

其中,?是逐元素乘法。 將序列V?末尾的存儲單元mk作為整個圖像的最終表示I1,其中k是V?的長度。 這是混合檢索中第一個檢索模型(精微信息學習和精微匹配)的圖像處理過程。 第二個檢索模型(粗粒度信息學習和粗匹配)的圖像處理是在Faster-RCNN 模型輸出特征集合V ={v1,…,vk},vi=RD后,直接將其輸入到GRU 中進行圖像特征融合,得到整張圖像的特征表示I2, 這里的GRU 和前面的GRU 各自獨立。
文本處理是先將文本轉換為one-hot 編碼,再經過word-embedding 變成高維特征向量,再使用基于GRU 的文本編碼器對文本特征進行融合,得到與圖像特征表示I相同的D 維特征表示C∈RD(D 為2048),C便是最終用于匹配的文本特征表示。GRU 可以學習到句子中的語義上下文。 在文本處理部分,使用了兩個獨立的GRU,分別得到兩個文本特征表示C1和C2。 第一個檢索模型(精微信息學習和精微匹配)最終得到的文本特征表示是C1,第二個檢索模型(粗粒度信息學習和粗匹配)最終得到的文本特征表示是C2。 用I1和C1,I2和C2分別實現兩個檢索模型的匹配任務。 匹配任務采用的是基于鉸鏈的三元組排名損失,使用最有挑戰性的錯誤項來計算損失,即最接近每個查詢的錯誤項。損失定義如公式(8)所示。

其中,α用作余量參數,[x]+≡max(x,0) 。此鉸鏈損失包括兩項,一項為I,一項為C。S(·) 是聯合嵌入空間中的相似函數。 在實驗中通常使用內積作為相似函數的計算方式。arg maxj≠IS(j,C)和arg maxd≠CS(I,d) 是與(I,C) 最接近的錯誤項。 為了提高計算效率,在每個batch 中都找到和,而不是在整個訓練集中找到和。 這里的I可以是I1或I2,C可以是C1或C2。I1和C1的損失函數表示為LM1,I2和C2的損失函數表示為LM2。
對于文本生成部分,學習到的視覺表示還應該具有生成接近真實字幕句子的能力。 具體來說,使用具有注意機制的序列對模型即圖1 中的encoderdecoder 模型來實現此目的,最大化預測生成句子的對數似然性。 損失函數定義如公式(9)所示。

其中,l是輸出單詞序列的長度Y =(y1,…,yl),θ是序列到序列模型的參數。 最終損失函數定義如公式(10)所示,以實現聯合優化。

本文采用了和VSRN[1]相同的數據集和評價指標。 在Microsoft COCO 數據集[2]和Flickr30K 數據集[3]上評估本文的方法。 MS-COCO 包括123,287張圖像,每張圖像帶有5 個文本描述。 對于MSCOCO,本文采用了和VSRN 相同的劃分方法,其中包含113 287 張用于訓練的圖像,1 000 張用于驗證的圖像和5 000 張用于測試的圖像。 每個圖像帶有5 個字幕。 最終結果是通過對5 倍的1K 測試圖像的結果進行平均或在完整的5K 測試圖像上進行測試而獲得的。 Flickr30K 包含從Flickr 網站收集的31783 張圖像。 每個圖像都有5 個帶有人工注釋的文字說明。 本文使用標準的訓練,驗證和測試分割[4],分別包含28 000 張訓練圖像,1 000 張驗證圖像和1 000 張測試圖像。 對于評估,通過在K(R @K)處的召回率來衡量性能,其定義為在距查詢最近的K 點中檢索到正確項的查詢占所有查詢的比例。
將單詞嵌入大小設置為300,將聯合嵌入空間的維度設置為2048。 同樣采用與VSRN 相同的設置來設置視覺自下而上的注意模型。 基于GRU 的全局語義推理的區域順序由自下而上的注意力探測器生成的類別檢測置信度得分的降序確定。 本文使用Adam 優化器訓練了30 個epoch,開始的15 個epoch 以學習率0.000 2 進行訓練,將其余15 個epoch 的學習率降低到0.000 02。 在等式中設置邊距α為0.2,使用的最小批量為128。 對于測試集的評估,通過選擇在驗證集上表現最佳的模型來解決過度擬合問題。 根據驗證集中的召回總和選擇最佳模型。 實驗環境會對實驗結果有很大影響,尤其是python、pytorch 和其它庫的版本對實驗結果影響很大。
首先,用VSRN 作者公布的代碼,做了VSRN 的實驗。 實驗中采用了和作者一致的環境、數據集和參數配置。 實驗結果如表1 所示。 從表中可以看到本文實際做出的結果和作者論文中發布的結果整體差了3 個百分點左右,作者給出的說明是在后期繼續研究過程中對代碼做了改動,雖然算法一樣,但具體實現上有一些差異,導致了實驗結果上有些許差距。

表1 VSRN 實驗結果Tab. 1 The results of VSRN
本文的實驗代碼是在作者公布的代碼上改進的,實驗環境和參數設置等都和作者的完全一樣,只修改了算法中對應的神經網絡結構部分。 將MVSRN 的實驗結果和用作者代碼真實做出的實驗結果進行了對比分析。
首先,在Flick30k 數據集上進行了MVSRN 的實驗,實驗結果如表2 所示。 從表2 中的實驗結果可以看出,在Flick30k 數據集上,MVSRN 圖像檢索文本的效果要明顯好于VSRN(ours),R@1 提高了3 個百分點,R@5 提升了0.5 個百分點,R@10 提升了1.2 個百分點。 這說明混合檢索可以明顯提高圖像檢索文本的效果。 這可能是因為文本部分得到的兩個文本特征差異不大,因為文本部分得到兩個文本特征所使用的神經網絡結構是一樣的,都是GRU,而且GRU 的輸入是同一個word-embedding,這就使得其學到的兩個文本特征差異不會很大,所以文本特征從整體態勢來看具有一定的一致性。

表2 MVSRN 在Flick30k 上的實驗結果Tab. 2 The results of MVSRN on Flick30k
兩種態勢的疊加,由于一致性較好,因此會有態勢上的互相增強,使得取平均后得到的文本特征會更加利于檢索。 因此圖像檢索文本的效果會得到提升。 但是文本檢索圖像的效果反而有所下降,這很可能是因為Flick30k 數據集上的數據存在主題性的原因。 Flick30k 數據集中的數據來自Flicker 網站,人們在Flicker 網站上分享個人日常生活信息,人們分享的生活信息往往具有一定的主題性。 例如:飲食、衣服、以及一些活動等等,這類話題往往是人們分享最多的生活信息,也是人們談論最多、最廣泛的內容。 由于數據集中的數據具有主題性,因此數據集中會出現大量數據屬于同一個主題的現象,同一個主題的數據在內容上往往很接近。 MVSRN 的圖像特征學習部分比VSRN 多出了一個對象特征融合的分支。 在Faster-RCNN 得到圖像的對象特征后,直接用對象特征進行融合,得到整張圖片的特征表示。 這個圖像的整體特征表示是在對象特征的基礎上得到的,包含的都是圖像中的內容信息。 由于同一主題下大量數據在內容上很接近,因此這一分支得到的圖像特征表示就很相似,在特征空間上距離也很近,很難分辨。 當這個圖像特征表示整合進入最終用于檢索的圖像特征表示后,就導致了最終的圖像特征表示也比較相近,難以分辨。 因此文本檢索圖像的效果就出現了下降的現象。
之后,又在coco 數據集上進行了訓練和測試,實驗結果如表3 和表4 所示。 從表3 中的實驗結果可以看到,在coco1k(1k 是指測試集的數據量)上相比于VSRN(ours)檢索效果有了整體提升。 圖像檢索文本任務上R@1 提升了0.8 個百分點,R@5 提升了0.3 個百分點,R@10 提升了0.2 個百分點。 其中R@1 提升最多,這說明MVSRN 確實在圖像檢索文本任務上實現了效果的提升。 在coco1k 上文本檢索圖像也同樣獲得了效果的提升,R@1 提升了1.1個百分點,R@5 提升了0.5 個百分點,R@10 提升了0.4 個百分點。 這是因為coco 數據集中的數據不存在明顯的主題性,不會出現很多數據屬于同一主題非常接近的現象。 在coco5k 上,MVSRN 的實驗結果同樣整體好于VSRN(ours),這說明MVSRN混合檢索通過將兩個檢索模型整合在一起,確實可以提升檢索的效果。 從表3 和表4 可以看出,MVSRN 在coco5k 上的提升幅度要高于在coco1k 上的提升幅度。 可以看到從coco1k 到coco5k 的測試結果都有一個明顯的下降,這是因為測試集變大的原因。 當測試集的數量變大時,在檢索的時候面對的檢索對象就會變多,干擾項就會變多,因此檢索效果會出現下降的現象。 但是當用兩個特征向量取平均來進行檢索時,用于檢索的特征向量是由兩個檢索模型共同產生的,是兩個檢索模型共同在起作用,因此抗干擾能力就會更強。 當檢索的數據量增大時,對其產生的影響會更小,檢索效果下降的就會更少。 因此導致了MVSRN 在coco5k 上的提升幅度要高于在coco1k 上的提升幅度。

表3 MVSRN 在coco 上的實驗結果Tab. 3 The results of MVSRN on coco1k

表4 MVSRN 在coco 上的實驗結果Tab. 4 The results of MVSRN on coco5k
本文中從整體結構的角度來進行跨模態檢索研究,借鑒分治思想將粗粒度信息學習和精微信息學習分開獨立進行,并且各自進行檢索匹配即粗匹配和精微匹配。 將混合推薦的方法帶入到檢索中,在一個算法中同時構建了兩個檢索模型,分別負責粗粒度信息的學習和粗匹配以及精微信息的學習和精微匹配。 通過特征值取平均的方式將兩個檢索模型整合在一起,將粗匹配和精微匹配相結合。 借助兩個檢索模型的檢索能力在圖像檢索文本任務上顯著提升了檢索效果,并且增強了算法在大規模檢索中的抗干擾性。