EMNLP 2021 | LayoutReader:基于ReadingBank的阅读序列抽取模型

2021年11月23日 阅读数:7
这篇文章主要向大家介绍EMNLP 2021 | LayoutReader:基于ReadingBank的阅读序列抽取模型,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

编者按:阅读序列抽取是文档智能分析中一项很是重要的任务,其旨在经过抽取扫描文档或数字商业文档中的单词并从新进行排序,将本来独立的单词组合成读者能够理解的文本。但因为平常工做生活中使用的文档,每每模板和格式各不相同,因此在出现复杂格式时,按照传统方法进行排列每每没法取得较好的效果。所以,微软亚洲研究院天然语言计算组的研究员们构建了首个大规模阅读序列数据集 ReadingBank,并基于 ReadingBank 提出了阅读序列抽取模型 LayoutReader。本文将对 ReadingBank 和 LayoutReader 的实现原理进行简要介绍,欢迎感兴趣的读者点击阅读原文了解论文中的更多详情,本文已被 EMNLP 2021 做为长文录取。python

阅读序列抽取是指经过抽取扫描文档或数字商业文档中的单词并从新进行排序,将本来独立的单词组合成读者能够理解的文本。对于大部分电子文档,如网页、Word 文档等,获取正确的阅读序列并不困难,只要分析源代码便可。可是许多扫描文档或 PDF 文档并不具有这样的信息。所以,错误的阅读序列不只让读者没法理解,还会致使文档智能分析难以进行,由于文档智能分析是将扫描文档或数字商业文档中的关键信息抽取,把非结构化的信息更加结构化,进而实现自动化文档理解的。算法

然而,现有的文档智能分析模型仍依赖文档内容的输入顺序,若关键信息部分出现错乱,颇有可能致使模型判断错误或遗漏信息。所以,阅读序列抽取是文档智能分析中一项很是重要的任务。网络

平常工做、生活中的文档具有各类不一样的模版和格式,为了提取阅读序列,传统方法每每直接将单词按照从左到右、从上到下的顺序进行排列或经过人工来匹配模版。但当出现多栏、表格等格式时,传统方法一般就会失效。若为了应对种类繁多的文档类型,则须要引入大规模预训练语言模型,借助文档中的文本信息、布局位置等信息进行阅读序列抽取。函数

封面.jpg
图1:ReadingBank 数据集中文档图片的阅读序列示意图工具

因为现有数据集存在着不能知足预训练要求且人工标注构建新数据集的成本太高等问题。因此,微软亚洲研究院天然语言计算组的研究员们利用 Word 文档中的 XML 源码,构建了首个大规模阅读序列数据集 ReadingBank,并基于 ReadingBank 提出了阅读序列抽取模型 LayoutReader。布局

首个大规模阅读序列数据集ReadingBank

当前多模态信息抽取模型(LayoutLM、LayoutLMv2)一般依赖文档中的文字内容和对应的位置。因此ReadingBank包括两部分:按照正确阅读顺序排列的文字内容(阅读序列),以及这些文字在当前页面内的位置。测试

文档收集

Word 文档有两种格式,分别为 .doc 和 .docx,这里只使用 .docx 文档,由于须要借助其解压缩后的 XML 源码。研究员们经过文档长度和语言检测 API 过滤掉低质量的文本和非英文的文档,最终共爬取了210,000个英文 .docx 文档,并随机抽取了其中的500,000页做为数据集字体

获取阅读序列

阅读序列是当前文档中按照正确阅读顺序排列的文字内容,如何在不借助人工标注的状况下获得正确的阅读顺序是个难题。为此,研究员们借助了 Word 文档中的 XML 源码,构建出了正确的阅读序列。XML 源码中记录了 Word 文档中的全部信息,并按照文档自己的阅读顺序依次排列。因而,研究员们首先借助了开源工具 python-docx 解析网络上爬取的 .docx 文档,而后逐一段落、逐一单元格遍历整个文档,进而得到阅读序列。编码

获取对应位置信息

