百度文档智能技术与应用
导读: 文档智能技术广泛应用于金融、保险、能源、物流、医疗等行业,常见的应用场景包括财务报销单、招聘简历、企业财报、合同文书、动产登记证、法律判决书、物流单据等多模态文档的关键信息抽取、文档解析、文档比对等。本文将分享百度文档智能技术与应用。
主要包括以下五个部分的内容:
-
文档智能技术简介
-
文档智能大模型 ERNIE-Layout
-
开放文档抽取问答模型 DocPrompt
-
文档布局与表格理解技术介绍
-
PaddleNLP 文档智能技术开源与应用案例
分享嘉宾|胡腾 百度 资深研发工程师
编辑整理|张存旺 北航杭州创新研究院
出品社区|DataFun
01/文档智能技术简介
首先介绍一下文档智能技术的背景。
1. 文档智能技术做什么?
当前有很多行业在朝着数字智能化的方向发展,在业务流程中会遇到各种各样的电子文档处理需求,比如个人简历、企业财报、合同文书、报销票据等常见的文档,也有保理登记、法律文书、海关文件、病历文档等专业文档。
而文档智能技术则是为了实现对这些文档进行自动阅读、理解以及分析的一系列技术方案,具体包括文档内容解析、预训练与文档表示、布局分析、文档抽取问答、分类聚类以及内容比对等。通过这些文档智能技术可以实现各种文档场景的智慧应用。
2. 文档智能技术的挑战与方案
在技术实现上,进入预训练时代之后的文档智能技术一般处理流程是:首先输入各种类型的文档,经过不同类型的解析器来读取到各种形态的文档内容,比如文本、布局、表格、图像等,然后根据不同的任务来选择合适的预训练模型,通过一定量的标注数据进行微调,最后产出所需要的文档智能应用模型。
在这一过程中会遇到多重挑战 :首先 是文档格式繁杂、版式丰富,比如常见的 Word、PDF 和扫描文件,在一些国产化项目中还会遇到大量的 WPS、OFD 文档,所以在文档读取的时候需要对接一系列的解析器来实现,这大大增加了下游任务适配的复杂度;其次 ,文档内容的信息模态多样化,有段落文本信息、空间布局信息、结构化表格信息、图像信息等,这么多的特征维度增加了下游任务预训练模型的选取难度;此外,在文档智能的商业化应用场景中,经常会面临需求开放、业务数据少的问题,通常一家公司需要处理的文档类型比较多,但是由于数据敏感、标注难度大,可以获取到的真实数据往往很少甚至没有,这样就大大提高了技术落地的适配难度。
针对以上问题,我们形成了一些解决方案:
(1)首先针对文档格式繁杂的问题,我们采用集成的解析方案,通过统一文档的表示形式和接口来降低下游任务的适配复杂度,同时也通过不同格式文档之间的转换来增加文档特征的类型。
(2)针对文档内容模态多样化问题,我们通过最新的跨模态预训练技术来融合不同模态的特征,既可以避免预训练模型的选择难度,也可以提升多模态特征的下游任务效果。
(3)最后针对需求开放、业务数据少的问题,通过大规模开放场景下的多阶段多任务融合训练来实现模型零样本和小样本的能力,进一步降低场景化适配成本。
3. 百度文档智能技术体系
从整体来看,目前百度文档智能体系可以分为以下几个层次:
(1)底层框架采用飞桨。
(2)基础模型库与开发套件主要有:文本智能处理模型以及套件 PaddleNLP,文字识别套件 PaddleOCR,通用语言大模型 ERNIE 以及通用视觉大模型 VIMER。
(3)文档智能核心技术主要分为两部分:一部分是基于多语言跨模态布局增强的文档智能大模型 ERNIE-Layout 的一系列文档理解与分析技术,包括文档表格理解、开放文档抽取问答、文档布局分析等技术;另一部分是基于 OCR 识别与结构化大模型的办公文档识别技术。
(4)应用平台:主要支撑百度云的两个平台产品,包括智能文档分析平台 TextMind 以及图像文档结构化平台 EasyDL OCR。
今天主要围绕基于 ERNIE-Layout 的文档理解与分析技术展开。
4. 百度文档智能技术指标
从整体的技术指标上来看,基于 ERNIE-Layout 的文档智能技术方案在文档抽取问答、网页问答、布局理解以及表格理解方面共 11 项权威文档智能任务上达到了 SOTA,而且整体提升大概 4 个 PP,可以为文档智能应用提供一套全方位能力的核心技术体系。
最近一年多,百度文档智能在视觉文档理解能力上持续提升,多次登顶视觉文档问答权威榜单 DocVQA,成为当前榜单上首个突破 90 分大关的技术方案;此外,首次以通用文档智能模型在网页垂类场景下也超越网页预训练模型,登顶 WebSRC 的榜单,也说明通用文档智能模型具备了比较强的场景适应能力。
--
02/文档智能大模型 ERNIE-Layout
下面介绍多语言跨模态布局增强文档智能大模型 ERNIE-Layout 的相关技术方案。
1. ERNIE-Layout 文档预训练方案
ERNIE-Layout 文档预训练方案融合了文本、布局、图像特征。从流程上看,输入的视觉文档首先通过两路特征:左侧是文本特征,通过 OCR 读取出文字和位置布局,经过序列化模型和预训练语言模型的预处理得到文本的 token 特征;右侧图像部分通过图像编码,主要是等比分割和序列化映射等得到序列化图像的 token 特征。然后将文本和图像特征进行融合,融合一维和二维的编码拼接在一起,往上通过一系列的 Transformer 层实现特征交互,最后通过一系列的预训练任务让模型学会并理解和对齐文本语义、空间布局语义和图像语义。
与之前的一些工作相比,ERNIE-Layout 的主要技术特点 包括:第一次在预训练方面,基于视觉语言掩码模型 MLVM 以及涂膜覆盖预测 TIA 新增了阅读顺序预测任务 ROP 以及替换区域预测任务 RRP,其中阅读顺序预测任务主要是通过预测文本侧 token 的阅读顺序来强化模型对布局位置和文本阅读顺序的理解;图像替换区域预测人物则是用于强化细粒度文本图像的对齐能力,像是 TIA 的一个对称任务,TIA 是从文本侧预测文本 token 对应的图像是否被涂抹的任务,而 RRP 则是从图像测来预测图像 token 对应的区域是否被随机替换,相比于传统的涂抹覆盖,随机替换会增加预训练任务的难度。
第二个技术特点是在模型结构上,我们提出了空间解耦的注意力机制,将图文内容与一维、二维空间位置注意力进行解耦。其中,二维空间位置进一步解耦为 X 轴和 Y 轴两个方向的注意力,这样可以进一步提升模型的空间位置理解能力。
其次,在语言模型的初始化上,我们基于多语言模型 ERNIE-M,支持 96 种语言的理解;在文本侧的输入上我们引入了布局知识增强的机制,通过布局理解能力的训练化模块进行布局理解和文本重排,可以大幅度降低复杂文档的序列化文本 PPL(困惑度),这样可以提升语言模型的训练效果。
最后开源 ERNIE-Layout 的训练规模上包含了来自 IIT-CDIP 的 1000 万英文文档页面以及来自百度文库的 1000 万中文文档页面。
从下游任务的实验结果上来看,ERNIE-Layout 在文档抽取任务、文档问答任务以及文档分类任务上都能达到 SOTA 效果;从消融实验结果来看,布局知识增强、ROP 和 RRP 训练任务以及空间解耦注意力机制都能带来稳定的收益。
2. mmLayout 文档图表示技术方案
这部分以一个具体的文档理解任务来观察模型和人分别是怎么理解一个文档的。例子来自于英文 FUNSD 文档数据集,该场景需要从文档中识别出标题、问题、答案以及其他内容,这里的问题和答案对应抽取任务中的键值对。以 ERNIE-Layout 模型作为底座,那么输入的文档会被表示成细粒度的文本特征以及图像切片特征,通过这些细粒度的特征编码标识来进一步支撑下游的文档理解任务。
但是从人的视角来讲,在语言上会优先注意到具有特定语义的连续自然语言片段,比如标题、日期和传真号码;在视觉上会先将注意力集中到具有明显特征的视觉区域,比如上面的标题区域、中间的段落区域以及下面的列表区域,通常这些区域内部的文本内容更具有密切的相关性。所以我们发现模型和人类会通过不同特征粒度来完成文档理解任务,不难想到可以通过建立模型视角和人的视角之间的联系来提升模型的效果。
基于以上的分析,我们提出了一种**多粒度的跨模态文档图表示技术来建立跨粒度跨模态的特征联系。**具体地,首先来看怎么建立文档图结构,这里的文档图结构包括细粒度的文本和粗粒度的文本,以及细粒度的图像和粗粒度的图像四种节点类型,其中细粒度的文本图像节点就是 ERNIE-Layout 模型的输出 token,模型的全连接层和注意力机制可以当作细粒度节点的特征编码表示;粗粒度的文本节点以 OCR 输出的文本粒度为准,粗粒度的图像节点以 OCR 识别的片段区域经过 DBSCAN 的聚类机制进行拼接所得。
**通过细粒度节点和粗粒度节点之间的包含关系,可以建立跨粒度的编码特征。**有了细粒度的特征以及跨粒度的边之后,通过文档图的特征聚合来将细粒度的特征聚合到粗粒度的特征表示上。这里需要注意的一点是避免以直接相加的方式聚合到粗粒度文本上,因为这样会导致粗粒度文本特征产生混淆,所以我们引入了一个常识增强的机制,在聚合的同时会区分不同细粒度的常识特征,因此可以通过学习细粒度的常识编码来作为聚合的一个偏置项,这样可以调整不同细粒度特征在聚合过程中的权重。
再往上一层的粗粒度特征编码表示采用的是一个标准的 Transformer 结构,其中的全连接层可以当作粗粒度节点之间的一个边。之后在跨粒度特征融合阶段再将粗粒度特征反向融合到细粒度特征,最终以细粒度的特征来支撑下游任务的应用。之所以反向融合是因为在大部分下游文档理解任务上都是基于细粒度的 token 训练来实现的。
所以整体的思路是先将细粒度特征通过跨粒度的边进行特征融合,然后再将粗粒度特征反向融合到细粒度特症,从而实现跨模态跨粒度的文档图表示。
通过在预训练语言模型基础上引入文档图表示技术,可以发现基于 mmLayout 的 base 模型,文档图的表示在抽取任务上效果可以超过大部分不带图结构的预训练模型的 large 版本。更重要的一点是通过对比实验可以发现一层的 Transformer 结构的粗粒度编码层即可以使模型效果得到大幅度提升,甚至超过 large 模型。从模型大小上来看 ,比 base 模型提升不到 5%,不到 large 模型的一半。从消融实验来看,跨粒度的特征融合和聚合、粗粒度的特征编码以及基于文本常识增强的机制均可以带来稳定收益。
--
03/开放文档抽取问答模型 DocPrompt
接下来介绍一个基于 ERNIE-Layout 的应用,开放文档抽取问答模型 DocPrompt。
1. Prompt 式开放文档抽取问答
首先,DocPrompt 是一种基于 Prompt 范式的开放文档抽取问答技术方案 。Prompt 范式的优点:第一是 和传统的 NER 抽取模型不一样,没有固定的 Schema 或者标签集合,可以支持开放场景的训练,实现零样本抽取问答的能力;第二是 比较容易和自监督的预训练任务对齐,这样可以通过持续的多阶段训练在场景迁移的过程中提升小样本的能力;第三点是Prompt 的表述形式比较灵活,可以是抽取问题的字段名、问答任务的问题、分类任务的类别列表等等,非常便于实现多任务的统一建模。
本次开放的 DocPrompt 主要实现的是文档抽取和文档问答任务的统一建模,基于 ERNIE-Layout 预训练模型通过大规模多任务开放场景的抽取问答预训练实现通用场景零样本以及小样本抽取能力。
这里以一个法律判决书的信息抽取问答能力为例,在模型没有见过任何内置文档的前提下是可以直接完成大部分的抽取和问答任务的。如果模型在某些字段上抽取效果不符合预期,还可以通过小样本机制来进行效果优化。
2. 文档抽取问答场景示例
接下来通过几个文档抽取问答特殊示例来看看 DocPrompt 到底具备哪些文档理解能力。
这里是一个票据文档的抽取问答。第一个问题是"票据的具体名称是什么",其实是需要模型理解票据的中间抬头部分和字体突出部分,这部分是票据的名称;第二个问题是"右上方的数字是什么?",需要模型能够将问题中的空间方位值的语义和文档空间位置对应上;第三个问题是"第一个收费项目是啥?",需要模型理解语义和空间位置的顺序关系。从这三个问题回答来看,说明 DocPrompt 是具备一定空间方位语义理解能力的。
第二个示例是一个文档表格抽取问答示例,是一个多维的文档表格。可以看到,针对 3 个不同位置的多维度问题,DocPrompt 都能给出准确的答案,说明 DocPrompt 是具备多维表格语义理解能力的。
第三个示例是一个富文档的抽取问答,这里面的海报中有大量的图像和 LOGO,文本的字体变化也很大,排版非常复杂。第一个问题是"使访问者能够管理关键信息的关键设计参考因素是什么?",回答这个问题需要模型能够理解复杂视觉区域之间的逻辑关系,因为可以看到答案的提示信息分布在不同的布局区域。第二个问题是"哪个质量组的组件中有'笔'的图标",可以看到文章中是存在一个'笔'的 LOGO 的,那么要回答这个问题就需要模型能够对齐文本语义和图像语义。通过这个例子可以说明 DocPrompt 是具备图像语义理解能力的。
第四个示例是针对常见网页布局的抽取问答。这里面我们没有用到网页的半结构化信息,主要是基于网页的视觉和内容文本特征来很好地完成不同布局位点的信息抽取。说明在脱离网页半结构化信息标签的条件下,DocPrompt 是具备网页布局的语义理解能力的。
第五个例子是一个病例长文本文档的抽取问答,来自于一个新闻网站的公开病例。第一个问题是"患者为什么上臂疼痛?",答案其实是一个具有因果关系的完整句子;最后一个问题是"医生健康指导",答案是一个相关区域整个段落文本;第二个和第三个问题是抽取阶段,患者体温以及初步诊断结论都是具备一定专业性的属于抽取。从这个例子可以说明DocPrompt 具备良好的长文文本语义理解和领域迁移能力。
最后一个示例是一个跨语种的抽取问答,针对一张商户小票分别采用中文、英语、日语、泰语、西班牙语和俄语 6 种语言进行提问"商户的电话号码是什么?",模型都能给出相同并且正确的答案,说明 DocPrompt 具备较强的跨语种语义理解能力。
以上这些例子,大家感兴趣的话可以通过 Huggingface 搜索 ERENIE-Layout 的空间来体验。
--
04/文档布局与表格理解技术
接下来介绍基于跨模态文档布局与表格理解技术方案。
1. 文档布局与表格理解任务流程
文档布局与表格理解任务流程上一般分为三步,第一步是布局要素的识别,主要是识别文档页面的标题、段落、列表、图片等布局元素;第二步是是阅读顺序,将页面内的布局元素按照阅读顺序进行重排,这个流程可以大幅度降低 OCR 文本结果的 PPL,可以提升下游任务的效果;第三个任务是布局要素关联,主要用来构建比如层级化的标题关系、图表和对应标题的关系以及一些跨页跨栏的布局要素关系。
2. 文档布局与表格理解技术方案
技术实现方案上,不同的布局识别任务也会依赖不同的模态特征,在跨模态技术成熟之前通常会通过不同的模型来完成相应的任务,比如图表任务或者分栏任务一般视觉特征会优于文本特征,所以会采用视觉方案;而标题或者段落识别任务中文本特征会优于视觉特征,所以会采用文本方案;但是对于公式和列表,我们发现图像和文本的特征同等重要,所以会采用文本模型加上视觉后处理的混合方案。
在有了 ERNIE-Layout 之后,便可以通过跨模态多任务的形式来统一建模,实现多种布局类型和表格理解的任务统一,将所有布局要素识别任务转化为基于 ERNIE-Layout 的跨模态图像特征编码和基于 Transformer 的一个目标检测任务。所有的阅读顺序和要素关联任务可以转化为布局元素之间的关系预测任务。
当前基于这一套跨模态的布局和表格理解技术方案,可以实现 14 种内置布局类型的理解,也支持用户持续标注和扩展自定义的类型。表格理解任务上集成了表格检测、还原与功能分析,从图中例子可以看出支持一些复杂无框线表格的区域检测以及合并单元格的识别,也支持表头的识别,这样可以做到整个表格的功能分析,进而可以支持下一步的表格结构化。
目前基于 ERNIE-Layout 的跨模态文档布局理解和表格理解技术方案在 PubTables1M、PubLayNet 以及 DocLayNetd 等多个数据集上都达到了 SOTA 效果,并且体现出了明显的效果优势。
--
05/PaddleNLP 文档智能技术开源与应用案例
下面介绍一下基于 PaddleNLP 如何实现文档智能技术的开源接入,以及在一些具体行业上的应用案例。
1. PaddleNLP 文档智能开源功能快速接入
首先介绍一下文档智能在 PaddleNLP 中的开源情况,目前是开放了 DocPrompt 的模型使用,大家既可以通过 Huggingface 上的空间来进行试用,也可以通过 PaddleNLP 中的 TaskFlow 将模型拉到本地进行使用。同时 PaddleNLP 也是完全开源了 ERNIE-Layout 底座模型和相关代码,可以在 Github 上搜索 PaddleNLP,在仓库中获取。
本次开放的 ERNIE-Layout 模型是多语言版本,目前支持 96 种语言,已经落地中文、英文和日文的业务场景;模型效果上,目前在下游任务的平均效果优于同级别的 LayoutLM Base 模型;同步开源的还有 NER,CLS,MRC 基准任务的训练调试代码。
2. 应用案例介绍
接下来介绍几个实际应用场景的案例。
第一个案例是智能报关系统,该系统基于通用的文档表格抽取模型以及少量的数据定制,最终可以实现报关文档 30 多个字段或者属性的秒级别抽取,可以大幅度提升传统报关单场景的单据录入效率。
第二个案例是通用合同对比,主要是基于文档布局解析以及通用合同抽取模型来实现不同粒度的布局类型之间的内容对比,比如字符的比对、段落的比对和表格的比对,也可以基于抽取结果来指定比对的字段,比如比对两份合同中的甲方名称是否一致。
第三个案例是通用合同审查场景,也是基于通用合同文档抽取模型的抽取结果,结合相关的业务知识来实现一致性、完备性或者是合规性等业务逻辑审查。比如可以比较合同中的大写金额和小写金额是否一致、某些条款是否缺失、某某条款是否符合业务规范等。
上面三个案例的应用都可以通过百度云搜索等应用平台来申请体验。
以上就是今天所有的分享内容,谢谢大家。
分享嘉宾
**