论文:Heterogeneous Memory Enhanced Multimodal Attention Model for VQA
来源:CVPR2019
作者:京东研究院
源码: Github

文章目录

  • 1. 摘要
  • 2. 方法
    • 2.1 视频文本的特征表达
    • 2.2 异构视频存储器
    • 2.3 格外的问题存储器
    • 2.4 多模态融合以及推理
    • 2.5 答案的产生
    • 2.6 实现细节
  • 3. 实验以及讨论
    • 3.1 标准数据集
    • 3.2 结果分析
    • 3.3 注意力可视化以及分析
    • 3.4 消融实验
  • 4. 总结
    • 暂存的问题

1. 摘要

这篇文章主要有三个点:

  • 提出一个 (包含注意力读写机制的)异构的存储器外观特征运动特征 两个方面来学习 全局的上下文信息
  • 重新设计 问题存储器 来理解问题的复杂语义信息并突出查询主体;
  • 提出一种新的 多模态融合层 ,通过软注意力 关注 相关的视觉和文本特征并进行多步推理

且指出了几个挑战:

  • 现有的主要方法不能正确识别注意力。因为它们将 特征集成注意力学习 步骤分开。所以,本文提出了一种新的 异构记忆方法,将外观和运动特征结合起来, 同时 学习时空注意力。
  • 当问题有很复杂的语义并且需要多步推理的时候将会很困难。
    所以本文设计了新的网络结构将 问题编码器问题存储器 整合起来:问题编码器学习丰富的文本表达,问题存储器通过 存储和更新全局上下文 理解复杂的语义信息并突出被询问的主体

2. 方法

整个模型的Pipline如下图:

2.1 视频文本的特征表达

1 视频表示

从视频剪影中提出固定帧数的视频帧,然后使用预训练的 ResNet 或 VGGNet 等传统CNN 提取每一帧的 外表特征(appearance features),使用3D卷积网络 C3D 提取 运动特征。 记作
fa=[f1a,f2a,...,fNva]f^a = [f_1^a,f_2^a,...,f_{N_v}^a]fa=[f1a​,f2a​,...,fNv​a​]

fm=[f1m,f2m,...,fNvm]f^m = [f_1^m,f_2^m,...,f_{N_v}^m]fm=[f1m​,f2m​,...,fNv​m​]
然后用两个LSTM提取进行时序建模,输出两个时序编码:
oa=[o1a,o2a,...,oNva]o^a = [o_1^a,o_2^a,...,o_{N_v}^a]oa=[o1a​,o2a​,...,oNv​a​]

om=[o1m,o2m,...,oNvm]o^m = [o_1^m,o_2^m,...,o_{N_v}^m]om=[o1m​,o2m​,...,oNv​m​]

2 问题表示

每个VideoQA都有一个已定义好的 词典, 包含在训练集上出现词频TopK的单词。各个数据集的词典长度K如下:


然后使用固定长度的可学习的 词嵌入(word ebedding) 表示每个单词,嵌入层权重使用预训练的 GloVe 300-D特征 来初始化。一个句子整个嵌入表示定义为:
fq=[f1q,f2q,...,fNqq]f^q = [f_1^q,f_2^q,...,f_{N_q}^q]fq=[f1q​,f2q​,...,fNq​q​]
其中NqN_qNq​ 表示每个问题的单词数。

最后,使用一个LSTM用于时序建模,得到最终的文本特征:
oq=[o1q,o2q,...,oNqq]o^q = [o_1^q,o_2^q,...,o_{N_q}^q]oq=[o1q​,o2q​,...,oNq​q​]

2.2 异构视频存储器

上面的外表特征和运动特征对与问题有关的物体和事件的识别都起到了关键性的作用。但是,由于这两种特征的异构性,所以直接的联合不能很好的学习到视频的内容表示。

因此,本文提出一个 异构的存储器 将运动和外观视觉特征结合起来,学习共同注意力,增强时空推理。

这个异构存储器可接收多种输入:运动特征 OmO^mOm,外观特征 OaO^aOa。包括一个存储插槽 M=[m1,...,mS]M = [m_1,...,m_S]M=[m1​,...,mS​],以及三个隐藏状态 hm,ha,hvh^m,h^a,h^vhm,ha,hv:

  • hmh^mhm 决定需要写入的运动特征的内容
  • hah^aha 决定需要写入的外观特征的内容
  • hvh^vhv 存储和输出全局的上下文感知特征(通过存储器同时整合了运动和外观特征)

