丁凱旋,陳雁翔,趙鵬鋮,朱玉鵬,盛振濤
合肥工業大學 計算機與信息學院,合肥 230601
現如今,互聯網上存在海量的諸如圖像、文本以及音頻等不同形式的多模態數據。相較于單模態數據,多模態數據之間的信息互補性使其在某些特定的任務中具有一定的優越性[1-2]。因此,多模態機器學習在近年來取得了空前的發展。特別是跨模態表示學習,其廣泛應用于跨模態檢索[3-4]、圖像字幕生成[5-7]以及視覺問答[8-9]等領域中??缒B表示學習旨在擬合不同模態數據之間的異質性差距,在特征層面建立起模態間的語義聯系并擴大模態內的類別差異(如圖1 所示)。早期的研究者主要利用CCA[10]進行跨模態表示學習,其通過最大程度地利用不同模態數據之間的相關性來學習公共子空間。此后CCA衍生出了許多變體,KCCA[11]通過核函數引入非線性映射,改善了CCA 單純的線性映射;DCCA[12]則利用深度學習的方法研究兩個數據視圖的復雜非線性變換以使不同模態樣本特征的最終表示形式高度相關聯;GMA[13]是CCA在監督任務上的拓展算法,它使用數據的類別信息來學習子空間。在目前的主流方法中,跨模態表示學習一般分為兩個步驟:第一步是獲取每種模態數據對應的特征表示,第二步是在共享子空間中建立特征間的語義關聯性以獲取良好的跨模態表示。LCFS[14]同時從兩種模態中選擇相關特征和判別特征,使學習到的子空間更加有效。ACMR[15]基于對抗學習的思想,并針對特征投影構造了三元組損失,以最小化具有相同語義標簽的不同模態特征表示間的語義鴻溝,同時最大化語義不相關的跨模態特征表示在子空間中的距離。DSCMR[16]通過在共享子空間和標簽空間中最小化區別度損失來學習跨模態特征的相關性。Peng 等人[17-18]聯合模態內和模態間的信息,通過分層學習機制來挖掘復雜的跨模態相關性,以獲得跨模態共享表示。Salvador等人[19]和Surís等人[20]借助相似度損失和正則化損失,實現了嚴格的跨模態特征對齊。Zeng等人[21]提出了基于Cluster-CCA 的深度三重態神經網絡,以此來最大化不同模態數據在共享子空間中的相關性。

圖1 跨模態表示學習的可視化Fig.1 Visualization of cross-modal representation learning
雖然跨模態表示學習領域碩果累累,但是仍然有很大的進步空間。無論樣本屬于哪種模態,本文將屬于相同類別的數據定義為正例,屬于不同類別的數據定義為負例?,F有的大多數方法在特征空間僅使用少量負例進行訓練,未能充分利用跨模態數據集提供的類別信息來辨識類內的區別性和類間的相關性。受到監督對比學習[22]的啟發,本文將多負例對比機制應用到跨模態表示學習中,即在訓練階段讓正例特征與多個負例特征之間進行對比,使模型學習到的跨模態表示具有模態一致性和語義區分性。現有的跨模態任務大多聚焦于視覺模態和文本模態,然而視覺和聽覺是人類與外界環境進行交互時更為重要的媒介,并且視聽覺之間存在著十分自然的關聯性。例如,當聽見狗叫聲時,狗的樣子可能會浮現在腦海中。因此,有必要對視聽覺之間的關聯性進行更為深入的研究。在此背景下,本文提出了SCCMRL 算法來進行跨模態表示學習,并將其應用于視聽覺跨模態檢索任務中,構建了相應的跨模態檢索系統,最后結合Sub_URMP數據集和XmediaNet數據集中的視聽覺數據實施了一系列實驗。實驗結果表明,本文提出的SCCMRL算法在跨模態表示學習過程中具有優良的性能表現。綜上所述,本文的貢獻主要如下:
(1)提出了一種新穎的跨模態表示學習算法SCCMRL,該算法在監督信息的指導下,采用端到端的學習策略,在訓練階段引入了多負例對比機制,使相同類別的數據樣本在特征空間中的語義距離盡可能靠近,而不同類別的數據樣本的語義距離盡可能遠離。與此同時,SCCMRL 利用標簽損失和中心損失進一步維護跨模態表示的模態一致性和語義區分性。
(2)將學習到的跨模態表示應用于跨模態視聽檢索任務,構建出視聽跨模態檢索系統,并且針對Sub_URMP數據集和XmediaNet數據集實施了大量的實驗,實驗結果證明了SCCMRL方法要優于現有的跨模態表示學習方法。
負例對比損失函數即利用正負例之間對比來突出類間區別性,其廣泛應用于人臉識別和視聽覺對應等領域中,其中比較有代表性的是contrastive loss[23]和triplet loss[24]。

