【Hierarchical Attention Network for Image Captioning】--- 論文筆記

論文名稱:Hierarchical Attention Network for Image Captioning
論文作者:Weixuan Wang, Zhihong Chen, Haifeng Hu
發行時間:Submitted on 17 Jol 2019
論文地址:https://aaai.org/ojs/index.php/AAAI/article/view/4924
代碼開源:無



一. 概論

近年在Image caption領域中注意力機制被廣泛使用, 但是存在高層次語義信息和低層次空間信息之間的矛盾. 故本文提出一種用於特徵金字塔型的注意力同步計算機制, 即 Hierarchical Attention Network (HAN).

本文將特徵劃分成3種: text feature, object feature, patch feature. 在預測不同詞時會選取不同種類的feature. 另一方面我們採用 多元殘差模塊(MRM) 對這些特徵進行 joint representation 的學習, 即提取不同特徵之間的相關性. 採用MRM是爲了在保證每種模式下的有效信息的同時, 能提取出跟具有鑑別性的多種類的特徵. 由於這三種特徵種類不同, 我們引入一個 context gate 來平衡不同特徵的貢獻.

特徵特點:

  • text feature:
    • 關注所有的對象, 不care顯著對象
  • text and patch feature:
    • 偏向關注顯著對象, 但不能確定具體的對象數量
  • text and patch and object feature:
    • 能夠較準確得到對象的數量

如下圖所示:

二. 模型

2.1. 基本流程

如圖所示, 我們首先使用三個不同種類的Detector對輸入的圖像和文字進行特徵提取. 然後間這三種組成類似金字塔形狀的 層級特徵! 然後在解碼階段, 我們使用LSTM作爲decoder, 我們使用串聯結構, 即將visual LSTM 和 language LSTM 連接起來, 前者用於感知圖像的全局信息並引導不同的注意力機制區生成不用的attention features, 後者用於引導 caption 的生成.

首先定義參數及其含義:

  • II : input image
  • w={w1,w2,...,wT},    wtDw=\left \{ w_1, w_2,...,w_T \right \},~~~~w_t\in D : 生成的caption,
    • 其中DD是詞典, TT是caption長度
  • VgV_g: global feature
  • VpV_p: patch feature
  • VoV_o: object feature
  • VtV_t: text feature
  • ApA_p: patch attention features
  • AoA_o: object attention features
  • AtA_t: text attention features

則圖中的過程可用如下公式進行描述:
Vg,Vp,Vo,Vt=Detectors(I)htV=LSTMMV([ht1L,Vg,E(wt)])Ap,Ao,At=Attentions(ht1L,Vp,Vo,Vt)M=pMRM(M)wtSpftmax(htL) V_g,V_p,V_o,V_t={\rm Detectors}(I) \\h_t^V={\rm LSTM}M_V([h_{t-1}^L,V_g,E(w_t)]) \\A_p,A_o,A_t={\rm Attentions}(h_{t-1}^L,V_p,V_o,V_t) \\M={\rm pMRM}(M) \\w_t \sim {\rm Spftmax}(h_t^L)
其中, Detectors()\rm Detectors()表示特徵提取器, E()E() 表示embedding函數用於將獨特編碼映射到編碼空間, LSTMMV{\rm LSTM}M_V 表示visual LSTM, LSTMML{\rm LSTM}M_L 表示language LSTM, Attentions()\rm Attentions(\cdot)表示Attention模塊.

對於給定的IIw={w1,w2,...wT}w=\left \{ w_1,w_2,...w_T \right \}, 此模型的優化思路如下:
θ=argmax(I,y)logp(yI;θ)\theta^*={\rm argmax} \sum_{(I,y)}\log p(y|I;\theta)
其中, θ\theta 是此模型的參數, yy是正確的翻譯. 應用鏈式法則後, 即引入w={w1,w2,...wT}w=\left \{ w_1,w_2,...w_T \right \}, 則用交叉熵損失函數(XE)來最小化負對數似然:
L=t=1Tlogp(wtw1,...,wt1,I)L=-\sum_{t=1}^T\log p(w_t|w_1,...,w_{t-1}, I)

2.2. Hierarchy feature pyramid

爲了利用不同特徵同步的生成單詞, 我們提出一種層次金字塔結構, 其包含了 Bottom, middle, top層, 分別表示text feature, object feature, patch feature.

2.2.1. Patch features

Patch features 是圖片中每個patch的一種抽象表達的方法.
即用在ImageNet上預訓練的ResNet101的最後一層卷積層的特徵作爲 patch feature VpRr×r×dV_p \in R^{r\times r\times d}.
其中, Vp=[Vp(1),Vp(2),...,Vp(r×r)],  Vp(i)RdV_p = [V_{p(1)},V_{p(2)},...,V_{p(r\times r)}], ~~ V_{p(i)} \in R^d 是一個dd維的patch feature, 且提取的 patch feature 數爲 Np=r×r=196N_p=r \times r=196.

