Heterogeneous Memory Enhanced Multimodal Attention Model for Video Question Answering

2019-04-25 21:43:11

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

Codehttps://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 :

==

论文笔记:Heterogeneous Memory Enhanced Multimodal Attention Model for Video Question Answering的更多相关文章

  1. Multimodal —— 看图说话(Image Caption)任务的论文笔记(二)引入attention机制

    在上一篇博客中介绍的论文"Show and tell"所提出的NIC模型采用的是最"简单"的encoder-decoder框架,模型上没有什么新花样,使用CNN ...

  2. 论文笔记之:Fully Convolutional Attention Localization Networks: Efficient Attention Localization for Fine-Grained Recognition

    Fully Convolutional Attention Localization Networks: Efficient Attention Localization for Fine-Grain ...

  3. 【论文笔记】CBAM: Convolutional Block Attention Module

    CBAM: Convolutional Block Attention Module 2018-09-14 21:52:42 Paper:http://openaccess.thecvf.com/co ...

  4. SfMLearner论文笔记——Unsupervised Learning of Depth and Ego-Motion from Video

    1. Abstract 提出了一种无监督单目深度估计和相机运动估计的框架 利用视觉合成作为监督信息,使用端到端的方式学习 网络分为两部分(严格意义上是三个) 单目深度估计 多视图姿态估计 解释性网络( ...

  5. 【NLP】Attention Model(注意力模型)学习总结

    最近一直在研究深度语义匹配算法,搭建了个模型,跑起来效果并不是很理想,在分析原因的过程中,发现注意力模型在解决这个问题上还是很有帮助的,所以花了两天研究了一下. 此文大部分参考深度学习中的注意力机制( ...

  6. Attention Model(注意力模型)思想初探

    1. Attention model简介 0x1:AM是什么 深度学习里的Attention model其实模拟的是人脑的注意力模型,举个例子来说,当我们观赏一幅画时,虽然我们可以看到整幅画的全貌,但 ...

  7. (zhuan) 自然语言处理中的Attention Model:是什么及为什么

    自然语言处理中的Attention Model:是什么及为什么 2017-07-13 张俊林 待字闺中 要是关注深度学习在自然语言处理方面的研究进展,我相信你一定听说过Attention Model( ...

  8. [转]自然语言处理中的Attention Model:是什么及为什么

    自然语言处理中的Attention Model:是什么及为什么 https://blog.csdn.net/malefactor/article/details/50550211 /* 版权声明:可以 ...

  9. 自然语言处理中的Attention Model:是什么及为什么

    /* 版权声明:能够随意转载.转载时请标明文章原始出处和作者信息 .*/ author: 张俊林 要是关注深度学习在自然语言处理方面的研究进展,我相信你一定听说过Attention Model(后文有 ...

随机推荐

  1. Delphi 2010 新增功能之: IOUtils 单元(6): TPath(结构体) 的方法与属性

    以后路径相关的处理, 用 IOUtils.TPath 就很方便了. //较常用的方法: TPath.GetTempPath;                  {获取临时文件夹路径} TPath.Ge ...

  2. C语言中负数的存储方式

    详细介绍负数的文章: https://blog.csdn.net/daiyutage/article/details/8575248 1.以char类型举例,其取值范围是 -128 ~ 127,即-2 ...

  3. docker命令汇总

    docker命令汇总 序号 类别 简述 命令 功能 说明 1 整体管理 安装 yum install docker-engine centos上安装docker Ubuntu上安装dockerapt- ...

  4. 干了这杯Java之集合概览

    Java集合框架支持两种类型容器: 一种是为了存储一个元素的合集,为Collection 一种是为了存储键/值对,为Mapping Collection包含 Set存储不重复的元素 List存储一个有 ...

  5. selenium--控制浏览器和简单元素操作

    控制浏览器1.driver.maximize_window() #浏览器最大化2.driver.set_windows_size(480*800) #浏览器设置成移动端大小(480*800),参数数字 ...

  6. 运维自动化之系统部署 PXE(二)

    PXE介绍 Preboot Excution Environment 预启动执行环境 Intel公司研发 基于Client/Server的网络模式,支持远程主机通过网络从远端服务器下载映像,并由此支持 ...

  7. python安装画图模块pillow

    步骤一: install pillow (注意导入是 import PIL )       步骤二:如果pycharm中import选择不到,则需要在settings中导入下             ...

  8. Summary: Calculate average where sum exceed double limits

    What is a good solution for calculating an average where the sum of all values exceeds a double's li ...

  9. FB面经 Prepare: Largest Island

    Find largest island in a board package fb; public class LargestIsland { public int findLargestIsland ...

  10. PHP 类的命名空间 和自动载入

    PHP 类的自动载入有两种方法,__autoload() 和 spl_autoload_register() ,就是在PHP代码中new一个类的时候,会自动触发,将类的类名包括命名空间作为参数传进入方 ...