表示學習的核心就是學習一個映射函數f,把樣本x編碼成其表示f(x)。而對比學習就是使得f滿足公式(3):

公式中的分子即錨樣本與正樣本的向量積,分母則為錨樣本與正樣本的向量積加上錨樣本與所有負樣本向量積的和。在優化該式的過程中錨樣本與正樣本的向量積逐漸增大,即距離縮?。诲^樣本與負樣本的向量積逐漸縮小,即距離增大。實際上,這種對比思想已經廣泛應用于自監督學習領域并取得了良好的效果。He 等人[25]提出負例樣本數量在對比學習中十分重要,并采用動量更新的訓練方式來解決內存庫和端到端這兩種方式在大樣本數量下的所存在的問題。Dai等人[26]使用對比學習來解決圖像字幕中標題文本可區別性的問題。Oord 等人[27]則是通過自回歸模型與InfoNCE 損失建立真實幀與預測幀之間的對比關系。
以往的檢索工作只關注單一模態[28],而跨模態檢索的目標是實現不同模態數據間的相互檢索,其首先需要解決的問題就是如何消除不同模態數據樣本之間的異質性差距,因為這種異質性差距使得多模態數據表示間的特征相似性變得難以度量[29]。通過將不同模態特征投射到子空間,進而在子空間中學習到不同模態間的共生關系。Ngiam等人[30]、Wang等人[31]利用深度卷積神經網絡提取不同模態的特征并建立其對應的跨模態語義聯系。Kumar等人[32]、Ding等人[33]以及Wang等人[34]則利用哈希變換將不同模態特征映射到一個漢明二值空間,然后在漢明空間實現快速的跨模態檢索。
跨模態檢索的方法大多應用于圖文檢索,然而視覺與聽覺是人類與外部世界進行交互的重要媒介,因此有必要研究如何實現視聽跨模態檢索?,F有的一些研究已經對視聽跨模態檢索進行相當深入的探究。Zeng等人[21]利用聚類CCA 和深度三重神經網絡學習使得視頻與語音的正負例特征之間的區別更加明顯。Surís 等人[20]則利用分類損失和相似度損失將視聽覺模態數據投射到一個共同特征空間,以此來獲取聯合的視聽覺表示。
本章將介紹提出的多負例對比機制下的跨模態表示學習方法(SCCMRL)。該部分首先對本文的研究方法進行一個簡單的表述,然后闡述SCCMRL 的整體架構和所構建的損失函數,最后介紹了網絡在訓練與優化過程中所使用的策略。
目前,多負例對比機制已經廣泛應用于自監督表示學習中。然而自監督任務沒有提供標簽,通常只能對錨樣本進行數據增強來獲取正例,而將數據集中其余的樣本都視作負例。但這樣的負例中極有可能會出現與錨樣本屬于同一類別的樣本,造成了假負例現象,從而使對比學習在拉遠正例與這種假負例特征之間距離的過程中獲得了壞的樣本表示。本文受到監督對比學習[22]的啟發,在監督信息的指導下將多負例對比機制與跨模態表示學習相結合,提出了SCCMRL 方法。該方法在標簽信息的指導下允許每個錨樣本有多個正例,消除了假負例現象,并且通過與多負例樣本特征之間的對比,使得正例之間的語義距離更近,負例之間的語義距離更遠,從而維護了跨模態表示在共享子空間中的模態一致性和語義區分性。在這項工作中,僅關注并研究了視覺模態數據(圖片)和聽覺模態數據(語音)。將第j個圖