我们假定插槽的数目为SSS,激活函数sigmod为 σ\sigmaσ,则各个操作定义如下:

写入操作

  • 首先我们由当前的输入 otm/ao_t^{m/a}otm/a​和之前的隐藏层输入ht−1m/ah_{t-1}^{m/a}ht−1m/a​决定此时此刻ttt的写入内容 ctm/ac_t^{m/a}ctm/a​
  • 然后我们计算出分配给每个存储槽的写入权重αtm/a=αt,1m/a,...,αt,Sm/a\alpha_t^{m/a} = {\alpha_{t,1}^{m/a},...,\alpha_{t,S}^{m/a}}αtm/a​=αt,1m/a​,...,αt,Sm/a​

问题:

  1. 为什么使用tanh激活函数?
  2. 为什么还需要用一个 vaTv_a^TvaT​映射?
  • 对于这样一个异构存储器,我们需要计算不同模态的写入权重 Et∈R3\mathcal{E}_t ∈ R^3Et​∈R3来分配运动特征 αtm\alpha_t^mαtm​,外观特征 αta\alpha_t^aαta​ 和当前存储内容 Mt−1M_{t-1}Mt−1​的比例:
  • 最后,当前时刻的写入值由3个内容决定:

    读操作
  • 我们定义从存储槽MMM中读取的分配比例为 βt={βt,1,...,βt,S}\beta_{t} = \ \{\beta_{t,1},...,\beta_{t,S} \}βt​= {βt,1​,...,βt,S​}:
  • 然后读出的内容 rt=∑i=1Sβt,i∗mir_t = \sum_{i=1}^{S}{\beta_{t,i} * m_i}rt​=∑i=1S​βt,i​∗mi​

状态更新
我们在计算出读出内容 rtr_trt​ 后才计算三个隐藏状态的更新值:

其中,我们在所有时刻的全局内容隐藏状态 {h1v,...,hNvv}\{h_1^v,...,h_{N_v}^v\}{h1v​,...,hNv​v​}将作为我们最后的 视频特征

2.3 格外的问题存储器

我们重新设计了内存网络,以持久地存储以前的输入,并支持当前输入和内存内容之间的交互。

这里的存储器与之前的异构存储器差不多,只不过只有一个隐藏状态。
写操作

  • 定义写入内容(content)
  • 定义分配权重
  • 然后每个内存槽mim_imi​写入的内容为:

读操作

  • 计算读取权重
  • 从每一个存储槽读取内容进行汇总

隐藏状态更新

最后,我们用所有时刻的隐藏状态 {h1q,...,hNqq}\{h_1^q,...,h_{N_q}^q\}{h1q​,...,hNq​q​}将作为我们最后的 视频特征

2.4 多模态融合以及推理

这个模型的核心是一个带一个隐藏状态sss的的LSTM控制器:
在每一次迭代的时候,控制器都使用 时间注意力机制 来处理输入的 视频特征问题特征 的不同部分,然后使用 学习到的模态权重 结合处理过的特征,最后更新当前的状态 sts_tst​。

时间注意力

在 ttt 步推理时,我们首先计算两个内容向量 ctv和ctqc_t^v和c_t^qctv​和ctq​:

  • 通过不同分段的视觉特征 htvh_t^vhtv​ 和 htqh_t^qhtq​ 计算 时序权重: γ1:Nvv和γ1:Nqq\gamma_{1:N_v}^v 和 \gamma_{1:N_q}^qγ1:Nv​v​和γ1:Nq​q​:
  • 然后进行汇总再转换

多模态融合

多模态分配权重通过之前的隐藏层状态和转换的向量计算:

最后的融合知识通过求和获得:

多步推理
当进行第 ttt 步推理的时候,LSTM控制器的隐藏状态 sts_tst​ 更新如下:
st=LSTM(xt,st−1)s_t = LSTM(x_t,s_{t-1})st​=LSTM(xt​,st−1​)
然后,这个推理步骤进行 LLL 次(本文设置 L=3L=3L=3)。在最后一次推理后的隐藏状态 sLs_LsL​ 为最终被蒸馏的知识(distilled knowledge)。然后联合(concatenate)所有的隐藏状态为最终答案的表达 sAs_AsA​。

同时也使用标准的时间注意力机制来编码视频特征 omo^mom 和 oao^aoa(保持和ST-VQA一样)

2.5 答案的产生

