多模态算法兴起的背景

办公文档是各行各业最基础也是最重要的信息载体,不管是金融、政务、制造业、零售行业等等,各种类型的文档都是业务流转过程中必不可少的数字资料。以银行信贷为例,一笔信贷业务在贷前贷中到贷后全流程中,需要涉及财报、银行流水、贸易合同、发票、尽职调查报告、审批意见书、会议纪要等等材料,材料的格式和内容均差异很大,但都是针对同一笔信贷业务、从不同角色视角、不同业务角度的情况描述。每一种材料都承载了重要的业务数据,对这些材料进行全面而准确的价值提取,并汇集所有材料实现全流程数据穿透,是前述信贷业务目前急需解决的问题。如何提取海量历史文档中的关键要素和数据,构建数据资产,也是当前各个行业做数字化智能化转型的重要课题。

图1 银行信贷业务所需各类材料及关键要素 

其中最核心的技术难点,是从原始的办公文档中发现和提取有价值的内容,也是数据资产构建的前置条件。达观数据长期致力于办公文档的智能化处理,即通过对文档格式的全面解析、对文档内容的全面理解,从而提取出核心业务信息。与传统的纯文本语义理解问题不一样的是,办公文档除了文字以外还有大量的表格、图片都包含了重要数据,甚至文档的排版、布局、分栏、文字格式等等,也隐含了一段文字中是否存在关键要素,以及要素重要性大小的信息。


因此对于办公文档的智能分析,需要综合考虑文字、图像、排版布局等信息,单纯处理文字信息的方法很难取得令人满意的效果。近几年兴起的多模态算法在这一方向上展现出了很好的效果,微软亚洲研究院的研究人员所提出的通用文档理解预训练模型LayoutLM模型就是具有代表性的方法,模型目前是开源的并且已经发布到3.0版本,各个版本都在一系列文档理解任务重取得了领先的效果。


总体而言,LayoutLM算法将文本信息和视觉信息做了深层次的融合,实现了多模态端到端预训练,利用大量无标注的文档数据进行文本、布局版面的联合学习,可以学习到文档中的局部不变形信息,避免了传统方法需要大量标注数据的问题。LayoutLM一经推出就在多个下游的文档理解任务上取得了领先的结果。本文将重点围绕LayoutLM的核心算法及其演进过程做介绍,并介绍达观基于多模态技术的优化调整,以解决实际场景中真实办公文档的各类数据问题。

  BERT  

介绍LayoutLM之前,需要先介绍一下BERT,两个模型具有较大相关性。在NLP领域,BERT是近几年最具有突破性的一项技术,于2018年10月由Google AI研究院提出的一种预训练模型,刷新了NLP领域多项评测任务的SOTA,引起了各行业的广泛关注。Bert采用了Transformer架构中的Encoder模块,使得Bert有更好的特征提取能力和语言表征能力。BERT结构有预训练与微调两步。在Bert的预训练中引入两大核心任务:1、遮蔽语言模型(MLM)随机遮挡输入token,训练目标是恢复被遮盖的token  2、下一句预测(NSP)一个二分类任务,其将一对语句作为输入,判断其是否为连贯的语句。

经过预训练的Bert模型增加了它的上下文信息的提取能力和捕捉句子间的语义联系。由于有好的预训练模型,在做特定的下游任务时,通过简单的fine-tune的方式就能取得不错的效果。

LayoutLM 1.0

LayoutLM 1.0很大程度上借鉴了BERT模型,包括模型的预训练和微调。在NLP的任务中通常是只利用了文本信息,在办公文档中有丰富的视觉信息可以被编码到预训练模型中以及作为模型的特征输入。

LayoutLM1.0以Bert架构作为主干,增加了布局版面的特征:

  1. 2-D位置特征;与建立序列中单词位置模型的位置嵌入不同,二维位置嵌入的目的是建立文档中的相对空间位置。
  2. 图像特征:为了使用文档的图像特征并将图像特征与文字对齐,在模型中添加一个图像嵌入向量层。采用了Faster R-CNN提取特征。

