論文紹介:Graph Convolution for Multimodal Information Extraction from Visually Rich Documents

model

グラフ畳み込みを画像に対して実施した後に、BiLSTM-CRFでエンティティを認識する。グラフ畳み込みの入力は、既存の研究がエッジの情報がないものを扱っていたのに対して、この研究ではエッジの情報をマルチレイヤーパーセプトロンを使用して予測して、その情報をもとにグラフ畳み込みを計算している。

OCR処理によって生成されたバウンディングボックスと、その中の文字情報のリスト。それぞれのノードは他のノードと全結合の形でエッジでつながっている。

グラフ畳み込みの処理は複数の層を使ってベクトルを取得する。そのベクトルとテキストのトークンの埋め込み情報をWord2Vectreを使って取得した後に、二つをconcatenateさせる。

各ノードに対して、BiLSTM-CRFを用いてテキストの埋め込み表現を獲得する。

ノード間のエッジの情報は、{r_{ij}}=[x_{i, j}, y_{i, j}, \frac{w_i}{h_i}, \frac{h_i}{h_i}, \frac{w_j}{h_i}] という形で表現される。

GraphConvolution

Graph Convolution of Document : 出力は、各ノードのエンティティの隠れ層と、リンクに対する隠れ層の両方を出力する。

グラフ畳み込みの計算をするときには、attentionが適応されている。

リンクに対する埋め込み表現は、ノード  t_i に対してMLPを通すことで取得している。

CRF

【技術解説】CRF(Conditional Random Fields) - ミエルカAI は、自然言語処理技術を中心とした、RPA開発・サイト改善・流入改善レコメンドエンジンを開発

CRFの参考になるページ

埋め込み表現

word2vec

 

各矩形の文字列を埋め込みベクトルに変換する。

埋め込み表現の連結

各ノードに対して、ward2vecで取得した単語の埋め込み表現とGraphConvから得た埋め込み表現をconcatして、BiLSTM、FCL、CRFの順に連結されていく。

f:id:memo_dl:20201213225238p:plain

 x_i : i番目のノード

ノードのタグ付け

グラフ畳み込みの重みにシグモイド層を追加することで、各ノードを事前定義したクラスに分類する処理を付け加えている。いわゆるマルチタスクラーニングの処理に相当する。この時の損失の値は重み付き和で計算される。この論文内では、損失の重みの決め方に関しては Multi-Task Learning Using Uncertainty to Weigh Losses という論文のアプローチを採用している。

dataset

中国語のデータセット(フォーマットは一定)のものと、たぶんICDARのOCRからの情報抽出で使用されているデータセット(英語、フォーマットは可変)を使用している。