【笔记】Representation Learning for Information Extractionfrom Form-like Documents

本文提出了一种表示学习方法,用于从表单文档中抽取结构化信息。系统利用字段类型生成提取候选,借助神经网络模型学习候选表示,并进行评分与分配。关键观察包括:每个字段对应易于理解的类型,每个实例与特定关键短语相关,且关键短语多来自有限词汇变体。方法包括候选生成、神经评分模型和提取管道,旨在解决跨文档模板的结构化信息提取问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Representation Learning for Information Extractionfrom Form-like Documents

摘要

本文提出了一种表示学习,用来抽取表单文档的结构化信息。本文提出了一个提取系统,利用目标字段类型的知识来生成提取候选项,以及一个神经网络架构该架构根据文档中的邻近单词学习每个候选项的密集表示。这种方法可以用来解决(1)来自两个不同领域的看不见的文档模板的提取;(2)

1 介绍

在本文中,作者提出一种新方法,用提取候选项的学习表示从表单文档中提取结构化信息。如发票、采购订单、税务表单和保险报价等表单文档在日常业务工作流程中很常见,但目前处理它们的技术在很大程度上仍然采用手工操作,或者使用脆弱且容易出错的启发式方法进行提取。研究问题是:给定特定领域的目标字段集——例如,到期日期和发票总额——以及一组手工标记的示例,我们能学会从看不见的文档中提取这些字段吗?

来自不同供应商的发票通常提供相同类型的信息,但其布局和定位不同,如图1。此外,来自同一供应商的发票可能只在特定的值上有所不同,而其他位置的内容都是一致的。作者将文档集合中相似的视觉模式单元称为模板,在一个领域中跨模板通用的信息字段统称为模式。该模式由invoice_date和total_amount等字段组成,每个字段都与像日期和货币等类型相关联。

图1:摘录自来自不同供应商的发票样本。invoice_date字段的实例用绿色突出显示。

图1:摘录自来自不同供应商的发票样本。invoice_date字段的实例用绿色突出显示。

方法梗概:

  1. 首先使用每个目标字段的相关类型生成提取候选项(例如,所有日期作为invoice_date的候选日期)。
  2. 然后使用一个神经网络模型来学习每个提取候选项的密集表示,提取候选项独立于它所属的字段。
  3. 作者还学习了字段本身的单独表示,并使用候选项和字段表示之间的相似性,根据该字段的真实提取值的可能性对候选项进行评分。

2 Observations about Forms

作者对于表单文档做了三个关键的观察。

Observation 1:每个字段通常对应于一个易于理解的类型。

例如,发票中invoice_date字段的唯一可能的提取候选项是日期的实例,像25美元这样的货币数额显然是不正确的。由于发票上的日期少了一个数量级(日期类型对应日期类型),因此按类型限制搜索空间大大简化了问题。因此,我们使用了几种常见类型的检测器库,如日期、货币金额、整数、地址门户、电子邮件地址等。来生成候选项。

Observation 2 :每个字段实例通常与一个跟它有明显视觉关系的关键短语相关联

