Reconstruction Network for Video Captioningを読んだ

Bairui Wang, Lin Ma, Wei Zhang, Wei Liu, "Reconstruction Network for Video Captioning", in CVPR2018, pp.7622-7631, 2018. [arXiv1803.11438](https://arxiv.org/abs/1803.11438)

# 1. どんなものか？
ビデオに対して自然言語でキャプションを生成する．
従来のビデオコンテンツのてがかりを利用して言語記述を行う方法と異なり，本論文ではフォワード（ビデオから文章），バックワード（文章からビデオ）の両方を利用した新しいエンコーダ・デコーダ・リコンストラクタアーキテクチャを備えたリコンストラクションネットワーク（RecNet）を提案する．

# 2. 先行研究との違いは何か？
* 順方向（ビデオ→文章）と逆方向（文章→ビデオ）の二重学習を行うこと
* 下の図のエンコーダ・デコーダ・リコンストラクタアーキテクチャを使用すること
![スクリーンショット 2018-10-04 18.05.13.png](https://qiita-image-store.s3.amazonaws.com/0/287553/2603f651-e9c0-0d80-8015-fd6047fdb857.png)

# 3. 技術や手法のキモは何か？
## Encoder-Decoder-Reconstructor Architecture
<b>エンコーダ・デコーダ</b>は，各ビデオフレームの特徴表現を生成し，続いて文章を生成する．
<b>リコンストラクタ</b>は，デコーダの隠れ状態シーケンスに基づいて元のビデオ特徴シーケンスを再現する．
リコンストラクタの存在により，エンコーダおよびデコーダが元のビデオに関する意味情報をより多く埋め込むように促される．
![スクリーンショット 2018-10-04 18.21.03.png](https://qiita-image-store.s3.amazonaws.com/0/287553/20cd4cf8-0ade-e164-618b-7268d1943df3.png)
***
### Encoder-Decoder
提案手法のエンコーダ・デコーダアーキテクチャは[Sequence to sequence - video to text(Venugopalan+, ICCV 2015)](https://arxiv.org/abs/1505.00487)のものを使用する．
![スクリーンショット 2018-10-04 18.32.20.png](https://qiita-image-store.s3.amazonaws.com/0/287553/831d7a45-3c70-e421-7f97-028abf3dfba6.png)
エンコーダは，各ビデオフレームを意味情報をキャプチャするために[Inception-V4](https://arxiv.org/abs/1602.07261)を使用してビデオ特徴を得る．
デコーダは，ビデオ特徴に基づいて１ワードずつ生成する．ビデオのグローバルな時間的情報をさらに利用するために，[時間的アテンション機構](https://arxiv.org/abs/1502.08029)を用いて，デコーダがキャプション生成に必要なキーフレームを選択するように促す．
***
### Reconstructor
リコンストラクタの目的は，デコーダの隠れ状態シーケンスからエンコーダによって生成されたビデオ表現を再現することである．２種類のアーキテクチャがカスタマイズされる．
一方は，ビデオのグローバル構造を再現することに焦点を当てたものと，もう一方は，隠れ状態シーケンスを選択的に採択することによりビデオのローカル構造を再現するものである．

#### Reconstructing Global Structure
デコーダの隠れ状態（$h_t$）に加えて，隠れ状態が平均プーリングを経て得られた文章のグローバル表現（$\phi(H)$）が入力となる．
![スクリーンショット 2018-10-04 22.26.34.png](https://qiita-image-store.s3.amazonaws.com/0/287553/de2911ba-60c2-d5d7-3d5e-3849bdc27194.png)

```math
\phi(H) = \frac{1}{n}\sum_{i=1}^{n}h_i \\
\left(\begin{matrix}
i_t \\
f_t \\
o_t \\
g_t
\end{matrix}\right) =
\left(\begin{matrix}
\sigma \\
\sigma \\
\sigma \\
\tanh
\end{matrix}\right)T
\left(\begin{matrix}
h_t \\
z_{t-1} \\
\phi(H)
\end{matrix}\right) \\
m_t = f_t \odot m_{t-1} + i_t \odot g_t \\
z_t = o_t \odot \tanh (m_t)
```
ここで$i_t, f_t, m_t, o_t, z_t$は各LSTMユニットの入力，foget, memory, 出力, 隠れ状態である．
グローバル表現を再現するための損失は以下のようになる．
$$
\mathcal{L}_{rec}^g = \psi(\phi(V), \phi(Z))
$$
$\phi(V)$は元のビデオ特徴の平均プーリング,$\phi(Z)$はリココンストラクタの隠れ状態の平均プーリングである．$\psi(\cdot)$はユークリッド距離を計算する．

#### Reconstructing Local Structure
このリコンストラクタは上述のものとは異なり，各ビデオフレームを再構成することによって，時間ダイナミックスを学習することを目的とする．アテンション機構によって選択されたデコーダのキー隠れ状態から各フレームの特徴表現を再現する．
![スクリーンショット 2018-10-04 23.54.29.png](https://qiita-image-store.s3.amazonaws.com/0/287553/39dbfb79-aadc-75da-3dff-5ec8f3a6f042.png)
$$
\mu_t = \sum_{i=1}^{n}\beta_i^th_i
$$
$\beta_i^t$はタイムステップtでの$i$番目の隠れ状態についてのアテンションメカニズムによって計算された重みである．
また，各LSTMユニットでは次のように計算される．

```math
\left(\begin{matrix}
i_t \\
f_t \\
o_t \\
g_t
\end{matrix}\right) =
\left(\begin{matrix}
\sigma \\
\sigma \\
\sigma \\
\tanh
\end{matrix}\right)T
\left(\begin{matrix}
\mu_t \\
z_{t-1}
\end{matrix}\right)
```
また損失は以下のものを用いる．

```math
\mathcal{L}_{rec}^l = \frac{1}{m}\sum_{j=1}^{m}\psi(z_j, v_j)
```

***
全体の損失
![スクリーンショット 2018-10-05 0.50.31.png](https://qiita-image-store.s3.amazonaws.com/0/287553/b995e0de-2e6c-82d0-8d22-de0b52718ff7.png)

# 4. どのように有効性を検証したか？
MST-VTTデータセットを用いて，キャプション生成能力を評価する． MSR-VTTには１０K個のビデオクリップと各ビデオクリップに対して２０個の文章が含まれている．
比較する手法は，同じようなエンコーダ・デコーダの構造をしているMP-LSTMやSA-LSTMである．
![スクリーンショット 2018-10-05 0.59.32.png](https://qiita-image-store.s3.amazonaws.com/0/287553/58564c61-6642-5eb6-a41d-fdce96c9f772.png)
ローカルな情報に焦点を当てているリコンストラクタを組み込んだ提案手法のものが高いスコアを出している．

また，全体の損失における$\lambda$の値を変えた場合のBLEUスコアの変化をみる．つまり，リコンストラクタの影響の度合いを変化させている．
![スクリーンショット 2018-10-05 1.03.31.png](https://qiita-image-store.s3.amazonaws.com/0/287553/343abe5b-c628-8ee6-a31c-20b41e976e5b.png)
リコンストラクタを考慮しない$\lambda=0$のものより$\lambda$が0よる大きいものがスコアも高くなっているのでリコンストラクタの効果が現れていることがわかる．

![スクリーンショット 2018-10-05 1.10.40.png](https://qiita-image-store.s3.amazonaws.com/0/287553/b3ae2ace-9836-240d-cba6-1231195ba0ad.png)

# 5. 次に読むべき論文
* <b>Dual Learningを行うもの</b>
  - [Dual Learning for Machine Translation](https://arxiv.org/abs/1611.00179) $\cdots$ 言語⇆言語の機械翻訳
 - [Neural Machine Translation with Reconstruction](https://arxiv.org/abs/1611.01874) $\cdots$ 言語⇆言語の機械翻訳
 - [Dual Supervised Learning](https://arxiv.org/abs/1707.00415) $\cdots$ いろいろ
* <b>テンプレートベースのもの</b>
 - [Natural Language Description of Human Activites from
Video Images Based on Concept Hierarchy of Actions](http://www.cs.ait.ac.th/~mdailey/cvreadings/Kojima-ActionRecognition.pdf) $\cdots$ ビデオキャプション生成（古い）
 - [YouTube2Text: Recognizing and Describing Arbitrary Activities Using Semantic
Hierarchies and Zero-shot Recognition](https://www.cs.utexas.edu/~vsub/pdf/YouTube2Text_Recognizing_and_2013_ICCV_paper.pdf) $\cdots$ ビデオキャプション生成（言語構造とツリーを利用）
 - [Video Captioning with Transferred Semantic Attributes](https://arxiv.org/abs/1611.07675)
* <b>シーケンスの学習に焦点を当てたもの</b>
 - [Translating videos to natural language using deep recurrent neural networks](https://arxiv.org/abs/1412.4729) $\cdots$ CNN+RNN
 - [Sequence to sequence - video to text](https://arxiv.org/abs/1505.00487) $\cdots$ S2VT