blog シナモンブログ

LayoutLM (Layout Language Model)を試したら精度がめっちゃ上がった件について
  • 技術

LayoutLM (Layout Language Model)を試したら精度がめっちゃ上がった件について

こんにちは。シナモンAI広報担当です。

シナモンAIでは自然言語処理技術を用いたプロダクトの Aurora Clipperオーロラ・クリッパー)をご提供しており、特定の文脈を持つ日付(イベント開催日や契約日等)や人物名(契約者の関係)の取得、長い文章からの要点抽出、テキストの分類など様々な用途で用いられる製品です。

今回は、Aurora Clipperの基礎となるモデルとして、LayoutLMと呼ばれるアルゴリズムを実験した結果をAurora Clipperの開発をリードする 藤井 からご紹介いたします。

テキストの位置を特徴として利用するLayoutLMとは?

LayoutLM(Layout Language Model)とは、Microsoft Researchから2020年に提案された新しい自然言語処理アルゴリズムです。

自然言語処理といえば、BERTなどに代表されるTransformer型アルゴリズムが有名ですが、このアルゴリズムの大きな特徴は、大量のテキストを事前学習し、各々の開発の目的に合わせて転移学習を行うことで、これまでのCNN/RNN型アルゴリズムと比較して、精度を飛躍的に向上したことで知られています。

これまで自然言語処理では、文書に記載されている単語だけでなく文脈をいかに捉えるかが大きな論点となっていました。そのような背景の中で、文書から文脈を捉える手法は数多く研究されてきましたが、Transformer型アルゴリズムの誕生により、文章の語順を特徴として捉えることで精度を向上させることに成功してきました。

弊社でもTransformer型のアルゴリズムについては研究を続けております。

例えば、2020年5月にGoogle Brainから提案されたGAN(敵対的生成ネットワーク)を利用したELECTRAを世界で初めて日本語にローカライズして公開するなど、精力的に研究を進めて参りました(詳細はこちら)。

このようなTransformer型アルゴリズムは、弊社でも様々なプロジェクトを通して、高精度な結果を導き出せることが確認されています。その一方で、Transformer型アルゴリズムはあくまで語順(前後の単語)を特徴として扱うため、その単語がどの位置に記載されているかまでは特徴として捉えることができませんでした。

このような課題を解決するために誕生したのが”LayoutLM”です。

このアルゴリズムは、単純な単語の語順だけでなく、テキストフィールドの文書内での配置といったレイアウト情報をエンコードし、それらの出現確率を拡張した言語モデルとして学習することが大きな特徴です。

そのため、事前学習には大量のテキストデータだけでなく、大量の帳票フォーマット(請求書や履歴書など)とその座標を事前学習させています。

その結果、LayoutLMを利用することでSORIE Dataset (レシートから情報抽出をするタスクのデータセット)において、BERTでは精度(F値)が92.00%ところがLayoutLMでは95.24%となり、精度が大きく向上しました。

※上記の画像はXu et al, 2020より引用

まとめ①
✔  Transformer型アルゴリズムを利用することで、自然言語処理の技術が大きく発展した。
✔  LayoutLMはTransformer型アルゴリズムとは異なり、語順だけでなく、テキストの位置情報も特徴として利用できるようになった。
✔ その結果、レシートからの情報抽出タスクにおいて、従来の代表的なTransformer型アルゴリズムと比較して精度(F値)が3%以上向上した。 

LayoutLMを実際に試してみたらすごいことに・・・!

さて、このように大きな効果を得ることができたLayoutLMですが、あくまでのMicrosoft Researchでの研究は英語文書がメインです。
そのため、日本語文書での研究実績はまだ存在しません。

そこで、今回は弊社が保有する約17,000件の日本語文書を利用し、LayoutLMの事前学習に挑みました。

これらのデータは、請求書・納品書などの受発注に関わる帳票や、診療明細書や診療報酬明細書(レセプト)などの保険業界関連書類、そして製品仕様書など製造業に関わる文書のデータなど、弊社がこれまで研究データとして蓄積した大量の帳票によって構成されています。

もちろん、これらの大量の帳票には座標および、テキストのラベルが付与されているため、LayoutLMを構築するいは最適なデータとなります。

さて、早速ですが、実際にLayoutLMをテストした結果を見てみましょう。

実施するタスクは「1~3ページからなる日本語書類からの情報抽出」です。
※ 日本語書類という表現はちょっとぼやっとしていますが、貴重な研究データのためあえてぼかした表現をしております。

上表のように従来のTransformer型アルゴリズムよりも11%も高い精度がLayoutLMで達成できていることが分かりました。

さらに、Microsoft社が事前学習したLayoutLM(論文のオリジナル版)よりも、弊社が日本語に独自にローカライズしたLayoutLM(独自データで事前学習版)の方が精度が8%上回ることが分かりました。

このように弊社の研究データで構築したLayouLMがかなり高い精度であることが分かりました。

さて、最新のアルゴリズムを本番環境で利用するには、もう1つ検討すべき事項があります。
それは処理速度です。特にTransformer型のアルゴリズムではGPUが必須のものもあり、オンプレで運用するようなケースでは、なるべくこのようなインフラコストがかかるアルゴリズムは利用を控えたいものです。

そこで、LayoutLMの処理速度を調べた結果が以下のようにCPUでも5秒以内で1ファイルを処理できることが分かりました。

これくらいの処理速度であれば、経験上CPUでも受け入れ可能なケースが多いですし、より速度を上げるために分散構成にすることでスループットを向上させることも可能です。
以上の結果からも弊社独自のLayoutLMは本開発で利用する上でもかなりポテンシャルが高いことが分かりました。

このアルゴリズムは既に弊社の自然言語処理プロダクトであるAurora Clipper及び、帳票認識プロダクトFlaxに組み込まれており、機能向上がはかられています。今後は、更に画像、音声などに拡張し、弊社のマルチメディア認識エンジンのノウハウを活かして、マルチモーダルな分析エンジンの開発に活用していきたいと思います!

まとめ②
✔  弊社の保有する約17,000件の研究データで日本語特化のLayoutLMを構築したところ、従来のTransformer型アルゴリズムより精度が19%向上した。
✔   弊社で構築したLayoutLMは処理速度も早く、速度要件次第だが、本開発でも十分利用可能なものとなった。
✔  今後は自然言語処理プロダクトAurora Clipperだけでなく、AI-OCRプロダクトFLAX Scannerにもこのアルゴリズムを展開し、情報抽出全体の精度向上を目指す

本記事に関するお問合せや、商談のご希望はこちらからご連絡くださいませ。

また、シナモンAIでは定期的にセミナーを実施しております。