VisualMRC笔记

VisualMRC: Machine Reading Comprehension on Document Images–阅读笔记

1 动机

做的事多模态结合图像的文档生成式问答。

1.1 创新点

引入了一个新的视觉机器阅读理解数据集,名为VisualMRC,其中给定一个问题和一个文档图像,机器读取和理解图像中的文本,以自然语言回答问题。还引入了一个新的模型,它扩展了现有的模型,用大尺度的文本语料库预先训练,以考虑到文档的视觉布局和内容。更集中于开发对布局多个文本和视觉内容的文档的NLU能力。包含了来自更多领域的不同图像;由当代数字网页组成;图像中至少包含了3个自然语言句子;提供长的、抽象的答案。

多模态问题回答:将文本和视觉信息作为输入上下文,这不同于基于文本的VQA,后者只将图像作为输入上下文。

1.2 背景动机

最近对机器阅读理解的研究主要集中在文本层面的理解上,但还没有达到人类对真实世界文档的视觉布局和内容的理解水平。本文数据集将促进旨在连接视觉和语言理解的研究。大多数真实世界的文档都以非纯文本格式提供(例如,HTML和PDF)提供。然而,目前在MRC的研究几乎完全集中在文本层次的理解上,而忽略了视觉布局和内容的文件(文本外观、表格、图表等)。

1.3 主要贡献

  1. 介绍了一种新的视觉机器阅读理解数据集(VisualMRC),其中包含QA对,需要机器读取并解释文档图像中的文本。该数据集是目前唯一一个关注文档图像的生成QA的数据集。

  2. 提出了一个新的模型,允许在文本语料库上预先训练,将S2S模型的NLU和NLG能力转移到视觉MRC任务。

  3. 该模型以及用作基础模型的S2S模型优于现有的最先进的VQA模型。

2 数据集

VisualMRC,包含3万对问题和一个来自网页多个领域的1万张文档图像的抽象答案。其中给定一个问题和一个文档图像,机器读取和理解图像中的文本,以自然语言回答问题。提供了许多来自各种当代网页的图像,它提供了长长的抽象的答案,可以用于评估文档图像上的NLU和NLG能力。

2.1 任务定义

对图像的理解可以分解为两个子任务:

子任务1(Region-Of-Interest (ROI)检测)。给定图像I,模型会检测一组ROI。每个ROIri都由一个边界框bi和一个语义类标签li组成。

子任务2(OCR)。给定一个ROIri,一个模型会检测到该区域内的一组单词对象。每个单词对象都由一个边界框bi、j和一个格式wi、j组成。

2.2 数据收集

数据集提供了由人类注释的

groundtruth ROIs,并将每个ROI作为子任务1和2的输出。它还提供了回答每个问题所需的relevant ROIs

众包工作者确定每个页面是否包含任何可用于创建QA对的内容,并用一个边界框注释内容(作为文档图像I)。他们被允许在屏幕截图中注释多个内容,但不允许与边界框重叠。

2.3 ground-truth ROI注释

45众包工被要求通过注释对象周围的边界框bi并将它们分类为9个类,在给定的图像I中指示特定的对象(子任务1中的ROIri)。

9个ROI类如下:

Heading/Title:页面、章节等的标题或标题。

**Subtitle/Byline:**提供作者姓名的页面或某行文本的次要或下级标题。

Paragraph/Body:将要阅读的正文。

**Picture:**不包含任何文本或数据的图片或图像。

**Caption:**文本放置在图像、数据等旁边。它提供或解释了有关图像或数据的信息。

List:通常是项目符号列表,其中每个子弹都不是一个完整的句子。

Data:表、图表、信息图表或其他包含数据或信息的数字。

Sub-data:位于数据区域内的文本。

Other:不适合于其他类别的任何其他文本。

众包工作者对每个图像I创建了三个独特的问题q和生成答案a,其中问题应该询问关于书面内容,每个问题应该只有一个答案。

众包工作者也在ground-truth ROI中选择了回答问题所需的relevant ROI。

将数据集划分为训练、开发和测试集;这些数据集分别包含21、015、2、839和6,708个问题。

2.4 数据分析

在这里插入图片描述

VisualMRC中唯一问题的比例(96.3%)高于文本VQA(80.7%)或DocVQA(72.3%)。

VisualMRC中的平均问题长度为10.55个内标识,大于文本VQA(8.12)或DocVQA(9.49)。

在这里插入图片描述

图3a显示,问题长度的分布比文本VQA和文档VQA中的长问题数目更多。

图3d显示了一个呈现问题空间多样化的单词云。

在这里插入图片描述

问题多样性高。

2.5 答案数据

答案唯一性较高,长度较长,是否类型的答案百分比也比VQA和TextVQA高。

2.6 图像文档

图像中OCR字的平均数量较多;主题类型丰富。

还在图像中多了注释ROI的创新;