SCCMRL 的目標是把跨模態數據投射到一個共享子空間中以獲取跨模態表示,并且該跨模態表示在共享子空間中應具有模態一致性和語義區分性。因此,基于該目標構建了SCCMRL 的總體模型架構,如圖2 所示。該模型是以端到端的方式進行訓練,其包含了視覺編碼器和音頻編碼器這兩個子網絡。視覺子網絡和音頻子網絡參考了L3-Net[35],具體參數細節如圖3 所示,其中圖(a)是視覺編碼器的參數細節,圖(b)是音頻編碼器的參數細節;每一部分中的藍色矩形塊代表卷積層,黃色矩形塊代表池化層,每個塊內第一行代表層的名稱,第二行代表層的參數:卷積層的參數分別表示卷積核的大小和通道數;池化層的參數表示步幅的大小,并且沒有填充;每個卷積層之后是批歸一化層和ReLU非線性激活函數。視覺編碼器的輸入為224×224×3的圖片,音頻編碼器的輸入為257×200×3的聲譜圖,在視覺編碼器和音頻編碼器后還分別添加了一個全連接層,最終獲得維度一致的圖片特征fI和語音特征fA,然后針對fI和fA設計監督對比損失函數,從而使正例特征與多個負例特征形成對比,讓正例特征之間的語義距離更加接近,并逐漸拉開正例特征與這些負例特征之間的語義距離。假設在共享子空間中獲取到良好的視覺表示與聽覺表示,那么這種表示對于分類任務來說也必然是理想的。因此,SCCMRL 模型在原有的視覺編碼器和音頻編碼器后連接一個共享權重的線性分類層,通過該線性分類層,圖片和語音的類別特征xI和xA也被捕捉到,利用類別特征與標簽信息分別計算中心損失與標簽損失。通過這樣的模型結構設計,跨模態特征的模態一致性和語義區分性能夠很好地被學習。SCCMRL 模型的總損失定義為標簽預測損失、中心損失、監督對比損失的加權和,各損失函數的定義詳見下文所述。

圖2 SCCMRL模型的總體結構Fig.2 Overall structure of SCCMRL model

圖3 視覺編碼器和音頻編碼器的參數細節Fig.3 Detailed parameters of visual encoder and audio encoder
2.2.1 監督對比損失(supervised contrastive loss)
監督對比損失采用多負例對比機制,能夠使得訓練集中不同類別樣本間的數據特征距離更遠,同時使得相同類別樣本間的數據特征距離更近。此外,要想實現監督對比損失,正例與負例的定義至關重要。給出一個錨樣本數據,無論它屬于哪種模態,將正例定義為與錨樣本屬于同一類別的樣本數據,負例定義為與錨樣本屬于不同類別的樣本數據。即正負例的定義只關注樣本數據是否屬于同一類別,而不關注它們是否屬于同一模態。因此,錨數據與正例構成正樣本對,錨數據與負例構成負樣本對。監督對比損失中的得分函數要求能夠對正樣本對產生高值,對負樣本對產生低值。一般地,可以選擇點積和余弦距離作為得分函數,這項工作中把得分函數定義為公共子空間中的樣本特征的點積。在監督對比編碼中,每個批次中的某個錨樣本可能會有多個樣本和它屬于同一類別,包括相同模態和不同模態。因此SCCMRL中的監督對比損失定義如下:

