首页 > 教程攻略 > ai资讯 >微软经典论文 | 首个用于文档阅读顺序预测的模型LayoutReader

微软经典论文 | 首个用于文档阅读顺序预测的模型LayoutReader

来源:互联网 时间:2026-08-19 14:23:08

文档解析领域的从业者都知道,阅读顺序预测是其中一块硬骨头。看似基础,但实际做起来,光是多栏排版、表格混排这些场景,就足以让传统规则束手无策。大多数OCR引擎只能按“从上到下、从左到右”的简单规则输出,遇到复杂文档基本就歇菜。深度学习模型虽能在特定领域表现亮眼,但数据标注成本极高——在本文出现之前,压根没有专门用于阅读顺序预测的大规模数据集。

EMNLP2021这篇论文,正是冲着这个痛点来的。它首次将深度学习引入阅读顺序预测,核心贡献有两个:一个叫ReadingBank的数据集,一个叫LayoutReader的模型。

构建ReadingBank:从Word文档里“白捡”标注数据

数据集的构建思路非常巧妙。既然微软Word的DocX文件本身已经存了阅读顺序信息(XML格式里就有),那直接把它当成Ground Truth不就好了?于是他们从互联网上爬了21万个DocX格式的英文文档,保留每页超过50个单词的页面,最终随机选出50万页构成数据集——训练集40万页,验证集和测试集各5万页。每页都包含单词序列及其对应的边界框坐标,单词序列从DocX中提取,边界框则从由DocX生成的PDF中提取,中间用一套着色方案做匹配。这套自动化pipeline让大规模标注成了可能,也成为了后续工作的基石。

LayoutReader模型:用Seq2Seq给阅读顺序排队

LayoutReader模型结构

模型本身是个序列到序列框架。编码器用的是LayoutLM——没错,就是那个能同时理解文本内容和布局位置的预训练模型。为了让信息流不被错误的顺序干扰,他们还设计了精细的自注意力掩码,在编码阶段就控制了哪些token之间可以“看到”。解码器则直接预测源序列中的索引,从而生成正确的阅读顺序。这种设计把文本和布局信息揉在一起,消融实验也证实了:两者缺一不可,结合后性能才真正起飞。

具体来说,LayoutReader有四个明显的优势:

  • 文本+布局融合:不仅看文字说什么,还看文字在哪儿,这对复杂文档至关重要。
  • 布局感知编码:LayoutLM本身对文档结构有理解,编码器天然能捕捉空间关系。
  • 精细的自注意力掩码:防止错误顺序的信息在编码阶段污染全局,相当于提前把跑偏的路给堵上。
  • 高效的解码策略:直接预测索引而非顺序文本,简化了解码复杂度,也提升了准确率。

点评:历史意义与当下局限

站在今天看,LayoutReader的方案确实有些过时了。但它的核心贡献——那个自动化生成带阅读顺序的文档图像数据的pipeline——至今仍有借鉴价值。不过,缺点也很明显:

  • 代码实验性质强,组织混乱,训练和部署都不太友好。
  • Seq2Seq模型在推理时太慢,现实场景里我们希望一次搞定所有预测,而非逐帧生成。
  • 预训练模型是按英文单词级别输入的,而实际生产环境中,OCR或PDF解析器吐出的往往是文本片段(行级或段级),存在粒度不匹配。
  • 只支持英文,不支持多语言,局限性较大。

值得关注的是,有社区作者基于Transformers库中的LayoutLMv3对LayoutReader做了重实现,并做了不少改进:重构代码改用LayoutLMv3ForTokenClassification训练和评估,提供了将单词级别数据集转为文本片段级别数据集的脚本,实现了更好的后处理以避免重复预测,还发布了基于layoutlmv3-large微调的预训练模型(Hugging Face上可获取)。据其readme介绍,仅使用box框信息(未用文本)就能达到论文中相当的水平。

论文地址:https://arxiv.org/pdf/2108.11591
代码地址(原版):https://github.com/microsoft/unilm/tree/master/layoutreader
社区改进版:https://github.com/ppaanngggg/layoutreader