当前位置: 首页 > news >正文

[论文阅读] DVQA: Understanding Data Visualizations via Question Answering

原文链接:http://arxiv.org/abs/1801.08163

启发:没太读懂这篇论文,暂时能理解的就是本文提出了一个专门针对条形图问答的数据集DVQA以及一个端到端模型SANDY,模型有两个版本,Oracle和OCR。主要解决的问题是固定词表无法回答包含图表特有词汇问题。所以在SANDY(Oracle)中使用DVQA数据集的所有注释来构建词表,在SANDY(OCR)中使用开源的Tesseract OCR的输出,这样都保证了词表中能包含所有出现在图表以及问题中的词汇。至于文本提到的其他贡献,暂时无法理解。

Abstract

研究对象:条形图

研究问题:条形图的开放式问题问答

研究方法:介绍了 DVQA,这是一个数据集,用于测试问答框架中条形图理解的许多方面。与视觉问答 (VQA) 不同,DVQA 需要处理特定条形图独有的单词和答案。最先进的 VQA 算法在DVQA 上表现不佳,我们提出了两个性能要好得多的强基线。我们的工作将使算法能够从科学出版物、互联网文章、商业报告和许多其他领域的大量条形图中自动提取数字和语义信息。

1 Introduction

        本文我们研究了能够回答有关条形图的开放式问题的系统,我们将其称为数据可视化问答 (DVQA)。DVQA 将允许自动查询科学文档、网页和业务报告中的大量图表存储库。如图1所示,DVQA的问题可分为图表结构理解、数据检索、推理。

        DVQA 还可以作为广义模式匹配、注意力和多步推理系统的具有挑战性的代理任务。回答有关图表的问题需要多步骤的关注、记忆、测量和推理。VQA 通常被视为分类问题,其中答案是使用图像-问题对中的特征推断的类别,DVQA 与视觉问答 (VQA)相关,但是DVQA尝试解决三个问题:

(1)可变词典。VQA系统采用两个固定的词典:一个用于对问题中的单词进行编码,另一个用于生成答案。到那时DVQA的词典不能是固定的,因为许多答案中包含条形图特有的单词,如果是固定词典就无法解答这些问题。所以我们的模型演示了两种解决out-of-vocabulary(OOV) words问题的方法。

(2)语言的固定性与变动性。在VQA中,语言与图像中的语义概念有固定关联。例如,“大而闪亮的红色立方体”一旦定义,便在所有相关图像中一致。而在DVQA中,词语常常用来描述图表中的元素,如条形图的颜色、大小和位置,这些可以在不同图表中变化。(读不懂。。。

(3)图表图像的不规则性:VQA使用的自然图像通常具有某种规律,使得系统可以从图像的特征中推断信息,比如天气图通过颜色与亮度来判断晴天。相较之下,DVQA中的视觉元素如图例和颜色的稍微变动(如调换顺序)就能导致整张图表的信息发生完全变化,这种不规则性带来了额外的解析难度。

本文做出了三个主要贡献:

1. 我们介绍了 DVQA 数据集,其中包含超过 300 万个关于条形图的图像问题对。它测试三种形式的图表理解:a) 结构理解;b) 数据检索;c) 推理。DVQA 数据集将公开发布。

2. 我们发现最先进的 VQA 算法无法回答 DVQA 中的许多问题。此外,基于静态和预定义词汇表的现有基于分类的系统无法回答具有训练期间未遇到的独特答案的问题。

3. 我们描述了两个 DVQA 系统,它们能够处理特定图像独有的单词。一个是端到端神经网络,可以从条形图中读取答案。第二个模型是使用动态本地词典对条形图文本进行编码的模型。 

2. Related Work

3. DVQA: The Dataset 

 DVQA 数据集包含大量典型可用的条形图样式。数据集中的问题需要能够对条形图中的信息进行推理(见图 1)。DVQA 包含 300,000 张图像的 3,487,194 个问答对,分为三种主要问题类型。

 3.1. Appearance, Data, and Question Types

视觉样式:我们使用 python 流行的绘图工具 Matplotlib 来生成我们的图表。如图 3 所示,DVQA 的条形图在外观和样式方面都包含很大的可变性,可以捕捉到科学文献和 Internet 中的常见样式。其中一些变化包括柱线和组数的差异;是否存在网格线;条形的颜色、宽度、间距、方向和纹理的差异;以及标签和图例的方向和位置的差异。为了标记单个条形和图例条目,我们使用 NLTK 的词性标记为我们的训练集和“简单”测试集 Test-Familiar 选择了 Brown 语料库中最常见的 1000 个名词。为了衡量系统扩展到未知答案的能力,我们还创建了一个难度更高的测试集 Test-Novel,其中我们使用了 500 个在训练过程中看不到的新单词。