虽然 Word 文档包含了正确的阅读顺序信息,可是 XML 源码并不记录对应的位置,而是当用户打开文档时再进行实时渲染。为了固定文字得到准确的位置信息,研究员们借助了 PDF Metamorphosis .Net 工具,将 Word 文档转换为 PDF,再经过 PDF 解析器,获取文字在 PDF 页面内的位置。spa

有了阅读序列和阅读序列中文字的位置,接下来就须要构建“阅读序列”与“对应位置”之间的一一对应。经常使用的方法一般是利用文字之间的对应关系,好比在 Word 文档中的“MSRA”与 PDF 中的“MSRA”相对应。然而当文档中一个词出现次数大于一次时,就没法创建这种简单的对应关系。

为了区别出如今不一样位置的同一个词,学术界常采用“染色法”。首先为阅读序列中的每一个单词添加序号,当某个词首次出现时标注为0,第二次出现时标注为1,以此类推。同时将这个单词进行染色,字体颜色由一个双射函数 C 肯定,这样在转换为 PDF后就能够经过解析器得到字体颜色,进而还原出本来序号。因此经过文字内容结合出现次序的序号,就能够在阅读序列和从 PDF 提取出的位置之间创建一个对应关系。
a3ca8c83c84ac559312e3c8ae4429ea7.png
8a0a0998339aa4a9782c34ea1e26b176.png
图2:经过对于 Word 文档的文字染色构建 ReadingBank 数据集

因为有了这样的对应关系,所以就能够将阅读序列中的单词添加到对应的位置,进而获得完整的数据集。研究员们按照8:1:1的比例进行随机分割,分别获得训练集、验证集和测试集。分割后的数据集信息以下表1所示。数据集各个部分分割均衡,在下游任务中也不会出现数据不平衡的状况。

9657e3fe05274c66a15077778efe052a.png
表1:随机分割后的数据集(Avg. BLEU 是指将从左向右从上到下排列与ReadingBank 相比较计算获得的 BLEU 值,ARD 是指平均相对距离,用于衡量数据集的难度)

阅读序列抽取模型LayoutReader

研究员们又基于 Seq2Seq 模型提出了 LayoutReader,并在 ReadingBank 上进行了预训练。模型输入为页面内按照从左到右、从上到下排列的文字序列,目标序列为由 ReadingBank 提供的阅读序列。(点击阅读原文,获取论文详细信息)。

编码器

为了利用位置布局信息,研究员们用 LayoutLM 做为了编码器,将输入序列和目标序列相链接,利用 mask 控制 Attention 过程当中各个位置可见的信息,从而实现 Seq2Seq 的模型。

f56eb7d8a94e33b12e42c87e32327a6a.png

解码器

因为输入序列和目标序列都来自相同的单词序列,只是顺序不一样,因此研究员们修改了解码器,将本来从词表中预测下一个单词,改成从输入序列中预测下一个单词,即预测下一个单词在输入序列中的序号。

实验与比较

基准模型

研究员们将 LayoutReader 和启发式方法、纯文本方法和纯布局方法进行了比较:

  • 启发式方法 (Heuristic Method):即将文本内容按照从左到右从上到下的顺序排列。
  • 纯文本方法:将 LayoutReader 中的编码器 LayoutLM 替换为纯文本的编码器,如 BERT 和 UniLM,这样模型将没法利用位置布局信息进行预测。
  • 纯布局方法:移除 LayoutReader 编码器 LayoutLM 中的词向量,这样模型没法利用文本信息。

评估方法

研究员们利用了两个评估指标来衡量模型的效果:

  • 平均页面 BLEU 值:BLEU 值是常见的衡量序列生成效果的指标。经过将输出序列和ReadingBank提供的目标序列相比较,能够获得对应的 BLEU 值。
  • 平均相对距离(ARD):由于模型输出序列与目标序列内容相同,区别只在于对应单词的位置不一样,因此经过对应单词的距离能够验证模型的效果。当生成过程当中出现单词缺失的状况时,ARD 同时会引入惩罚。公式以下,其中 A 是输出序列,B 是目标序列,e_k 是 A 中第 k 个单词,I(e_k, B) 则是指 e 在 B 中的序号。

