LayoutLMv2:用于富视觉文档理解的多模态预训练

📖阅读时长:19分钟

🕙发布时间:2025-02-13

近日热文:全网最全的神经网络数学原理(代码和公式)直观解释
欢迎关注知乎和公众号的专栏内容
LLM架构专栏
知乎LLM专栏
知乎【柏企
公众号【柏企科技说】【柏企阅文

LayoutLMv2架构提出了新的预训练任务,旨在在单一多模态框架中对文本、布局和图像之间的交互进行建模。

具体而言,LayoutLMv2借助两流多模态Transformer编码器,不仅采用了现有的掩码视觉语言建模任务,还引入了新的文本-图像对齐和文本-图像匹配任务。这使得它在预训练阶段能够更好地捕捉跨模态交互。同时,它还将空间感知自注意力机制集成到Transformer架构中,以便模型能够充分理解不同文本块之间的相对位置关系。

一、香草版LayoutLM与LayoutLMv2的核心差异

香草版LayoutLM在微调阶段合并视觉嵌入,而LayoutLMv2则在预训练阶段利用Transformer架构整合视觉信息,学习视觉和文本信息之间的跨模态交互。

二、架构细节

(一)多模态Transformer架构

多模态Transformer架构将文本、视觉和布局信息作为输入,以建立深度跨模态交互,它是LayoutLMv2的骨干架构。

LayoutLMv2还在模型架构中引入了空间感知自注意力机制,以便更好地对文档布局进行建模。

(二)文本嵌入

按照惯例,LayoutLMv2使用WordPiece对OCR文本序列进行分词,并将每个词元分配到某个片段$ s_i \in \{[A], [B]\} $ 。然后,在序列开头添加[CLS],在每个文本片段末尾添加[SEP]。在末尾附加额外的[PAD]词元,使最终序列的长度恰好为最大序列长度$ L $ 。最终的文本嵌入是三种嵌入的总和。

  • 词元嵌入:表示词元本身。
  • 1D位置嵌入:表示词元索引。
  • 片段嵌入:用于区分不同的文本片段。

形式上,第$ i $个($ 0 \leq i < L $ )文本嵌入为:
$$ t_i = TokEmb(w_i)+PosEmb1D(i)+SegEmb(s_i) $$

(三)视觉嵌入

LayoutLMv2利用基于CNN的视觉编码器的输出特征图,将页面图像转换为固定长度的序列。具体来说,它使用ResNeXt-FPN架构作为视觉编码器的骨干,其参数可以通过反向传播进行更新。

给定文档页面图像$ I $ ,将其调整大小为$ 224×224 $ ,然后输入到视觉骨干网络中。之后,输出特征图通过平均池化变为固定大小,宽度为$ W $ ,高度为$ H $ 。接着,将其展平为长度为$ W×H $的视觉嵌入序列,该序列称为$ VisTokEmb(I) $ 。然后,对每个视觉词元嵌入应用一个线性投影层,使其维度与文本嵌入统一。

由于基于CNN的视觉骨干网络无法捕捉位置信息,因此还为这些视觉词元嵌入添加了1D位置嵌入。这个1D位置嵌入与文本嵌入层共享。对于片段嵌入,将所有视觉词元附加到视觉片段[C]。

第$ i $个($ 0 \leq i < W×H $ )视觉嵌入可以表示为:
$$ v_i = Proj(VisTokEmb(I)_i) + PosEmb1D(i) + SegEmb([C]) $$

(四)布局嵌入

布局嵌入层用于嵌入从OCR结果中轴对齐的词元边界框表示的空间布局信息,其中边界框的宽度、高度以及角坐标都被识别出来。遵循香草版LayoutLM,将所有坐标归一化并离散化为$ [0, 1000] $范围内的整数,并使用两个嵌入层分别嵌入x轴特征和y轴特征。

给定第$ i $个($ 0 \leq i < W×H + L $ )文本/视觉词元的归一化边界框$ box_i = (x_{min}, x_{max}, y_{min}, y_{max}, width, height) $ ,布局嵌入层连接六个边界框特征,构建一个词元级的2D位置嵌入,即布局嵌入:
$$ l_i = Concat(PosEmb2Dx(x_{min}, x_{max}, width), PosEmb2Dy(y_{min}, y_{max}, height)) $$