其中N為批次大小,yi代表批次中第i個樣本的類別標簽,yj表批次中第j個樣本的類別標簽,Nyi表示批次中類別為yi的樣本總數,g(·)的函數定義為:當下標·式為真時函數值為1,否則為0。因此,當fi代表錨樣本的特征,fj表示正例樣本的特征,fk表示批次中除fi之外所有的樣本特征,T代表溫度超參。公式(5)表示單個錨樣本fi在這個批次里所貢獻的監督對比損失,公式(6)表示輪流將批次里的數據作為錨樣本來計算總的監督對比損失。當優化整個損失函數時,錨樣本與正例之間的點積增大(即余弦距離縮小),而錨樣本與負例之間的點積減?。从嘞揖嚯x增大)。從損失函數的定義可以看出,由于提供了類別標簽,監督對比損失在每個批次里可以處理任意數量的正例樣本,并且對于每個錨樣本,監督對比損失都會將它與批次中的所有負例進行對比,以使正樣本對特征之間更加緊湊,負樣本對特征之間更加稀疏。因此,通過這種方式獲得的跨模態表示既具有模態一致性又具有語義區分性。
2.2.2 標簽損失(label loss)
在進行特征提取后,SCCMRL 模型在視覺編碼器和音頻編碼器后分別添加一個共享權重的線性分類

算法1 SCCMRL的優化步驟

SCCMRL 模型總損失被定義為標簽損失、中心損失和監督對比損失的加權之和,即:

其中α、β、γ分別為標簽損失、中心損失和監督對比損失的權重系數。在這項工作中,將α、β、γ分別設置為0.05、0.05、0.9。初始學習率設置為0.01,采用變動學習率的策略,每30 輪后學習率降為原來的1/10。使用Adam優化器對SCCMRL模型進行優化,并使用端到端的訓練策略。此外,SCCMRL 是基于Pytorch 框架進行模型的設計與搭建,并在一塊NVIDIA GTX 1080Ti GPU 進行訓練。算法1 中展示了SCCMRL 的訓練步驟與優化細節。
本文使用Sub_URMP 數據集和XmediaNet 數據集作為實驗的基準數據集。為了驗證所提出的SCCMRL模型的有效性,在這兩種不同的視聽數據集上實施了兩種任務:跨模態檢索和多模態分類??缒B檢索展示了SCCMRL 模型能夠很好地建立不同模態數據的語義相關性,多模態分類則表明SCCMRL 模型能夠捕捉各種模態內的語義區分性。
3.1.1 Sub_URMP數據集
Sub_URMP 數據集是URMP(University of Rochester Multimodal Music Performance)數據集的子集,由羅切斯特大學于2016年發布。Sub_URMP數據集中包含13 類樂器(巴松管、大提琴等)的視聽覺雙模態信息,分別是樂器演奏的音頻和對應的圖片。整個數據集是在高清視頻下裁剪得到的,在同一個樂器演奏視頻下每隔0.5 s截取音頻和圖片,人為地刪去了其中的無聲音頻和其對應的圖片,并選擇其中的部分作為訓練所用,最后得到了8 151張圖片和對應的音頻。
3.1.2 XmediaNet數據集
XmediaNet 數據集是北京大學專為跨模態檢索任務而設計的大規模多模態數據集,其包含文本、圖像、視頻、音頻以及3D 模型這5 種模態的數據,包含超過100 000個實例的樣本數據。選擇其中的圖片模態和音頻模態進行實驗。圖片和音頻都包含多個類別,例如狗叫聲、鬧鐘、鍵盤打字等。其中的一些特殊對象,例如自行車、鬧鈴、門鈴,統一用鈴聲作為對應的音頻;小船、小汽車、公共汽車統一用引擎聲作為對應的音頻。對于這樣的情況,在數據集中只保留其中一種對象。由于語音片段長度不固定,需要將其統一分割為1 s的語音長度,并通過LMS算法將語音片段生成聲譜圖,最后獲得24個類別共計2 448張圖片和2 994個聲譜圖組成的數據集。
為了驗證所提出模型的有效性,對其進行了跨模態檢索實驗,通過對比實驗和消融實驗來定量地驗證SCCMRL 模型的性能表現,并直觀地展示了跨模態檢索的結果。
3.2.1 對比實驗
將mAP(mean average precision)作為跨模態檢索性能好壞的評估標準。mAP是跨模態檢索領域一個經典的評估標準,它是對查詢樣本和所有返回的檢索樣本之間進行余弦相似度或歐式距離的計算(實驗中選擇余弦相似度),綜合考慮了檢索結果的精確度和排序信息。在具體的跨模態檢索實驗中,實施兩種不同的任務:用查詢圖片檢索語音樣本(Img2Aud)和用查詢語音檢索圖片樣本(Aud2Img),并進行了兩組對比實驗如下:
(1)與僅使用少量負例損失的模型進行比較
為了證明多負例對比機制在跨模態表示學習過程中確實優于少負例對比機制,對比了supervised contrastive loss(Sup loss)、contrastive loss(Con loss)以 及triplet loss(Tri loss)在跨模態表示學習中的表現。為了減少客觀因素對實驗結果的影響,在實驗中摒棄了center loss(Cen loss)和label loss(Lab loss),并且將權重系數均設置為1。
表1 和表2 展示了Sup loss、Con loss 和Tri loss 在跨模態檢索任務中的表現,從中可以看出Sup loss在跨模態表示學習中的表現明顯優于Con loss 和Tri loss。由此證明,相較于使用少量負例對比的損失函數,采用多負例對比機制的監督對比損失能夠更加有效的形成類間區別性,從而獲取更為優秀的跨模態表示。

