【LayoutLM】LayoutLMv2---预训练阶段集成文档文本、布局和视觉信息

LayoutLMv2

Paper : LayoutLMv2 : Multi-modal Pre-training for Visually-rich Document Understanding

Author : Yang Xu, Yiheng Xu , Tengchao Lv , Lei Cui, Furu Wei, Guoxin Wang,Yijuan Lu, Dinei Florencio, Cha Zhang, Wanxiang Che, Min Zhang, Lidong Zhou

Affiliation : Research Center for Social Computing and Information Retrieval,Harbin Institute of Technology,

Microsoft Research Asia ,Microsoft Azure AI ,Soochow University

Publication:ACL-2021

Code : https://aka.ms/layoutlmv2.

提出了一种多模态 Transformer 模型,在预训练阶段集成文档文本、布局和视觉信息,在单个框架中学习端到端的跨模态交互。同时,Transformer 架构中集成了空间感知的自注意力机制。
LayoutLMv2 的两个新训练目标。

第一个是提出的文本图像对齐策略,它将文本行和相应的图像区域对齐。

第二种是视觉语言预训练模型中流行的文本图像匹配策略

0 前景

​ 由于其有效的模型架构和大规模无标签扫描/数字生成文档的优势,文本和布局的预训练已被证明在各种视觉丰富的文档理解任务中是有效的。作者提出了具有新预训练任务的 LayoutLMv2 架构。

1 方法

​ 作者构建了一个多模态 Transformer 架构作为 LayoutLMv2 的骨干,它以文本、视觉和布局信息作为输入来建立深度的跨模态交互。作者还在模型架构中引入了空间感知的自注意力机制,以便更好地对文档布局进行建模。

1.1 文本嵌入

​ 按照常见的做法,作者使用 WordPiece 对 OCR 文本序列进行tokenize,并将每个标记分配给某个片段 si ∈ {[A], [B]}。然后,作者在序列的开头添加 [CLS],在每个文本段的末尾添加 [SEP]。额外的 [PAD] 标记附加到末尾,以便最终序列的长度恰好是最大序列长度L。最终的文本嵌入是三个嵌入的总和。token嵌入表示token本身,一维位置嵌入表示token索引,段嵌入用于区分不同的文本段。

1.2 视觉嵌入

​ 虽然作者需要的所有信息都包含在页面图像中,但该模型很难在一个信息丰富的表示中捕捉到整个页面的详细特征。因此,作者利用基于 CNN 的视觉编码器的输出特征图,将页面图像转换为固定长度的序列。

作者使用 ResNeXt-FPN 架构作为视觉编码器的骨干,其参数可以通过反向传播进行更新。

​ 给定文档页面图像 I,将其大小调整为 224 × 224,然后输入视觉主干。之后,将输出特征图平均池化为固定大小,宽度为W,高度为H。接下来,将其展平为长度为W×H的视觉嵌入序列。该序列被命名为VisTokEmb(I)。然后将线性投影层应用于每个视觉标记嵌入,以统一文本嵌入的维度。由于基于 CNN 的视觉主干无法捕获位置信息,因此作者还在这些视觉标记嵌入中添加了一维位置嵌入。一维位置嵌入与文本嵌入层共享。对于片段嵌入,作者将所有视觉标记附加到视觉片段[C]。

​ 第 i 个 (0 ≤ i < W H) 视觉嵌入可以表示为

1.3 Layout Embedding

​ 布局嵌入层用于嵌入由 OCR 结果中的轴对齐标记边界框表示的空间布局信息,其中指出了框的宽度和高度以及角坐标。遵循 vanilla LayoutLM,作者将所有坐标标准化并离散化为[0,1000]整数,并使用两个嵌入层分别嵌入x轴特征和y轴特征。给定第 i 个 (0 ≤ i < W H + L) 文本/视觉标记 boxi = (xmin, xmax, ymin, ymax, width, height) 的归一化边界框,布局嵌入层连接六个边界框特征来构造token级 2D 位置嵌入,也称为布局嵌入

请注意,CNN 执行局部变换,因此视觉标记嵌入可以一一映射回图像区域,既不重叠也不遗漏。在计算边界框时,视觉标记可以被视为均匀划分的网格。空边界框 boxPAD = (0, 0, 0, 0, 0, 0) 附加到特殊标记 [CLS]、[SEP] 和 [PAD]。

1.4 Multi-modal Encoder with Spatial-Aware Self-Attention Mechanism

编码器将视觉嵌入 {v0, ..., vW H−1} 和文本嵌入 {t0, ..., tL−1} 连接成统一序列,并通过添加布局嵌入来融合空间信息以获得第 i 个(0 ≤ i < WH + L) 第一层输入