LayoutLM 1.0的模型结构如下图所示:
图2  LayoutLM 1.0模型结构 

其中,2-D位置特征编码了文档中的空间位置关系(其中2-d位置信息来自于OCR识别的结果,并且会把所有的坐标点标准化到0-1000)。一个文档可视为一个坐标系统,其左上角即为坐标原点(0,0)。对于一个单词,其边界框能够以左上点坐标(x0,y0)和右下点坐标(x1,y1)进行表示,最终转成2d position embedding。同时,LayoutLM以单词的切片输入到FasterR-CNN模型中,生成每个单词切片所对应的图像特征。每个单词token都有相应的图像特征,而在bert中起始都有一个[CLS],而这个token所对应的图像特征则是将整个图片作为FasterR-CNN的输入所获得的,以此来对齐图像特征和文本特征的长度。这样对需要用到[CLS]标记表示的下游任务有利。


LayoutLM预训练任务设置了掩码视觉语言模型(Masked Visual-Language Model, MVLM)损失与多标签文档分类(Multi-label Document Classification,MDC)损失进行多任务学习。MVLM和Bert的掩码策略相似。也是选择15%的tokens进行预测,80%的tokens用[MASK]标记替换这些被掩码的tokens,10%的tokens里用一个随机的token替换,10%的tokens还是用原先的tokens。该模型用交叉熵损失作为损失函数来预测被掩码的tokens。但LayoutLM1.0保留其2-D位置信息,使模型根据上下文、位置信息,推断被遮挡的词汇。以此来减少视觉特征和语言特征的gap。


MDC多标签文档分类,聚合不同文档特征,增强模型对于文档级别的语义表征能力。由于MDC损失需要每个文档图像的标签,而这些标签对于较大的数据集来说可能并不存在,所以在预训练过程中它是可选的。


实验证明,LayoutLM 1.0在多个数据集上都取得了非常大的精度的提升。首先是表格理解任务,对表单的文本内容进行序列标注。使用的数据集是FUNSD,包括199个表单,9707个语义实体和31485个单词。每个语义实体包括一个唯一标识符、一个标签(即,问题、答案、标题或其他)、一个边界框、一个与其他实体的链接列表和一个单词列表。数据集分为149个训练样本和50个测试样本。在FUNSD数据集上,加入视觉信息的LayoutLM1.0,精度上相比于纯文本模型有了明显提升,同时在增加数据量、增加训练时间的情况下还能进一步提升,具体结果如下表所示:


票据理解任务上,需要提取票据信息,对每个词进行语义标签分类。采用SROIE数据集进行效果测试,包含626个训练票据和347个测试票据。每个票据都被组织成带有边框的文本行列表。每张票据都标有四种类型的实体(公司,日期,地址,总数)。LayoutLM LARGE的效果已经超过了当时竞赛榜单第一名的模型。详细的模型结果如下表所示:

文档图像分类任务目的是预测文档图像的类别。选定RVL-CDIP数据集,该数据集由 16 类 40 万张灰度图像组成,每类 25000 张图像。有 32 万张训练图像,4 万张验证图像和 4 万张测试图像。类别包括 : 书信、表格、电子邮件、手写体、广告、科学报告、科学出版物、说明书、文件夹、新闻文章、预算、发票、演示文稿、问卷、简历、备忘录等。同样LayoutLM 1.0也取得了领先的效果。

LayoutLM 2.0

在 LayoutLM 1.0 推出一年之后,研究人员对模型做了进一步的升级,提出了 LayoutLM 2.0 模型。2.0模型在多模态预训练阶段直接引入了图像信息,对文本、图像和布局信息进行联合建模。2.0模型的主体结构相比LayoutLM 1.0有比较大的变化,是带有空间感知自注意力机制(spatial-aware self-attention)的 Transformer 编码器网络,将视觉向量和文本向量拼接到统一的序列,并且添加布局向量融合空间信息,得到第一层的输入x(0):