表1 不同損失函數在Sub_URMP數據集上的表現(mAP)Table 1 Performance(mAP)of different loss functions on Sub_URMP dataset

表2 不同損失函數在XmediaNet數據集上的表現(mAP)Table 2 Performance(mAP)of different loss functions on XmediaNet dataset
(2)與當前常用的跨模態檢索方法進行比較
現有的大多數跨模態表示學習方法都是聚焦于圖片和文本模態之間的跨模態檢索,SCCMRL 很難直接同它們進行比較。雖然不同模態的特征提取方法不盡相同,但在特征提取后的處理方式基本相似。因此對現有的模型進行細微的修改,將文本編碼器替換為音頻編碼器,整體模型結構仍與原有方法保持一致。最后,將它們應用到Sub_URMP數據集和XmediaNet數據集上,并和所提出的模型SCCMRL進行實驗結果的對比。表3 和表4 展示了SCCMRL 模型和一些現有方法在兩種視聽數據集(Sub_URMP 和XmediaNet)上的表現。從兩張表中的數據可以看出,SCCMRL 的表現要優于目前常用的跨模態檢索模型。

表3 不同模型在Sub_URMP數據集上的表現(mAP)Table 3 Performance(mAP)of different models on Sub_URMP dataset

表4 不同模型在XmediaNet數據集上的表現(mAP)Table 4 Performance(mAP)of different models on XmediaNet dataset
3.2.2 消融實驗
為了驗證SCCMRL 模型所提出的3 種監督對比損失對模型性能的影響,在XmediaNet 數據集上進行了消融實驗。消融實驗在Sup loss、Cen loss、Lab loss 系數設置為0.9、0.05、0.05的前提下進行。
表5的實驗結果表明了Sup loss的存在是模型表現優異的主要原因,進一步說明了多負例對比機制在跨模態表示學習中的有效性。Cen loss 和Lab loss 的添加則進一步增強了不同模態表示間的模態一致性和語義區分性,對模型性能也具有一定的提升。

