文本圖像跨媒體檢索進展

主要介紹15篇關於文本圖像雙向檢索任務的論文。

  • 1.Corr-AE,Cross-modal Retrieval with Correspondence Autoencoder[ACM2014]。code
  • 2.DVSA,Deep Visual-Semantic Alignments for Generating Image Descriptions[CVPR2015]。code
  • 3.mCNN,Multimodal Convolutional Neural Networks for Matching Image and Sentence[ICCV2015]。homepage
  • 4.Order-embeddings,Order-embeddings of images and language[ICLR2016]。code
  • 5.DSPE,Learning Deep Structure-Preserving Image-Text Embeddings[CVPR2016]。code
  • 6.DAN,Dual Attention Networks for Multimodal Reasoning and Matching[CVPR2017]。大神實現 code
  • 7.2WayNet,Linking Image and Text with 2-Way Nets[CVPR2017]。code
  • 8.RRF,Learning a Recurrent Residual Fusion Network for Multimodal Matching[ICCV2017]。code
  • 9.VSE++ ,VSE++: Improving Visual-Semantic Embeddings with Hard Negatives[online 2017]。code
  • 10.ACMR,Adversarial Cross-Modal Retrieval[ACM2017] 。code
  • 11.Embedding Network,Learning two-branch neural networks for image-text matching tasks[TPAMI2018]。code
  • 12.DPC,Dual-Path Convolutional Image-Text Embedding[arxiv2017]。code
  • 13.SCO,Learning Semantic Concepts and Order for Image and Sentence Matching[CVPR2018]。
  • 14.GXN,Look, Imagine and Match: Improving Textual-Visual Cross-Modal Retrieval with Generative Models[CVPR2018]。code
  • 15.SCA,Stacked Cross Attention for Image-Text Matching[arxiv2018]。homepage

文章要做的事情(cross-media retrieval):
輸入:image(sentence)+dataset      輸出:sentence(image)rank list

以SCA中可視化的實驗結果爲例,文本檢索圖像和圖像檢索文本的例子如下所示,綠色爲檢索正確,紅色爲錯誤。
文本檢索圖像
example:sent2img
圖像檢索文本
example:sent2img

Corr-AE
Corr-AE的framework如下所示。
Corr-AE:framework
文章的主要思想是用autoencoder的encoder和decoder分別學習correlation和representation,主要採用了Corr-AE,Corr-Cross-AE和Corr-Full-AE三種結構,其實後面有好多文章都借鑑了這種思想,很了不起。

  • Corr-AE。文本和圖像特徵分別通過encoder映射到一共享的空間,然後用L2度量文本和圖像之間想的相似性,得到correlation loss,然後用decoder分別將共享空間中的文本和圖像映射到原空間, 與輸入的文本和圖像特徵做L2得到representation loss,最後用兩個和爲1的超參數將兩個correlation loss和representation loss相加。
  • Corr-Cross-AE。correlation loss與Corr-AE一樣,Corr-Cross-A是將共享空間的文本decoder出來的特徵與原圖像特徵做L2,而共享空間的圖像decoder出來的特徵與原文本做L2,得到representation loss,correlation loss和representation loss相加的方式與Corr-AE一樣。
  • Corr-Full-AE。correlation loss與Corr-AE一樣,Corr-Full-AE是將共享空間的文本分別decoder出原文本和圖像空間的特徵,並與原文本和圖像特徵分別做L2,共享空間的圖像也分別decoder出原文本和圖像空間的特徵,並與原文本和圖像特徵分別做L2,correlation loss和representation loss相加的方式與Corr-AE一樣。
  • Deep Architecture。爲了更好的捕獲文本和圖像之間的關聯,文章在上面三個方法的基礎上引入了兩層restricted Boltzmann machines (RBMs)。

Order-embeddings
這篇文章的主要思路是把文本當成圖像的下位關係(蘋果之於水果),文本與圖像不對等,只是描述了圖像的一部分,因此圖像和文本構成了hierarchy order的關係,圖一和圖二是文章中列舉的兩個例子,可以理解爲上位點在左下角,從特徵的角度講,圖像各維度的特徵應該小於文本的特徵,這種度量文本和圖像之間關係的方式還是首次見到,NLP出生的人做cross-media retrieval就是不一樣。
example

  • 文本特徵。先將文本word embedding到300維,然後再用GRU提取1024維特徵。
  • 圖像特徵。先將圖像resize到256x256大小,然後將圖像從上下左右中間以及水平鏡像後上下左右中間,crop 10個224x224大小的圖像塊,分別在每個圖像塊上提取VGG19 FC7層特徵,並將它們取平均。
  • 損失函數。分別將文本和圖像的特徵映射到1024維的共享子空間上,然後在採用雙向的triplet loss,在同一個minibatch中所有正樣本和負樣本都會進行度量。文章最大的特點是在計算文本和圖像之間距離的時候,不採用歐式和餘弦距離,而採用是penalty order,方法是共享子空間中圖像的特徵減去文本的特徵,然後在做relu,將relu之後的值取平方。