多项选择
为了从 KKK 项候选答案中选择一个正确答案。我们将问题与每个候选答案分别进行联合,然后前向输入每个QA对,获得最终的答案特征序列{sA}i=1K\{s_A\}_{i=1}^K{sA​}i=1K​,最后使用一个线形层为每一个答案特征提供一个分数 s={sp,s1n,...,sK−1n}s = \{s^p,s_1^n,...,s_{K-1}^n\}s={sp,s1n​,...,sK−1n​}。其中,sps^psp为正确答案的分数。

在训练的时候,使用SVM损失进行训练:

在测试的时候,选择分数最高的答案最为最终的正确答案。

开放式(Open-ended)任务
该任务是从一个预定义的答案集合(大小为C)中选择正确的单词。
所以,我们在最终的答案特征 sAs_AsA​ 后添加一个线形层和SoftMax函数来计算每一个候选答案的概率 p=softmax(WpTsL+bp)p = softmax(W^T_p s_L + b _p)p=softmax(WpT​sL​+bp​),其中 p∈RCp ∈ R^Cp∈RC。
最终使用交叉熵损失来进行训练:

其中 yyy 是正确的标签。预测的时候,选择概率最大的候选答案即可 c∗=argmax(p)c^* = argmax(p)c∗=argmax(p)。

2.6 实现细节

  • 网络优化器为 Adam, Batchsize = 32, learning rate = 0.001
  • video and question encoders是两层LSTM,隐藏层大小为512
  • memory slot的维度和隐藏状态的维度均是 256
  • video 和 question memory 的大小分别是 30 和20.(和videos,questions的长度相当)

3. 实验以及讨论

3.1 标准数据集

在4个标准VideoQA数据集上进行评估。

TGIF-QA 包含基于 TGIF数据集 上的72K张GIF动图 的 165K 个QA对。其包含以下问题类型:

  • 计算给定动作的出现次数
  • 给定频率,识别一个重复出现的动作
  • 判别一个动作出现在一个给定动作之前还是之后
  • 回答基于图像的问题

MSVD-QAMSRVTT-QA 分别是基于 MSVD 数据集和 MSRVTT-QA 数据集提出的。包括五种不同的问题: What, Who, How, When, Where,开放问题的预选答案集大小为 1000。

YouTube2Text-QA 包括三种问题:What, Who, Other

3.2 结果分析

  • TGIF-QA 结果
  • MSVD-QA 数据集

作者推荐使用 ST-VQA的源码,并自己从头实现 Co-Mem来得到原论文的数据

  • MSRVTT-QA 数据集
  • YouTube2Text-QA 数据集

3.3 注意力可视化以及分析

3.3.1 时间注意力


提取 表达式(12) 中个视觉和文本的注意力权重,然后将其画在条状图上。(深颜色表示大的权重,即对应的帧或者文本相对来说比较重要)。

上图表明模型能够有效的理解较复杂的问题(通过提出的问题存储器),即及时问题花了一部分来描述这个抽烟的男的,模型也依然重点注意开车的女性。

3.4 消融实验

包含两个消融实验:

  • 研究在多模态融合的时候推理的迭代次数
  • 研究模型每个组成部分的贡献

推理次数
在 MSVD-QA 数据集上,验证集精度从0.298->0.306(L=1->3),然后到0.307(L=5),但是却下降到0.304(L=7),所以为了平衡性能和速度,作者选择 L=3

不同的结构
本文的最终结构:

比较结果如下:

其中:

  • Early Fusion(EF) 表示在早期阶段直接联合 视频特征(Video Feature)和运动特征(Motion Feature),然后再使用一个LSTM编码器
  • Late Fusion(LF) 表示使用两个LSTM来分别编码,然后再联合
  • Episodic Memory(E-M) 表示使用一个简单版的存储网络
  • Visual Memory(V-M) 表示使用设计过的 异构存储器 MvM^vMv
  • Quetion Memory(Q-M) 表示使用设计过的 问题存储器 MqM^qMq
  • Visual and Question Memory(V + Q M) 是我们最终的模型。

4. 总结

本文提出一个 额外的存储器模型来捕获视频帧的全局上下文,和问题的复杂语义。同时设计一个新的多模态融合层来融合视觉和文本模态来提升多步推理精度。

暂存的问题

  • 2.4 多步推理时改变了什么?有什么意义?

