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

网友投稿 743 2022-05-29

摘要:

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

1. 方法

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

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

(1)图的构造

本次解读的文章提出构造两张图来表示文档,并在此基础上训练三个不同的模型来解决对应的任务:单词分组

f

1

f_1

f1 、实体分类

f

2

f_2

f2 、关系预测

f

3

f_3

f3 。如图1所示,文档会被表示为由OCR结果构造的图

G

1

=

(

V

1

,

E

1

)

G_1=(V_1,E_1)

G1 =(V1 ,E1 ),其中

V

1

V_1

V1 是由OCR结果中每个单词组成的节点集合;对每个单词文本框左上角间的距离进行

k

k

k-近邻(取

k

=

10

k=10

k=10)来生成边

E

1

E_1

E1 ,对各边计算分数

s

=

f

1

(

G

1

)

s=f_1 (G_1)

s=f1 (G1 ),筛选出大于阈值

τ

\tau

τ(FUNSD设为0.65, IEHHR设为0.9)的边就可以得到单词分组的结果。

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

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

如图2所示,在

G

1

G_1

G1 的基础上得到实体(即各单词分组)后,由每个实体构造得到图

G

2

=

(

V

2

,

E

2

)

G_2=(V_2,E_2)

G2 =(V2 ,E2 ),其中

V

2

V_2

V2 表示由

G

1

G_1

G1 筛选得到的实体集合,

E

2

E_2

E2 是由各实体节点间全连接得到的边集合。由

c

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

=

f

2

(

G

2

)

c=f_2 (G_2)

c=f2 (G2 )得到实体分类结果;由

s

=

f

3

(

G

3

)

s=f_3 (G_3)

s=f3 (G3 )得到关系预测结果。

(2)图的计算

本次解读文章中的

f

1

f_1

f1 ,

f

2

f_2

f2 ,

f

3

f_3

f3 由

L

L

L个GAT层(graph attention network)作为模型骨干结构并经过训练优化得到。

给定

G

=

(

V

,

E

)

G=(V,E)

G=(V,E)。每个节点

v

i

v_i

vi 的初始化表达由

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}]

hi0 =xi ,yi ,wi ,hi ,wembed ]拼接得到,其中

x

i

,

y

i

,

w

i

,

h

i

x_i,y_i,w_i,h_i

xi ,yi ,wi ,hi 是单词文本框的左上角横纵坐标和文本框宽高,

w

e

m

b

e

d

w_{embed}

wembed 为单词的词向量。根据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]))}

αij =∑k∈Nvi exp⁡(LeakyRelu(V[Whi ∣∣Whk ]))exp⁡(LeakyRelu(V[Whi ∣∣Whj ]))

其中

W

W

W和

V

V

V是学习的权重参数。每个节点采用

K

K

K个attention head,将各head的输出结果拼接得到

l

+

1

l+1

l+1层的隐状态输出

h

i

l

+

1

h_i^{l+1}

hil+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 )

hil+1 =g(hi )=∣∣k=1K σ(j∈Ni ∑ αijk Wkhjl )

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

c

i

=

σ

(

W

h

i

L

)

c_i=σ(Wh_i^L)

ci =σ(WhiL )

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

s

i

j

=

σ

(

W

(

h

i

L

h

j

L

)

)

s_ij=\sigma(W(|h_i^L-h_j^L |))

si j=σ(W(∣hiL −hjL ∣))

将实体分类看做是节点分类,关系预测看做是边分类,所有任务都用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' ))

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

其中

y

y

y是真实标注,

y

y'

y′是预测分数。

2. 实验结果

EI企业智能 OCR

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:MPI学习(转载)
下一篇:MongoDB基本操作
相关文章