其中v表示图像的序列,t表示文本序列,W和H为图像宽和高,文本序列的长度。因为原始的自注意力机制只能隐式地捕获带有绝对位置提示的输入标记之间的关系,为了有效地对文档布局中的局部不变形建模,需要明确地插入相对位置信息。因此,文中提出了空间感知的自注意力机制。原始的自注意力机制通过映射query Xi和key Xj 这两个向量,然后计算它们两个的注意力分数:

考虑到位置的取值范围太大,模型将语义相对位置和空间相对位置建模为偏置项,以防止添加太多的参数,并明确地将它们添加到注意力得分中。

b1D,b2Dx,b2Dy分别表示一维和二维相对位置偏置。不同的注意力头偏置是不同的,但是在全部的编码器层是共享的。假设(xi,yi)表示第 i 个边界框的左上角坐标,则空间感知注意力得分为:

最终,输出向量表示为全部映射 value 向量相对于归一化空间感知得分的加权平均值:

进一步帮助模型在一维文本序列之上学习到文档图像中不同文本块之间的相对位置关系。
图3 LayoutLM 2.0模型结构 

在预训练任务上,LayoutLM 2.0在掩码视觉语言模型(Masked Visual-Language Model, MVLM)之外,还增加了文本图像对齐(text-image alignment)和文本图像匹配(text-image matching)2个自监督任务,帮助模型提升语言能力、对齐模态信息。

01 掩码视觉语言模型

2.0对掩码视觉语言模型任务进行了扩展,要求模型根据上下文、图像信息和布局信息还原文本中被遮盖的词,遮盖操作同时遮盖文本中的词和图像中的对应区域,但保留空间位置信息。在 MVLM 中,15% 的文本标记被屏蔽,其中 80% 被特殊标记 [MASK] 替换,10% 被从整个词汇表中采样的随机标记替换,10%保持原样。

02 文本—图像对齐

文本—图像对齐是一种细粒度的多模态对齐任务,在文档图像上随机按行遮盖一部分文本,利用模型的文本部分输出进行词级别二分类,判断text token是否被覆盖,计算二元交叉熵损失:

其中是二元标签值0或者1,是属于标签值的概率。有15%的行被覆盖该任务为了帮助模型学习图像和边界框坐标之间的空间位置对应关系。

03文本—图像匹配

现有工作证明,粗粒度的文本—图像匹配任务有助于帮助模态信息对齐。该任务随机替换或舍弃一部分文档图像,构造图文失配的负样本,并以文档级别二分类的方式预测图文是否匹配,以此来对齐文本和图像的匹配信息。该任务中有15%的图像被替换,5%的被舍弃掉。

实验结果表明,LayoutLM 2.0的精度又取得了不错的提升。在表单理解FUNSD数据集上,F1达到84.20%,结果如下表所示:

票据理解任务,使用了 CORD 和 SROIE 两个数据集来评估模型性能。CORD 数据集包含了1,000张扫描票据数据,需要从中抽取名称、价格、数量等30类关键信息实体。LayoutLM 2.0 模型在此数据集上微调后F1值达到96.01%。SROIE 数据集上LayoutLM 2.0 模型的效果位列 SROIE 测评任务三榜首。

在文档图像分类 RVL-CDIP 数据集上, LayoutLM 2.0 模型的预测准确率相比之前的最好结果提升了1.2个百分点,达到了95.64%。

针对复杂布局长文档理解,使用Kleister-NDA数据集进行效果评测。该数据集包含了254篇合同文档数据,页面布局复杂且内容较长,结果表明LayoutLM2.0模型性能相比1.0取得了进一步提升,结果如下表所示:

