1. 程式人生 > >自適應註意力機制在Image Caption中的應用

自適應註意力機制在Image Caption中的應用

bcd 情報 cpc gpl ice ive 放大 pcf contex

在碎片化閱讀充斥眼球的時代,越來越少的人會去關註每篇論文背後的探索和思考。

在這個欄目裏,你會快速 get 每篇精選論文的亮點和痛點,時刻緊跟 AI 前沿成果。

點擊本文底部的「閱讀原文」即刻加入社區,查看更多最新論文推薦。

這是 PaperDaily 的第 71 篇文章

本期推薦的論文筆記來自 PaperWeekly 社區用戶 @jamiechoi。本文主要討論自適應的註意力機制在 Image Caption 中的應用。作者提出了帶有視覺標記的自適應 Attention 模型,在每一個 time step,由模型決定更依賴於圖像還是視覺標記。

■ 論文 | Knowing When to Look: Adaptive Attention via A Visual Sentinel for Image Captioning

■ 鏈接 | www.paperweekly.site/papers/219

■ 源碼 | github.com/jiasenlu/AdaptiveAttention

Introduction

目前大多數的基於 Attention 機制的 Image Captioning 模型采用的都是 encoder-decoder 框架。然而在 decode 的時候,decoder 應該對不同的詞有不同的 Attention 策略。例如,“the”、“of”等詞,或者是跟在“cell”後面的“phone”等組合詞,這類詞叫做非視覺詞(Non-visual Word),更多依賴的是語義信息而不是視覺信息。而且,在生成 caption 的過程中,非視覺詞的梯度會誤導或者降低視覺信息的有效性。

因此,本文提出了帶有視覺標記的自適應 Attention 模型(Adative Attention Model with a Visual Sentinel),在每一個 time step,模型決定更依賴於圖像還是 Visual Sentinel。其中,visual sentinel 存放了 decoder 已經知道的信息。

本文的貢獻在於:

  • 提出了帶有視覺標記的自適應 Attention 模型

  • 提出了新的 Spatial Attention 機制

  • 提出了 LSTM 的擴展,在 hidden state 以外加入了一個額外的 Visual Sentinel Vector

Method

Spatial Attention Model

文章介紹了普通的 encoder-decoder 框架,這裏不再贅述。但文章定義了 context vector ct,對於沒有 attention 機制的模型,ct 就是圖像經過 CNN 後提取出的 feature map,是不變的;而對於有 attention 機制的模型,基於 hidden state,decoder 會關註圖像的不同區域,ct 就是該區域經過 CNN 後提取出的 feature map。

文章對 ct 的定義如下:

技術分享圖片

其中 g 是 attention function,V=[v1,...,vk] 代表 k 個區域的圖像 feature,ht 是 t 時刻 RNN 的 hidden state。 由此可以得到 k 個區域的 attention 分布 αt:

技術分享圖片

這裏把 V 與 ht 相加,而有些論文則使用一個雙線性矩陣來連接它們。

技術分享圖片

其中技術分享圖片是所有元素為 1 的向量,目的是讓技術分享圖片相乘得到 k*k 大小的矩陣。最終本文的 ct 為:

技術分享圖片

與 show, attend and tell [1] www.ruishengks.com www.cnzhaotai.com使用 ht?1 的做法不同,本文使用的是 ht。結構如下:

技術分享圖片

作者認為 ct 可以看作 ht 的殘差連接,可以在預測下一個詞時降低不確定性或者提供情報。(不是應該做一個實驗驗證使用 ht 和 ht?1 的差別?)並且發現,這種 Spatial Attention 方式比其他模型表現更好。

Adaptive Attention Model

decoder 存儲了長時和短時的視覺和語義信息,而 Visual Sentinel st 作為從裏面提取的一個新的元件,用來擴展上述的 Spatial Attention Model,就得到了 Adaptive Attention Model。

具體的擴展方式就是在原有的 LSTM 基礎上加了兩個公式:

技術分享圖片

其中 xt 是 LSTM 的輸入,mt 是 memory cell(有些論文裏用 ct 表示)。

這裏的 gt 叫 sentinel gate,公式形式類似於 LSTM 中的 input gate, forget gate, output gate,決定了模型到底關註圖像還是 visual sentinel;而 st 公式的構造與 LSTM 中的 ht=ot⊙tanh(ct) 類似。

Adaptive Attention Model 中的 Context Vector:

技術分享圖片

βt∈[0,1] 可以視為真正意義上的 sentinel gate,控制模型關註 visual sentinel 和 ct 的程度。與此同時,Spatial Attention 部分 k 個區域的 attention 分布 αt 也被擴展成了 αt^,做法是在 zt 後面拼接上一個元素:

技術分享圖片

擴展後的 αt^ 有 k+1 個元素,而 βt=αt^[k+1]。(CVPR 和 arXiv 版本的原文都寫的是 βt=αt[k+1],我在 Github 上問了作者,這確實是個筆誤 [2])。

這裏的 Wg 與技術分享圖片中的 Wg 是相同的(為什麽這樣做?Wh 也一樣嗎?作者在這裏沒有提到,在後續論文 [3] 裏的公式 (9) 提到了)。