​ 遵循 Transformer 的架构,作者构建了多模态编码器,其中包含一堆多头自注意力层,后面是前馈网络。然而,原始的自注意力机制只能隐式地捕获输入标记与绝对位置提示之间的关系。为了有效地对文档布局中的局部不变性进行建模,有必要显式地插入相对位置信息。因此,作者将空间感知的自注意力机制引入自注意力层中。为了简单起见,以下描述针对单个自注意力层中的单个头,其中 dhead 为隐藏层大小和投影矩阵 WQ、WK、WV 。原始的自注意力机制通过投影两个向量并计算注意力分数来捕获查询 xi 和密钥 xj 之间的相关性

​ 考虑到位置范围较大,作者将语义相对位置和空间相对位置建模为偏差项,以防止添加太多参数。类似的做法在纯文本 Transformer 架构上已被证明是有效的。令 b(1D)、b(2Dx) 和 b(2Dy) 分别表示可学习的 1D 和 2D 相对位置偏差。注意力头之间的偏差不同,但在所有编码器层中共享。假设 (xi, yi) 锚定第 i 个边界框的左上角坐标,作者获得空间感知注意力分数

​ 最后,输出向量表示为所有投影值向量相对于归一化空间感知注意力分数的加权平均值

2 Pre-training Tasks

2.1 Masked Visual-Language Modeling

​ 与普通的 LayoutLM 类似,作者使用 Masked VisualLanguage Modeling (MVLM) 来使模型在跨模态线索的语言方面学习得更好。作者随机屏蔽一些文本标记,并要求模型恢复屏蔽的标记。同时,布局信息保持不变,这意味着模型知道每个屏蔽标记在页面上的位置。来自编码器的屏蔽标记的输出表示被输入到整个词汇表上的分类器中,由交叉熵损失驱动。为了避免视觉线索泄漏,作者在将原始页面图像输入到视觉编码器之前屏蔽与屏蔽标记相对应的图像区域

2.2 文本-图像对齐

​ 为了帮助模型学习图像和边界框坐标之间的空间位置对应关系,作者提出文本-图像对齐(TIA)作为细粒度的跨模态对齐任务 。在TIA任务中,随机选择一些标记行,并将它们的图像区域覆盖在文档图像上。作者将此操作称为覆盖,以避免与 MVLM 中的屏蔽操作混淆。在预训练期间,在编码器输出之上构建分类层。该层根据每个文本标记是否被覆盖(即 [Covered]或[Not Covered])来预测每个文本标记的标签,并计算二元交叉熵损失。考虑到输入图像的分辨率有限,并且图形中的一些文档元素(例如符号和条形)可能看起来像被覆盖的文本区域,因此查找单词大小的被覆盖图像区域的任务可能会有噪声。因此,覆盖操作是在行级别执行的。当 MVLM 和 TIA 同时执行时,不考虑 MVLM 中屏蔽的token的 TIA 损失。这可以防止模型学习从 [MASK] 到 [Covered] 的无用但直接的对应关系。

2.3 文本图像匹配

​ 此外,应用粗粒度跨模态对齐任务文本图像匹配(TIM)来帮助模型学习文档图像和文本内容之间的对应关系。作者将 [CLS] 处的输出表示输入分类器中,以预测图像和文本是否来自同一文档页面。常规输入是正样本。为了构建负样本,图像要么被另一个文档中的页面图像替换,要么被删除。为了防止模型通过寻找任务特征来作弊,作者对负样本中的图像执行相同的掩蔽和覆盖操作。在负样本中,TIA 目标标签全部设置为 [Covered]。作者在优化过程中应用二元交叉熵损失。

2.4 Layoutlm2.0全流程:

对图像进行ocr识别或pdf解析,获取text及bbox信息。对text中的部分【mask】一下,对image的部分【mask】一下。

图像信息:ResNeXt-FPN提取image的图像特征,这里是获得了一个尺寸为4的特征(v1、v2、v3、v4),结合一维相对位置信息1d position embedding(图中的0、1、2、3)、二维box信息2d Position Embedding(每块图像的坐标)、分段向量 segement Embedding(图像的分段向量是C)

文本+布局信息:将句子前后加上头【cls】、尾【sep】标记,中间包含【mask】标记。结合一维相对位置信息1d position embedding(图中的0、1、2、3...,即每个词的索引)、二维box信息2d Position Embedding(每个字的坐标)、分段向量 segement Embedding(文本的分段向量是A)

将图像与文本序列拼接,对应位置加上布局向量。

通过空间感知自注意力的Transformer后,得到更高层的图像及文本表示。并基于三个预训练任务训练模型,其中,任务一即任务二为2种新的预训练任务:

预训练任务一:掩码视觉语言模型(Masked Visual-Language Model)

根据上下文、图像、box信息,推断被遮挡【mask】的内容

预训练任务二:文本---图像对齐(Text-Image Alignment)