VideoQA论文阅读笔记——Heterogeneous Memory Enhanced Multimodal Attention Model for Video Question Answering相关推荐

  1. 论文阅读笔记:MGAT: Multi-view Graph Attention Networks

    论文阅读笔记:MGAT: Multi-view Graph Attention Networks 文章目录 论文阅读笔记:MGAT: Multi-view Graph Attention Networ ...

  2. VideoQA论文阅读笔记——TGIF-QA: Toward Spatio-Temporal Reasoning in Visual Question Answering

    论文: TGIF-QA: Toward Spatio-Temporal Reasoning in Visual Question Answering 作者: 首尔国立大学 来源: CVPR2017 源 ...

  3. 谣言检测相关论文阅读笔记:PAKDD2020-SAFE: Similarity-Aware Multi-Modal Fake News Detection

    目录 Abstract 1.Introduction 2.Related Work 3.Methodology 3.1 Multi-modal Feature Extraction 3.2 Modal ...

  4. 异常检测论文阅读笔记《MIST: Multiple Instance Self-Training Framework for Video Anomaly Detection》

    MIST: Multiple Instance Self-Training Framework for Video Anomaly Detection 论文来源:CVPR 2021 原论文地址链接 相 ...

  5. 论文阅读Leveraging Passage Retrieval with Generative Models for Open Domain Question Answering

    利用段落检索和生成模型进行开放域问答 ACL 2021 论文地址 摘要: 开放域问答的生成模型已被证明具有竞争力,无需借助外部知识.虽然这种方法很有前途,但它需要使用具有数十亿个参数的模型,这些参数的 ...

  6. 视频问答与推理(Video Question Answering and Reasoning)——论文调研

    文章目录 0. 前言 1. ACM MM 2. CVPR 3. ICCV 4. AAAI 更新时间--2019.12 首稿 0. 前言 学习 VQA 的第一步--前期论文调研. 调研近几年在各大会议上 ...

  7. 【异构图笔记,篇章3】GATNE论文阅读笔记与理解:General Attributed Multiplex HeTerogeneous Network Embedding

    [异构图笔记,篇章3]GATNE论文阅读笔记与理解:General Attributed Multiplex HeTerogeneous Network Embedding 上期回顾 论文信息概览 论 ...

  8. [论文阅读笔记] Are Meta-Paths Necessary, Revisiting Heterogeneous Graph Embeddings

    [论文阅读笔记] Are Meta-Paths Necessary? Revisiting Heterogeneous Graph Embeddings 购物返利 www.cpa5.cn 本文结构 解 ...

  9. Dynamic MDETR: A Dynamic Multimodal Transformer Decoder for Visual Grounding 论文阅读笔记

    Dynamic MDETR: A Dynamic Multimodal Transformer Decoder for Visual Grounding 论文阅读笔记 一.Abstract 二.引言 ...

最新文章

  1. jQuery学习——表单
  2. OMNeT++学习程序 4
  3. Fellow观点:AI框架下的医疗影像教学
  4. 封装的三级联动及应用
  5. Android操作系统版本
  6. maps-api-v3_Android Google Maps API集成
  7. 05Struts2表单
  8. px,em,rem单位转换工具
  9. [转]国外英语教学网页
  10. 计算机文化基础清华大学PPT,数据库基础知识清华大学计算机文化基础.ppt
  11. js把html转成json,js字符串转成JSON
  12. 公众号申请并发布文章教程
  13. 龙兵智能名片多企业小程序V2.3.3-开源版
  14. steam卡价越来越高,steam搬砖项目还能玩么?
  15. 蓝牙(四)LMP协议之一
  16. 【Python】完美解决Pycharm网站无法访问问题
  17. 红米k30pro工程包工厂包
  18. 如何看错误日志,尤其是Caused by类的日志?
  19. 23. 圆圈中最后剩下的数字
  20. 微信小程序详细图文讲解

热门文章

  1. oracle数据库装载,oracle 数据库已装载
  2. PHPCMSV9标签TAGS全静态化教程(中文转义编码改成拼音显示,有图有案例)
  3. 福虎迎新,到央视新闻APP瞰博冠8K春节风光慢直播
  4. 计算机图形学中OpenGL和DirectX
  5. CF731D 80-th Level Archeology
  6. HTML <header> 标签
  7. linux下用shell脚本删除mysql记录数量比较多的表。
  8. iOS好使的各种文件文档、音乐、视频下载查看器有进度条
  9. 【深入理解JVM 六】虚拟机字节码执行系统
  10. 安卓开发之利用contentprovider进行数据获取