Bootstrap

论文解读丨图神经网络应用于半结构化文档的命名实体识别和关系提取

​​​​​​摘要:随着用于传递和记录业务信息的管理文档的广泛使用,能够鲁棒且高效地从这些文档中自动提取和理解内容的方法成为一个迫切的需求。本次解读的文章提出利用图神经网络来解决半结构化文档中的实体识别(NER)和关系提取问题。

本文分享自华为云社区,原文作者:小菜鸟chg。

摘要:

  

随着用于传递和记录业务信息的管理文档的广泛使用,能够鲁棒且高效地从这些文档中自动提取和理解内容的方法成为一个迫切的需求。此外,基于图的表达方法对不同文档模版的变化具有灵活的适应性,从而使得图表达方式与这些管理文档的半结构化特性非常契合。正因为图神经网络(GNN)能够很好地学习出文档中数据元素间的关系,所以本次解读的文章提出利用图神经网络来解决半结构化文档中的实体识别(NER)和关系提取问题。经实验验证该文章提出的方法在单词分组、实体分类、关系预测三个任务上取得了SOTA结果,同时在FUNSD(表单理解)和IEHHR(手写婚姻档案理解)两个完全不同类别的数据集上取得的实验结果进一步验证了本次解读文章所提出的方法的泛化性。

1.方法

  

GNN被广泛应用于NER和表格提取等任务中,本次解读的文章在此基础上提出将GNN应用于提取key-value对的任务中,不仅对文档图片中的实体进行分类,而且还会对实体间的关系进行预测。  

给定一个输入文档,模型需要完成的任务包括:(a)单词分组:检测文档实体,即将相同语义的单词进行分组;(b)实体分类:将检测到的实体分为预设的类别;(c)关系预测:发现实体间配对关系。

(1)图的构造

本次解读的文章提出构造两张图来表示文档,并在此基础上训练三个不同的模型来解决对应的任务:单词分组f_1f1​、实体分类f_2f2​、关系预测f_3f3​。如图1所示,文档会被表示为由OCR结果构造的图G_1=(V_1,E_1)G1​=(V1​,E1​),其中V_1V1​是由OCR结果中每个单词组成的节点集合;对每个单词文本框左上角间的距离进行kk-近邻(取k=10k=10)来生成边E_1E1​,对各边计算分数s=f_1 (G_1)s=f1​(G1​),筛选出大于阈值\tauτ(FUNSD设为0.65,IEHHR设为0.9)的边就可以得到单词分组的结果。

图1 单词分组的图结构构造示意图

图2 实体分类和关系预测的图结构构造示意图

如图2所示,在G_1G1​的基础上得到实体(即各单词分组)后,由每个实体构造得到图G_2=(V_2,E_2)G2​=(V2​,E2​),其中V_2V2​表示由G_1G1​筛选得到的实体集合,E_2E2​是由各实体节点间全连接得到的边集合。由c=f_2 (G_2)c=f2​(G2​)得到实体分类结果;由s=f_3 (G_3)s=f3​(G3​)得到关系预测结果。

(2)图的计算

本次解读文章中的f_1f1​, f_2f2​, f_3f3​由LL个GAT层(graph attention network)作为模型骨干结构并经过训练优化得到。 

给定G=(V,E)G=(V,E)。每个节点v_ivi​的初始化表达由h_i^0=x_i,y_i,w_i,h_i,w_{embed}]hi0​=xi​,yi​,wi​,hi​,wembed​]拼接得到,其中x_i,y_i,w_i,h_ixi​,yi​,wi​,hi​是单词文本框的左上角横纵坐标和文本框宽高,w_{embed}wembed​为单词的词向量。根据GAT,每一对节点间计算出其注意力系数:

\alpha_{ij}=\frac{exp⁡(LeakyRelu(V[Wh_i||Wh_j]))}{∑_{k \in N_{v_i}}exp⁡(LeakyRelu(V[Wh_i ||Wh_k]))}αij​=∑kNvi​​​exp⁡(LeakyRelu(V[Whi​∣∣Whk​]))exp⁡(LeakyRelu(V[Whi​∣∣Whj​]))​

其中WW和VV是学习的权重参数。每个节点采用KK个attention head,将各head的输出结果拼接得到l+1l+1层的隐状态输出h_i^{l+1}hil+1​:

h_i^{l+1}=g(h_i )=||_{k=1}^K\sigma(∑_{j \in N_i}α_{ij}^k W^k h_j^l )hil+1​=g(hi​)=∣∣k=1Kσ(jNi​∑​αijkWkhjl​)

对于实体分类,将每一个节点的隐状态表示(即GAT的输出结果)传递到MLP中,得到分类结果:

c_i=σ(Wh_i^L)ci​=σ(WhiL​)

对于关系预测,将每一对节点的隐状态表示(即GAT的输出结果)的差值传递到MLP中,得到关系预测分数:s_ij=\sigma(W(|h_i^L-h_j^L |))sij=σ(W(∣hiL​−hjL​∣))

将实体分类看做是节点分类,关系预测看做是边分类,所有任务都用CE损失函数进行优化:

CE(y')=-(y∙log(y')+(1-y)∙log⁡(1-y' ))CE(y′)=−(ylog(y′)+(1−y)∙log⁡(1−y′))

其中yy是真实标注,y'y′是预测分数。

2.实验结果

从FUNSD实验结果表明,本次解读文章提出的方法与LayoutLM相比较还有优化空间,原因可能在于FUNSD的数据量较小。从IEHHR实验结果表明,该方法在表单识别的其他领域即手写记录理解上也具有一定的效果,体现了其泛化性。