在文档图像上随机按行遮盖一部分文本,利用模型的文本部分输出进行词级别二分类,预测每个词是否被覆盖。

预训练任务三:文本---图像匹配(Text-Image Match)

随机地替换或舍弃一部分文档图像,构造图文失配的负样本。以文档级二分类的方式预测图文是否匹配。

3 实验

3.1 数据

​ 为了预训练和评估 LayoutLMv2 模型,作者从视觉丰富的文档理解区域中选择了广泛的数据集。遵循 LayoutLM,作者使用 IIT-CDIP 测试集(Lewis 等人,2006)作为预训练数据集。六个数据集用作下游任务。 FUNSD (Jaume et al, 2019)、CORD (Park et al, 2019)、SROIE (Huang et al, 2019) 和 KleisterNDA (Grali´nski et al, 2020) 数据集定义了实体提取任务,旨在提取一组预定义的键的值,作者将其形式化为顺序标记任务。 RVL-CDIP (Harley et al, 2015) 用于文档图像分类。DocVQA(Mathew et al, 2021),顾名思义,是一个针对文档图像进行视觉问答的数据集。

3.2 设置

​ 预训练 LayoutLMv2 作者用两种不同的参数大小训练 LayoutLMv2 模型。作者使用 12 层 12 头 Transformer 编码器,并在 LayoutLMv2BASE 中设置隐藏大小 d = 768。而在 LayoutLMv2LARGE 中,编码器有 24 个 Transformer 层,有 16 个头,d = 1024。两个模型中的视觉主干基于相同的 ResNeXt101-FPN 架构。 LayoutLMv2BASE 和 LayoutLMv2LARGE 的参数数量分别约为 200M 和 426M。

​ 对于编码器和文本嵌入层,LayoutLMv2 使用与 UniLMv2 相同的架构,因此它是从 UniLMv2 初始化的。对于视觉嵌入层中的 ResNeXt-FPN 部分,利用了在 PubLayNet上训练的 MaskRCNN模型的主干。模型中的其余参数是随机初始化的。

​ 在预训练期间,作者从 IIT-CDIP 数据集中对页面进行采样,如果样本太长,则选择文本序列的随机滑动窗口。作者设置最大序列长度 L = 512 并将所有文本标记分配给段 [A]。平均池化层的输出形状设置为W = H = 7,以便将特征图转换为49个视觉标记。在MVLM中,15%的文本标记被屏蔽,其中80%被特殊标记[MASK]替换,10%被从整个词汇表中采样的随机标记替换,并且10% 保持不变。在 TIA 中,15% 的行被覆盖。在 TIM 中,15% 的图像被替换,5% 的图像被丢弃。

3.3 微调 LayoutLMv2

​ 作者使用 [CLS] 输出以及池化视觉标记表示作为文档级分类任务 RVL-CDIP 中的全局特征。对于提取问答任务 DocVQA 和其他四个实体提取任务,作者遵循常见做法,并在 LayoutLMv2 输出的文本部分上构建任务指定的头层。在 DocVQA 论文中,实验结果表明,在 SQuAD 数据集上微调的 BERT 模型优于原始 BERT 模型。受此事实的启发,作者添加了一个额外的设置,即作者首先在问题生成 (QG) 数据集上微调 LayoutLMv2,然后在 DocVQA 数据集上微调。 QG 数据集包含近一百万个问答对,这些问答对是由在 SQuAD 数据集上训练的生成模型生成的。

3.3 Baseline

​ 作者在实验中选择了三个基线模型,将 LayoutLMv2 与纯文本预训练模型以及普通 LayoutLM 模型进行比较。具体来说,作者将 LayoutLMv2 与 BERT、UniLMv2和 LayoutLM的所有实验设置进行比较。作者将公开可用的 PyTorch 模型用于 BERT和 LayoutLM,并使用作者内部的 UniLMv2 模型实现。对于每种基线方法,都使用 BASE 和 LARGE参数设置 进行实验。

4 结果

4.1 实体提取任务

​ 表 2 显示了 FUNSD、CORD、SROIE 和 Kleister-NDA 四个数据集上的模型准确性,作者将其视为使用实体级 F1 分数评估的顺序标记任务。作者报告 Kleister-NDA 在验证集上的评估结果,因为测试集的真实标签和提交网站目前不可用。

​ 对于纯文本模型,UniLMv2 模型在 BASE 和 LARGE 设置方面大幅优于 BERT 模型。对于文本+布局模型,LayoutLM 系列,尤其是 LayoutLMv2 模型,与纯文本基线相比带来了显着的性能改进。与基线相比,LayoutLMv2 模型优于 SPADE解码器方法,以及基于 SPADE 解码器构建的文本+布局预训练方法 BROS,这证明了作者建模方法的有效性。