基础数据:DVQA 有三种条形图数据类型:线性、百分比和指数。对于这些数据值类型中的每一种,条形可以采用 1 – 10 范围内的线性数据、10 – 100 (百分比)和 1 - 1010 (指数数据类型)中随机选择的 10 个值中的任何一个。允许一小部分条形的值为零,该值在图表中显示为缺失的条形。

问题类型:DVQA 包含三种类型的问题:1) 结构理解,2) 数据检索,以及 3) 推理。为了生成这些问题,我们使用固定模板。

3.2. Post-processing to Minimize Bias

        VQA 中的几项研究表明,数据集中的偏差会损害性能评估,并为仅利用统计模式的系统提供夸大的分数。在 DVQA 中,我们采取了多项措施来打击此类偏见。为了确保样式、颜色和标签之间没有关联,我们随机化了图表的生成。有些问题可能具有很强的先验性,例如,问题 'Does the chart contain stacked bar?' 正确答案为“否”的可能性很高,因为这些堆积图并不常见。为了补偿这一点,我们会随机删除这些问题,直到每种问题类型(其中是/否)的答案都是平衡的。类似的方案用于平衡其他结构理解问题以及前两个数据检索问题。

4. DVQA Algorithms & Models 

4.1. 基线模型

我们评估了 DVQA 的五个基线模型:

1. YES:该模型对所有问题的回答都是“是”,这是 DVQA 中最常见的答案,比“否”略高。

2. IMG:无视问题模型。图像会使用 Resnet 对池化后的最终卷积层的输出进行编码,然后由具有一个具有 1,024 个单元的隐藏层和一个 softmax 输出层的 MLP 从中预测答案。

3. QUES:无视图像模型。它使用 LSTM 编码器嵌入问题,然后由具有一个隐藏层(具有 1,024 个单元和一个 softmax 输出层)的 MLP 预测答案。

4. IMG+QUES:这是 QUES 和 IMG 模型的组合。它连接 LSTM 和 CNN 嵌入,然后将它们馈送到具有一个 1024 个单元的隐藏层和一个 softmax 输出层的 MLP。

5. SAN-VQA:VQA 的堆叠注意力网络(SAN)。我们按照论文重新实现 SAN ,升级原始 SAN 的图像功能和一些小的更改可以在 VQA 1.0 和 2.0 上产生最先进的结果。SAN 对最后的 CNN 卷积特征图进行操作,在那里它使用基于 LSTM 的方案中的问题嵌入仔细处理该映射。

4.2. 多输出模型 (MOM)

        DVQA 多输出模型 (MOM) 使用双网络架构,其中其中一个子网络能够生成特定于图表的答案。MOM 的分类子网络负责通用答案。MOM 的光学字符识别 (OCR) 子网络负责必须从条形图中读取的特定于图表的答案。

MOM 的 OCR 子网络尝试预测包含正确标签的边界框,然后将字符级解码器应用于该区域。边界框预测器使用均方误差 (MSE) 损失作为回归任务进行训练。从该区域提取图像块,将其大小调整为 128 × 128,然后对其应用一个小的 3 层 CNN。由于框中文本的方向会有所不同,因此我们采用 N 步空间注意力机制来编码图像块中 N 个可能字符中每个字符的相关特征,其中 N 是最大可能的字符序列(在我们的实验中为 N = 8)。这 N 个特征使用双向门控递归单元 (GRU) 进行编码,以捕获自然出现的单词中发现的字符级相关性。GRU 编码之后是一个预测字符序列的分类层,该分类层使用连接主义时间分类 (CTC) 损失进行训练。

MOM 必须决定是使用分类子网络(即 SAN-VQA)或者OCR 子网络来回答问题,所以训练了一个单独的二元分类器,用于确定要信任哪些输出。此分类器将 LSTM 问题特征作为输入,以预测答案是通用的还是特定于图表的。对于我们的 DVQA 数据集,此分类器能够对测试数据以完美的准确性预测正确的分支。

4.3. SANDY: SAN with DYnamic Encoding Model

SANDY是作者对SAN-VQA模型的改进,引入了动态编码模型(DEM),可以处理图表中特定词汇的编码和解码。SANDY的关键特点包括:

  1. 动态本地字典:为图表中出现的每个新词创建一个动态字典。
  2. 编码和解码:使用动态字典来编码问题中的词和生成答案。
  3. OCR系统:假设有一个完美的OCR系统来识别图表中的所有文本区域。

