Co-VQA : Answering by Interactive Sub Question Sequence

Paper name

Co-VQA : Answering by Interactive Sub Question Sequence

Paper Reading Note

URL: https://arxiv.org/pdf/2204.00879.pdf

TL;DR

  • ACL 2022 文章,通过模拟人类拆解子问题的过程,本文提出了一个基于会话的 VQA(Co-VQA)框架,VQA-CP v2 上取得 SOTA 效果

Introduction

背景

  • 大多数现有的视觉问答(VQA)方法直接回答问题,然而,人们通常将一个复杂的问题分解为一系列简单的子问题,并在回答子问题序列(SQS)后最终获得原始问题的答案
  • 大多数现有的方法都是直接回答问题,但通常很难,尤其是回答复杂的问题
    • 在一轮问答中实现全面的场景理解非常具有挑战性
    • 在一轮中完成整个问答过程缺乏可解释性,当模型遇到错误答案时,很难找到错误

本文方案

在这里插入图片描述

  • 通过模拟人类拆解子问题的过程,本文提出了一个基于会话的 VQA(Co-VQA)框架,该框架由三个组件组成:Questioner、Oracle 和 Answerer

    • Questioner 使用扩展的 HRED 模型提出子问题,Oracle 逐一回答
    • Answerer 使用本文提出的 Adaptive Chain Visual Reasoning Model (ACVRM) ,其中问答对用于顺序更新视觉表示
  • 为了对每个模型执行监督学习,本文引入了一种设计良好的方法,在VQA2.0和VQA-CP v2数据集上为每个问题构建 SQS

  • VQA-CP v2 上取得 SOTA 效果

  • 进一步的分析表明,SQS有助于建立问题和图像之间的直接语义连接,提供问题自适应可变长度推理链,并具有明确的可解释性和错误可追溯性


Dataset/Algorithm/Model/Experiment Detail

实现方式

整体框架

在这里插入图片描述

Questioner

在这里插入图片描述

  • 基于扩展的 hierarchical recurrent encoder decoder (HRED) 构建
  • Image Encoder:基于 Faster RCNN 提取区域特征,每个图片被编码为 M 个区域特征 $ R \in \mathbb{R}^{M \times 2048}$ 及对应的 bbox 坐标
    • M 分布范围为 10 到 100
  • Hierarchical Encoder:基于 Embedding matrix 将问题 Q 与历史子问题对编码,然后基于 GRU 提取问题特征
  • Decoder:基于单层 GRU 解码为子问题
    • 将问题引导的注意力部署到区域特征 R 以获得加权视觉特征
    • 负对数似然损失用于训练,其中T是最大对话次数
      在这里插入图片描述

Oracle

  • Oracle 用来对上面提出的子问题进行回复,这个过程本文将其看成是一个传统 VQA 问题,这里使用 BUTD 来做

Answerer

在这里插入图片描述

  • 给定问题 Q、输入图片 I 和完成的子问题对话历史 HT = {q1, a1, …, qT , aT },Answerer的任务是找出候选答案集a*中最准确的回答,可表示为:
    在这里插入图片描述
    其中 θ \theta θ 是 Answerer 的参数
  • 本文提出的 Adaptive Chain Visual Reasoning Model (ACVRM) 包含四个模块
    • Image Encoder: 基于 Faster RCNN 提取图片中的目标特征,与 Questioner. 中的一致,为了对齐与问题特征维度,降维到 768
    • Question Encoder:基于 bidirectional Transformer 提取问题特征
    • Sequential Progressive Reasoning:
      • feature fusion:图像目标特征与问题特征 concat 后提取融合特征
      • relation reasoning:以上融合特征作为图中节点的初始值,基于图形注意力网络提取特征
    • Multimodal Fusion:基于 buttom-up 和 top-down attention 进行多模态融合,最后基于两层 mlp 的分类器生成预测答案

在这里插入图片描述

训练 loss

在这里插入图片描述

  • 其中 LossBCE 是最终答案预测损失

实验结果

数据集

  • VQA 2.0
    • 由 MSCOCO 的真实图像组成,具有相同的训练/验证/测试分割
    • 对于每个图像,平均生成3个问题
    • 这些问题分为3类:是/否、数字和其他
  • VQA-CP v2
    • 是VQA 2.0的派生,与问题类型相关的答案分布设计为在训练和测试分割之间不同,旨在克服语言先验

Construction of SQS dataset.

  • 基于 VQA 2.0 和 VQA-CP v2 生成 VQA-SQS、VQA-CP-SQS,为训练 Questioner、Oracle和Answerer提供相应的监督信号
  • 具体构造方法是在附录中写的:
    • 为了完成SQS构建过程,我们首先根据表中的模板确定问题的顺序
      在这里插入图片描述
      对于 order-0 和 order-1 是没有对应的子问题的。order-2 则是可以构造对应的 order-1 子问题。order-3 可以构造多个 order-1 子问题和 order-2 子问题
  • 数据集构建的原则是:高阶问题可以采用相应的低阶问题作为其子问题,对于每个高阶问题,这些子问题按照从低到高的顺序排列,形成子问题序列
    • 实验室的十名学生进一步手动重新校正一些样本(约5K个样本)

实施细节

  • 训练:
    • 三个模块是分开训练的,先训练 Questioner 和 Oracle 得到问答对,然后再基于这些问答对输入训练 Answerer

与 SOTA 方法对比

  • VQA 2.0
    在这里插入图片描述
  • VQA-CP v2 数据集
    在这里插入图片描述

消融实验

  • 看起来涨点 0.7 左右
    在这里插入图片描述

定性分析

  • 可以看到 Co-VQA 的子问题能更好地关注到某些重要区域,尤其是需要关注的物体大于 2 个的时候
    在这里插入图片描述

Thoughts

  • 论文想实现的方案的思路是很合理的,和 See, Think, Confirm 思路有点像,即将 VQA 单次推理任务拆解为一些合理的子步骤,实现涨点目标的同时还能提升系统的可解释性
  • 需要花较大精力构造包含子问题的数据集,并不是即插即用的模块设计

猜你喜欢

转载自blog.csdn.net/kebijuelun/article/details/128903541
今日推荐