論文筆記:Heterogeneous Memory Enhanced Multimodal Attention Model for Video Question Answering

Heterogeneous Memory Enhanced Multimodal Attention Model for Video Question Answering git

2019-04-25 21:43:11

github

Paperhttps://arxiv.org/pdf/1904.04357.pdf 網絡

Codehttps://github.com/fanchenyou/HME-VideoQA app

 

1. Background and Motivation: ide

用 Memory Network 作視覺問題回答並非特別新鮮,由於 CVPR-2018 已經有不少工做,都是用這種外部記憶網絡來進行知識的讀取,從而更好的輔助 VQA。可是本文作的是另一種 task,video question answer,相對來講,視頻的確定要更難一些。如何很好的根據問題,到視頻中去定位相關的視頻幀,從而更好的完成問題回答,是一個須要關注的問題之一。學習

 

現有的方法都嘗試對視頻或者問題進行 attend 處理,以獲得更好的結果:測試

1. Jang et al. 對視頻特徵的空間和時間維度都進行加權處理(spato-temporal attention mechansim on both spatial and temporal dimension of video features);他們也提出用 VGG 和 C3D 來提取 appearance 和 motion feature 來更好的表達視頻幀;可是他們採用前期融合的方法,而後輸入到 video encoder 中,這種方式獲得的效果,並非最優的;優化

2. Gao et al. 提出用更先進的 co-attention mechanism 來替換掉 Jang 的前期融合的方法;可是這種方法並無同速進行 appearance 和 motion feature 檢測到的 attention;與此同時,這種方法也丟失了能夠從表觀和運動特徵中獲得的 attention;編碼

做者認爲:現有方法未能正確的識別 attention,是由於他們分開進行了特徵的融合 (feature integration) 和注意力學習 (attention learning) 的步驟;爲了解決這一問題,做者提出一種新的多種記憶(heterogeneous memory)來同時完成融合 appearance and motion features 以及 learning spatio-temporal attentionspa

 

另外,若是 question 有很是複雜的語義信息,那麼 VideoQA 就會變得異常複雜,從而須要多個步驟的推理。現有的方法都是簡單的用 Memory Network 來處理這種狀況,可是做者認爲他們的方法太多簡單,用 LSTM 或者 GRU 獲得的 single feature vector 缺少捕獲問題中複雜語義的能力,如圖 1 所示。因此,就須要設計一種新的模型來理解問題中複雜的語義信息。爲了解決這一問題,做者提出一種新的網絡結構,嘗試將 question encoder 和 question memory 來互相加強question encoder 學習問題的有意義表達,而後從新設計 question memory 來理解複雜的語義,而後經過存儲和更新全局內容來強調檢索的物體。

 

此外,做者也設計了一種多模態融合層,經過對齊相關視覺內容和關鍵問題單詞,來同時對 visual 和 question hints 進行加權處理。在逐漸優化聯合 attention 以後,再將其進行加權融合,而後進行 multi-step reasoning,以從複雜的語義中進行正確答案的推理。

 

 

 

2. The Proposed Method: 

2.1 Video and Text Representation: 

對於 video,做者用 Resnet, VGG 和 C3D 模型來提取 appearance and motion feature, $f^a, f^m$. 而後用兩支 LSTM 模型分別對 motion and appearance features 進行處理,最終放到 memory network 中進行特徵融合;

對於 question,先用 Glove 300-D 獲得 embedding,而後用 LSTM 對這些向量進行處理。

 

 

2.2 Heterogeneous Video Memory

與常規的 external memory network 不一樣,做者新設計的網絡處理多個輸入,包括編碼的 motion feature,appearance feature;用多個 write heads 來決定內容的寫入,如圖 3 所示。其中的 memory slots M = [m1, m2, ... , ms] 以及 三個 hidden states $h^m, h^a$ and $h^v$。前兩個 hidden state $h^m$ 和 $h^a$ 用來表示 motion 和 appearance contents,將會寫入到記憶中,$h^v$ 用於存貯和輸出 global context-aware feature,該特徵是融合了 motion 和 appearance information 的。

 

 

 

 

 

 

2.3 External Question Memory

該問題記憶的目標是存貯 sequential text information,學習不一樣單詞之間的相關性,而且嘗試從全局的角度來理解問題。

 

 

 

2.4 Multi-modal Fusion and Reasoning 

如上圖所示,該模塊的輸入是 視頻特徵,問題的特徵。核心之處在於 LSTM,其隱層狀態記爲 s,在每次迭代的過程當中,該控制器會嘗試 attend 到  video feature 和 question feature 的不一樣部分,而後將這些特徵與學習到的權重,進行結合,而後更新其 hidden state $s_t$。

Temporal Attention在第 t-th 迭代中,咱們首先經過 attend 不一樣視覺特徵,問題特徵的不一樣部分,產生兩個 content vector。而後 temporal attention weights 能夠計算以下:

而後,加權以後的 content vector c,以及轉換的 d 計算以下:

 

Multimodal Fusion:經過將轉換以後的 content vector d 和 以前的 hidden states $s_{t-1}$ 進行交互,獲得多模態 attention weights:

 

最終融合的知識 $x_t$ 能夠經過與權重的加權求和獲得:

 

Multi-step reasoning: 爲了獲得第 t-th 迭代的推理結果,咱們用 LSTM 來更新 hidden state,即:$s_t =  LSTM(x_t, s_{t-1})$。這個推理過程進行了 L 次(實驗中設置爲 3 次)。最後一次迭代的結果 $s_{L}$ 記爲 distilled knowledge 的最終表達。咱們也採用了標準的 temporal attention 在編碼的 video feature,而且將其與 $s_L$ 進行組合,獲得最終的答案表達 $s_A$。

 

2.5 Answer Generation

Multiple-choice: 是從多個候選答案中,選擇一個正確的答案。咱們將 question 和 每個候選的 answer 分別組合起來,而且將 QA pair 進行前傳,獲得最終的 answer feature,咱們用 linear layer 來對全部的候選答案進行打分。在訓練過程當中,咱們最小化 positive answer 和 each negative answer 的 pairwise hinge loss:

 

咱們能夠端到端的進行網絡的訓練。在測試的時候,咱們選擇一個具備最高得分的 answer 做爲最終的答案。

 

Open-ended task is to choose one correct word as the answer from a pre-defined answer set of size C. 做者這裏採用 linear layer 和 softmax function,來預測全部候選答案的機率。訓練的偏差用交叉熵損失來衡量:

 

其中,y 是 gt label。測試的時候,也是從中選擇一個最大得分的候選,做爲 final answer:$c^* = arg max_c (P)$。

 

疑問:看到這裏,我表示有點疑惑,都是從中選擇一個響應最大的做爲 final answer,爲啥搞這兩種看似不一樣的方式? 

 

3. Experiments:

 

==

相關文章
相關標籤/搜索