​ 此外,在相同的模态信息下,作者的 LayoutLMv2 模型也优于现有的多模态方法 PICK、TRIE以及之前排行榜上的 top1 方法,证实了作者对文本、布局和视觉信息的预训练的有效性。所有四个数据集上的最佳性能是通过LayoutLMv2-LARGE,这说明 LayoutLMv2 中的多模态预训练可以更好地从不同模态的交互中学习,从而在各种文档理解任务上实现新的 SOTA。

4.2 RVL-CDIP

​ 表 3 显示了 RVL-CDIP 数据集上的分类准确性,包括纯文本预训练模型、LayoutLM 系列以及几个基于图像的基线模型。如表所示,文本和视觉信息对于文档图像分类任务都很重要,因为文档图像是文本密集型的并且由各种布局和格式表示。因此,作者观察到 LayoutLM 系列优于那些纯文本或纯图像模型,因为它利用了文档中的多模式信息。具体来说,LayoutLMv2LARGE模型的分类精度比之前的SOTA结果显着提高了1.2%以上,达到了95.64%的准确率。这也验证了预训练的LayoutLMv2模型不仅有利于文档理解中的信息提取任务,而且通过有效的多模型训练也有利于文档图像分类任务。

4.3 DocVQA

​ 表 4 列出了 DocVQA 数据集上纯文本基线、LayoutLM 系列模型以及排行榜上前一名的平均标准化 Levenshtein 相似度 (ANLS) 分数。通过多模态预训练,在数据集上微调后LayoutLMv2 模型的性能大幅优于 LayoutLM 模型和纯文本基线。通过使用所有数据(train + dev)作为微调数据集,LayoutLMv2-LARGE单个模型的表现优于之前集成30个模型的排行榜上的前1名。在问题生成数据集(QG)上微调LayoutLMv2LARGE的设置下先后在DocVQA数据集和DocVQA数据集上,单模型性能提升超过1.6% ANLS,达到新的SOTA。

ocVQA 通常使用平均归一化列文斯坦相似度 ( ANLS ) 指标进行评估

4.4 消融研究

​ 为了充分了解不同组件的潜在影响,作者进行了消融研究,以探索视觉信息、预训练任务、空间感知自注意力机制以及不同文本端初始化模型的影响。表 5 显示了 DocVQA 验证集上的模型性能。在所有设置下,作者使用一个时期的所有 IIT-CDIP 数据对模型进行预训练。超参数与 LayoutLMv2BASE 的参数相同。"LayoutLM"表示中的普通 LayoutLM 架构,它可以被视为没有视觉模块和空间感知自注意力机制的 LayoutLMv2 架构。"X101-FPN"表示第 3.2 节中描述的 ResNeXt101-FPN 视觉主干。

5 结论

​ 在本文中,作者提出了一种用于视觉丰富的文档理解任务的多模式预训练方法,又名 LayoutLMv2。与现有的 VrDU 方法不同,LayoutLMv2 模型不仅考虑文本和布局信息,还在预训练阶段将图像信息集成到单个多模态框架中。

​ 同时,空间感知的自注意力机制被集成到 Transformer 架构中,以捕获不同边界框之间的相对关系。此外,还利用新的预训练目标来加强不同模态之间跨模态交互的学习。 6个不同VrDU任务的实验结果表明,预训练的LayoutLMv2模型在文档智能领域大大优于SOTA基线,这极大地有利于许多现实世界的文档理解任务。

相关推荐
newxtc2 分钟前
【AiPPT-注册/登录安全分析报告-无验证方式导致安全隐患】
人工智能·安全·ai写作·极验·行为验证
技术仔QAQ17 分钟前
【tokenization分词】WordPiece, Byte-Pair Encoding(BPE), Byte-level BPE(BBPE)的原理和代码
人工智能·python·gpt·语言模型·自然语言处理·开源·nlp
神一样的老师19 分钟前
去中心化联邦学习与TinyML联合调查:群学习简介
机器学习
陌上阳光39 分钟前
动手学深度学习70 BERT微调
人工智能·深度学习·bert
正义的彬彬侠1 小时前
sklearn.datasets中make_classification函数
人工智能·python·机器学习·分类·sklearn
belldeep1 小时前
python:用 sklearn 转换器处理数据
python·机器学习·sklearn
ctrey_1 小时前
2024-11-13 学习人工智能的Day26 sklearn(2)
人工智能·学习·sklearn
安静的_显眼包O_o1 小时前
from sklearn.preprocessing import Imputer.处理缺失数据的工具
人工智能·python·sklearn
安静的_显眼包O_o2 小时前
from sklearn.feature_selection import VarianceThreshold.移除低方差的特征来减少数据集中的特征数量
人工智能·python·sklearn
AI服务老曹2 小时前
不仅能够实现前后场的简单互动,而且能够实现人机结合,最终实现整个巡检流程的标准化的智慧园区开源了
大数据·人工智能·深度学习·物联网·开源