摘要:随着用于传递和记录业务信息的管理文档的广泛使用,能够鲁棒且高效地从这些文档中自动提取和理解内容的方法成为一个迫切的需求。本次解读的文章提出利用图神经网络来解决半结构化文档中的实体识别(NER)和关系提取问题。
本文分享自华为云社区《论文解读系列十一:图神经网络应用于半结构化文档的命名实体识别和关系提取》,原文作者:小菜鸟 chg。
摘要:
随着用于传递和记录业务信息的管理文档的广泛使用,能够鲁棒且高效地从这些文档中自动提取和理解内容的方法成为一个迫切的需求。此外,基于图的表达方法对不同文档模版的变化具有灵活的适应性,从而使得图表达方式与这些管理文档的半结构化特性非常契合。正因为图神经网络(GNN)能够很好地学习出文档中数据元素间的关系,所以本次解读的文章提出利用图神经网络来解决半结构化文档中的实体识别(NER)和关系提取问题。经实验验证该文章提出的方法在单词分组、实体分类、关系预测三个任务上取得了 SOTA 结果,同时在 FUNSD(表单理解)和 IEHHR(手写婚姻档案理解)两个完全不同类别的数据集上取得的实验结果进一步验证了本次解读文章所提出的方法的泛化性。
1.方法
GNN 被广泛应用于 NER 和表格提取等任务中,本次解读的文章在此基础上提出将 GNN 应用于提取 key-value 对的任务中,不仅对文档图片中的实体进行分类,而且还会对实体间的关系进行预测。
给定一个输入文档,模型需要完成的任务包括:(a)单词分组:检测文档实体,即将相同语义的单词进行分组;(b)实体分类:将检测到的实体分为预设的类别;(c)关系预测:发现实体间配对关系。
(1)图的构造
本次解读的文章提出构造两张图来表示文档,并在此基础上训练三个不同的模型来解决对应的任务:单词分组 f_1_f_1、实体分类 f_2_f_2、关系预测 f_3_f_3。如图 1 所示,文档会被表示为由 OCR 结果构造的图 G_1=(V_1,E_1)_G_1=(V_1,E_1),其中 V_1_V_1是由 OCR 结果中每个单词组成的节点集合;对每个单词文本框左上角间的距离进行 k_k-近邻(取 k=10_k=10)来生成边 E_1_E_1,对各边计算分数 s=f_1 (G_1)s=_f_1(G_1),筛选出大于阈值\tau_τ(FUNSD 设为 0.65,IEHHR 设为 0.9)的边就可以得到单词分组的结果。
图 1 单词分组的图结构构造示意图
图 2 实体分类和关系预测的图结构构造示意图
如图 2 所示,在 G_1_G_1的基础上得到实体(即各单词分组)后,由每个实体构造得到图 G_2=(V_2,E_2)_G_2=(_V_2,_E_2),其中 V_2_V_2表示由 G_1_G_1筛选得到的实体集合,E_2_E_2是由各实体节点间全连接得到的边集合。由 c=f_2 (G_2)c=_f_2(_G_2)得到实体分类结果;由 s=f_3 (G_3)s=_f_3(_G_3)得到关系预测结果。
(2)图的计算
本次解读文章中的 f_1_f_1, f_2_f_2, f_3_f_3由 L_L_ 个 GAT 层(graph attention network)作为模型骨干结构并经过训练优化得到。
给定 G=(V,E)G=(V,E)。每个节点 v_i_vi_的初始化表达由 h_i^0=x_i,y_i,w_i,h_i,w_{embed}]_hi_0=_xi_,_yi_,_wi_,_hi_,_wembed_]拼接得到,其中 x_i,y_i,w_i,h_i_xi_,_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_=∑_k_∈_Nvi__exp_(LeakyRelu(V[_Whi_∣∣_Whk_]))_exp_(LeakyRelu(V[_Whi_∣∣_Whj_]))
其中 W_W_ 和 V_V_ 是学习的权重参数。每个节点采用 K_K_ 个 attention head,将各 head 的输出结果拼接得到 l+1_l_+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=1_K__σ_(_j_∈_Ni_∑_αijk__Wkhjl_)
对于实体分类,将每一个节点的隐状态表示(即 GAT 的输出结果)传递到 MLP 中,得到分类结果:c_i=σ(Wh_i^L)_ci_=σ(_WhiL_)
对于关系预测,将每一对节点的隐状态表示(即 GAT 的输出结果)的差值传递到 MLP 中,得到关系预测分数:s_ij=\sigma(W(|h_i^L-h_j^L |))si__j=σ(W(∣_hiL_−_hjL_∣))
将实体分类看做是节点分类,关系预测看做是边分类,所有任务都用 CE 损失函数进行优化:
CE(y’)=-(y∙log(y’)+(1-y)∙log(1-y’ ))CE(y′)=−(y_∙_log(y′)+(1−_y_)∙_log_(1−_y_′))
其中 y_y_ 是真实标注,y’y′是预测分数。
2.实验结果
从 FUNSD 实验结果表明,本次解读文章提出的方法与 LayoutLM 相比较还有优化空间,原因可能在于 FUNSD 的数据量较小。从 IEHHR 实验结果表明,该方法在表单识别的其他领域即手写记录理解上也具有一定的效果,体现了其泛化性。