摘要:LayoutLM模型利用大规模无标注文档数据集进行文本与版面的联合预训练,在多个下游的文档理解任务上取得了领先的结果。

本文分享自华为云社区《论文解读系列二十五:LayoutLM: 面向文档理解的文本与版面预训练》,作者: 松轩。

1. 引言

文档理解或文档智能在当今社会有着广泛的用途。如图1所示的商业文档中记录有丰富、具体的信息,同时也呈现着复杂多变的版式结构,因此如何准确地理解这些文档是一个极具挑战性的任务。在本文之前,基于模型的文档理解有着如下两点不足: (1) 针对具体场景,采用人工标注数据进行端到端的有监督训练,没有利用大规模的无标注数据,且模型难以泛化至其他版式或场景;(2)利用CV或NLP领域的预训练模型进行特征提取,没有考虑文本与版面信息的联合训练。

图1. 不同版面与格式的商业文档扫描图像

针对上述不足,微软亚研院的研究者们提出了如图2所示的LayoutLM模型 [1],利用大规模无标注文档数据集进行文本与版面的联合预训练,在多个下游的文档理解任务上取得了领先的结果。具体地,LayoutLM模型很大程度上借鉴了BERT模型 [2]。在模型输入层面,LayoutLM在BERT采用的文本与位置特征基础上,新增了两个特征:(1)2-D位置特征,也就是文档版面特征;(2)文档图像全局特征与单词级别特征,采用了Faster R-CNN [3] 的ROI特征。在学习目标层面,采用了掩码视觉语言模型(Masked Visual-Language Model, MVLM)损失与多标签文档分类(Multi-label Document Classification,MDC)损失进行多任务学习。在训练数据层面,LayoutLM在IIT-CDIP Test Collection 1.0 [4] 数据集的约一千一百万张的扫描文档图像上进行预训练,该数据集包含信件、备忘录、电子邮件、表格、票据等各式各样的文档类型。文档图像的文本内容与位置信息通过开源的Tesseract [5] 引擎进行获取。

图2. LayoutLM模型结构示意图

2. LayoutLM

2.1 模型结构

LayoutLM在BERT模型结构基础上,新增了两个输入特征:2-D位置特征与图像特征。

2-D位置特征:2-D位置特征的目的在于编码文档中的相对空间位置关系。一个文档可视为一个坐标系统,其左上角即为坐标原点(0,0)(0,0)。对于一个单词,其包围盒能够以坐标(x_0,y_0,x_1,y_1)(x0​,y0​,x1​,y1​)进行表示,其中 (x_0,y_0)(x0​,y0​) 表示左上角坐标,(x_1,y_1)(x1​,y1​)表示右下角坐标。x_0x0​与x_1x1​共享嵌入层参数XX,y_0y0​与y_1y1​共享嵌入层参数YY。特别地,整个文档图像的包围盒为(0,0,W,H)(0,0,W,H),WW与HH分别表示文档图像的宽与高。

图像特征:根据单词的包围盒,LayoutLM利用ROI操作从Faster R-CNN的输出特征图中生成图像区域特征,与单词一一对应。对于特殊的[CLS]标记([CLS]标记的输出接分类层,用于文档分类任务,详情可见BERT模型),则采用整图的平均特征作为该标记的图像特征。应该注意的是,LayoutLM在预训练阶段并没有采用图像特征;图像特征仅在下游任务阶段可以选择性地加入,而生成图像特征的Faster R-CNN模型权重来自于预训练模型且不作调整。

2.2 LayoutLM预训练

预训练任务#1:掩码视觉语言模型MVLM。在预训练阶段,随机掩盖掉一些单词的文本信息,但仍保留其位置信息,然后训练模型根据语境去预测被掩盖掉的单词。通过该任务,模型能够学会理解上下文语境并利用2-D位置信息,从而连接视觉与语言这两个模态。

预训练任务#2:多标签文档分类MDC。文档理解的许多任务需要文档级别的表征。由于IIT-CDIP数据中的每个文档图像都包含多个标签,LayoutLM利用这些标签进行有监督的文档分类任务,以令[CLS]标记输出更为有效的文档级别的表征。但是,对于更大规模的数据集,这些标签并非总可获取,因此该任务仅为可选项,并且实际上在后续的LayoutLMv2中被舍弃。

2.3 LayoutLM模型微调