需要注意的是,CNNs执行局部变换,因此视觉词元嵌入可以一一对应地映射回图像区域,既不重叠也无遗漏。在计算边界框时,视觉词元可以视为均匀划分的网格。为特殊词元[CLS]、[SEP]和[PAD]附加一个空边界框$ box_{PAD} = (0, 0, 0, 0, 0, 0) $ 。

(五)具有空间感知自注意力机制的多模态编码器

编码器将视觉嵌入$ \{v_0, …, v_{W×H−1}\} $和文本嵌入$ \{t_0, …, t_{L−1}\} $连接成一个统一的序列,并通过添加布局嵌入来融合空间信息,得到第$ i $个($ 0 \leq i < W×H + L $ )第一层输入:
$$ x^{(0)}_i = X_i + l_i \text{,其中} X = \{v_0, …, v_{W×H−1}, t_0, …, t_{L−1}\} $$

遵循Transformer的架构,用一堆多头自注意力层和一个前馈网络构建多模态编码器。然而,原始的自注意力机制只能通过绝对位置提示隐式地捕捉输入词元之间的关系。为了有效地对文档布局中的局部不变性进行建模,有必要显式地插入相对位置信息。因此,将空间感知自注意力机制引入到自注意力层中。

三、预训练Layout LM v2

(一)掩码视觉语言建模

与香草版LayoutLM类似,使用掩码视觉语言建模(MVLM),让模型借助跨模态线索在语言方面学习得更好。随机掩码一些文本词元,并要求模型恢复被掩码的词元。同时,布局信息保持不变,这意味着模型知道每个被掩码词元在页面上的位置。编码器输出的被掩码词元的表示输入到一个基于整个词汇表的分类器中,由交叉熵损失驱动。为避免视觉线索泄露,在将原始页面图像输入视觉编码器之前,对与被掩码词元对应的图像区域进行掩码处理。

(二)文本-图像对齐

为帮助模型学习图像与边界框坐标之间的空间位置对应关系,提出了文本-图像对齐(TIA)作为一个细粒度的跨模态对齐任务。在TIA任务中,随机选择一些词元行,并在文档图像上覆盖它们对应的图像区域。这里称这种操作为“覆盖”,以避免与MVLM中的掩码操作混淆。

在预训练期间,在编码器输出之上构建一个分类层。该层根据每个文本词元是否被覆盖来预测一个标签,并计算二元交叉熵损失。考虑到输入图像的分辨率有限,并且文档中的一些元素(如图表中的符号和线条)可能看起来像被覆盖的文本区域,寻找单词大小的被覆盖图像区域的任务可能存在噪声。因此,覆盖操作在行级别进行。

(三)文本-图像匹配

此外,应用了一个粗粒度的跨模态对齐任务——文本-图像匹配(TIM),以帮助模型学习文档图像与文本内容之间的对应关系。将[CLS]处的输出表示输入到一个分类器中,以预测图像和文本是否来自同一文档页面。

常规输入为正样本。为构建负样本,图像要么被另一个文档的页面图像替换,要么被丢弃。为防止模型通过寻找任务特征来作弊,对负样本中的图像执行相同的掩码和覆盖操作。在负样本中,TIA目标标签都设置为[Covered]。在优化过程中应用二元交叉熵损失。

预训练使用IIT-CDIP数据集。

四、微调Layout LM v2

预训练的Layout LM v2在六个公开可用的基准数据集上进行微调,作为下游任务来评估性能:

  • FUNSD数据集:用于表单理解。
  • CORD数据集:用于收据理解。
  • SROIE数据集:用于收据理解。
  • Kleister-NDA数据集:用于具有复杂布局的长文档理解。
  • RVL-CDIP数据集:用于文档图像分类。
  • DocVQA数据集:用于文档图像的视觉问答。

五、参考资料

[ 论文《LayoutLMv2: Multi-modal Pre-training for Visually-rich Document Understanding》:2012.14740
](https://arxiv.org/abs/2012.14740)

本文由mdnice多平台发布


柏企科技圈
15 声望5 粉丝