2023-10-05 ML勉強会

Attention Where It Matters: Rethinking Visual Document Understanding with Selective Region Concentration

Haoyu Cao, Changcun Bao, Chaohu Liu, Huang Chen, Kun Yin, Hao Liu, Yinsong Liu, Deqiang Jiang, Xing Sun
ICCV 2023 Accepted
Tencent YouTu Labの論文

Abstract by GPT-4

  • 論文の概要: この論文では、視覚的文書理解の新しいアプローチとして「Selective Attention Mechanism」を導入しています。従来の注意メカニズムは文書の全体的な情報を等しく処理する傾向がありましたが、この新しいメカニズムは文書内の特定の重要な部分、例えばキーワードや特定のセクションに焦点を当てることで、より高い精度で文書の内容を把握することが可能となります。
  • 先行研究にどのようなものがあったか: 先行研究の中には、視覚的文書理解のための様々なアプローチが存在しています。これらの多くは、一般的な注意メカニズムをベースとしており、文書の全体的な情報を等しく処理することを前提としていました。その結果、文書内の特定の重要な情報を見逃すことがあったり、不要な情報のノイズが結果に影響を与えることが考えられます。
  • 先行研究に比べた優位性: 「Selective Attention Mechanism」は、文書内の特定の重要な部分に特化して注意を払うことができるため、従来の方法よりも高い精度で文書を理解することができるとされています。このメカニズムにより、不要な情報のノイズを大幅に減少させることができ、関連性の高い情報のみを効率的に取り出すことが可能となります。
  • 優位性をどのようにして検証したか: 著者らは、提案されたメカニズムの性能を評価するために、標準的な視覚的文書理解のデータセットを使用して実験を行いました。これにより、提案手法が先行研究と比較してどれだけの性能向上を達成しているのかを定量的に評価しました。具体的な実験方法や評価指標については、論文の内容を直接参照する必要があります。

Intoroduction

  • Document Information ExtractionやVisual Question Answeringはデジタル文書が指数関数的に増加している今日の世界でさらに重要になってきている。
  • 現在の最先端のアプローチは(a)のような多段階に予測する形を取られることが多く、他のモジュールの影響に過度に依存するため、計算コストがかかる
    • これを解決するために(b)のようなSeRum (SElective Region Understanding Model)と呼ばれるE2Eモデルを提案した。
    • SeRumは文書画像の理解と認識タスクを、Vision Encoder、query-text Decoder、Content-aware token merge moduleを含む、関心のあるビジュアルトークンのローカルデコードプロセスに変換する
  • 文書理解のタスクでは、抽出されるコンテンツが文書全体に占める割合は小さいが、規模が大きく変動することが多い。
    • そのため、まず関心のある領域を正確に抽出することが重要
  • 本論文の貢献
    • 我々は、文書画像の理解と認識タスクを、関心のある視覚的トークンの局所的なデコード処理に変換する、SeRumと呼ばれる新しいエンドツーエンド文書理解モデルを提案する。
    • 本論文では、画像の詳細に対するモデルの認識を向上させ、生成スキームの復号速度を向上させる、コンテンツを考慮したトークンマージ機構を紹介する。
    • 複数の公共データセットを用いた実験の結果、本アプローチは文書理解タスクにおいて最先端の性能を達成し、テキストスポッティングタスクにおいても競争力のある結果を得ることができた。

Related Work

  • 近年の文書理解のための深層学習ベースの手法は以下の3つに大別できる
    • 後処理を行うOCR依存手法
    • 後処理を行わないOCR依存手法
    • OCRを行わないE2E手法
  • 後処理を行うOCR依存手法
      1. OCRからテキスト情報抽出
      1. 読解順に従ってテキストをソート
      1. シーケンスアノテーションの方法で各単語を予測
    • LayoutLMファミリー
    • GCN
    • 「Chargrid: Towards understanding 2d documents」などのレイアウト情報を利用したentity関係の抽出
    • etc
  • 後処理を行わないOCR依存手法
    • 後処理におけるトークンの直列化誤差に対処
      • (以下のような読解順とかが分からないようなドキュメント?)
    • GMN (Generative Multi-modal Network), ACL 2022
    • QGN (Query-driven Generative Network), ACM 2022
  • OCRを行わないE2E手法
    • 推論速度が速い
    • Donut, Dessurt
      • Swin Transformer → BART-like Text Decoder

Method

  • 全体の構造
    • Vision Encoder
    • Query-Text Decoder
    • Content-Aware Token Merge

Vision Encoder

  • 画像 → 特徴マップへの変換
  • 更に に直列化される。は特徴マップのパッチの数 (h x w?)。
  • CNNでもViTベースのものでもいいが、今回の論文ではSwin Transformerに少し修正を加えたものを利用する
  • 得られた特徴マップをのサイズにアップサンプルする。今回の場合はを用いた
  • 更に、最終層に学習可能な位置埋め込みを導入して、モデルの位置認識を強化した。()

Query-Text Decoder

  • Query-DecoderとText-Decoderから構成される
  • Query-Decoder
    • 一般的なTransformerを用いる
    • (言及はされてないが、多分一般的なTransformer DecoderのCross Attention部分でを用いる)
    • セグメント毎のEmbeddingを得る
    • MLPを通してマスクを作る
    • はクラス数
    • 以下のように他の全てのクエリを参照するDecoder (Self-Attention的な)
      • つまり、取引先名、支払い期日といった他のkeyとの相関も学習される?
    • (なんか感覚的にはEncoder的な役割な気がする)
  • Text-Decoder
    • 以下のように視覚情報やクエリ情報、一つ前のトークン情報を用いてAuto-regressiveに生成を行う

