多模态文档理解:基础概念-数据-模型

文档理解

最近在看layoutlm相关的内容,之前没有接触过,顺便把遇到的一些新概念总结一下。

基础知识

命名实体识别

命名实体识别(Named Entity Recognition,NER)是NLP的基础任务,要信息抽取或者问答系统都需要用到。

实体指的就是某个概念的实例。比如说蔬菜是一个概念,那么白菜就是一种蔬菜实体了。实体识别则是将一句话中希望获取到的实体类型抽取出来。

比如现在关注的概念有人名(PER)、地址(LOC)和物品(OBJ)。

我在人民广场吃炸鸡这句话则可以表示为PER LOC OBJ,动作的话,因为我们没关注,所以在这里直接忽略掉了。

对于序列标注问题,数据标注格式主要有BIO和BIOES两种方式,下面给出BIOES的标注方法,BIO同理

B,即Begin,表示开始
I,即Intermediate,表示中间
E,即End,表示结尾
S,即Single,表示单个字符
O,即Other,表示其他,用于标记无关字符

对于我在人民广场吃炸鸡这句话,最终可以表示为
[B-PER, O, B-ORG, I-ORG, I-ORG, E-ORG, O, B-OBJ, E-OBJ]

在这里,对于人民广场这个词来说,人是开始字符,场是结束字符,民广是中间字符。

任务

DocVQA

基于文档的视觉问答,给一张文档图像以及提问,给出答案。

以下面的图片为例,通过给出问题邮政编码是多少?,期望能够得到80202的回答,通过给出问题印章显示什么日期,期望得到1970年9月23日的回答。

参考文献:https://arxiv.org/abs/2007.00398
在这里插入图片描述

数据集

训练pretrain所需的数据集

IIT-CDIP Test Collection 1.0

包含6M的文档图像,用于做pretrained model的训练

下游任务数据集

FUNSD数据集

用于文档空间布局分析以及表单理解的数据集

SROIE数据集

用于扫描收据信息提取,训练集包含626张图片,数量不是很多,总共有3个类别,部分demo如下所示。

在这里插入图片描述

每张图片包含2个标注,一个是ocr的标注,如下所示

87,331,692,331,692,363,87,363,ONE ONE THREE SEAFOOD RESTAURANT SDN BHD
301,366,463,366,463,403,301,403,(1120908-M)
89,406,695,406,695,439,89,439,NO.1, TAMAN SRI DENGKIL, JALAN AIR HITAM
209,444,569,444,569,476,209,476,43800 DENGKIL, SELANGOR.
180,478,600,478,600,515,180,515,(GST REG. NO : 000670224384)
208,518,538,518,538,550,208,550,TAX INVOICE
87,558,330,558,330,591,87,591,TABLE 37
117,598,376,598,376,628,117,628,BILL#:V001-540338
449,597,660,597,660,632,449,632,ORDER#: 140447

一个是关键字段的标注,如下所示

{
    "company": "ONE ONE THREE SEAFOOD RESTAURANT SDN BHD",
    "date": "13-06-2018",
    "address": "NO.1, TAMAN SRI DENGKIL, JALAN AIR HITAM 43800 DENGKIL, SELANGOR.",
    "total": "35.00"
}

我们最终关注的有4个类别:如下所示,其中O表示others,即付样本

B-TOTAL
B-DATE
O
B-COMPANY

CORD数据集

  • 数据集地址:https://github.com/clovaai/cord
  • 论文地址:https://openreview.net/pdf?id=SJl3z659UH
  • 介绍:考虑到SROIE数据集规模很小,无法反映模型的真实学习能力,这里作者收集了超过11000张Indonesian票据图像。数据集类别体系有2个level,粗粒度的有8类,这8个父类包含54个子类,因此该数据集也可以做弱监督、强监督的任务。

数据demo如下所示。roi表示票据在图像中的具体位置,下面的valid line字段中是具体的OCR信息,包括位置信息以及文本信息。is_key字段表示是否为关键字,比如TOTALis_key结果就是1,表示他是我们所关注的关键字段。

在这里插入图片描述

RVL-CDIP数据集

VL-CDIP数据集由属于信函、表单、电子邮件、简历、备忘录等16个类的扫描文档图像组成,该数据集有32万张训练、4万张验证和4万张测试图像。图像的特点是低质量、噪声和低分辨率,通常为100 dpi。

下载地址为:https://www.cs.cmu.edu/~aharley/rvl-cdip/

下面是其中一张demo图像,主要包含了一些示例图像以及对应的类别信息。

在这里插入图片描述

Kleister数据集

其中使用得更多的是Kleister-NDA数据集,包含254个训练文档,83个验证文档,203个测试文档。这个任务主要的目标就是提取文档中关键字段对应的值,比如说希望获得一张图片中的party信息之类的。当然某些图片中可能也不包含完整的字段信息,下面是给出了一些标注信息,最后也就是希望我们能够获得这个结果。

effective_date=2014-05-20 jurisdiction=New_York party=Liquidmetal_Technology_Inc. party=Visser_Precision_Cast_LLC term=3_years
jurisdiction=New_York party=Oglethorpe_Power_Corporation
effective_date=2012-09-04 jurisdiction=Delaware party=Jda_Software_Group_Inc. party=Redprairie_Holding_Inc. term=2_years

DocVQA

  • 论文地址:https://arxiv.org/pdf/2007.00398.pdf
  • 数据集地址:https://docvqa.org/
  • 简介:DocVQA其实包含v1和v2,这里主要关注v1.0的数据集。训练集包含39463个问题,10194张图片,验证集包含5349个问题,1286张图片,测试集包含5188个问题,1287张图片。这里需要注意的是,同时也给出了所有的OCR识别结果,比赛时,用户也可以用任何其他的OCR引擎来获取文字识别结果。
  • 下面给出一张demo图片,在预测的时候,就是给出一张图片以及一个问题,然后需要预测出对于该问题的回答。

在这里插入图片描述

算法

LayoutLM

与Bert模型类似,LayoutLM也是一个预训练模型,如果需要验证效果,需要在下游任务中finetune,最终的模型效果验证也包含2个部分:pretrained model训练+下游任务 finetune

作者通过实验,也发现,有几个比较重要的训练技巧

  • more data, more epochs
  • pretrained model:在加载bert prertain去训练pretrained model之后,下游任务的精度提升非常明显(+13%)

猜你喜欢

转载自blog.csdn.net/u012526003/article/details/118460186