DSPE
這篇文章的思路其實和Order-embeddings差不多,最大亮點是引入hard triplet loss並加入了Structure-Preserving(文本之間hard triplet loss)。

  • 文本特徵。先用用Fisher vector (FV)提取18000維的Hybrid Gaussian-Laplacian mixture model (HGLMM)特徵,然後再用PCA將18000維的特徵降到6000。
  • 圖像特徵。先將圖像resize到256x256大小,然後將圖像從上下左右中間以及水平鏡像後上下左右中間,crop 10個224x224大小的圖像塊,分別在每個圖像塊上提取VGG19 FC7層特徵,並將它們取平均。
  • 損失函數。分別用[1024,256]將文本和圖像映射到256維的共享子空間中,然後在做文本與圖像,圖像與文本以及文本與文本之間的hard triplet loss,文本和圖像之間用歐式距離度量。其中文本與圖像和圖像與文本之間是在minibath中選取最hard(負例中距離最小)的負例樣本,而文本與文本也是在minibatch中選取最hard的負例樣本,對於描述同一個圖像的五個句子,相互之間都爲正例樣本。

DAN
這篇文章的主要思想是在文本和圖像兩邊都加入attention,然後在一個共享子空間中,用triplet(文章中沒有提到hard的思想,負樣本應該是在minibatch裏面隨機選的)度量文本和圖像之間的相似性,個人覺得這篇文章最大的亮點是引入雙向的attention,並triplet loss訓練成了端到端,文章的framework如下所示。
framework

  • 初始化記憶向量(memory vector)。將輸入文本做word embedding,然後再用bidirectional LSTMs來產生文本的特徵,文本的特徵爲N個512維的向量,最後將N個向量做平均得到初始化的文本特徵向量。將圖像resize成448x448大小,然後再利用152層的resnet得到res5c卷積層的feature map,在這個feature map上面做pooling得到N個(image region的個數)2048維的特徵向量,然後將N個2048維的特徵向量取平均並乘一個權重矩陣,然後再用tanh激活得到初始化的圖像特徵。最後將初始化的文本特徵向量與初始化的圖像特徵做點乘,得到初始化的記憶向量。
  • 文本attention。本質上將還是soft attention的思想,分別將初始化的文本特徵向量和文本的特徵用兩層feed-forward neural network (FNN)相連,然後再用tanh激活並做點乘,然後用softmax做歸一化得到權重向量(N維向量),利用權重向量將N個512維的向量做加權平均,得到文本sttention向量。
  • 圖像attention。任然是soft attention的思想,分別將初始化的圖像特徵向量和圖像的特徵用兩層feed-forward neural network (FNN)相連,然後再用tanh激活並做點乘,然後用softmax做歸一化得到權重向量(N維向量),利用權重向量將N個2048維的向量做加權平均,然後再乘以一個權重矩陣,最後再用tanh進行激活,得到圖像attention向量。
  • loss function。將文本和圖像attention的向量分別與初始化記憶向量相加得到新的文本特徵向量和圖像特徵向量,若以此刻的文本特徵向量和圖像特徵向量爲初始話的文本特徵向量和圖像特徵向量的話,若將這兩個特徵向量相乘就可以得到新的記憶向量,可以得到新一輪的attention,文章中總共使用了兩輪的attention(有點繞,結合文章中的公式和圖比較好理解)。文章最後的損失函數採用的是雙向triplet loss(沒有提到hard的思想),文本和圖像之間距離的度量採用的是將兩輪attention得到的文本和圖像向量做點積。

2WayNet
這篇文章可以理解爲Corr-AE文章中的Corr-Cross-AE結構的一種拓展,文章中加入了很多的技巧和約束(很多技巧和約束都有理論上的證明)。

  • 特徵。圖像,VGG 4096維特徵。文本,Fisher Vector 18000(GMM)+18000(HGLMM)=36000維特徵。
  • loss function。網絡結構,圖像 文本網絡,4096 2000 3000 2000 36000。文本 圖像網絡,36000 2000 3000 2000 4096,兩路網絡的參數去轉置並共享。文章是6個損失函數的疊加,兩端和中間層用L2(3個),中間層用decorrelation regularization(1個),全連接層中的參數做weight decay(1個),還有就是對Batch Normalization中尺度參數做regularization(1個),具體的公式可以看原文。
  • 網絡技巧。Batch Normalization,Leaky ReLU,Locally Dense Layer(將維度大的向量分成幾個維度小的向量)和Tied Dropout(乘每個元素都服從伯努利分佈的隨機矩陣,並引入尺度因子根號下0.5)。