表5 不同損失函數在XmediaNet數據集上的表現(mAP)Table 5 Performance(mAP)of different loss functions on XmediaNet dataset
3.2.3 跨模態視聽檢索效果展示
除了上述對跨模態檢索結果的定量分析,還在圖4中直觀地展示了跨模態檢索的結果,圖(a)是查詢項(圖片或聲譜圖),圖(b)是在該查詢條件下檢索出的另一模態排名前五的結果。
圖4結果表明,無論是由圖片檢索聲譜圖或是由聲譜圖檢索圖片,SCCMRL 模型的檢索結果均對應于查詢項的標簽,直觀地表明SCCMRL 方法在跨模態檢索任務中的優越性。
為了驗證SCCMRL模型能夠捕捉各種模態內的語義類別信息,將學習到的圖片表示和語音表示應用到分類任務上,分類結果的好壞可以間接反映所學習到的跨模態特征表示的語義區分性。在目前主流的分類模型中,最經典的方法是利用交叉熵損失,將學習到的特征向量向one-hot 標簽拉近,再將其通過softmax 激活函數,從而預測類別標簽。將SCCMRL 模型同僅使用交叉熵損失的分類模型進行對比,表6分別展示了兩種方法在分類實驗上的性能表現。對于Sub_URMP 數據集中的圖片數據分類,二者均獲得了100%的準確率;而在音頻的分類上,SCCMRL 的表現要略優于傳統的交叉熵模型)。對于XmediaNet 數據集,其中的數據構成相對復雜,進而導致其對于分類實驗并不友好,例如,其中的樂器圖片是由人和樂器組成的,而不是單獨的樂器圖片,并且存在易拉罐和瓶子這種在視覺效果上差別不大的圖片類別。即便如此,SCCMRL 依然實現了88.4%的圖片分類準確率(優于交叉熵的70.8%)和82.2%的語音分類準確率(優于交叉熵的73.3%)。總體來看,SCCMRL 方法在多模態分類任務上具有一定的優越性,認為這是因為監督對比損失更自然地進行正負例樣本特征之間的對比,進而在特征空間中將同一類別的樣本表示拉近到一起,讓不同類別的樣本表示互相遠離,而不是像交叉熵那樣強迫它們被拉向特定的one-hot標簽。

表6 分類準確率的比較Table 6 Comparison of classification accuracy單位:%
為了直觀地展示跨模態表示學習效果,選取了XmediaNet數據集中10個類別的圖片和語音數據,并使用t-SNE方法將它們的特征進行了可視化。圖5和圖6分別展示了SCCMRL方法所學習到的特征表示。從圖5 和圖6 可以看出,當不同模態的高維特征進行降維之后,相同類別的特征表示依然緊湊,而不同類別的表示則相距甚遠,進一步反映了SCCMRL 所學習到跨模態表示兼具模態一致性和語義區分性。

圖5 圖片特征的t-SNE可視化Fig.5 t-SNE visualization of image features

圖6 語音特征的t-SNE可視化Fig.6 t-SNE visualization of audio features
提出了一種新的跨模態表示學習方法SCCMRL。相較于現有方法,SCCMRL在有監督學習的形式下,引入多負例對比機制。對于不同模態的特征表示,SCCMRL利用正例特征與多個負例特征之間的對比,確保了相同類別的數據樣本在特征空間中的語義距離盡可能靠近,而不同類別的數據樣本間的語義距離盡可能遠離。除此之外,SCCMRL 還在標簽空間引入了標簽損失和中心損失聯合來聯合優化視覺編碼器和音頻編碼器,保證了模型學習到的跨模態表示能夠同時滿足模態一致性和語義區分性。針對兩種不同的視聽數據集,進行了大量的對比實驗,實驗結果證明了本文提出的跨模態表示學習方法SCCMRL 要優于現有的相關模型,同時論證了多負例對比機制的引入對于模型性能的提升至關重要。