上述公式可以簡化為:

技術分享圖片

最終單詞的概率分布:

技術分享圖片

具體架構如下:

技術分享圖片

Implementation Details

文章選擇了 ResNet 的最後一層卷積層的特征來表示圖像,維度是 2048x7x7,並使用技術分享圖片來表示 k 個局部圖像特征,而全局圖像特征則是局部特征的平均:

技術分享圖片

局部圖像特征需要經過轉換:

技術分享圖片

最終全局圖像特征將與 word embedding 拼接在一起成為 LSTM 的輸入:xt=[wt;vg] 局部圖像特征則用在了 attention 部分。

Experiment

技術分享圖片

Table 1 在 test splits 上對比了在 Flickr30k 和 MSCOCO 數據集上模型與其他模型的表現,可以看到,模型的 Spatial Attention 部分就已經比其他模型表現好了,而加入了 Adaptive Attention 部分以後表現更加出色。

技術分享圖片

Table 2 在 COCO server 上對比了模型與其他模型的表現可以看到,Adaptive Attention 模型(emsemble後)的表現是當時 SOTA 的結果。

技術分享圖片

Fig 4 是 Spatial Attention的權重 α 的可視化結果,前兩列是成功的樣本,最後一列是失敗的樣本。模型進行 attention 的區域基本都是合理的,只是可能對一些物體的材質判斷失誤。

技術分享圖片

Fig 5 主要是 sentinel gate 1?β 的可視化,對於視覺詞,模型給出的概率較大,即更傾向於關註圖像特征 ct,對於非視覺詞的概率則比較小。同時,同一個詞在不同的上下文中的概率也是不一樣的。如"a",在一開始的概率較高,因為開始時沒有任何的語義信息可以依賴、以及需要確定單復數。

技術分享圖片

Fig 6 對 COCO 和 Flickr30k 中詞典中的詞被認為是視覺詞的平均概率進行了排序,來看看模型能否分辨出視覺詞與非視覺詞,兩個數據集間的相關性為 0.483。其中:

1. 對於一些實際上是視覺詞,但是與其他詞有很大關聯性的詞,模型也會把它視為非視覺詞,如"phone"一般都跟在"cell"後面;

2. 不同數據集上不同的詞的概率不一樣,如"UNK",可能是由於訓練數據分布的不同;

3. 對於一些有相近意義的同源詞,如"crossing", "cross", "crossed",他們的概率卻相差很大。(為什麽?) 模型沒有依賴外部的語料信息,完全是自動地發現這些趨勢。

技術分享圖片

Fig 11 顯示了使用弱監督方法生成的 bounding box 與真實 bounding box 的對比。本文是第一個使用這種方法來評估 image caption 的 attention 效果的。

具體生成方法是,對於某個單詞而言,先用 NLTK 將其映射到大類上,如“boy”, “girl”映射到 people。然後圖像中 attention weight 小於閾值(每個單詞的閾值都不一樣)的部分就會被分割出來,取分割後的最大連通分量來生成 bounding box。

並計算生成的和真實 bounding box 的 IOU (intersection over union),對於 spatial attention 和 adaptive attention 模型,其平均定位準確率分別為 0.362 和 0.373。說明了,知道何時關註圖像,也能讓模型更清楚到底要去關註圖像的哪個部分。

技術分享圖片

Fig 7 顯示了 top 45 個 COCO 數據集中出現最頻繁的詞的定位準確性。對於一些體積較小的物體,其準確率是比較低的,這是因為 attention map 是從 7x7 的 feature map 中直接放大的,而 7x7 的 feature map 並不能很好地包含這些小物體的信息。

技術分享圖片

Fig 8 顯示了單詞“of”在 spatial attention 和 adaptive attention 模型中的 attention map。如果沒有 visual sentinel,非視覺詞如“of”的 attention 就會高度集中在圖像的邊緣部分,可能會在反向傳播時形成噪聲影響訓練。

總結

本文提出了 Adaptive Attention 機制,其模型公式都非常簡單,Adaptive Attention 部分增加的幾個變量也非常簡潔,但卻對模型的表現有了很大的提升。文章進行的詳盡的實驗又進一步驗證了 Adaptive Attention 的有效性,可謂非常巧妙。

相關鏈接

[1]. Show, Attend and www.dfgj157.com Tell: Neural Image www.leyouzaixan.cn Caption Generation with Visual Attention

https://arxiv.org/abs/ www.michenggw.com www.qinlinyule.cn/ 1502.03044

[2]. 筆誤

https://github.com/jiasenlu/AdaptiveAttention/issues/14

[3]. Neural Baby Talk

https://www.paperweekly.www.jxbaxi.com/ site/papers/1801

本文由 AI 學術社區 PaperWeekly 精選推薦,社區目前已覆蓋自然語言處理、計算機視覺、人工智能、機器學習、數據挖掘和信息檢索等研究方向,點擊「閱讀原文」即刻加入社區!

www.leyouzaixan.cn

自適應註意力機制在Image Caption中的應用