SANDY有两种版本:

  • Oracle版本:使用DVQA数据集的注释来构建DEM。
  • OCR版本:使用开源的Tesseract OCR的输出来构建DEM。

MOM 通过具有能够生成唯一字符串的子网络来处理特定于图表的答案;但是,它没有直观地读取条形图文本的明确功能,并且其 LSTM 问题编码无法处理特定于图表的单词。为了探索克服这些限制,我们修改了 SAN 以创建 SANDY,SAN with DYnamic 编码模型。SANDY 使用动态编码模型 (DEM),该模型对问题中特定于图表的单词进行显式编码,并可以直接生成特定于图表的答案。DEM 是图表特定单词的动态本地词典。此词典用于对单词和答案进行编码。要创建本地单词词典,DEM 假定它有权访问 OCR 系统,该系统为其提供条形图中所有文本区域的位置和字符串。给定此框集合,DEM 会为每个框分配一个唯一的数字索引。它将索引 0 分配给图像左下角的框。然后,它会分配位置最接近索引为 1 的第一个框的框。然后,为最接近 1 但尚未分配索引的框分配索引 2,依此类推,直到图像中的所有框都分配了索引。在我们的实施中,我们假设我们有一个完美的 (oracle) OCR 系统用于输入,并且我们使用数据集的注释来实现此目的。训练数据中没有图表的文本标签超过 30 个,因此我们将本地字典设置为最多具有 M = 30 个元素。局部词典扩充了 N 元素全局词典。这使 DEM 能够创建 (M + N ) 单词词典,用于对问题中的每个单词进行编码。局部词典还用于扩充 L 元素全局答案词典。这是通过向表示动态单词的分类器添加 M 个额外类来完成的。如果预测了这些类,则使用本地词典的相应索引分配输出字符串。我们测试了两个版本的 SANDY。Oracle 版本直接使用 DVQA 数据集中的注释来构建 DEM。OCR 版本使用开源 Tesseract OCR 的输出。Tesseract 的输出以三种方式进行预处理:1) 我们只使用包含字母字符的单词,2) 我们以低于 50% 的置信度过滤单词检测,以及 3) 我们过滤单个字符的单词检测。

4.4. Training the Models

5. Experiments

6. Discussion

7. Conclusion

我们描述了 DVQA,一个用于理解条形图的数据集。我们证明了 VQA 算法无法回答简单的 DVQA 问题。我们提出了两种 DVQA 算法,它们可以处理问答中特定于图表的单词。解决 DVQA 问题将使系统能够用于智能查询大量人工生成数据,这将对科学家和企业产生巨大帮助。我们希望即将公开提供的 DVQA 数据集将促进对自然图像 VQA 通常忽略的问题的研究,例如词汇外单词和动态问题编码。我们还希望 DVQA 将成为研究视觉注意力、记忆和推理能力的重要代理任务。

相关文章:

[论文阅读] DVQA: Understanding Data Visualizations via Question Answering

原文链接:http://arxiv.org/abs/1801.08163 启发:没太读懂这篇论文,暂时能理解的就是本文提出了一个专门针对条形图问答的数据集DVQA以及一个端到端模型SANDY,模型有两个版本,Oracle和OCR。主要解决的问题是固定词表无…...

【PostgreSQL】实战篇——数据备份和恢复的最佳实践和工具

数据备份和恢复是确保数据安全性和可用性的关键环节。无论是由于硬件故障、软件错误、数据损坏还是人为错误,能够快速恢复数据都是保护业务连续性的重要措施。 PostgreSQL 提供了多种备份和恢复工具和方法,其中最常用的包括 pg_dump、pg_restore 和点时…...

代码随想录算法训练营第二十九天|93.复原IP地址 78.子集 90.子集II

93.复原IP地址 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。 有效的 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 . 分隔。 例如:"…...

【mysql】使用AbstractRoutingDataSource实现多数据源 与 获取mapper上注解

使用AbstractRoutingDataSource实现多数据源 与 获取mapper上注解 背景 随着业务发展速度越来越快,数据的增长也呈现倍数级别增长,数据库的压力,对于查询和写入等所有操作,都依赖于主库,其实有一些对于时效性要求不高…...

希沃冰点还原

要取消希沃冰点还原,可以按照以下步骤进行: 打开希沃冰点还原的应用或程序。 在应用或程序的界面上,寻找设置选项或菜单。 点击或选择设置选项或菜单,进入设置界面。 在设置界面上,查找“取消”或“停止”等相关选项…...

