曾 輝,胡 蓉,淦修修,彭志穎,熊李艷
(華東交通大學信息工程學院,江西 南昌330013)
在信息時代,為了便于人們獲取感興趣的視覺數(shù)據(jù),從一個大規(guī)模數(shù)據(jù)庫中快速地找到和查詢圖像內(nèi)容相關(guān)或相似的圖像,并按相關(guān)的排序返回給用戶是很常見的需求。 但是隨著多媒體數(shù)據(jù),特別是圖像視頻文字數(shù)據(jù),呈爆炸式增長,單純使用圖像來檢索圖像的單模態(tài)檢索方式已經(jīng)難以滿足當前用戶的需求[1],以互聯(lián)網(wǎng)上龐大數(shù)目的圖像視頻以及描述性文本等數(shù)據(jù)為基礎(chǔ)的多模態(tài)數(shù)據(jù)研究已經(jīng)成為當前檢索系統(tǒng)領(lǐng)域的研究熱點。
目前相關(guān)的研究大多利用數(shù)據(jù)間的共存與互補特征來分析多模態(tài)之間的語義理解與關(guān)聯(lián)性表示。 其中典型相關(guān)分析(canonical correlation analysis,CCA)[2]是跨模態(tài)檢索研究中最常用的方法,通過尋找一個線性映射向量能夠?qū)⒂成渲料嗤涌臻g后的兩類模態(tài)數(shù)據(jù)相關(guān)系數(shù)最大化來實現(xiàn)跨模態(tài)檢索。Tenenbaum J B 等[3]為跨模態(tài)識別提出雙線性因子模型(bilinear model,BLM),能夠?qū)σ蜃咏换ミM行充分表達,并基于奇異值分解算法來擬合數(shù)據(jù)。Akaho S[4]就運用了改進的非線性CCA 算法KCCA,即核典型相關(guān)分析算法,把核函數(shù)的思想引入CCA 中。 Gong Y[5]使用改進的KCCA 算法,但是增加了圖像和文本之外的第三類特征—語義關(guān)鍵詞。 語義相關(guān)匹配[6](semantic correlation matching,SCM)將文本語義抽象化并融合入典型相關(guān)分析學習過程中,提高了跨模態(tài)檢索的準確性。 Jacobs D W 等[7]提出廣義多視判別分析方法(generalized multiview analysis,GMA),將特征提取轉(zhuǎn)化為求解廣義特征值問題,解決在不同特征空間的聯(lián)合表示,獲得有效的潛在子空間表示,這是CCA 方法的有監(jiān)督擴展。Kan M[8]在研究中基于神經(jīng)網(wǎng)絡架構(gòu)而改進典型相關(guān)分析CCA 算法,通過多分支的多層神經(jīng)網(wǎng)絡對圖像和文本數(shù)據(jù)進行特征提取, 并將CCA 的優(yōu)化目標設(shè)計成為雙分支網(wǎng)絡的優(yōu)化函數(shù)。 Wang L[9]設(shè)計一個雙分支的全連接神經(jīng)網(wǎng)絡(convolutional neural network,CNN)來對圖像和文本特征信息分別進行表示學習,進而進行總體的聯(lián)合嵌入空間表示,作者新穎地使用類間距離和類內(nèi)距離作為優(yōu)化目標。 深度學習算法對這類包含位置、色彩、時序性的結(jié)構(gòu)數(shù)據(jù)擁有很好的特征學習能力,其中卷積神經(jīng)網(wǎng)絡被廣泛應用于圖像表征的學習。 Diaz-chito K[10]使用CNN 和LSTM 網(wǎng)絡對圖片和文本進行編碼,再嵌入聯(lián)合空間表示,并通過解碼網(wǎng)絡來保證各自的信息的重構(gòu)性。 Karpathy A[11]通過多目標識別算法RCNN對圖片樣本進行區(qū)域切割和文本識別,利用句法依賴樹對文本句子樣本進行詞語切割。 最后比對各片段相似度和整體相似度,通過保證類內(nèi)差異小,類間差異大來進行模型學習。 然而對于描述圖像內(nèi)容的文本數(shù)據(jù)來說,真正能夠代表圖像主要語義內(nèi)容的只有一個或幾個詞,即不同的詞在語義表達中的重要程度存在差異性。 本文參考注意力機制在機器翻譯、圖文理解任務中的廣泛應用模式,通過對句子依存樹結(jié)構(gòu)的片段化處理,添加關(guān)于依存關(guān)系元組注意力機制,使關(guān)鍵詞組片段在文本數(shù)據(jù)表示時具有更加重要的影響作用,并基于雙分支網(wǎng)絡結(jié)構(gòu)模型訓練,實現(xiàn)跨模態(tài)檢索任務。
本文所提的模型框架主要包含3 部分,雙分支網(wǎng)絡、注意力機制嵌入和聯(lián)合空間表示。 如圖1 所示,雙分支網(wǎng)絡分別由圖像特征輸入部分和文本特征表示部分組成,每個分支都存在3 個全連接隱含層,其中使用relu 函數(shù)作為全連接層之間對各層輸出作非線性映射;注意力機制嵌入部分通過學習基于句子依存關(guān)系拆分的不同詞組的權(quán)重分布,使重要的詞組在特征表示中占更多的權(quán)重;而聯(lián)合嵌入表示空間將圖像和文本在相同的維度空間內(nèi)進行表示,從而計算相似性,并通過hinge loss 目標函數(shù)來對整個模型進行訓練,使對應的圖片—句子組合具有更高的相似度。
圖1 跨模態(tài)檢索模型框架Fig.1 Cross-modal retrieval model framework
1.2.1 圖像表示
現(xiàn)實的圖像是通過無數(shù)像素點的集合來表示,而單純的像素點的灰度值無法有效表達圖像的高層語義特征,故需要進行圖像數(shù)據(jù)特征向量化。 對于圖像數(shù)據(jù),本文采用遷移學習的思想,選擇當前圖像表征效果卓越的卷積神經(jīng)網(wǎng)絡CNN 模型,使用基于CNN 網(wǎng)絡架構(gòu)的VGG 預訓練模型[12],從原始圖像I 中提取圖像特征VI,VGG 模型是由牛津大學計算機視覺組合和Google DeepMind 公司研發(fā)的一種16~19 層深度的卷積神經(jīng)網(wǎng)絡,并在2014 年的機器視覺領(lǐng)域頂級學術(shù)競賽(imagenet large scale visual recognition challenge,ILSVRC)中獲得分類項目第二名以及圖像定位比賽的第一名,目前為止被廣泛運用于深度學習中提取圖像特征。
如圖2 所示,VGG 模型能夠有效對圖像做特征表示, 而VGG 模型需要輸入圖像的維度是224×224,本文首先進行圖像增強操,用于增加數(shù)據(jù)量,將圖像先統(tǒng)一放縮成256×256 大小,然后分別裁剪左上角、左下角、右上角、右下角和中部5 個位置224×224 大小的圖像擴充數(shù)據(jù),選擇VGG 模型最后一層池化層輸出作為圖像表示特征向量, 每張圖片向量維度為4 096 維。
圖像特征提取過程用公式(1)表示,其中I表示原始圖像,VI表示提取的圖像特征
圖2 VGG 預訓練模型提取特征Fig.2 VGG pre-training model extraction feature
1.2.2 文本表示與句子依存結(jié)構(gòu)構(gòu)建
對于文本數(shù)據(jù)的表示,分為兩個方面,一方面需要對句子文本自身作句子向量表示;另一方面需要將句子進行結(jié)構(gòu)拆分,構(gòu)造出多個子結(jié)構(gòu)區(qū)域,用于注意力機制嵌入計算。 文本數(shù)據(jù)集合用UT表示。
1) 句子向量表示。 對于單個句子文本S(S∈UT),由于句中副詞等詞語出現(xiàn)的頻次較高,會影響句子的語義表達。本文首先對句子進行去停用詞處理。句子是由多個詞組成,要對句子進行表示首先需要進行詞表示,本文使用基于word2vec[13]模型改進的GLOVE 方法訓練的詞向量來對每個詞作詞向量表示,經(jīng)GLOVE訓練好的詞向量表示維度分別有50 維、100 維、200 維和300 維等,能夠根據(jù)不同的需求選擇不同的向量維度。 本文考慮模型結(jié)構(gòu)和計算的復雜性,選擇300 維的GLOVE 詞向量來表示每個詞vt,然后以整個訓練集文本為集合,計算句子中每個詞在整個訓練集中的TF-IDF 值WTF-IDFt(t∈S),并以每個詞的TF-IDF 值作為GLOVE 詞向量的權(quán)重進行加權(quán)求和,如公式(2)所示,最終得到300 維的向量即代表此句子表示向量VS。WTFt表示對應單個句子文本中的某一個詞t 在整個訓練集中的TF-IDF 值。
2) 基于依存語法拆分句子。 句子結(jié)構(gòu)拆分的目的是將句子拆分成多個元組,每個元組由多個詞組成,并且分別代表了某種詞組結(jié)構(gòu)關(guān)系,這樣就能夠?qū)⒕渥悠位R虼耸紫刃枰獙渥幼骶浞ńY(jié)構(gòu)分析,并確定句子中詞匯之間的依賴關(guān)系,本文選擇當前廣泛使用的句法解析工具斯坦福分析器(Stanford Parser)來處理英文文本,獲得有效的句子依存結(jié)構(gòu)關(guān)系。
圖3 短語結(jié)構(gòu)樹Fig.3 Phrase tree
句法結(jié)構(gòu)普遍分成兩種表現(xiàn)形式,經(jīng)過分詞和詞性分析過程后,生成如圖3 的樹結(jié)構(gòu),稱為短語句法結(jié)構(gòu)樹。 短語結(jié)構(gòu)樹能夠表達句子的句法結(jié)構(gòu),源自傳統(tǒng)的句子圖解法,把句子分割成各個組成部分,較大的組成成分能夠由較小的組成成分合并得到,由此逐級傳遞分解。 只有葉子結(jié)點代表句子中各個詞本身,而其他的中間結(jié)點是短語成分的標記,短語結(jié)構(gòu)樹能夠表示每個詞在句子中的所屬成分和位置,但是無法直接處理詞與詞之間的依賴關(guān)系。 圖4 是簡化的圖結(jié)構(gòu)。 依存關(guān)系樹用于表達句子詞與詞之間的依存關(guān)系,依存結(jié)構(gòu)中每個結(jié)點都是一個詞,通過詞之間的連接弧表示詞之間的“主謂賓”和“定狀補”語法修飾關(guān)系,同時由于總體的節(jié)點數(shù)大大減少,使結(jié)構(gòu)更加簡潔清晰。 本文通過Stanford Parser 生成句子依存關(guān)系樹,獲得如圖4 中右框中所示的依存關(guān)系元組,以TF-IDF 作為詞權(quán)重加權(quán)求和獲得句子依存關(guān)系元組表示矩陣VQ。
1.2.3 句子依存關(guān)系的注意力機制嵌入
不同的詞匯依存關(guān)系組合對于句子語義表達的重要程度是存在差異的,因此本文在模型中加入注意力機制來學習每個詞匯組合表示的權(quán)重分布[14],以此反映出句子各片段區(qū)域的偏重性,并將其加入句子表征向量中。 如公式(3)所示,首先通過一個單層神經(jīng)網(wǎng)絡對句子表示向量VS和句子依存關(guān)系元組表示矩陣VQ進行非線性變換來激活組合,然后通過公式(4)的softmax 函數(shù)獲得關(guān)于各依存關(guān)系元組的關(guān)注度概率分布。
式中:VQ∈Rd×m,d 代表每個依存關(guān)系元組向量的維度,m 是句子元組的數(shù)目,即句子經(jīng)過依存語法拆分后保留的詞語組合的個數(shù);VS∈Rd是d 維句子表示向量。 設(shè)定映射參數(shù)矩陣WQ,A,WS,A∈Rk×d以及WP∈Rl×k,通過softmax 函數(shù)計算后得到PI∈Rm的m 維向量,表示此句子每個依存關(guān)系組合片段的注意力概率值。 由于WQ,AVQ∈Rk×d是k×m 的矩陣而WS,AVS∈Rk是k 維向量,故將矩陣的每一列分別與該向量進行求和,得到hA∈Rk×m。 WQ,A,WS,A,WP,bA,bP是通過模型學習得到的參數(shù)。 PQ表示每個依存關(guān)系詞組對于句子語義內(nèi)容的重要性度量。
圖像、文本數(shù)據(jù)分別用X,Y 表示,對于給定的訓練集圖像樣本xi,設(shè)定文本樣本yi和yi-,它們分別表示與圖像xi正確匹配的文本和不正確對應的文本,E(xi),E(yi),E(yi-)分別代表各自的嵌入空間的最終輸出向量。 跨模態(tài)檢索的目標是期望E(xi)與正確文本E(yi)之間的相似度比E(xi)和E(yi-)之間的相似度更高,如公式(6)所示
其中m 是閾值參數(shù),表示兩者相似度期望的差值,設(shè)m=0.3。 Sim(·)表示兩者相似性計算函數(shù),本文采用余弦函數(shù)作為相似度計算方式,通過計算向量之間的余弦夾角體現(xiàn)相似程度。 如公式(7)所示
同樣,對于給定的文本數(shù)據(jù)yi來檢索相關(guān)圖像,如公式(8)所示
對于圖像檢索文本過程,三元組{xi,yi,yi-}損失函數(shù)L(xi,yi,yi-)定義如下
對于文本檢索圖像過程,損失函數(shù)計算方式定義
因此,使用hinge loss 函數(shù)方法定義圖像分支xi與文本分支yi聯(lián)合損失,如公式(11)所示
故定義模型的總損失LX,Y如下
其中N 是測試集樣本數(shù)。
本文選擇公共數(shù)據(jù)集Flickr8K 和Flickr30K 用來對所提算法進行實驗評估,F(xiàn)lickr8K 和Flickr30K 是圖片分享網(wǎng)站Flickr 上篩選出的專門用于圖像研究的公共數(shù)據(jù)集,分別包含8 000 和30 000 幅圖像,每幅圖像使用標5 個獨立的描述句子標注,數(shù)據(jù)集樣本的內(nèi)容如圖5 所示。
圖5 數(shù)據(jù)集表示Fig.5 Dataset representation
本文采用排序問題評價指標P@K 對算法性能進行評估,計算方式如下
P@K 用于判斷檢索排在前k 位的相關(guān)性,N 是測試集樣本數(shù), 若在檢索結(jié)果中排序前k 個中有正確對應的樣本,則δ(k)=1 表示檢索正確。
在模型訓練過程時通過交叉驗證方式選取最優(yōu)實驗參數(shù)設(shè)置,選擇隨機梯度下降方法(stochastic gradient descent,SGD)優(yōu)化目標函數(shù),學習率設(shè)置為0.01,隱含網(wǎng)絡層激活函數(shù)選擇relu 函數(shù)。 嵌入表示空間維度為300, 即將每類模態(tài)數(shù)據(jù)最終使用300 維的向量進行特征表示, 從而計算相似度。 每層隱含層之后的dropout 方法的節(jié)點丟棄率設(shè)為0.5,以分批度訓練的方式訓練樣本,每個批度數(shù)據(jù)數(shù)目設(shè)為100,每個單分支網(wǎng)絡的3 層全連接網(wǎng)絡層的神經(jīng)元節(jié)點數(shù)設(shè)置為1 000*1 000*1 000。
本文分別使用4 種算法與所提算法VSDA 進行實驗對比,其中“CCA”是典型相關(guān)分析算法,是一種經(jīng)典的無監(jiān)督關(guān)聯(lián)學習方法,通過最大化不同模態(tài)間在投影子空間的相關(guān)性實現(xiàn)匹配。 “SCM”是語義關(guān)聯(lián)匹配方法,基于CCA 方法學習子空間映射,再基于多標簽的邏輯回歸方法學習不同模態(tài)間的語義匹配。 “KCCA”是一種將核函數(shù)思想引入CCA 進行高維映射的方法。 “DCCA”是基于典型相關(guān)分析理論的深度網(wǎng)絡改進模型。 結(jié)果如表1 所示。
表1 各算法實驗結(jié)果Tab.1 Experimental results of various algorithms
表1 是各類算法在Flicker8K 和Flicker30K 數(shù)據(jù)集下的P@K 指標的實驗結(jié)果,分別對給定文本的情況下檢索與文本內(nèi)容匹配的圖像,和給定圖像的情況下查找與圖像內(nèi)容匹配的相關(guān)文本。 整體來說,本文所提的VSDA 算法相較于其他對比方法無論是P@1、P@5 還是P@10 的檢索準確率都有一定程度的提高, 尤其是相比于CCA、SCM、KCCA 算法,在P@5 和P@10 指標上效果提升顯著,可能是神經(jīng)網(wǎng)絡模型在異構(gòu)數(shù)據(jù)之間具有復雜關(guān)系情況下對比于傳統(tǒng)理論模型擁有更強大的學習能力。 其次,檢索準確率普遍非常低,但是對于檢索任務來說,其目的類似于推薦系統(tǒng)形式是為用戶提供合理的檢索結(jié)果集合,對于Top1 即正確對應的樣本一定要排序在首位的需求并不是必須, 故P@1 的結(jié)果偏低是可以接受的。 隨著數(shù)據(jù)量的增加,由Flicker8K 的8 000 張圖片到Flicker30K 的30 000 張圖片, 本文的VSDA 算法和DCCA 方法的Text 檢索Image、Image 檢索Text 的檢索準確率都有可觀的提高,然而其他方法的檢索準確率普遍都有相對應的降低,說明VSDA 算法在大數(shù)據(jù)集情形下同樣可以獲得好的性能。 對比VSDA 算法和DCCA 方法,F(xiàn)licker8K 數(shù)據(jù)集和Flicker30K 數(shù)據(jù)集的各項指標都高于DCCA 方法,而DCCA 方法同樣是使用雙分支網(wǎng)絡結(jié)構(gòu),說明本文所提的VSDA 算法針對句子依存關(guān)系注意力機制的嵌入改進是具有可行性的。
本文針對跨模態(tài)多媒體檢索領(lǐng)域中圖像與文本之間的互檢任務,考量句子文本的不同片段對于整體語義表達具有不同的偏重性,通過基于依存關(guān)系結(jié)構(gòu)的句子拆解,嵌入注意力機制從而學習各片段元組的權(quán)重分布,并設(shè)計雙分支神經(jīng)網(wǎng)絡模型實現(xiàn)跨模態(tài)檢索。 實驗結(jié)果表明該方法的檢索準確率相比于其他算法有著顯著的提高。 未來的研究工作將從以下兩個方面去考慮:①模型學習主要采用的是全連接網(wǎng)絡,可以考慮替換成其他更優(yōu)越的模型架構(gòu),可能獲得更好的效果;②可以考慮圖像和文本之間是否存在其他聯(lián)系。