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

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

摘要:

  随着用于传递和记录业务信息的管理文档的广泛使用,能够鲁棒且高效地从这些文档中自动提取和理解内容的方法成为一个迫切的需求。此外,基于图的表达方法对不同文档模版的变化具有灵活的适应性,从而使得图表达方式与这些管理文档的半结构化特性非常契合。正因为图神经网络(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 v_i 的初始化表达由 h i 0 = x i , y i , w i , h i , w e m b e d ] h_i^0=x_i,y_i,w_i,h_i,w_{embed}] 拼接得到,其中 x i , y i , w i , h i x_i,y_i,w_i,h_i 是单词文本框的左上角横纵坐标和文本框宽高, w e m b e d w_{embed} 为单词的词向量。根据GAT,每一对节点间计算出其注意力系数:

α i j = e x p ( L e a k y R e l u ( V [ W h i W h j ] ) ) k N v i e x p ( L e a k y R e l u ( V [ W h i W h k ] ) ) \alpha_{ij}=\frac{exp⁡(LeakyRelu(V[Wh_i ||Wh_j]))}{∑_{k \in N_{v_i}}exp⁡(LeakyRelu(V[Wh_i ||Wh_k]))}

其中 W W V V 是学习的权重参数。每个节点采用 K K 个attention head,将各head的输出结果拼接得到 l + 1 l+1 层的隐状态输出 h i l + 1 h_i^{l+1}

h i l + 1 = g ( h i ) = k = 1 K σ ( j N i α i j k W k h j l ) h_i^{l+1}=g(h_i )=||_{k=1}^K \sigma(∑_{j \in N_i}α_{ij}^k W^k h_j^l )

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

c i = σ ( W h i L ) c_i=σ(Wh_i^L)

对于关系预测,将每一对节点的隐状态表示(即GAT的输出结果)的差值传递到MLP中,得到关系预测分数:

s i j = σ ( W ( h i L h j L ) ) s_ij=\sigma(W(|h_i^L-h_j^L |))

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

C E ( y ) = ( y l o g ( y ) + ( 1 y ) l o g ( 1 y ) ) CE(y' )=-(y∙log(y')+(1-y)∙log⁡(1-y' ))

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

2. 实验结果

  从FUNSD实验结果表明,本次解读文章提出的方法与LayoutLM相比较还有优化空间,原因可能在于FUNSD的数据量较小。从IEHHR实验结果表明,该方法在表单识别的其他领域即手写记录理解上也具有一定的效果,体现了其泛化性。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。