2.2.2. Object features

Object feature 指顯著性對象的特徵.
我們使用 Faster R-CNN來提取NoN_o個object feature. 本文取 No=15N_o=15. 其中提取的對象特徵 Vo=[Vo(1),Vo(2),...,Vo(No)],  Vo(i)RdV_o = [V_{o(1)},V_{o(2)},...,V_{o(N_o)}], ~~ V_{o(i)} \in R^d 是一個dd維的object feature.

15個對象指置信度得分最靠前的15個, 即顯著對象15個!

2.2.3. Text features

Text features 指與圖片相關的語義概念, 包含形容詞, 動詞和名詞.
我們將數據集中K=2000K=2000個使用最頻繁的詞組成一個文本預測分類器. 並從中提取處Nt=10N_t=10個得分最高的文本概念T=[T1,T2,...,TNt]T=[T_1,T_2,...,T_{N_t}]. 在之後的特徵構造階段, Embedding函數會將該文本概念TT將轉換爲文本特徵VtRNt×dV_t \in R^{N_t \times d}, 其中Vt(i)RdV_{t(i)} \in R^d是一個dd維度的text feature.

對於文本預測分類器, 以ResNet101作爲backbone, 並引入3個新全連接層, 如下圖所示.

在訓練階段, 固定ResNet的權重, 只優化全連接層來對與圖像相關的文本進行預測. 我們的目標函數如下:
L=1Ni=1N[pilog(pi)+(1pi)log(1pi)]L=-\frac{1}{N}\sum^N_{i=1}[p_i^*\log(p_i) + (1-p_i^*)\log(1-p_i)]
其中, NN是文本的字數, 若在GT中存在對應的單詞, 則pip_i^*爲1.

2.3. Attention module

我們分別在3個層次構造3個獨立的 attention 網絡來對特徵進行refine.

給定某層上特徵 VV, visual LSTM 的輸出 htVh_t^V, 由nn對注意力權重進行標準化:
z(t)=WαTtanh(WVV+WhhtVα(t)=softmax(z(t)))z(t)=W_{\alpha}^T\tanh(W_VV+W_hh_t^V \\ \alpha(t)={\rm softmax}(z(t)))
其中, WV,WhRd×dW_V,W_h \in R^{d\times d}WαRd×1W_{\alpha} \in R^{d\times 1}是可訓練的矩陣, 而 α(t)RN\alpha(t) \in R^N是attention權重, attention feature A(t)A(t) 的計算方式如下:
A(t)=i=1NαiViA(t)=\sum^N_{i=1}\alpha_iV_i

而對於一些不能可視化匹配的單詞則與object feature 和 text feature無關, 此時需要在Language LSTM的最後一個time step裏將具有全局特徵的對象特徵和帶有語義特徵的文本特徵連接起來以便給attend提供額外的全局信息.

2.4. Multivariate Residual Module

我們提出MRM多元殘差模塊來整合不同模式的信息. 其中MRM由兩部分組成:

  • 投影部分, projection part
  • 關聯部分, relation part

2.4.1. Projection

Projection是爲了對輸入數據和非線性殘差函數之間的關係進行學習, 而不是學習之間的映射.

如上圖所示便是我們的Projection network, 我們使用兩個獨立的殘差網絡將實現Projection, 即將patch attention feature和text attention feature映射到object空間:
Hp=Ap+RELU(WmpAp)Ht=At+RELU(WmtAt)H_p=A_p+{\rm RELU}(W_{mp}A_p) \\ H_t=A_t+{\rm RELU}(W_{mt}A_t)
其中ApA_pAtA_t分別是Patch和text attention feature, RELU\rm RELU是非線性激活函數.

總體投影特徵HH是:
H=Ao+Hp+HtH = A_o+H_p+H_t
其中AoA_o表示object attention feature.

2.4.2. Relation

Relation是爲了通過多模態雙線性策略來探索不同空間之間的內在關聯.

如上圖便是我們的Relation network. 給定patch attention featureApRmA_p \in R^m, object attention featureAoRnA_o \in R^n, multimodal bilinear strategy(多模態雙線性策略)定義如下:
Zi=ApTWiAoZ_i=A^T_pW_iA_o
其中WiRm×nW_i\in R^{m \times n}是權值矩陣, 爲了獲取輸出ZRoZ \in R^o, 需要對oo矩陣W=[W1,...,Wo]Rm×n×oW=[W_1,...,W_o]\in R^{m \times n \times o}