文档视觉问答任务,需要模型将文档图像和问题作为输入,并输出一个答案。研究人员使用 DocVQA 数据集来验证效果,该数据集共包含超过一万页文档上的五万组问答对。LayoutLM 2.0 性能相比 LayoutLM 1.0 和纯文本模型有了显著进步。甚至性能超出了原榜首方法1.6个百分点,达到86.72%。

LayoutLM v3

2022年微软又推出了LayoutLM v3,相对于其前两个版本,主要改进点是优化图像特征表示方法,以统一的方式将文本和图像嵌入结合起来。现有的文档多模态模型要么提取 CNN 网格特征,要么依赖像 Faster R-CNN这样的目标检测模型来提取区域特征用于图像嵌入,这会使的模型有更多计算开销,或需要依赖区域标注的数据。受 ViT和ViLT的启发,LayoutLM v3用图像块的线性投影特征表示文档图像,然后将它们输入多模态 Transformer。具体来说,将文档图像的大小调整为W⨉H ,然后将图像分割成固定大小(P⨉P)的块,将图像块线性投影到相应的维度,并将它们展平为长度为(M=HW/P2)的序列,再加上可学习的一维位置向量后得到图像向量。具体实现上,将图像利用二维卷积进行处理,使用卷积核大小为P、步长也为P实现将图像分块和线性映射,然后线性嵌入与文本标记对齐。这样计算复杂度更低,模型结构如下图所示:图4 LayoutLM 3.0模型结构 

预训练任务上,为了使文本和图像模态之间更好的对齐,提出了文字-图像块对齐Word-Patch Alignemnt(WPA),文本与图像还分别使用了无监督预训练任务遮罩语言模型Masked Language Modeling(MLM)以及遮罩图像模型Masked Image Modeling(MIM)。

01 文本-图像块对齐

在 v3 中所有的图像都是基于图像块的方式直接映射为图像特征,mask 的最小单位变成了图像块。由于MIM和MLM随机遮盖了部分文本词和图像块,模型无法显式地学习这种文本词和图像块之间的细粒度对齐关系。因此文本-图像块对齐任务预测的是未被masked文本对应的图像块是否被覆盖。具体来说,对于那些没有被masked文本token并且该token所对应的图像token也没有被覆盖,那么会给一个对齐的标签,如果他的图像token被覆盖了,则标一个未对齐的标签。并且那些被masked的文本不参与损失函数的计算。损失函数:

其中L-L'表示没有被masked的文本tokens的数量,是那些没有被masked的文本tokens上的是否对齐的标签。

02 遮罩语言模型

在MLM的预训练任务中,类似Bert,对30%文本token做掩码,但保留对应的二维位置(布局信息),而掩码策略不是单字随机掩码,而是用松柏分布()采样跨度的长度来进行掩码。由于保持布局信息不变,这个目标有助于模型学习布局信息与文本和图像上下文之间的对应关系。MLM的训练目标模型目标是根据未被遮盖的图文和布局信息还原文本中被遮盖的词。损失函数:

其中yl表示被masked的tokens,M',L',XM',YL'分别表示图像序列被masked的位置,文本序列被masked的位置,被masked的tokens的图像和文本的上下文。

03遮罩图像模型

在MIM预训练任务中采用的是BEiT中的MIM预训练任务,先将图片转化成两种特征:一是类似文本Tokenizer,通过编码学习将图像变成离散的视觉符号(visual token);二是,将图像切成多个小块(patch),每个块相当于一个字符。并使用逐块屏蔽策略随机屏蔽40%左右的图像token,预测被masked掉的实际图像token长什么样。MIM的训练目标是重建被mask掉的图像token。因此,MIM 有助于学习高级布局结构而不是噪声比较多的低级细节。损失函数:
      

其中Xm表示被masked的图像token。


