StrucTexT: Structured Text Understanding with Multi-Modal Transformers

 

感想

  • segmentレベルで予測するため、segmentがちゃんとOCRで切れている書類だと役に立たなさそう
  • Entity-Linkingもsegmentレベルでの関係性を学習するため、そもそもsegmentがちゃんと切れてないとダメ。
    • Vision APIだとparagraphレベルでも違う行の明細が同じparagrahに入ったりするので微妙
  • そもそもセグメントiとセグメントjが関係あるかないかの二値分類で解いてるので、Linkに意味付けはできなさそう?
    • 多次元行列をMに使えばできそうだが。
    • 複数のkeyがある場合はどうする?閾値で切る?などの課題もありそう。

Abstract

  • VRD (Visual Rich Document)におけるコンテンツとレイアウトの複雑さのため、構造化されたテキスト理解は困難なタスクであった。
  • 既存の研究の多くは、この問題を2つのサブタスク、すなわちエンティティラベリングとエンティティリンクに切り離しており、トークンとセグメントの両方のレベルで文書のコンテキストを完全に理解することが必要である
  • 本論文では、StrucTeaxTと名付けられた統一的なフレームワークを提案し、柔軟かつ両サブタスクの処理に有効であることを確認した
    • 異なる粒度のエンティティラベリングとエンティティリンクのタスクに対応するためsegment-token aligned encoderを提案
    • 3つの自己教師付きタスクによる新しい事前学習戦略を設計する
  • StrucTexTは既存のマスク付き視覚言語モデリングタスクと新しい文長予測・対箱の方向付けタスクを用いて、テキスト、画像、レイアウトに渡るマルチモーダルな情報を取り込む
  • FUNSD、SROIE、EPHOIEで評価
 

Introduction

  • 3つのタスクの違い。わかりやすい
  • entity labeling問題はsequential labeling問題として解かれることが従来は多い (うちと同じやり方) → NERでBIOラベル
    • bとcのようにセグメンドで構成されている場合、幾何学的・意味的情報が重要な場合もある
  • Multi-modelな情報を用いるのが重要
    • 既存研究はテキスト側に焦点をおきがち
    • StrucTexTは異なるレベルやモダリティを統一的に扱うフレームワークを提案
    • LayoutLMv2より少ないデータでできる
      • LayoutLMv2は1100万個のデータ
  • 事前学習
    • Masked Visual Language Modeling (LayoutLMと同じ)
    • Sentence Length Prediction (SLP)
      • エンティティ候補の内部セマンティクスを強化
    • Paired Boxes Direction (PBD)
      • 二つのセグメントペアの相対的な方向を学習する

Approach

  • 全体像

Embedding

  • LayoutEmbedding
  • TokenEmbedding
  • VisualSegmentEmbedding
    • resnet50 + FPN
  • Segmanet ID Embedding
    • Vision APIのparagraphごとにIDを割り振ってEmbeddingにする
  • Position Embedding
  • Segment Embedding
    • 何のモダリティか
  • 全部足す

Multi-Modal Feature Enhance Module

  • PBD
    • 二つのTransformerを通ったvisual featureの差分を取って分類器に入れる
    • 8つの方向のクラス分類として解く

Structural Text Understanding

  • Cross-granularity Labeling Module
    • token-levelとsegment-levelのラベリングを担当
    • segment-levelを計算するときはtoken-levelの特徴をセグメントごとに平均を取って画像のsegmentレベル特長とのアダマード積を取る
    • これに対してMLPを繋いでラベリングを計算する
  • Segment Relationship Extraction Module
    • DocStructという論文を参考にKey-Valueペアを抽出する。Mという非対称パラメータ行列を導入する
    • 正例と負例のサンプル数はNegative Samplingで調整する
      • 論文では1:1
    • これだけでは不安定になるので、BCEとRanking Lossを組み合わせて計算する
 

Dataset

  • ERNIE baseでテキストエンコーダーは初期化
  • resnet50はimagenet事前学習のResNet_vdで初期化