Cheap Character Noise for OCR-Robust Multilingual Embeddings

生成日:

Cheap Character Noise for OCR-Robust Multilingual Embeddings

Abstract(日本語訳)

不完全な OCR システムによってデジタル化された大量のテキストコレクションでは、ノイズを含む入力に対して頑健に動作する意味検索モデルが必要である。このようなコレクションは、OCR 品質、綴りの慣習、その他の不一致の程度がさまざまで、これらはいずれも標準的な embedding モデルの学習データでは十分に表れておらず、汎化に影響を及ぼす。本論文では、この問題が、教師ありデータや対象ドメインでの学習を必要としない単純で低コストな方法によって緩和できることを示す。具体的には、既存の多言語モデルを、ノイズを加えたテキストと contrastive loss を用いてファインチューニングする。これらのモデルは、異なるノイズ条件にわたって大きな改善を示す。対照実験では、標準的な類似度タスクへの影響は最小限であり、場合によっては正の影響もあることが示された。これらの結果は、embedding モデルを、異質なデジタル化コーパスにおけるクロスリンガル意味検索へ低コストに適応できることを示唆している。コード、データセット、モデルは https://github.com/impresso/ocr-robust-multilingual-embeddings で公開されている。

論文の面白いところ

この論文の良さは、問題に対して方法がかなり素朴である点にある。歴史新聞や図書館資料の検索では、OCR の誤りを完全に直してから検索する、という発想になりがちである。しかし著者らは、検索用の embedding モデルそのものを、文字の欠落、挿入、置換に慣れさせればよいと考える。しかも、実際の Blackletter や劣化紙面を精密に再現するのではなく、5% の文字にランダムなノイズを入れるだけである。この安い近似が、実際の OCR ノイズや歴史資料にも効くという結果が本論文の中心である。モデルは M-E5B と M-GTE という既存の多言語 embedding モデルであり、特殊な新規アーキテクチャは導入しない。20,000 組の正例と単一の Tesla T4 GPU で約 20 分という設定も、実務上の導入を想像しやすい。OCR 補正器を作るより軽く、既存の意味検索基盤に追加しやすい方法として読める。

問題設定

対象は、OCR を経た文書コレクションに対する多言語の意味検索である。たとえばフランス語の問い合わせから、OCR 済みのドイツ語新聞記事を探すような状況で、モデルは異なる言語の文を近いベクトルに写す必要がある。通常の多言語 embedding モデルは、現代的で整ったテキストを多く見ているため、OCR の文字化けを含む文に弱い。論文の図では、同じ意味のフランス語文とドイツ語文であっても、ドイツ語側が Blackletter 由来の OCR 誤りを含むだけで、multilingual-gte-base の cosine similarity が大きく変わる例が示されている。誤りは単語の見た目を乱すだけでなく、subword tokenization を変えてしまう。たとえば本来ひとつのまとまりとして扱われる語が、意味の薄い細片に分かれる。評価では Cross-Lingual Semantic Discrimination(CLSD)を用い、正しい翻訳文を、意味の近い distractor 4 文より高く順位づけできるかを Precision@1 で測る。これにより、検索で本当に正しい候補を上位に出せるかを直接に近い形で調べている。

提案手法

提案手法は、クリーンな文と、そこへ文字単位のランダムノイズを入れた文を正例ペアとして作り、既存の embedding モデルを contrastive fine-tuning するものである。ノイズは置換、挿入、削除の三種類で、元テキストの 5% の文字に適用される。学習には MultipleNegativesRankingLoss を用い、同じ文に由来するクリーン版とノイズ版を近づけ、バッチ内の別文を相対的に遠ざける。学習データには TED コーパスと ELRC-CORDIS News(X-News)を使い、ドイツ語とフランス語の単言語ペアまたはクロスリンガルペアを構成する。重要なのは、このノイズが実際の OCR エンジンから得たものではないことである。実際の対象コレクションにアノテーションを付ける必要もない。したがって、この手法は「対象資料を見て専用に作り込む」よりも、既存モデルに一般的な文字ノイズ耐性を与える処理に近い。著者らは、現実的な OCR ノイズを精密に再現するより、単純なランダムノイズの方が未知のノイズへ移りやすいことも実験で確認している。

結果

主な評価は、ドイツ語・フランス語の CLSD に、Minimal Noise、Blackletter / Scanned Distorted、Salt and Pepper の OCR 条件を加えて行われた。Blackletter 条件では、noised TED で fine-tuning した場合、M-GTE は clean to OCR の平均で +4.3 ポイント、OCR to OCR の平均で +3.9 ポイント改善した。M-E5B でも同条件で、それぞれ +4.6 ポイント、+4.5 ポイントの改善がある。Salt and Pepper 条件では、M-E5B が OCR to OCR で +5.3 ポイント改善し、ノイズが問い合わせ側と文書側の両方にある場合にも効果が残った。Minimal Noise のように OCR 誤りが少ない条件でも、M-GTE で最大 +3.1 ポイント、M-E5B で最大 +4.7 ポイントの改善が見られた。歴史的ルクセンブルク語新聞を用いる HISTLUX では、M-GTE に対する noised TED の適応が平均 +4.2 ポイントの改善を示した。クリーンな CLSD や multilingual STS に対する対照実験では、性能の大きな崩れは見られず、M-E5B ではむしろ改善する条件もあった。著者らの分析では、OCR ノイズが subtoken の保存率を下げ、これが性能低下の一因になっている可能性が示されている。

具体例

図書館の利用者が、フランス語で「戦後の住宅政策に関する新聞記事」を探しているとする。検索対象は、19 世紀末から 20 世紀前半のドイツ語新聞を OCR したアーカイブで、Blackletter 由来の誤認識や、紙面の汚れによる余分な記号が含まれている。通常の多言語 embedding モデルは、フランス語の問い合わせ文と、意味として対応するドイツ語記事の一文を本来は近いベクトルに置くはずである。ところが OCR の結果として、ドイツ語の単語が数文字だけ崩れると、tokenizer が語を不自然な subtoken に分け、文全体の embedding もずれる。この論文の方法では、あらかじめクリーンな文とランダムに崩した文を近くに置くようモデルを fine-tuning しておく。すると、多少文字が欠けたり、別の文字に置き換わったりしても、元の意味を保った候補文として扱いやすくなる。期待される出力は、OCR の見た目が汚い文を除外することではなく、意味が合う記事を検索結果の上位に戻すことである。間違えやすい点は、この方法が OCR テキストを修復する手法ではないことである。修復済みのきれいな文字列を返すのではなく、壊れた文字列でも検索用のベクトル表現が過度に壊れないようにする手法である。