2023-07-27 ML勉強会
LiLT: A Simple yet Effective Language-Independent Layout Transformer for Structured Document Understanding
Abstract
構造化文書理解は、知的文書処理において重要な役割を果たすため、近年大きな注目を集め、大きな進歩を遂げている。しかしながら、既存の関連モデルのほとんどは、事前学習コレクションに含まれる特定の言語(典型的には英語)の文書データしか扱うことができず、これは極めて限定的である。この問題に対処するため、我々は構造化文書理解のためのシンプルかつ効果的な言語非依存レイアウト変換器(LiLT)を提案する。LiLTは、単一言語の構造化文書に対して事前学習することができ、その後、対応する既製の単言語/多言語事前学習済みテキストモデルを用いて、他の言語に対して直接微調整することができる。8つの言語での実験結果から、LiLTは、広く使用されている様々な下流ベンチマークにおいて、競争力のある、あるいは優れた性能を達成できることが示されており、文書レイアウト構造の事前学習から言語に依存しない利益を得ることができる。
モデル構造
- 言語が変わってもレイアウトが一緒なら同じ意味を表してるはずという仮説
- テキストのbboxはOSSのOCRエンジンを用いる
- 左上から右下にsortする
- レイアウトモデルとテキストモデルを分離
- これにより、テキストモデルだけ既存の事前学習済み多言語モデルを用いて下流タスクを解くことが可能
- テキストとレイアウトの手がかりのクロスモダリティ相互作用を達成するために、bi-directional attention complementation mechanism(BiACM)を導入
- テキスト埋め込み
- BERTとかと一緒
- レイアウト埋め込み
- LayoutLMとかと同じ
- [0, 1000]の範囲に正規化 + 離散化
- B = (xmin, xmax, ymin, ymax, width, height)の6つに対してそれぞれEncoding
- [CLS]、[SEP]、[PAD]にはそれぞれ(0,0,0,0,0,0)、(1000,1000,1000,1000,0,0)、(0,0,0,0,0,0)
- BiACM
- テキストサブモデルには1D Embedding + Text Embedding
- レイアウトサブモデルには1D Embedding + 2D Embedding
- アテンションスコアの計算を以下のようにとしたとき
- テキストサブモデルのアテンションとレイアウトサブモデルのアテンションをとした時以下のように組み合わせる
- Pretrainではテキスト情報をレイアウトサブモデルでは考慮させない
事前学習
- Masked Visual Language Modeling (MVLM)
- トークンの一部をランダムにマスクして復元
- レイアウト情報はそのまま
- 15%をmask
- 80%を[MASK]
- 10%をvocabからランダムサンプリング
- 10%はそのまま
- Key Point Location (KPL)
- レイアウト全体を複数の領域に分割
- デフォルトだと7x7の領域に分割
- bboxをランダムにマスクし、どの領域に属するかを予測 (クロスエントロピー)
- 15%をマスク
- 80%を(0,0,0,0,0,0)
- 10%を同じバッチからランダムサンプリング
- 10%をそのまま (?)
- Cross-modal Alignment Identification (CAI)
- MVLMとKPLでマスクされたtoken-boxのペアを収集
- それらが変化したか変化してないかを予測 (binray cross entropy)
- IIT-CDIPデータセットで事前学習
- 600万以上の文書
- OCRはTextIn APIを利用
- テキストサブモデルは英語のRoberta baseで初期化
- InfoXLM baseやXLM Roberta baseなども組み合わせ
- A40 48GB x 4で5エポック
- テキスト部分の学習を数step遅らせてから始める
- テキスト部分を考慮しすぎるとファインチューニング時に既存モデルと入れ替える際に有害になるため
- Ablation Study
- 100万データをランダムサンプリングして実験
- BiACMを入れないただの出力をconcatしたモデルはテキスト単体より精度が低い
- 事前学習も全てやった方が良い
結果
- ゼロショットでもLayoutXLMより精度が高く、Fine-tuningしたら最も精度が高い
- マルチタスク的に全ての言語を同時に学習させた方が精度は良かったらしい
感想
- LayoutXLMと違い、MiTライセンスで公開されているがbaseサイズのモデルしかないため、あまり精度は出ないかも
- レイアウトだけ使ったモデルをテキストなしで学習させたものと結合させたらどうなるか気になった
- そのほうがレイアウトには強くなりそう
- それがSlow Down Ratioが∞の時か