在这里插入图片描述

图5显示了分解为9个语义类的ROI的数量。这些段落和标题往往与这个问题有关。

3 模型

主模块:Transformer,以一种不会导致忘记预先训练过的NLG能力的方式来扩展模型文档的视觉布局和内容,主模块将输入序列映射到嵌入序列,传递给编码器。扩展了输入序列和嵌入形式,以显著性检测来找到与这个问题相关的token。

3.1 输入序列

输入序列由问题的连接和OCR字的标记化结果形成,它们是SUBTASKS1和2的输出结果。

未考虑ROI语义角色,将与第i个ROI token在这里插入图片描述的语义类标签LI相对应的特殊标记[LRi]插入在OCR token在这里插入图片描述之前:

在这里插入图片描述

其中[S]为我们使用T5和BART作为基础模型时的‘问题’,[SEP]是‘上下文’。

3.2 输入嵌入

在这里插入图片描述

3.2.1 段嵌入

为了更明确地向模型传达文档结构的语义,为每个ROI类引入了一个可学习的段嵌入向量在这里插入图片描述,以指示输入序列中的第k个标签来自哪个ROI。

3.2.2 定位嵌入

在这里插入图片描述

3.2.3 视觉特征嵌入

在这里用到了CV模型–R-CNN,用以获取图像特征来作为输入嵌入。

为了考虑ROI和OCR标记的外观,将它们的视觉特征合并到输入嵌入中。对应于第k个标记的边界框的图像被输入到一个更快的R-CNN中来获得2048维的fc7的外观特征在这里插入图片描述

在这里插入图片描述

3.3 显著检测

为了找到与问题相关的token,计算了每个token与编码器输出的相关性:

在这里插入图片描述

在这里插入图片描述

3.3.1 损失

引入显著性损失函数来更好地监督确定需要回答问题的标签。每个Token的相关标签不会被给出,故通过对齐OCR标记和答案来制作伪参考标签。

如果满足以下两个条件,则参考标签设置为1:

(i)答案中存在OCR标记,(ii)OCR标记属于相关ROI

否则,设置为0。

显著性损失的定义为:

在这里插入图片描述

3.3.2 多任务学习
主模块:

通过最小化两个损失的加权和来训练:

在这里插入图片描述

子模块(用于ROI检测和OCR):

通过使用比一般外观嵌入更加有效的R-CNN来为每个文档图像选择最多100个得分最高的检测对象。子模块独立于主模块训练。内置的OCR系统(如 Tesseract【开发OCR的引擎】 )也可用于从每个ROI中提取OCR。

4 实验

初始模型:BART,T5 经数据集微调后:LayoutBARTLayoutT5

4.1 实验设置

评估指标:

BLEU,METEOR,ROUGE-L,CIDEr,F1.

比较原始的答案和由可靠的工人创建和验证的答案–首先从测试集中随机选择了3000对QA(在1000张图像上)。接下来,一个可靠的工作人员回答了关于这些图像的问题。然后,另一个可靠的工人验证了由第一个可靠的工人创建的答案的正确性。

Baseline:

M4C(未经过预训练),在这里插入图片描述

还使用了那些只作为输入的问题(-Q),并且只作为输入的视觉特征(-Visual)。

实现细节:
主模块:

基于BART(LARGE,(12 layers with a hidden size of 1024),T5 of huggingface Transformers(24 layers with a hidden size of 1024);

在这里插入图片描述=1.0,epochs=32,优化器:Adam,学习率=3e-5,验证集:ROUGE-L;

当一个OCR字被标记为子字token时,一个子字token的边框坐标与在 LayoutLM中的整个单词的坐标相同。

子模块(视觉嵌入):

Faster-RCNN with a ResNet-101,独立于主模块,epoch=3,batch size=16,优化器:Adam,初始学习率=1e-3。

优化M4C:

使用在这里插入图片描述代替FastText以丰富OCR的token表示。

M4C主要处理检测对象:ROI。

4.2 实验结果

将预先训练过的M4C模型的NLU任务对生成答案很有用;视觉信息和OCR标签对模型表现起了有效的作用。

在这里插入图片描述

作者表明,在ROI检测上仍有提升空间;

在这里插入图片描述

OCR系统在读取复杂的(多列)文档时未能按照正确的顺序读取token,而ROI检测使该模型能够利用视觉布局信息克服缺点。

在这里插入图片描述

添加的嵌入标签设置的有效性能对比。

在这里插入图片描述

LayoutT5在所有度量值和所有语义类上的性能都优于T5-Text。

但T5-Text和LayoutT5在图片和数据类上的表现都很差

在这里插入图片描述
在这里插入图片描述

对网页中文本的识别性能好且能有效地生成答案,但对图像的识别还有待改进【不是我方向嘿嘿】。

4.3 相关工作笔记

NLG功能对于视觉MRC任务很重要,用大规模文本语料库预先训练的序列到序列模型在NLG任务中取得了成功,因此本文用BART和T5作为基础模型,并将其修改为视觉和语言模型。

神经网络最近被用于页面分割,以便将文档图像分割成ROI,并识别每个ROI的作用。

5 思考

本文提出了一个有效的数据集,它需要一个系统能够读取和推理图像中的多个文本和非文本数据,并生成抽象的答案。

通过添加嵌入和辅助显著性检测任务来学习视觉信息,提高NLG能力以提升模型记忆。

作者提出的发展方向:更有效的预训练方法,提高对数据对象的理解,如表、图表和图表。

在CV方面用到的模型在CV方面已不具优势,本文对数据的处理过程的改进相对还比较简单,重点放在了提取文本上,网页中的图像还没有被有效地利用,尚未公开代码。

6 补充知识

HTML渲染:

整个渲染的过程其实就是将URL对应的各种资源,通过浏览器渲染引擎的解析,输出可视化的图像。

R-CNN

R-CNN 系统分为 3 个阶段,反应到架构上由 3 个模块完成。

  1. 生产类别独立的候选区域,这些候选区域其中包含了 R-CNN 最终定位的结果。
  2. 神经网络去针对每个候选区域提取固定长度的特征向量。
  3. 一系列的 SVM 分类器。

区域分类技术是语义分割的标准做法,所以 R-CNN 也可以做语义分割,并且作者拿它跟 O2P 来比较。

R-CNN 进行语义分割分为 3 个阶段。

利用 CPMC 生成候选区域,然后将这些区域调整大小为 227x227,送到神经网络当中,这是 full 阶段,区域中有背景也有前景。
这个阶段只处理候选区域的前景,将背景用输入的平均值代替,然后背景就变成了 0 ,这个阶段称为 fg。
full + fg 阶段,将背景和前景简单拼接。
到 2018 年,R-CNN 已经不是最先进的目标检测模型,也不是最先进的语义分割模型。了解到CV部分目前最强大的是YOLO模型。

YOLO模型核心思想:
  • YOLO 的核心思想就是利用整张图作为网络的输入,直接在输出层回归 bounding box(边界框) 的位置及其所属的类别。
  • faster-RCNN 中也直接用整张图作为输入,但是 faster-RCNN 整体还是采用了RCNN 那种 proposal+classifier 的思想,只不过是将提取 proposal 的步骤放在 CNN 中实现了,而 YOLO 则采用直接回归的思路。
OCR与tesseract

OCR,即Optical Character Recognition,光学字符识别,是指通过扫描字符,然后通过其形状将其翻译成电子文本的过程。对于图形验证码来说,它们都是一些不规则的字符,这些字符确实是由字符稍加扭曲变换得到的内容。

Tesseract,一款由HP实验室开发由Google维护的开源OCR(Optical Character Recognition , 光学字符识别)引擎,与Microsoft Office Document Imaging(MODI)相比,是可以不断的训练的库,使图像转换文本的能力不断增强;如果团队深度需要,还可以以它为模板,开发出符合自身需求的OCR引擎。

BART

BERT能够判别任务(discriminative tasks )但不能生成任务(generative tasks),GPT由于其自回归特性可以生成任务但不可以判别任务。2019年,Facebook AI提出了BART,这是一个新的预训练模型,结合了双向transformer和自回归transformer ,可用于文本生成和理解。

一种学习将损坏的文档映射到原始文档的预训练方法。应用在不同任务上时效果不同。

T5

idea 创新也不大,它最重要作用是给整个 NLP 预训练模型领域提供了一个通用框架,把所有任务都转化成一种形式,之后未来做 NLP 实验时,可能就不再是自己怎么调一些模型了,而是无论什么任务,直接拿来一个超大预训练模型,然后主要工作就变成了怎么把任务转换成合适的文本输入输出,而且可以用于多种任务,而模型对这些任务的区分只是根据你构建的输入输出形式。

T5 模型,还有它的训练方法。

  • Transformer Encoder-Decoder 模型;
  • BERT-style 式的破坏方法;
  • Replace Span 的破坏策略;
  • 15 %的破坏比;
    同。
T5

idea 创新也不大,它最重要作用是给整个 NLP 预训练模型领域提供了一个通用框架,把所有任务都转化成一种形式,之后未来做 NLP 实验时,可能就不再是自己怎么调一些模型了,而是无论什么任务,直接拿来一个超大预训练模型,然后主要工作就变成了怎么把任务转换成合适的文本输入输出,而且可以用于多种任务,而模型对这些任务的区分只是根据你构建的输入输出形式。

T5 模型,还有它的训练方法。

  • Transformer Encoder-Decoder 模型;
  • BERT-style 式的破坏方法;
  • Replace Span 的破坏策略;
  • 15 %的破坏比;
  • 3 的破坏时小段长度
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值