在该论文中,预训练的LayoutLM模型在三个文档理解任务上进行模型微调,包括表格理解、票据理解以及文档分类,分别采用了FUNSD、SROIE以及RVL-CDIP数据集。对于表格与票据理解任务,模型为每个输入位置进行{B, I, E, S, O}序列标记预测,从而检测每个类别的实体。对于文档分类任务,模型利用[CLS]标记的输出特征进行类别预测。

3. 实验

LayoutLM模型与BERT模型具有一致的Transformer [6] 网络结构,因此采用BERT模型的权重进行初始化。具体地,BASE模型为12层的Transformer,每层包含768个隐含单元与12个注意力头,共有113M参数;LARGE模型为24层的Transformer,每层包含1024个隐含单元与16个注意力头,共有343M参数。具体的训练细节与参数设定请参见论文。

表格理解。表格1与表格2展示了LayoutLM在表格理解数据集FUNSD上的实验结果,包含不同模型、不同训练数据量、不同训练时长、不同预训练任务等多种设定。首先,可以看到,引入了视觉信息的LayoutLM模型在精度上取得了大幅度的提升。其次,更多的训练数据、更长的训练时间、更大的模型能够有效地提升模型精度。最后,MDC预训练任务在数据量为1M与11M时具有相反效果,大数据量情况下仅用MVLM效果更优。

此外,原论文作者还对比了LayoutLM模型不同初始化方式对于下游任务的影响,如表格3所示。可以看到,利用RoBERTa(A Robustly Optimized BERT)模型参数进行初始化,相比于利用原始BERT模型参数进行初始化,能够一定程度提升LayoutLM模型在下游任务上的精度。

表1. FUNSD数据集上的准确率

表2. 不同训练数据量与训练时长的LayoutLM BASE模型(Text + Layout, MVLM)在FUNSD数据集上的准确率

表3. 不同初始化方式的LayoutLM模型(Text + Layout, MVLM)在FUNSD数据集上的准确率

票据理解。表格4展示了LayoutLM在票据理解数据集SROIE上的实验结果。可以看到,LayoutLM LARGE模型的结果优于当时SROIE竞赛榜单第一名的结果。

表4. SROIE数据集上的准确率

文档图像分类。表格5展示了LayoutLM在文档图像分类数据集RVL-CDIP上的实验结果。同样地,可以看到,LayoutLM取得了领先的结果。

表5. RVL-CDIP数据集上的分类准确率

4. 小结

本文介绍的LayoutLM模型利用大规模无标注文档数据集进行文本与版面的联合预训练,在多个下游的文档理解任务上取得了领先的结果。论文作者指出,更大规模的数据集与模型、在预训练阶段考虑图像特征是下一步的研究方向。

[1] Xu Y, Li M, Cui L, et al. LayoutLM: Pre-training of text and layout for document image understanding. Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. 2020: 1192-1200.

[2] Devlin J, Chang M W, Lee K, et al. BERT: Pre-training of deep bidirectional transformers for language understanding. Proceedings of NAACL-HLT. 2019: 4171-4186.

[3] Ren S, He K, Girshick R, et al. Faster R-CNN: Towards real-time object detection with region proposal networks. Advances in neural information processing systems, 2015, 28: 91-99.

[4] Lewis D, Agam G, Argamon S, et al. Building a test collection for complex document information processing. Proceedings of the 29th annual international ACM SIGIR conference on Research and development in information retrieval. 2006: 665-666.

[5] GitHub - tesseract-ocr/tesseract: Tesseract Open Source OCR Engine (main repository)

[6] Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need. Advances in neural information processing systems. 2017: 5998-6008.

想了解更多的AI技术干货,欢迎上华为云的AI专区,目前有AI编程Python等六大实战营供大家免费学习

点击关注,第一时间了解华为云新鲜技术~