Hadoop服务端口号、Spark端口号、Hive端口号以及启动命令

文章目录 1. 服务端口号1.1 Hadoop相关的服务端口号1.2 Spark相关的服务端口号1.3 Hive的连接端口 2. 服务启动指令 1. 服务端口号 1.1 Hadoop相关的服务端口号 HDFS的web页面访问端口 9870HDFS 的程序访问端口 8020Yarn的访问端口 8088历史日志访问端口 19888 1.2 Spark相关…...

【C++】--类和对象(3)

🤑个人主页: 起名字真南 🤑个人专栏:【数据结构初阶】 【C语言】 【C】 目录 1 深入构造函数2 类型转换3 static成员4 友元函数5 内部类6 匿名对象 1 深入构造函数 之前我们实现构造函数的时候,初始化成员变量都是在函数体内赋值&#xff0c…...

国外电商系统开发-运维系统文件上传-高级上传

如果您要上传文件到10台服务器中,有3台服务器的路径不是一样的,那么在这种情况下您就可以使用本功能,单独执行不一样的路径 点击【高级】上传...

【MongoDB】mongodb | 部署 | 常用命令

一、概述 基于mongodb的tcp连接无数据上报,服务器强踢监测。 物联网项目,tcp协议,基于4G卡,设备由于某些原因会断开重连,但是tcp没有断开,导致tcp持续累加,浪费资源。 建立机制: 当t…...

【Chrome浏览器插件--资源嗅探猫抓】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、资源嗅探插件---猫抓二、使用步骤总结 一、资源嗅探插件—猫抓 猫抓是一个浏览器插件,可以检测当前网页中的一些资源文件,可设置嗅探的…...

2.4Mybatis——缓存机制