Context-aware Token Merge

  • 文書理解タスクでは、情報量が非常に狭い範囲に集中し、一般的に全体の5%未満ほどしか占めない。
    • Visual Tokenは背景領域の数が多い。
    • より関連性の高い部分に動的に焦点を当てるためのモジュール
  • 前景領域
    • の内積で計算する
    • をsortして、上位個のトークンに対応する高スコアの特徴を選択
  • 背景領域
    • これらの領域は、一般的には大域的な特徴または外挿を支援するために使用される特徴
    • これらの特徴を落とすことなく、過剰に利用しすぎることを防ぐために、Attentionを用いて背景トークンを前景トークンに投影した
    • はマージされた背景特徴
    • は前景のクエリ特徴
    • はその他の背景の特徴 (は全トークン数)
    • はAttentionの重み
  • これらを足し合わせることで、の視覚的な特徴が生成される
  • サイズの変更に適応するためにとして、学習時はを0.02 ~ 1.0まで一様サンプルし、推論時にはレイテンシの要件に合わせて固定する。
 

事前学習

  • マルチタスク事前学習を利用して、モデルの位置理解とテキスト生成能力を向上させる。
  • 3つのサブタスク全てを同時に行う
    • Query to Segmentation
    • Text to Segmentation
    • Segmentation to Text
Query to Segmentation
  • DETRと同じようなクエリの生成方法を用いる (DETRの論文見たけどよく分からなかった)
    • (多分学習可能なEmbeddingをQuery-Decoderに入れる)
  • インスタンスセグメンテーションタスク
  • を50個生成してテキスト領域を予測する
    • (どういうこと??)
    • (多分何かしらのmaskはできるからmaskされた後の領域の中でtextのある位置を学習する)
Text to Segmentation
  • 各テキスト要素の位置を理解する狙い
  • Query-Decoderに文書画像に存在するテキストを入力し、その位置をインスタンスセグメンテーションで解く
Segmentation to Text
  • OCRのように画像セグメンテーションからテキストを生成する
  • をText Decoderに画像特徴として入力することで、その領域に存在するテキストを予測する
 
  • (Query to SegmentationとText to Segmentationを同時にやるってどういうことだろう)
 

Training Strategy

  • 損失関数
    • 複数モジュールに損失をかける
      1. Hungarian matching Loss
          • (恐らくDETRで使われているLoss)
          • クエリとターゲットの間のLoss
          • クエリの数がターゲットより多い場合を考慮
            • (ある書類には電話番号が書かれていないとかそういう状況?)
          • ハンガリアン法で推論結果とターゲットを突き合わせて最適なマッチングパターンを計算
            • そのクラスであるLoss + Generalized IoU Loss + 回帰Loss(位置・サイズ)が最も小さくなるようなペア
          • マッチングしたペアに対して上記のロスを計算
          • これをQuery-Encoderの全ての層で行う
      1. Autoregressive decoder Loss
          • Text-Decoderの自己回帰部分における損失
          • は正解のテキスト、はDecoderの隠れ状態、はシーケンスの最初のEmbedding
      1. Text constraint Loss
          • テキスト領域にかけるLoss
          • その場所にテキストがあるかどうかを予測する
    • これらの3つのLossを重みづけて和を取る。今回の論文では全部を均等に扱う。
    • Pretrain時は、明示的にクエリとターゲットはマッチングを行う

実験

  • モデル
    • backboneはSwin-B
    • 入力画像は1280 x 960
    • mBARTの最初の4層のみをDecoderとして使用 (恐らくQueryもTextも)
  • 事前学習
    • Synth Text, Synth90K, IIT-CDIPデータセットとDocutと同様に多言語合成データセットを用いた
  • Fine-tuning
    • データセット
      • DIE
        • Ticket:中国の鉄道券の30万枚の合成画像と1,900枚の実画像。抽出するEntityは8つ。
        • CORD:英語のベンチマーク。800枚の訓練画像、100枚の検証画像、100枚のテスト画像。30種類のEntity。
        • SROIE:626枚の訓練、テスト用の347枚。Entityは4つ。
      • DocVQA
        • DocVQAデータセット:12767枚の文書画像と9.9万の質問。
        • ANLS (Average Normalized Levenshtein Similarity)を評価指標
    • 学習
      • Adam、5.0 x 10e-5
      • 30epoch毎に0.1減衰、最大300epoch学習
      • batch_size: 24
      • 情報抽出タスクでは以下の二つのクエリを採用
        • SeRum-total: Donutのようにタスク名と事前に決まったフォーマットをクエリに含める。
          • のように抽出したい項目を全て一つのプロンプトで扱う
        • SeRum-prompt: キーをクエリとして扱い、各情報を並列に生成する
      • をSeRum-totalでは、SeRum-promptではにした (どれだけ前景とみなすか)
  • 結果
    • 同じE2E手法であるDonutは完全に上回った。
    • 手書き文字を含むDocVQAのANLS*ではLayoutLMv2にも勝っている。
    • 以下のように関心領域をちゃんと取れていることも分かる
  • Ablation Study
    • 事前学習の結果
      • 特にテキスト領域をセグメンテーションする事前学習が重要
    • Tokenの保持割合による影響
      • 10%くらいでピークになっている
      • 速度要件などによってパラメータを変えることができる

感想

  • 細かいところの話でわからない部分が多く、実装を公開して欲しい気持ち
    • 事前学習のQuery to Segmentationの詳細が薄かったり
    • 突然Query-Encoderという言葉が出てきたり
    • Hungarian matching Lossの説明がほぼなかったり
  • テキストと位置情報がないと事前学習できないのがデータ集める上では少しネック。
  • 画像から直接Decodeというのはレイテンシ的にはとてもありがたい