根據Kim et al. 2017我們對上述公式進行重寫來減少參數矩陣的維度來優化計算:
Zi=ApTWiAo=ApTUiViTAo=UiTApViTAoZ=UTApVTAoZ_i=A^T_pW_iA_o=A_p^TU_iV_i^TA_o=U^T_iA_p \circ V_i^TA_o \\ Z=U^TA_p \circ V^TA_o
其中, U=[U1,...,Uo]Rm×o,  V=[V1,...,Vo]Rn×oU=[U_1,...,U_o] \in R^{m \times o},~~V=[V_1,...,V_o] \in R^{n \times o}, 而 \circ 表示 Hadamard product(哈達瑪積) . 我們通過對此策略進行擴展, 將上述三種模式進行合併, 重寫結果如下:
Z=UTApVTApWTAoZ=U^TA_p \circ V^TA_p \circ W^TA_o
其中, AtA_t 表示 text attention feature, U,V,WU,V,W表示對應的權值矩陣.

最後, 我們通過一個均值池化層來來對relation feature進行壓縮:
R=AvgPool(Z)R={\rm AvgPool}(Z)

2.4.3. MRM

MRM正是由上述提到的ProjectionRelation組合而得到的. 如上圖所示.
M=H+RM=H+R

2.4.4. pMRM

pMRM, parallel MRM, 並行MRM模塊, 用來對不同層次的特徵進行集成. 即pMRM首先將object info分別提供給 text features 和 patch features.
然後, 我們引入 context gate, 來有選擇性的對高層 context feature 和 低層 position features 進行關注.

2.4.5. Context Gating

我們提出 Context Gating 來平衡底層context和高層context的貢獻, 對於底層attend feature MLM_L 和高層attend feature MHM_H, 將這倆不同特徵映射到同一個空間中:
ML~=tanh(WLML)MH~=tanh(WHMH)\tilde{M_L} = \tanh(W_LM_L) \\ \tilde{M_H} = \tanh (W_HM_H)
其中, WL,WHW_L,W_H是 projection矩陣.

對於 context gate 然後經過一個非線性 sigmoid 激活函數:
gctx=σ(Wg[ML~,MH~,htV])g_{ctx}=\sigma(W_g[\tilde{M_L},\tilde{M_H}, h_t^V])
其中, htVh_t^V是前一個 visual LSTM 的狀態, gctxg_{ctx} 是一個512維度的權重向量.

於是乎, 便將低層特徵和高層特徵融合在了一起, 如下所示:
M=[(1gctx)ML,  gctxMH]M=[(1-g_{ctx}) \circ M_L,~~g_{ctx} \circ M_H]

gctxg_{ctx} 決定了對MLM_LMHM_H的側重點的關注度.

2.4.6. Objective

由於 XE 可能會導致在訓練階段和推斷階段的不一致性, 根據SCST思想, 直接採用 CIDEr 作爲目標函數對模型進行細化.即
L(θ)=Ewspθ[CIDEr(ws)]L(\theta)=-E_{w^s \sim p_{\theta}}[{\rm CIDEr}(w^s)]
其單個樣本wspθw^s \sim p_{\theta}對應的期望梯度:
θL(θ)(CIDEr(ws)CIDEr(w))θlogpθ(ws)\bigtriangledown_{\theta}L(\theta) \approx -({\rm CIDEr}(w^s)-{\rm CIDEr(w)})\bigtriangledown _{\theta}\log p_{\theta}(w^s)
此處的 ws=(w1s,...,wTs)w^s=(w_1^s,...,w^s_T)指在時間tt採樣得到的詞, CIDEr(w){\rm CIDEr}(w)則是 使用貪婪法對當前模型解碼得到的 baseline score.

三. 實驗

3.1. 數據集及評價指標

選用 MSCOCO 作爲我們的數據集, 採用 Karpathy 方法對數據集劃分成 training, valid, test三個集合.

對於評價指標我們選用了: BLEU, METEOR, ROUGEL, CIDEr, SPICE.

3.2. 實現細節

用 ResNet-101 模型在 ImageNet 上進行與訓練來提取global features. 然後用 Faster RCNN 在 MSCOCO 上預訓練提取 object features, 並訓練另一個 Faster RCNN 預測 visual concepts.

另外, 在訓練上, 我們首先在訓練階段採用 XE loss 並帶有ADAM優化器, 學習率爲 5e-4. 經過一段時間後再採用 SCST 思想進行訓練.

3.3. 實驗結果

四. 結論

本文提出 Hierarchical Attention Network(HAN) 將弱語義性的patch features、中等語義性的object features、強語義性的 text features構造成一個金字塔結構特徵集, 通過這個可以在預測不同單詞時選擇不同的特徵.

而對於 MRM, 實現了模型間的投影, 並提取不同特徵之間的相關性.

使用 context gate 對不同特徵之間的貢獻進行平衡.

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