RRF
這篇文章採用的仍然是先抽特徵,然後再通過全連接的形式映射到一個共享的子空間中,在子空間中用hard triplet loss的思想度量相似性,文章的主要貢獻是在全鏈接映射的過程中用了recurrent residual fusion (RRF) 塊,從實驗的結果來看確實提升了好幾個點。

RRF block的示意圖如下所示。
RRF block
文章中的framework如下所示。
framework

  • 特徵。圖像,用ResNet-152抽取2048維特徵。文本,用fisher vector抽取HGLMM 18000維特徵,然後再用PCA降到6000。
  • RRF塊。在殘差塊(輸入與經過FC後的輸出相加)的基礎上加入了recurrent(殘差塊的輸出重新作爲輸入)的思想,文章通過實驗發現循環3次的結果最好,然後將3次recurrent的結果與最開始的輸入concat起來,最後將concat得到的結果做融合,文章sum-pooling fusion和convolutional fusion(本質上就是乘上一個矩陣並加偏置,矩陣和偏置的參數可學習),發現convolutional fusion效果較好。
  • 網絡結構。文本網絡和圖像網絡都用了4個FC [2048,512,512,512],其中第三個FC採用了RRF。
  • loss function。文章最後除了採用模態之間三元組(bi-directional triplet loss)外,還加入了模態內部的三元組約束(希望成對的文本和圖像之間的距離小於文本與文本,或者圖像與圖像之間的距離),負樣本也採用的是top hard的方式。
  • 集成。集成的方式是將每一次recurrent 後得到的共享空間中特徵之間的距離取平均,文章發現將recurrent 4次得到結果集成集成起來效果最好,單模態不集成的話是recurrent 3次結果最好。

VSE++
感覺這篇文章應該是簡單有效類文章的典範,將triplet loss的hard用到了極致,並實現了端到端的訓練。

  • 文本網絡。現將文本特徵 word embeddings成300維的向量,然後再用GRU encoder成1024維向量。
  • 圖像網絡。用ResNet152得到2048維的向量,並用FC映射到1024。
  • loss function。文章採用的是Max of Hinges (MH) loss而不是 Sum of Hinges (SH) loss,MH選取的是所有triplet loss中的最大值,而 Sum of Hinges (SH) loss選取的所有值的和。

ACMR
這篇文章的主要貢獻是將GAN在domain adaptation中的應用借鑑到了跨媒體檢索中。
文章的framework如下所示。
framework
文章主要分爲三部分:

  • Label Prediction。在共享的空間中用 cross-entropy loss做多標籤的分類(模態內距離)。
  • Structure Preservation。文章中說是基於triplet的度量,但是文章中的度量方式表示不能理解,與正常的triplet差距太大,因此不坐詳細介紹,具體參考原文(模態間距離)。
  • Modality Classification。用GAN網絡分別對文本和圖像空間進行對抗學習,是文本和圖像在共享空間中的分佈保持一致。

Embedding Network
這篇文章是DSPE會議論文的期刊拓展版本,文章的framework如下所示。
framework
文章主要將跨媒體檢索的問題轉化爲度量相互之間的距離(Embedding Network)和文本與圖像之間匹配的概率(Similarity Network)問題。

  • Embedding Network。實際上就是DSPE方法。
  • Similarity Network。映射到共享子空間的結構與DSPE一樣,在共享子空間之後,將兩個向量做點乘,然後在通過兩個FC映射爲一個一維值,與標籤做迴歸,成對的標籤爲1,不成對(minibatch裏面隨機選)的標籤爲-1,具體的損失函數見原文的公式7。

DPC
這篇文章主要採用了CNN提取文本的特徵並利用softmax對所有的文本圖像對進行了instance-level的分類。
文章的framework如下所示。
framework

  • 文本網絡。先用字典(Flickr30K是20074)去表示每一個文本,文本的長度爲32,字典表示後長度不夠的地方補0,然後再用word2vector將文本特徵表示成32x300,最後再通過4個殘差塊提取2048維的文本特徵。
  • 圖像網絡。先將圖像resize成256x256大小,然後再隨機裁剪出224x224大小的圖片,通過5個殘差塊提取2048維的文本特徵。
  • 損失函數。在2048維空間上面做triplet loss,然後將2048維向量通過全鏈接映射成訓練數據大小的向量並作softmax,最後用3個超參數將這3個loss做加權和。
  • trick。1.share weight。2.Word2vec initialization。3.image augmentation。4.text augmentation。