论文解读丨LayoutLM: 面向文档理解的文本与版面预训练相关推荐

  1. 论文解读丨图神经网络应用于半结构化文档的命名实体识别和关系提取

    摘要: 随着用于传递和记录业务信息的管理文档的广泛使用,能够鲁棒且高效地从这些文档中自动提取和理解内容的方法成为一个迫切的需求.本次解读的文章提出利用图神经网络来解决半结构化文档中的实体识别(NER) ...

  2. 赋能RPA时代,微软发布通用文档理解预训练模型LayoutLM

    来源:微软研究院AI头条 本文约3900字,建议阅读10+分钟 有效利用文档结构信息和视觉结构信息,显著提高模型准确率. 标签:自然语言处理 [ 导读 ]近年大热的机器人流程自动化(Robotic P ...

  3. 智能文档理解:通用文档预训练模型

    预训练模型到底是什么,它是如何被应用在产品里,未来又有哪些机会和挑战? 预训练模型把迁移学习很好地用起来了,让我们感到眼前一亮.这和小孩子读书一样,一开始语文.数学.化学都学,读书.网上游戏等,在脑子 ...

  4. MSRA-万字综述 直击多模态文档理解

    文 | 付奶茶 随着最近几年多模态大火的,越来越多的任务都被推陈出新为多模态版本.譬如,传统对话任务,推出了考虑视觉信息的多模态数据集:事件抽取,也推出视频形式的多模态版本:就连 grammar in ...

  5. 别再搞纯文本了!多模文档理解更被时代需要!

    文 | Ryan 都已经2021年了,互联网已经今非昔比,20年前纯文本的日子已经一去不复返,文字已经满足不了网页.文章的需求,绝大部分都会有着精心设计的表格.图片,甚至视频.PDF文档这种富文本格式 ...

  6. 论文解读二十七:文本行识别模型的再思考

    摘要:本文研究了两个解码器(CTC[1]和 Transformer[2])和三个编码器模块(双向LSTM[3].Self-Attention[4]和GRCL[5]),通过大量实验在广泛使用的场景和手写 ...

  7. 盘点11个面向文档的开源NoSQL数据库

    MongoDB是一个介于关系数据库和非关系数据库之间的产品, 是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型. ...

  8. RethinkDB是什么?—— 面向文档的NOSQL数据库,MVCC+Btree索引,pushes JSON to your apps in realtime采用push思路,优化的ssd存储...

    RethinkDB是什么? RethinkDB是新一代的面向文档的数据库存储管理系统,原本是MySQL中针对SSD优化的一个存储引擎,后来脱离了MySQL成为了独立的系统. 数据如何存储在磁盘上? 数 ...

  9. HTML 文档流和文本流的理解

    文本流,概括地说其实就是一系列字符,是文档的读取和输出顺序,也就是我们通常看到的由左到右.由上而下的读取和输出形式,在网页中每个元素都是按照这个顺序进行排序和显示的,而position属性可以将元素从 ...

最新文章

  1. Windows Phone 7三触控程序开发
  2. python与office结合可以干什么-Python 进行Office开发(以Word为例)
  3. JAVA 反射机制 获得 private 变量
  4. 服务器搭建bbr加速
  5. linux查看虚拟内存使用,Linux 使用 vmstat 查看虚拟内存状态
  6. 目标跟踪(二):拓展卡尔曼滤波(EKF)
  7. 一杯茶的时间,上手第三方登录类库 JustAuth
  8. Pocket PC 模拟器上网设置
  9. Uber 机器学习平台 — 米开朗基罗
  10. 月薪过万的运维工程师都要会干什么
  11. 字节跳动、阿里等大厂的真实工作体验如何?看看四位程序员的自述
  12. 在Excel中将人民币金额小写转成大写(转)
  13. 如何借助「星图地球开发者平台」实现智慧环保可视化?
  14. 怎样通俗易懂地解释内卷是什么意思?
  15. 电脑耳机没声音怎么设置?(win7/win10电脑耳机没声音的解决方法)
  16. 卡通小人的眼睛跟着鼠标动
  17. MTBF是什么意思?交换机做MTBF有什么要求?MTTF、MTBF和MTTR的区别是什么?
  18. 35岁技术人如何转型做管理?阿里高级算法专家公开10大思考
  19. MAXQ1850 安全芯片
  20. stm32f407能跑linux吗_stm32能跑什么系统

热门文章

  1. grace hopper_开源日,在Grace Hopper会议上建立FOSS技能
  2. (3)<meta>标签
  3. GiHub创建项目仓库与上传项目,超详细思维导图
  4. Bootstrap条纹进度条
  5. HTML time元素
  6. es6 Object.assign()方法
  7. java编程方向_java网络编程方向具体该怎么去学
  8. total是什么牌子的电脑_干货!如何用Python在笔记本电脑上分析100GB数据(上)...
  9. python 1+2+3+4+5+6+7+8+9累加求和_求1!+2!+3!+4!+5!+6!+7!+8!+9!+10!+...+N! N阶阶乘求和算法 JAVA C Python...
  10. log日志java web_Javaweb项目中使用Log4j记录日志