論文名稱:Dual-Path Convolutional Image-Text Embedding
論文作者:Zhedong Zheng, Liang Zheng, Michael Garrett, Yi Yang, Yi-Dong Shen
發行時間:Submitted on 15 Nov 2017, last revised 17 Jul 2018
論文地址:https://arxiv.org/abs/1711.05535
代碼開源:https://github.com/layumi/Image-Text-Embedding
一. 模型
1. 網絡結構
將每張訓練集中的1張圖片及其對應的5個caption一共6個樣本(在MSCOCO中平均每個image都有5個captions)視爲一類傳入模型中,使用兩個網絡(deep image CNN(top) 和 deep text CNN(bottom)來對image和text進行學習,如下圖,這兩種都使用ResNet-50 model的結構,但是在basic blocks上有不同的參數:
a. Deep Image CNN
將輸入的image記作, 輸入的size爲, 通過前向傳播後,可得到一個爲的feature vector(見上圖),記爲, 用表示這一前向傳播, 顯然這是一個非線性函數
b. Deep Text CNN
將輸入的語句記爲, 其size爲(n是句子的長度,d是字典的大小).
在數據集 Flickr32k 中,字典,即有20074個字。每個word在Flock32k數據集中都有一個索引,則輸入可形式化表示成:
這裏作者設置,因爲大多數語句比這個短,比這個短的則則用進行填充, 則的size爲, 爲了類似同image有長寬一樣,將其reshape到作爲輸入.
Position shift: 爲了使模型更加魯棒性,讓比32短的句子在句首和句尾隨機填充一定個數的0來使其達到長度爲32。實驗證明,這種方法表現的更加好。
對於其第一個卷積層,實驗發現使用 中的-dim 的矩陣來初始化這一層比隨機初始化的效果更好.
其他的大致類似於Word CNN,只是每個basic block的一些參數不一樣。
設得到的text vector爲, 這一前向傳播的過程記爲, 它同樣也是非線性函數。則有:
2. 目標函數
a. Ranking Loss
Ranking loss 廣泛應用於檢索問題
使用餘弦距離 來衡量兩個樣本之間的相似性,其中:
- 表示樣本的feature
- 表示的是採用L2範式進行計算
設visual輸入爲 , text輸入爲 , 給定一個二次輸入, 其中,
- 表示由正樣本得到的一個image/text組
- 表示由負樣本得到的一個image/text組
ranking loss的計算表達式:
其中, 是 margin, 本文中記爲 .
Ranking loss顯式地建立了image和text之間的聯繫
存在問題: 雖然ranking loss很好地將image和text聯合起來了,但是由於ranking loss要求的是image和text同時進行收斂,而通常這倆由於用到的參數不同,所以很難同時收斂,因此很可能只能收斂到局部最小值
b. Instance Loss
類似一個整合了的loss,將image、text和rank這三個損失通過某種方式整合後得到Instance Loss
- 對於, 正是上述由Ranking Loss得到的
- 對於, 則是由下式得到:
- 對於, 則是由下式得到:
- 其中,
- 和是由上訴得到的倆特徵,
- 則是上面網絡圖中用於全連接層上的參數
- 表示loss
- 表示所有類的概率, 而則是對於正確的類的預測的可能性
- 其中,
而Instance loss則定義爲:
對於其中的參數, 在後續的提到的兩個training stage中,第一個訓練階段不使用Ranking loss, 即(). 第二個階段則使用之.
存在問題: Instance loss不能顯示地計算模型內部的距離作爲ranking loss, 但是可以提高對於每種模式中不同的instance的判別法.
c. Two-stage Training
將訓練過程劃分成2個階段:
- Stage Ⅰ: 針對 image CNN, 固定其預訓練好的權重並結合 Text CNN由 instance loss(No ranking loss) 來對Text CNN進行優化. 之所以不同步對image CNN和text CNN一起進行優化,是因爲對於text CNN來說, 其權重幾乎都是從頭開始學習的. 一旦同步優化的話, text CNN 可能會包含掉之前預訓練的image CNN.
- stage Ⅱ: 經過 Stage Ⅰ 的處理後,在此時在通過端對端來針對整個網絡進行向好的方向的微調. 此時往 instance loss里加入ranking loss來訓練整個網絡.
實驗證明, 我們網絡經過一系列的處理,更加有競爭性了!
總結
- 提出dual path CNN(CNN+CNN)來解決傳統的image caption Model中對圖像特徵的丟失問題
- 本文的亮點在於使用了image-text進行embedding來實現image和text的匹配問題, 通過這種來更具有細粒度的方法來對文本檢索其匹配度最高的image