Bidirectional Attentive Fusion with Context Gating for Dense Video Captioningを読んだ

Jingwen Wang,　Wenhao Jiang,　Lin Ma,　Wei Liu,　Yong Xu
CVPR 2018
[arXiv](https://arxiv.org/abs/1804.00100)， [pdf](https://arxiv.org/pdf/1804.00100.pdf)

#1. どんなものか？
密なビデオキャプショニング（Dense video captioning）を行う．
### Dense video captioningとは？
ビデオ内のすべてのイベントのローカライズと，その各イベントについて自然言語で説明文の生成を行うこと．

#2. 先行研究と何が違うのか？
* 過去と将来のコンテキストを考慮してキャプションを生成する．
* 従来のものでは同じイベントと見なされたほぼ同じ時間に終了する異なるイベントが区別できる．
* 周囲のイベントの情報を動的に選択して現在のイベントのキャプションを生成する．

#3. 技術や手法のキモは何か？
![スクリーンショット 2018-09-10 15.52.54.png](https://qiita-image-store.s3.amazonaws.com/0/287553/1bb8946f-171b-b493-03db-ce372cb22152.png)

提案されたネッチワークはプロポーザルモジュールとキャプションモジュールによって構成されている．


### <b>双方向[SST(Single-Stream Temporal Action Proposals)](http://vision.stanford.edu/pdf/buch2017cvpr.pdf)</b>

SSTでは過去のコンテキストと現在のイベント情報のみを符号化して推論を行う．双方向のSSTにすることにより，将来のイベントの情報を汲み取ることができるようになる．つまり，順方向のパスが過去のコンテキストと現在のイベント情報をエンコードし，逆方向のパスが将来のコンテキストと現在のイベント情報をエンコードする．

### <b>Dynamic Attentive Fusion with Context Gating</b>

過去と未来の両方のコンテキストを補足した順方向および逆方向パスからのプロポーザル状態と，検出されたプロポーザルの符号化された視覚的特徴を融合させる．
$$ F_t(s_i) = f(h_n^{\rightarrow}, h_m^{\leftarrow}, 
\hat{V}={v_i}^n_{i=m}, H_{t-1}) $$


#### <b>Temporal Dynamic Attention</b>

ビジュアル特徴$\hat{V}$を以下の式でアテンションする．
$$ z_i^t = W_a^T \cdot tanh(W_v v_{i+m-1} + W_h[h_n^{\rightarrow},h_m^{\leftarrow}]+W_HH_{t-1}+b) $$
ここで，$H_{t-1}$はタイムステップ$t-1$でのデコーダの隠れ状態，$[\cdot,\cdot]$はベクトル連結を表す．

```math
 \alpha_i^t = \exp (z_i^t)/\sum_{k=1}^{p}\exp (z_k^t) \\
 \tilde{v}^t = \sum_{i=1}^p \alpha_i^t \cdot v_{i+m-1} \\
F(s_i) = [\tilde{v}^t,h^{\rightarrow}_n,h^
{\leftarrow}_m]
```

#### <b>Context Gating</b>

アテンションされたビジュアル特徴$\tilde{v}^t$をコンテキストベクトル$h_n^{\rightarrow}, h_m^{\leftarrow}$と直接連結させるのではなく，それらをバランスよく取り込むための「コンテキストゲート(context gete)」を学習させる．

```math
\dot{v}^t = \tanh (\tilde{W}\tilde{v}^t) \\
h = \tanh (W_{ctx}[\tilde{v}^t,h^{\rightarrow}_n,h^
{\leftarrow}_m]) \\
g_{ctx} = \sigma(W_g[\dot{v}^t,h,E_t,H_{t-1}]) \\
F(s_i) = [(1-g_{ctx})\odot \dot{v}^t, g_{ctx} \odot h]
```
### Inference by Joint Ranking
プロポーザルモジュールによって提案されたイベントに対して提案スコアを定義し，キャプションモジュールによって生成された各提案に対してのキャプションに信頼スコアを定義する．これらをランキングすることでよりよい結果を得る．
### 損失関数
#### Proposal Loss
```math
 \mathcal{L}_p(c,t,X,y) = - \sum_{j=1}^{K} w_o^jy_t^j \log c_t^j + w_1^j(1-y_t^j) \log (1-c_t^j)
```
#### Captioning Loss
```math
\mathcal{L}_c(P) = -\sum_{i=1}^{M}\log (p(w_i))
```
#### Total Loss
```math
\mathcal{L} = \lambda \times \mathcal{L}_p + \mathcal{L}_c
```
#4. どうやって有効性を検証したか？
ActivityNet v1.3のデータセットで検証する．このデータセットには20k個のトリムされていないYouTubeの動画が含まれている．１つの動画のサイズは120秒くらいで，３つ以上のアノテーション付きのイベントが存在する．

#### Event Localization
まず，以下の３つの手法でイベントローカライゼーションについて比較する．
* Random
* SST
* Bidirectional SST（提案手法）
![スクリーンショット 2018-09-12 15.55.07.png](https://qiita-image-store.s3.amazonaws.com/0/287553/c09a3cd3-6ea5-91e0-01a0-398162858ec1.png)

#### Dense Event Captioning
キャプション生成能力を評価する．
'H'はコンテキストベクトル，'E'はイベントクリップ特徴，'TDA'はtemporal dynamic attention fusion，'CG'はコンテキストゲートを表す．
* SST + H
* Bi-SST + E
* Bi-SST + E + H
* Bi-SST + E + H + TDA
* Bi-SST + E + H + TDA + CG
* Bi-SST + E + H + TDA + CG + Ranking

![スクリーンショット 2018-09-12 16.07.53.png](https://qiita-image-store.s3.amazonaws.com/0/287553/02d6859f-1343-d417-5564-a28b38a39050.png)

従来手法との比較
![スクリーンショット 2018-09-13 13.22.04.png](https://qiita-image-store.s3.amazonaws.com/0/287553/d8861c88-aff4-8acc-9641-6d77d6a5d75e.png)
[20][Dense-Captioning Events in Videos](https://cs.stanford.edu/people/ranjaykrishna/densevid/)

プロポーザルの長さによるMeteorスコアの変化
![スクリーンショット 2018-09-12 16.15.21.png](https://qiita-image-store.s3.amazonaws.com/0/287553/37d58526-6966-9190-6b8d-23b1ad3baaef.png)
<b>評価指標について</b>

* [BLEU](https://www.aclweb.org/anthology/P02-1040.pdf)
* [Meteor](https://www.cs.cmu.edu/~alavie/papers/BanerjeeLavie2005-final.pdf)
* [Ronge-L](http://www.aclweb.org/anthology/W04-1013)
* [CIDEr](https://www.cv-foundation.org/openaccess/content_cvpr_2015/papers/Vedantam_CIDEr_Consensus-Based_Image_2015_CVPR_paper.pdf)

#5. 議論はあるか
長いイベントになるとそれらのキャプション生成は困難になる．これはLSTMの長期依存性の学習の難しさが起因している．
#6. 次に読むべき論文
*  [Dense-Captioning Events in Videos](https://cs.stanford.edu/people/ranjaykrishna/densevid/)