elasticsearch入門系列">elasticsearch入門系列
938
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小時內刪除侵權內容。