SCO
SCO的framework如下所示。
framework
這篇文章的核心思想是通過圖像文本的rank loss和文本生成的loss學習得到一個比較好的圖像表示。

  • Semantic Concept Extraction。提取圖像的多個proposal,然後用multi-label CNN對每一個proposal進行分類得到多個(proposal的個數)分類的向量,然後利用element-wise max-pooling得到一個向量(scores vector)。
  • Global Context Extraction。用VGG提取圖像的全局特徵向量(global vector)。
  • Feature Confusion(gated fusion unit)。將scores vector與global vector融合得到一個融合後的向量(final vector)。
  • Loss Function。用LSTM表示文本得到文本特徵(sent vector),用final vector與sent vector做rank loss(triplet loss),用sent vector產生文本(sentence generation loss),用一個超參數乘以sentence generation loss並與triplet loss相加,得到最終的loss。

GXN
paper的framework如下所示。
framework
文章主要分爲三個部分multi-modal feature embedding (the entire upper part),image-to-text generative feature learning (the blue path) and text-to-image generative adversarial feature learning (the green path)。

multi-modal feature embedding:
image encoding: 首先將sentence用one-hot vector進行表示,然後用一個matrix對one-hot vector做word embedding,然後在用兩層雙向的GRU對word embedding進行表示。
sentence encoding: pre-trained CNN on ImageNet。(image encoding和sentence encoding分別提取high-level abstract features and detailed grounded features。)
feature embedding loss:分別對high-level abstract features and detailed grounded features做帶有order-violation penalty [ https://arxiv.org/abs/1511.06361 ] 的 two branches ranking loss。

image-to-text generative feature learning:
先利用CNN將image encode成detailed grounded features,然後利用RNN將detailed grounded features decode成sentence,然後通過loss function使得decode出來的sentence與image所對應的sentence儘可能是相似。
loss function: cross-entropy (XE) loss + reinforcement learning (RL) loss [ https://arxiv.org/abs/1612.00563 ]

  • XE: word-level cost。根據decoder來predict work,使得ground-truth work的概率儘可能大。
  • RL: sentence-level cost。將decoder出來的sentence與ground-truth sentence通過metric(BLEU or CIDEr)計算score,根據score給reward。

text-to-image generative adversarial feature learning:
先用RNN將sentence encode成detailed grounded features,然後再利用conditioning augmentation [ https://arxiv.org/abs/1612.03242 ] 方法將detailed grounded features compress到lower dimension來augment data以致enforce smoothness,然後將augmented data與noise vertor進行concatenation操作,最後利用concatenation vector通過text-to-image synthesis model [ https://arxiv.org/abs/1605.05396 ] 生成圖像,在training的過程中爲了盡一步enforce smoothness and avoid overfitting,在generator段加入Kullback-Leibler divergence (KL divergence)。

framework training:
文章的training的過程是先train image-to-text generative feature learning和text-to-image generative adversarial feature learning(先train discriminator再train generator),然後再train multi-modal feature embedding。

SCA
這篇文章的主要思路是分別在文本和圖像端利用attention的機制,學習比較好的文本和圖像表示,然後再在共享的子空間中利用hard triplet loss度量文本和圖像之間的相似性。

Image-Text Stacked Cross Attention的framework如下所示。
Image-Text SCA
Text-Image Stacked Cross Attention的framework如下所示。
Text-Image SCA

  • Image-Text Stacked Cross Attention。 採用ResNet-101的Faster R-CNN網絡對每一個圖像產生多個proposal,提取每一個proposal(proposal vector,mean-pooled convolutional feature)和文本的每一個word的特徵(word vector,bi-directional GRU),計算每一個word和proposal之間的餘弦距離,根據計算的餘弦距離,並根據餘弦距離sentence vector。
  • Text-Image Stacked Cross Attention。 採用ResNet-101的Faster R-CNN網絡對每一個圖像產生多個proposal,提取每一個proposal(proposal vector,mean-pooled convolutional feature)和文本的每一個word的特徵(bi-directional GRU),計算每一個word和proposal之間的餘弦距離,根據計算的餘弦距離,並根據權重形成image vector。
  • Loss Function。 文章中用LogSumExp pooling (LSE),average pooling (AVG)和Sum-Max(SM)等方法度量sentence vector與proposal vector和image vector與word vector的相似性,然後用hard triplet loss訓練。

在Flickr30K上面與state-of-the-art比較的實驗結果如下所示,SCA代表的現在最好的水平。
comparision with SOTA on flickr30K
在MSCOCO上面與state-of-the-art比較的實驗結果如下所示,SCA代表的現在最好的水平。
comparision with SOTA on MSCOCO

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章