研究人员在四个多模态任务上对 LayoutLMv3 进行了效果测试,包括基于FUNSD数据集测试表单理解任务效果、基于CORD数据集测试票据理解任务效果、基于RVL-CDIP数据集测试文档图像分类任务效果、基于DocVQA数据集测试文档视觉问答任务效果,整体测试结果如下表所示。在这些任务上,LayoutLMv3 取得了比以前的工作更好或相当的结果。例如,对于LARGE模型规模,LayoutLMv3 在 FUNSD 数据集上取得了92.08的 F1 分数,大大超过了此前 LARGE 规模的 SOTA 结果(85.14)。

总结   

LayoutLM经过从1.0到3.0版本的迭代,不断优化模型对文档中文本、布局和视觉信息的预训练性能,对于复杂版式文档的处理效果和处理效率都在逐步提升,不仅在多种多模态任务上取得了SOTA,而且在中文数据集EPHOIE上也取得了SOTA,证明了多模态技术对于文档理解的可行性和未来巨大的潜力。
 目前达观基于多模态文档理解技术进行自主研发,处理复杂国际单据、复杂版式文档场景数据,诸如合同、发票、研报、表单等等,也取得了非常优秀的效果,并在银行、证券、报关、制造业等多个不同行业实现了成功落地,为各个行业带来了巨大的效益提升。

图5 各行业版式和内容各异的文档 

真实场景中样本数据的质量,比论文所使用的的公开数据集的文档质量要差很多,算法需要处理的图像质量问题会更加复杂,包括样本倾斜、透视变换、样本模糊、阴影问题、水印划痕、手写体等等,使用通用的ocr算法难以解决以上问题,就会导致传递给多模态算法输入的文本和坐标有较大偏差,最终算法输出结果就会有比较明显的效果退化。因此在应用多模态算法的时候,达观使用自研的ocr算法,自动实现高精度的倾斜校正、透视变换修正、样本增强、去阴影去水印等等处理,将真实样本还原为高质量的纯净样本,将负面影响降到最低。


图6 真实样本存在模糊、阴影、水印、印章等等问题


进行了ocr通用处理之后,达观基于多模态算法的原理做了较多自研和改进,主要是为了解决各行各业各个场景里真实样本的布局变化非常之多的情况,以及要识别的关键要素差异很大的情况,重点强化了算法对文档布局信息的感知和分析,尤其是针对不同布局模块之间的空间关系、语义关系,引入了CRF模型做针对性的建模,改进之后效果有了将近10%的提升。另外在一些场景的实践中,我们做对比实验的时候发现,LayoutLM v3的效果不如v2稳定,在个别场景中甚至效果不如v2,但是v3的计算效率提升比较明显,更加贴合实际线上运行的性能要求。现阶段我们也在尝试调整和优化模型,让抽取效果和计算效率达到一个更高水平的平衡。实际落地过程中还有很多问题值得研究和攻关,未来基于零样本、少样本的进一步尝试也是非常值得期待的。


图7 达观自研多模态模型解决国际票据审核难题

作者简介

纪传俊,达观数据联合创始人,复旦大学硕士和优秀毕业生,上海市人工智能高级工程师职称获得者,中国计算机学会(CCF)会员。达观数据银行业智能机器人负责人,负责重大项目架构设计和产品研发管理工作。上海市青年科技启明星获得者,因为在人工智能技术赋能产业应用方面的杰出成果,入选36氪“X·36Under36”S级青年创业者名册。

原盛大创新院AI系统主管,原盛大文学数据中心主管,在盛大创新院期间负责起点中文网和酷六视频的个性化推荐系统以及有你APP用户关系挖掘,在盛大文学期间全面负责大数据挖掘任务调度系统,智能审核系统和反作弊系统。

作者 达观数据

达观数据是一家专注于文本智能处理技术的国家高新技术企业,获得2018年度中国人工智能领域最高奖项 “吴文俊人工智能科技奖”,也是本年度上海市唯一获奖企业。达观数据利用先进的自然语言理解、自然语言生成、知识图谱等技术,为大型企业和政府客户提供文本自动抽取、审核、纠错、搜索、推荐、写作等智能软件系统,让计算机代替人工完成业务流程自动化,大幅度提高企业效率。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注