如图1©中的发票摘录。它包含两个日期实例,其中只有一个是真正的invoice_date,正如它旁边的单词“Date”所示。同样,(d)发票摘录中,可以很容易地区分发票编号(由“Invoice#”表示)和采购订单编号(由“PO#”表示)。作者称这种指示性词为关键短语

邻近性并不是定义关键短语的唯一标准。例如,单词“Date”并不是离图1©中真正的invoice_date实例最近的一个;上面一行中的文档编号和下面的页码显然更接近了。关键短语也不总是出现在同一行上;图1(a)显示了一个关键短语“DATE”出现在invoice_date实例上方的情况。一个有效的解决方案需要结合空间信息和文本信息。,根据作者的经验,这些空间关系在模板之间只表现出少量的变化,而且这些变化倾向于归纳跨字段和领域。

Observation 3:一个字段的关键短语很大程度上来自于特定字段的少量词汇变体

在本文收集的发票语料库中,观察到,如图1中的样本所示,近8400个发票日期实例中约93%与包含“日期”或“日期”的关键短语相关,约30%包含“发票”。只有大约7%的发票日期在关键短语中没有这两个词。同样,在作者的语料库中,近2800个due_date实例中,87%包含“due”这个词,81%包含“date”。作者在作者研究的所有其他字段中都发现了类似的模式。只有少数特定于特定字段的关键短语,这一事实表明,用少量的训练数据就可以处理这个问题。

3 Extraction Pipeline

作者利用第2节中提出的观察结果构建了一个系统来解决表单文档的信息提取任务。

给定一个文档和目标模式,作者通过字段类型从文档文本中生成每个字段的提取候选项。

然后,使用一个神经评分模型独立地对每个候选项进行评分。

最后,为每个字段分配一个最多得分候选项的提取结果。

3.1 Ingestion

作者的系统可以同时摄取本地的数字文档和扫描的文档。将每个文档渲染到一个图像中,并使用云OCR服务来提取其中的所有文本。

OCR结果中的文本以层次结构的形式排列,在叶子层次上有单个字符,在更高层次上分别有单词、段落和块。层次结构的每个级别中的节点都与文档页面的2D笛卡尔平面中表示的边界框相关联。段落中的单词按阅读顺序排列,段落和块本身也这样排列。

3.2 Candidate Generation

在第2节中,观察到目标模式中的字段对应于易于理解的类型,如日期、整数、货币数量、地址等。有一些众所周知的技术可以检测文本中这些类型的实例,从正则表达式匹配和启发式,到使用在web数据上训练的模型进行序列标记

作者将他们系统支持的每个字段类型与一个或多个候选生成器相关联。这些生成器检测从作为相应类型实例的文档中提取OCR文本的跨度。其中,生成器使用基于云的实体提取服务作为检测。例如,发票中的每个日期都将成为目标模式中的每个日期字段的候选日期,即。invoice_date,due_date和delivery_date。

由于整个提取系统的召回率不能超过候选生成器,他们的召回率要高是很重要的。然而,精度在很大程度上是scorer and assigner的责任。

3.3 Scoring and Assignment

给定在目标模式文档中每个字段的一组候选项,提取任务的关键所在是:为每个字段识别正确的提取候选项(如果有)。作者的设计选择是将其分为两个步骤:

(1)使用一个神经模型独立地计算每个候选项的分数∈[0,1],(评分)

(2)然后将最有可能是真正提取的候选项分配给每个字段。(分配)

这种评分和分配的分离允许我们只根据每个候选项的邻域来学习每个候选项的表示,而独立于其他候选项和字段。也就是说不同字段的候选项之间是不会产出干扰的,比如日期这个字段,只会找到日期相关的字段的候选项,却不会找到如$50这样的金额候选项。如果需要,还可以将任意复杂的业务规则编码到Assignment中,例如,发票的到期日期不能(按时间顺序)早于其发票日期,或者行项目价格必须等于合计。

为了简洁起见,我们省略了分配模块的细节,并使用一个简单的分配器报告结果,该分配器独立于其他字段为每个字段选择得分最高的候选项。

4 Neural Scoring Model

评分模块从模式和提取候选项中获取目标字段作为输入,生成预测分数∈[0,1]。 While the downstream assignement module consumes the scores directly ,评分器作为二元分类器进行训练和评估。候选项的目标标签取决于候选项是否与该文档和字段的基本真实值相匹配。

作者在设计评分器时的一个重要要求是,它学习了一个有意义的候选项表示。作者提出了一种体系结构,其中模型学习候选项和它所属字段的单独特征,其中候选项特征和字段特征之间的相似性决定了分数。

这样的体系结构允许单个模型学习跨字段和文档模板泛化的候选表示。可以将学习到的候选项的表示概念化为 编码其邻域中的单词形成其相关的关键短语,因为根据观察2,候选项和他们的关键短语之间的空间关系被观察到在各个领域进行推广。另一方面,一个字段的特征可以被概念化为编码通常指示它的关键短语变体,即相应的观察3。

4.1 Candidate features

作者希望他们的模型能学习候选项能捕获其邻居的表示。因此,候选项的基本特征是出现在附近的文本标记及其位置。作者使用一个简单的启发式方法来确定什么样OCR文本标记是一个给定的候选项的邻居:

在候选项周围定义了一个邻域,一直延伸到页面的左侧,并且在其上方约10%的页面高度处。任何边界框与邻域重叠超过一半的文本标记都被认为是邻居。

如图2所示,作者使用候选项及其每个相邻点的边界框的质心的二维笛卡尔坐标表示它们的位置。这些坐标通过除以相应的页面维度进行标准化,以便特征独立于输入文档的像素分辨率。通过计算一个邻居的相对位置,作为其标准化的二维坐标与候选的坐标之间的差值。作者发现的另一个有用的特征是候选项本身的绝对位置。

在这里插入图片描述


图2:invoice_date字段的候选项02/26/2015,的邻居‘Invoice’与其的相对位置是(−0.06,−0.01)

**作者做出的一个重要的设计选择是不将候选文本纳入输入中(避免过拟合)。**请注意,候选文本已经是生成候选的基础。将这些信息从输入中保留到模型中,可以避免对我们的相对较小的训练数据集的意外过拟合。例如,由于作者收集的发票都是日期在2019年之前的,因此提供日期本身作为模型的输入可能会使它了解到真正的invoice_date实例总是发生在2019年之前。

4.2 Embeddings

在这里插入图片描述


图3:神经评分模型。Pos.=位置,Cand.=候选项,Embed.=特征

如图3(a)-(d)所示,我们通过以下方式分别嵌入每个候选特征。使用单词嵌入表嵌入相邻的文本标记。每个相邻相对位置通过非线性位置特征嵌入,该位置特征由两个具有dropout的 ReLU-activated层组成。这种非线性特征允许模型学习解决细粒度的位置差异,例如,在与候选项同一行的邻居之间以及在这一行上的邻居之间。候选位置特征仅使用一个线性层进行嵌入。我们还为候选项所属的字段使用了一个嵌入表。

在一个嵌入维数为d的模型中,每个邻居的单词的大小和位置特征被设置为d。作者实验了单词的不同大小和位置特征,但没有显著差异。为了简单地说明,作者对两者都使用相同的值。由于每个候选项都被填充成有相同数量的邻居,比如N,我们表示邻居特征{h1,h2,...,hN}\{h_1,h_2,...,h_N \}{h1,h2,...,hN},每个hi∈R2dh_i \in \R^{2d}hiR2d。作者还将候选位置特征和字段特征的大小设置为d。

Neighbor Encodings

需要注意的是,初始的邻居特征hih_ihi(图3(d))是相互独立的。为了捕捉邻居之间的交互作用,我们采用***self-attention***(Vaswanietal.,2017),允许每个邻居特征受到所有其他邻居的影响。这是有用的,例如,模型降低在自身和候选之间有其他邻居的邻居。

作者将邻居特征hih_ihi打包到一个矩阵H∈RN×2dH \in \R^{N \times 2d}HRN×2d中,然后通过三个不同的线性投影矩阵Wq,Wk和Wv∈R2d×2dW_q,W_k和W_v \in \R^{2d \times 2d}Wq,WkWvR2d×2d将这些特征转换为查询、键和值的特征。
qi=hiWqK=HWkV=HWv q_i = h_iW_q \quad K=HW_k \quad V=HW_v qi=hiWqK=HWkV=HWv
对于每个邻居i,利用其查询特征qiq_iqii和键特征K得到**注意权值向量$\alpha_i = \R^N $**如下。
αi=Softmax(qiKT2d) \alpha_i = Softmax \Big(\frac{q_iK^T}{\sqrt{2d}} \Big) αi=Softmax(2dqiKT)
邻域i的自参与邻域编码h^i∈R2d\hat h_i \in \R^{2d}h^iR2d(见图3(e))是值特征V∈RN×2dV\in \R^{N \times 2d}VRN×2d,的线性组合,使用上述对所有邻居h^i=αiV\hat h_i = \alpha_iVh^i=αiV的注意权值。

正如Vaswani et al. (2017),作者使用2d\sqrt{2d}2d归一化常数来提高稳定性。利用一个具有ReLU非线性的线性投影,将自参与的邻域编码投影到一个更大的4×2d4 \times 2d4×2d的空间中,然后把它们投射回2d。

4.3 Candidate Encoding

作者将每个大小为2d的N个邻域编码(neighbor encodings)组合起来,为整个邻域(neighborhood)形成一个大小为2d的单一编码。因为作者已经在嵌入中获取了邻居相对于候选项的相对位置信息,其中重要的是要确保邻域编码(neighborhood)对特征中包含的邻域(neighbor )的(任意)顺序是不变的。我们的实验表明,最大限度地汇集邻居编码(neighbor encodings)在一起是最好的策略,略微超过平均池(mean-pooling)。

接下来,我们将邻域编码(neighborhood)∈R2d\in \R^{2d}R2d与候选项的位置特征∈Rd\in \R^dRd连接起来,并(通过ReLU-activated线性层)投影回d维,从而获得候选编码(见图3(f, h, i))。

Candidate Scoring

该candidate encoding 应该包含关于候选项的所有相关信息,包括它的位置和邻居(neighborhood)。根据作者的设计,它独立于上述候选项的所属字段。然而,这个神经网络被训练为一个二元分类器,以根据某些字段和文档的真实提取值的可能性来对候选者进行评分。

给定一个特征f∈Rdf \in \R^dfRd的字段,它的候选项编码$c \in \R^d $,计算余弦相似性(c,f)∈[−1,1]。最后,该模型的预测只是对这种相似性的一个(常数)线性重新缩放,从而使分数保持在[0,1]中。利用该预测与目标标签之间的二进值交叉熵作为损失函数进行训练。

这种结构确保了一个字段的正确候选项聚类在其字段特征附近,而且这些集群彼此相距很远。
,f)∈[−1,1]。最后,该模型的预测只是对这种相似性的一个(常数)线性重新缩放,从而使分数保持在[0,1]中。利用该预测与目标标签之间的二进值交叉熵作为损失函数进行训练。

这种结构确保了一个字段的正确候选项聚类在其字段特征附近,而且这些集群彼此相距很远。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值