论文笔记:Heterogeneous Memory Enhanced Multimodal Attention Model for Video Question Answering
Heterogeneous Memory Enhanced Multimodal Attention Model for Video Question Answering
2019-04-25 21:43:11
Paper:https://arxiv.org/pdf/1904.04357.pdf
Code: https://github.com/fanchenyou/HME-VideoQA
1. Background and Motivation:
用 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 attention。
另外,如果 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:
==