【论文阅读】Adaptive Cross-Modal Prototypes for Cross-Domain Visual-Language Retrieval
文章目錄
- 閱讀目標(biāo)
- 問題回答
- 摘要
- 引入
- 方法
- 網(wǎng)絡(luò)輸入
- 視覺編碼器EvE_vEv?和文本編碼器ElE_lEl?
- 文本龍骨KlK_lKl?
- 視覺龍骨KvK_vKv?
- 源原型網(wǎng)絡(luò)PsP^sPs
- 目標(biāo)原型網(wǎng)絡(luò)PtP^tPt
- 子網(wǎng)絡(luò)及輸入輸出
- 最大化互信息
閱讀目標(biāo)
問題回答
摘要
動機(jī):在源域中有標(biāo)記數(shù)據(jù)而目標(biāo)域中沒有標(biāo)記數(shù)據(jù)的設(shè)定下的視覺-文本檢索任務(wù)(包括圖像-文本和視頻-文本任務(wù))
提出方法:通過最小化單模態(tài)和跨模態(tài)的源域和目標(biāo)域之間的分布變化,來學(xué)習(xí)跨模態(tài)視覺-文本表示
核心idea:1)學(xué)習(xí)到的跨模態(tài)表示應(yīng)該由單個模態(tài)中的概念組成,我們對這個歸納偏置(關(guān)于機(jī)器學(xué)習(xí)中的必要假設(shè),可以理解為必要的“先驗”,比如cnn中的locality invariance 和 spatial invariance,前者代表cnn中相鄰的grid有依賴而較遠(yuǎn)的沒有,后者代表空間不變性,及kernel可以在整個空間共享權(quán)重)進(jìn)行編碼,實現(xiàn)方式是,在每個域上聚合預(yù)訓(xùn)練的單模態(tài)特征,然后設(shè)計一個正則化項來保存生成的結(jié)構(gòu)(生成的結(jié)構(gòu)具體指什么?以及為什么這里可以實現(xiàn)對歸納偏置的編碼) 2)在訓(xùn)練中,通過將源域和目標(biāo)域之間的跨模態(tài)表示間的互信息最大化,提供了一種機(jī)制,在保留域之間的共性同時,忽略那些無法從另一個域推斷出的這個域的信號
注:1)本文的目標(biāo)在于域的遷移,原型學(xué)習(xí)只是達(dá)到這個目的的方式 2)需要承認(rèn),領(lǐng)域遷移仍然是跨模態(tài)檢索問題中,能證明模型泛化能力和真正的理解能力的表現(xiàn),而這種理解能力與原型學(xué)習(xí)的概念良好適應(yīng)
引入
在UDA(Unsupervised Domain Adaptation,無監(jiān)督域遷移,也就是源域有標(biāo)記的視覺數(shù)據(jù),目標(biāo)域無標(biāo)記)的設(shè)定下,視覺-文本檢索任務(wù)需要解決的三個挑戰(zhàn)(感覺分析得很透徹):1)語義合成性:模型需要合成由多個視覺實體及其關(guān)系組成的復(fù)雜語義特征 2)報告偏差:是指人們傾向于低估可用信息,這里是說視覺-文本任務(wù)中,對于數(shù)據(jù)集的利用是不全面的(不是特別理解) 3)視覺和文本的領(lǐng)域遷移:字面意思不贅述
為了解決這三個挑戰(zhàn),提出了適應(yīng)性跨模態(tài)原型框架,其核心創(chuàng)新為:1)為了解決對語義合成性的需求并獲得報告偏差的魯棒性(挑戰(zhàn)1)2)),提出學(xué)習(xí)一個精心設(shè)計的正則化的跨模態(tài)表示(也就是原型),但由于視覺-文本任務(wù)中沒有類別的概念,因此首先對目標(biāo)域中的預(yù)訓(xùn)練視覺特征和源域中的預(yù)訓(xùn)練文本特征進(jìn)行聚類,然后將原型網(wǎng)絡(luò)連接到跨模態(tài)表示,并用跨模態(tài)表示預(yù)測同一個模態(tài)下,每個樣本的單模態(tài)嵌入到其聚類中心的分配概率,這是為了確保聚類發(fā)現(xiàn)的類別不會在跨模態(tài)表示中丟失(加粗對應(yīng)兩個問題,目標(biāo)域沒有文本特征所以不聚類,但為什么源域只聚類文本特征?原型網(wǎng)絡(luò)如何用于跨模態(tài)表示的,跟原本的網(wǎng)絡(luò)有關(guān)聯(lián)嗎?) 2)為了最小化域間的視覺和文本變換的影響(挑戰(zhàn)3)),將互信息最大化,應(yīng)用于源域和目標(biāo)域之間的原型網(wǎng)絡(luò)的預(yù)測
方法
讀這一部分時感覺有些理不清。所以這里就不按照作者的敘述邏輯來敘述了:
| vvv | 視覺特征 |
| lll | 文本特征 |
| sss | 源域 |
| ttt | 目標(biāo)域 |
網(wǎng)絡(luò)輸入
vs,ls,vtv^s,l^s,v^tvs,ls,vt
代表源域的視覺和文本特征,以及目標(biāo)域的視覺特征(因為在UDA的設(shè)定下,目標(biāo)域的數(shù)據(jù)均為標(biāo)注,所以沒有文本特征)
視覺編碼器EvE_vEv?和文本編碼器ElE_lEl?
輸入:vs,lsv^s,l^svs,ls(只對源域的特征進(jìn)行處理)
處理:源域中的視覺特征放入視覺編碼器EvE_vEv?,文本特征放入文本編碼器ElE_lEl?,將他們映射到共同的跨模態(tài)嵌入空間中
目標(biāo):使語義上相近的視覺和文本輸入,在公共空間中距離相近
損失:LR=1B∑i=1,j≠iB[m+ξi,js?ξi,is]++[m+ξj,is?ξi,is]+L_R = \frac{1}{B} \sum_{i=1, j\neq i}^{B}[m+\xi_{i,j}^s-\xi_{i,i}^s]_+ +[m+\xi_{j,i}^s-\xi_{i,i}^s]_+LR?=B1?∑i=1,j?=iB?[m+ξi,js??ξi,is?]+?+[m+ξj,is??ξi,is?]+?
其中,ξi,js=cos(Ev(vis),El(ljs))\xi_{i,j}^s = cos(E_v(v_i^s), E_l(l_j^s))ξi,js?=cos(Ev?(vis?),El?(ljs?)),表示映射到同一空間后的向量的余弦相似度;[?]+=max(?,0)[·]_+ = max(·,0)[?]+?=max(?,0)
整體損失稱為雙向排序損失,表示令配對的視覺和文本正樣本的余弦相似度更大,不配對的視覺文本負(fù)樣本余弦相似度更小(同時構(gòu)造i,ji,ji,j間的相似度和j,ij,ij,i間的相似度,雙向的含義)
輸出:Ev(vs),El(ls)E_v(v^s), E_l(l^s)Ev?(vs),El?(ls)
文本龍骨KlK_lKl?
咱也不知道為什么取這個名字,其實龍骨指的是形心(聚類中心),據(jù)作者說這個名字反映了這些形心是用來穩(wěn)定適應(yīng)過程的意圖
輸入:lsl^sls(是的你沒看錯,跟文本編碼器的輸入一樣,所以這個文本龍骨和下面視覺龍骨的構(gòu)建,與文本編碼器是平行的關(guān)系)
處理:先將lsl^sls放入在大規(guī)模自由格式句子上預(yù)訓(xùn)練過的句子級別的語言模型(Sentence-Transformer模型),這一步是為了獲取結(jié)構(gòu)化的特征表示;然后使用Lloyd’s algorithm將句子表示聚類為NNN簇,得到NNN個聚類中心(稱為文本龍骨){Λn}n=1N\{\Lambda_n\}_{n=1}^N{Λn?}n=1N?(作者其實使用花體的LLL表示這個向量的,但是我不會打,所以換成Λ\LambdaΛ,這個文本龍骨就會作為之后原型學(xué)習(xí)過程的參考標(biāo)準(zhǔn);然后計算文本龍骨到每個文本樣本的概率分配,由于對每個樣本來說,所有龍骨都會對其產(chǎn)生一個分配概率,因此每個樣本的分配概率共由NNN部分組成,其中第nnn個部分的分配概率由以下公式計算得出:
Pkeel(ls)(n)=exp(cos(ls,Λn))∑n′exp(cos(ls,Λn′))P_{keel}(l^s)(n) = \frac{exp(cos(l^s,\Lambda_n))}{\sum_{n^{'}}exp(cos(l^s,\Lambda_{n^{'}}))}Pkeel?(ls)(n)=∑n′?exp(cos(ls,Λn′?))exp(cos(ls,Λn?))?
每個樣本的分配概率將參與后面原型學(xué)習(xí)損失的計算;而每個樣本的整體分類概率為:ys=Pkeel(ls)∈RNy^s = P_{keel}(l^s) \in R^Nys=Pkeel?(ls)∈RN
目標(biāo):這一部分并沒有設(shè)計損失函數(shù),因為嚴(yán)格來說這部分其實不屬于網(wǎng)絡(luò)的一部分,而是用來給源域原型網(wǎng)絡(luò)PsP^sPs生成龍骨(原型學(xué)習(xí)的標(biāo)準(zhǔn))以及對應(yīng)的每個樣本的ground truth的,也就是分配概率(但是后面就會發(fā)現(xiàn),這個ground truth其實是不同模態(tài)的,也就是損失中的prediction其實是跨模態(tài)的表示,而這個ground truth其實是單模態(tài)的表示)
輸出:ysy^sys
視覺龍骨KvK_vKv?
輸入:vtv^tvt目標(biāo)域中的視覺表示
處理:同樣也需要先利用vtv^tvt生成結(jié)構(gòu)化的表示,由于視覺信息本身不像句子有一樣有結(jié)構(gòu),所以作者選擇的方法是,分別放入三種預(yù)訓(xùn)練的網(wǎng)絡(luò):目標(biāo)分類(a ResNext-101 pretrained on ImageNet)、動作識別(僅當(dāng)視覺信息是視頻時存在,an R(2+1)D model [64] trained on IG-65m)和場景識別((a Dense Net-161 pretrained on Places365),他們分別提取了視覺信息中的[what, how, where]三個維度,最后將三個維度的表示整合在一起(貌似是concat),就獲得了結(jié)構(gòu)化的表示;之后就跟文本一樣,提取視覺龍骨{Vk}k=1K\{V_k\}_{k=1}^K{Vk?}k=1K?,然后計算他們對每個樣本的分配概率,最后得到avt=Pkeel(vt)∈RKa_v^t = P_{keel}(v^t) \in R^Kavt?=Pkeel?(vt)∈RK
目標(biāo):給目標(biāo)原型網(wǎng)絡(luò)PtP^tPt生成原型學(xué)習(xí)的標(biāo)準(zhǔn)和參與損失計算的ground truth
輸出:avta_v^tavt?
源原型網(wǎng)絡(luò)PsP^sPs
組成:一個單線性映射層,權(quán)重矩陣是K∈RN?MK \in R^{N*M}K∈RN?M,矩陣的第nnn行表示第nnn個源原型(NNN對應(yīng)聚類個數(shù))
輸入:Ev(vs),El(ls)E_v(v^s), E_l(l^s)Ev?(vs),El?(ls)經(jīng)過視覺編碼器和文本編碼器處理的視覺和文本特征
處理:通過PsP^sPs網(wǎng)絡(luò)對每個樣本的視覺和文本特征計算NNN維的分配概率,表示的是第nnn個原型對樣本的概率,公式為:
Pproto(vs)(n)=exp(cos(Ev(vs),Kn))∑n′=1Nexp(cos(Ev(vs),Kn′))P_{proto}(v^s)(n) = \frac{exp(cos(E_v(v^s), K_n))}{\sum_{n_{'}=1}^Nexp(cos(E_v(v^s), K_{n_{'}}))}Pproto?(vs)(n)=∑n′?=1N?exp(cos(Ev?(vs),Kn′??))exp(cos(Ev?(vs),Kn?))?
Pproto(ls)(n)=exp(cos(El(ls),Kn))∑n′=1Nexp(cos(El(ls),Kn′))P_{proto}(l^s)(n) = \frac{exp(cos(E_l(l^s), K_n))}{\sum_{n_{'}=1}^Nexp(cos(E_l(l^s), K_{n_{'}}))}Pproto?(ls)(n)=∑n′?=1N?exp(cos(El?(ls),Kn′??))exp(cos(El?(ls),Kn?))?
(所以說PsP^sPs中的線性映射,其實指的是這個余弦相似度+取指數(shù)+歸一化?有點迷)在對nnn個分配概率組合,得到yvs^=Pproto(vs)\hat{y_v^s} = P_{proto}(v^s)yvs?^?=Pproto?(vs)和yls^=Pproto(ls)\hat{y_l^s} = P_{proto}(l^s)yls?^?=Pproto?(ls)
目標(biāo):令原型去逼近聚類得到的龍骨(聚類中心),落實到樣本上,就令每個樣本的原型概率分配去逼近龍骨概率分配:
Ls=KL(yls,yls^)+KL(yls,yvs^)L_s = KL(y_l^s, \hat{y_l^s})+KL(y_l^s, \hat{y_v^s})Ls?=KL(yls?,yls?^?)+KL(yls?,yvs?^?)
(因為只構(gòu)建了源域的文本龍骨,所以yvs^\hat{y_v^s}yvs?^?的逼近也是ylsy_l^syls?
輸出:yvs^,yls^\hat{y_v^s}, \hat{y_l^s}yvs?^?,yls?^?
目標(biāo)原型網(wǎng)絡(luò)PtP^tPt
組成:線性映射,參數(shù)為W∈RK?MW \in R^{K*M}W∈RK?M
輸入:Ev(vt)E_v(v^t)Ev?(vt)
處理:也是計算原型網(wǎng)絡(luò)對樣本的分配概率:
Pproto(vt)(k)=exp(cos(Ev(vt),Wk))∑k′=1Kexp(cos(Ev(vs),Wk′))P_{proto}(v^t)(k) = \frac{exp(cos(E_v(v^t), W_k))}{\sum_{k_{'}=1}^Kexp(cos(E_v(v^s), W_{k_{'}}))}Pproto?(vt)(k)=∑k′?=1K?exp(cos(Ev?(vs),Wk′??))exp(cos(Ev?(vt),Wk?))?
繼而得到每個樣本的總分配概率:avt^\hat{a_v^t}avt?^?
目標(biāo):是的目標(biāo)域中的樣本分配概率分布去逼近視覺龍骨對樣本的分配概率:
Lt=KL(Pkeel(vt)∣∣Pproto(vt))=KL(avt,avt^)L_t = KL(P_{keel}(v^t)||P_{proto}(v^t)) = KL(a_v^t, \hat{a_v^t})Lt?=KL(Pkeel?(vt)∣∣Pproto?(vt))=KL(avt?,avt?^?)
輸出:avt^\hat{a_v^t}avt?^?
子網(wǎng)絡(luò)及輸入輸出
這里用表格總結(jié)一下每個子網(wǎng)絡(luò)的輸入輸出,否則一會互信息部分完全看不懂
| vsv^svs | EvE_vEv? | Ev(vs)E_v(v^s)Ev?(vs) |
| lsl^sls | ElE_lEl? | El(ls)E_l(l^s)El?(ls) |
| lsl^sls | KlK_lKl? | ysy^sys |
| vtv^tvt | KvK_vKv? | avta_v^tavt? |
| Ev(vs),El(ls)E_v(v^s), E_l(l^s)Ev?(vs),El?(ls) | PsP^sPs | yvs^,yls^\hat{y_v^s}, \hat{y_l^s}yvs?^?,yls?^? |
| Ev(vt)E_v(v^t)Ev?(vt) | PtP^tPt | avt^\hat{a_v^t}avt?^? |
最大化互信息
不了解互信息的可以看我之前的博客:【知識建設(shè)】信息熵、條件熵、互信息、交叉熵及相對熵(KL散度),很系統(tǒng)的介紹
我的理解下,這一部分的目標(biāo)是令源域的跨模態(tài)表示yvs^\hat{y_v^s}yvs?^?和目標(biāo)域的跨模態(tài)表示avt^\hat{a_v^t}avt?^?之間建立聯(lián)系,而這種跨模態(tài)表示是通過原型網(wǎng)絡(luò)對每個樣本的概率分配來表示的,至于為何此處不適用KL散度,而是使用互信息,是因為源域和目標(biāo)域的原型,很可能表示的類別和語義含義不同,因此不能被看作是相同的隨機(jī)變量,所以使用互信息;
然而在這部分的敘述中,竟然出現(xiàn)了四個變量:yvs^,yvt^,avs^,avt^\hat{y_v^s},\hat{y_v^t},\hat{a_v^s},\hat{a_v^t}yvs?^?,yvt?^?,avs?^?,avt?^?,這里至今不理解,今后再議
總結(jié)
以上是生活随笔為你收集整理的【论文阅读】Adaptive Cross-Modal Prototypes for Cross-Domain Visual-Language Retrieval的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【论文阅读-句向量】Whitening
- 下一篇: 《introduction to inf