72b4cd75dfb4fa61b8f7550e95910165.png

阅读序列抽取

模型的输入为从左到右、从上到下的单词序列。将输出序列与 ReadingBank 进行比较,从结果中能够看出,结合文本信息和布局信息的 LayoutReader 取得了最优的结果,相比最常使用的启发式方法,平均页面 BLEU 值提升了0.2847,平均相对距离减小了6.71。在去除文本模态或布局模态以后,结果依旧有所提升。在平均页面 BLEU 上,分别提高了0.16和0.27。而纯文本方法在平均相对距离上则有所降低,主要缘由是平均相对距离中对单词缺失的惩罚项。同时,比较纯文本方法和纯布局方法也能够看出布局信息起到了更重要的做用,纯布局方法相较于纯文本方法在平均页面 BLEU 上提高0.1左右,在平均相对距离上提高了9.0左右。

423fcf4af5d307137db447601abee0d6.png
表2 :LayoutReader 模型在 ReadingBank 数据集的实验结果(输入顺序是从左到右、从上到下)

输入顺序研究

以上的实验都是基于从左到右、从上到下的输入序列。因为人们的阅读习惯,这样的训练为后续生成起到了很大的提示做用,输入顺序研究旨在研究训练或者测试时,输入顺序对结果的影响。所以,研究员们分别设计了两个实验进行验证:

  • 在训练时将一部分训练样本打乱,再也不以从左到右、从上到下的顺序输入,而在测试时,依旧保留从左到右、从上到下的输入
  • 更进一步,在训练时依旧将一部分训练样本打乱,在测试时,输入的所有是打乱单词顺序的序列。

实验结果以下(r 是训练样本打乱的比例):

a23c1584b50241889e9288187645a872.png
表3 :训练时打乱部分样本,测试时保持从左到右、从上到下的顺序

110845c8d25503a3031b950e2188c024.png
表4:训练时打乱部分样本,测试时打乱所有样本

从结果中能够看到,相对于前三行作比较的模型,LayoutReader 结合文本信息和布局信息,可以有效对抗打乱的输入,几乎在全部场景下都保持了较好的效果。在实验二中,能够看到当在训练样本没有打乱(r=0%),即保持从左到右、从上到下的顺序输入,但测试时使用打乱样本的状况下,结果有极大的降低。研究员们认为这是因为训练时过拟合了从左到右、从上到下的顺序,进而没法应对陌生的打乱顺序的输入。这与以前的结果相符,说明位置信息对阅读顺序有着更强的指导做用。

在OCR中的应用

当前OCR已经可以很好地识别对应的文字,但却没有关注这些文字的排列顺序。所以,研究员们利用 LayoutReader 将 OCR 获得的文本行,按照阅读顺序排列。而后,将文本行对应的 bounding box 与各个单词的 bounding box 求交集,再将各个单词分配给交集最大的文本行,而且将文本行按照所包含单词的最小序号排序,进而将获得的顺序和 ReadingBank 的顺序进行比较。研究员们选择了一个开源 OCR 算法 Tesseract,和一个商用 OCR 算法,获得以下结果:

ba111981e301edbd30406f9a3134a50e.png
表 5:针对 Tesseract OCR 文本行进行对比实验

8ea4a7645a450a3245fee3133f0655cb.png
表 6:针对一种商业 OCR 引擎本文行进对比实验

从以上结果能够看出,LayoutReader 相比于两个 OCR 算法,都能获得更好的结果;相比于商用 OCR 依旧可以在 BLEU 上提升0.1左右,在 ARD 上下降2左右。

将来工做

将来,微软亚洲研究院的研究员们计划进一步从 ReadingBank 中提取阅读顺序,经过引入更多噪声和诸如旋转的变换,使得数据集更加鲁棒,可以运用于更多场景。同时,在大规模数据集 ReadingBank 的基础上,研究员们也将引入特定领域的少数人工标注,将阅读顺序抽取有着更细致的运用。

(微软亚洲研究院天然语言计算组)


欢迎关注微软中国MSDN订阅号,获取更多最新发布!

qrcode_for_gh_14ae6a09f046_258.jpg