2.4Mybatis——缓存机制 缓存配置一二级缓存一级缓存二级缓存 合集总览:Mybatis框架梳理 讲真,Mybatis缓存这块的记忆已经模糊了。刚好此时写测试用例出现一个BUG,就以这个问题作为切入点来梳理一下。 Testpublic void test(){Address ad…...

移动技术开发:文件的读取

1 实验名称 文件的读写 2 实验目的 掌握Android中读写文件的实现方法。 3 实验源代码 布局文件代码&#xff1a; <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android&quo…...

Linux 中的 Makefile 伪目标详解

在 Linux 环境中&#xff0c;Makefile 是构建项目的重要工具&#xff0c;它通过定义规则&#xff0c;指导 make 工具如何编译和链接程序。通常我们会在 Makefile 中定义目标&#xff08;target&#xff09;&#xff0c;这些目标通常对应文件名。然而&#xff0c;有一种特殊类型…...

Java基础(中)

变量 成员变量与局部变量的区别 语法形式&#xff1a;从语法形式上看&#xff0c;成员变量是属于类的&#xff0c;而局部变量是在代码块或方法中定义的变量或是方法的参数&#xff1b;成员变量可以被 public,private,static 等修饰符所修饰&#xff0c;而局部变量不能被访问控…...

Leetcode热题100-200 岛屿数量

Leetcode热题100-200 岛屿数量 1. 题目描述2. 代码实现1. dfs算法2. bfs算法 1. 题目描述 200 岛屿数量 2. 代码实现 1. dfs算法 class Solution { public:int numIslands(vector<vector<char>>& grid) {int m grid.size(), n grid[0].size();int res 0…...

大数据新视界 --大数据大厂之 GraphQL 在大数据查询中的创新应用:优化数据获取效率

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…...

swift使用代码结构解析

多模态模型的训练llamafactory也可以训练&#xff0c;但是总的来说&#xff0c;llamafactory对多模态模型的支持还是不太多&#xff0c;ms-swift支持的多模态模型更多&#xff0c;因此有时候去找框架是否够支持相应的模型时会有所困难&#xff0c;所以对这些框架的代码也要稍微…...

五、Python基础语法(程序的输入和输出)

一、输入 输入&#xff1a;输入就是获取键盘输入的数据&#xff0c;使用input()函数。代码会从上往下执行&#xff0c;当遇到input()函数&#xff0c;就会暂停执行&#xff0c;输入内容后&#xff0c;敲回车键&#xff0c;表示本次的输入结束。input函数得到的数据类型都是字符…...

【C语言】常见概念

文章目录 库函数关键字字符和ASCll编码字符串与\0转义字符语句和语句分类注释 库函数 为了不再重复实现常见的代码&#xff0c;让程序员提升开发效率&#xff0c;C语言标准规定了一组函数&#xff0c;这些函数再由不同的编译器厂商根据标准进行实现&#xff0c;提供给程序员使…...

Electron应用创建和打包

一、创建项目目录 创建NodeJs项目目录&#xff0c;项目有关的文件、依赖包都将在本目录创建和安装。 mkdir hello_electron & cd hello_electronCMD执行以上命令将在用户目录下创建hello_electron并进入该目录。当然也可以手动在任何地方创建目录&#xff0c;cmd中cd 路径…...

代码随想录算法训练营第五六天| 99. 岛屿数量 100. 岛屿的最大面积

今日任务 99. 岛屿数量 深度搜搜 99. 岛屿数量 广度搜索 100. 岛屿的最大面积 99. 岛屿数量 题目链接&#xff1a; 99. 岛屿数量 import java.util.Scanner;public class Main {public static int[][] dir {{0, 1},{1, 0},{-1, 0},{0, -1}};public static void dfs(boolean…...

图解 微信开发者工具 小程序源码 调试、断点标记方法 , 微信小程序调试器,真机调试断点调试方法,小程序网络API请求调试方法 总结

在我们使用微信开发者工具进行微信小程序开发的时候&#xff0c;在这个微信开发者工具的代码编辑框里面我们是无法像使用vscode, idea等IDE工具时那样直接对代码打断点进行调试&#xff0c; 原因是小程序实际上他就是一个web浏览器应用的包装, 在其内部使用的还是类似chrome的…...

注释,换行,控制台输入输出,命名空间,省略return语句

注释 1.单行注释 // 2.多行注释 /*注释内容*/ 解释代码的作用&#xff1b;注释多余内容&#xff1b;注释不会影响代码执行 换行 \nstd::endl 控制台输入输出 输出123456 可一次性输出多个 std::cout<<"123456"//示例获取控制台输入内容&#xff0c;存储在…...

宠物空气净化器该怎么选?希喂,小米、安德迈这三款好用吗?

不得不说&#xff0c;虽然现在购物网站的活动不少&#xff0c;可力度都好弱啊&#xff01;我想买宠物空气净化器很久了&#xff0c;觉得有点贵&#xff0c;一直没舍得入手。价格一直没变化&#xff0c;平台小活动根本没什么优惠&#xff0c;只能寄希望于双十一了&#xff0c;准…...

【Mybatis篇】Mybatis的注解开发

&#x1f9f8;安清h&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;【计算机网络】&#xff0c;【Mybatis篇】 &#x1f6a6;作者简介&#xff1a;一个有趣爱睡觉的intp&#xff0c;期待和更多人分享自己所学知识的真诚大学生。 文章目录 &#x1f3af; Select注解 …...

NEC协议

NEC协议是一种红外线通信协议&#xff0c;广泛应用于家电遥控器和其他红外线设备之间的通信。以下是对NEC协议的详细解释和介绍&#xff1a; 一、开发背景与应用 NEC协议由日本电子公司NEC&#xff08;日本电气公司&#xff09;开发&#xff0c;因其简单、易于实现和广泛兼容…...

Meta 发布 Quest 3S 头显及 AR 眼镜原型:开启未来交互新视界

简介 在科技的浪潮中&#xff0c;Meta 始终站在创新的前沿&#xff0c;不断为我们带来令人惊叹的虚拟现实和增强现实体验。2024 年 10 月 6 日&#xff0c;让我们一同聚焦 Meta 最新发布的 Quest 3S 头显及 AR 眼镜原型&#xff08;Orion&#xff09;&#xff0c;探索这两款产品…...

【CSS】水平垂直居中

给父盒子设置属性 flex display: flex;写在父元素上这就是定义了一个伸缩容器justify-content&#xff1a;center 设置主轴对齐方式为居中&#xff0c;默认是横轴。子元素居中。align-items&#xff1a;center 设置纵轴对齐方式为居中&#xff0c;默认是纵轴。子元素居中。 给…...

欧盟零毁林法案 EUDR

EUDR法案&#xff0c;即欧盟零毁林法案&#xff08;EU Deforestation Regulation&#xff09;&#xff0c;是欧盟为了减少全球森林砍伐和退化&#xff0c;应对气候变化和生物多样性丧失而制定的一项重要法规。以下是对该法案的详细解读&#xff1a; 一、法案背景与目的 EUDR法…...

26.删除有序数组中的重复项

题目::26. 删除有序数组中的重复项 - 力扣&#xff08;LeetCode&#xff09; 思路:只要不和前面的数一样就可以移动指针&#xff0c;进行赋值 代码: class Solution { public:int removeDuplicates(vector<int>& nums) {int slow 0 ;for(int fast 1; fast < …...