2023年6月1日 第1回 Data-Centric AI勉強会(https://dcai-jp.connpass.com/event/282385/) における登壇資料です。
バクラクのAI-OCR機能における機械学習活用に際してどのように質の高いデータセットを作成してきたかについてお話ししました。
バクラクのAI-OCR機能の体験を支える良質なデータセット作成の仕組み1Jun.2023 第1回 Data-Centric AI勉強会Yuya Matsumura(株式会社LayerX ) @yu-ya4
View Slide
Confidential © 2023 LayerX Inc.2画像を入れてね自己紹介松村 優也(Yuya Matsumura)● 京都大学大学院 情報学研究科 修士課程修了● 株式会社LayerX ML Team Manager● ウォンテッドリー株式会社 ML領域 技術顧問● NewsPicks AI領域プロピッカー● 共著 『推薦システム実践入門』● 大学にて非常勤講師やスタートアップの技術支援等@yu___ya4@yu-ya4
© 2023 LayerX Inc.3会社概要すべての経済活動を、デジタル化する。※ 一部抜粋会社名代表取締役創業従業員数資本金事業概要関連会社お取引先(一部)株式会社LayerX(レイヤーエックス)代表取締役CEO 福島 良典 代表取締役CTO 松本 勇気2018年 8月1日149名(2023年1月現在)86億円(資本準備金含む)バクラク(SaaS)事業、Fintech事業、Privacy Tech事業三井物産デジタル・アセットマネジメント(三井物産、LayerX、三井住友信託銀行、SMBC日興証券、JA三井リース、イデラキャピタルマネジメントによる合弁会社)
© 2023 LayerX Inc.43つの事業バクラク事業企業活動のインフラとなる法人支出管理(BSM)SaaSを開発・提供ソフトウェアを駆使したアセットマネジメント・証券事業を合弁会社にて展開パーソナルデータの利活用とプライバシー保護を両立するソリューションの提供バクラク事業 Fintech事業 PrivacyTech事業
© 2023 LayerX Inc.53つの事業バクラク事業企業活動のインフラとなる法人支出管理(BSM)SaaSを開発・提供ソフトウェアを駆使したアセットマネジメント・証券事業を合弁会社にて展開パーソナルデータの利活用とプライバシー保護を両立するソリューションの提供バクラク事業 Fintech事業 PrivacyTech事業
© 2023 LayerX Inc.6法人支出管理(BSM)SaaS「バクラク」を展開* 経費精算のSlack連携は申請内容の通知のみ稟議・支払申請・経費精算・ワークフロー・AIが領収書を5秒でデータ化・承認はチャットアプリから・シームレスな内部統制構築仕訳・支払処理効率化・AIが請求書を5秒でデータ化・仕訳データを自動学習、 手入力ゼロへ・改正電子帳簿保存法に対応・利用料無料・即時追加発行・最大1億円決済可能法人向けクレジットカード・無料で始められる・手入力ゼロで証憑管理・改正電子帳簿保存法に対応帳票保存・ストレージバクラクでは AI-OCR 機能をはじめ、機械学習がコア技術として活用されています
© 2023 LayerX Inc.7本日のテーマ* 経費精算のSlack連携は申請内容の通知のみ稟議・支払申請・経費精算・ワークフロー・AIが領収書を5秒でデータ化・承認はチャットアプリから・シームレスな内部統制構築仕訳・支払処理効率化・AIが請求書を5秒でデータ化・仕訳データを自動学習、 手入力ゼロへ・改正電子帳簿保存法に対応・利用料無料・即時追加発行・最大1億円決済可能法人向けクレジットカード・無料で始められる・手入力ゼロで証憑管理・改正電子帳簿保存法に対応帳票保存・ストレージ「バクラク請求書」の請求書を自動でデータ化する機能における機械学習活用の取り組み紹介
背景・取り組んでいるタスク
© 2023 LayerX Inc.9解決したい課題● 請求書に記入されている項目(支払期日や支払金額、取引先名など)を目視で確認して、ミスなく入力・管理することはとても負荷の高い仕事○ 対応する枚数が数十、数百枚と増えるにつれてミスが起こりやすい○ 帳票のフォーマットが多種に渡り読み取ることが単純に大変○ ミスは許されないためダブルチェック等確認作業にもコストがかかってしまう受けとった請求書を手入力でデータ化するという負荷の大きい作業をバクラクにする
© 2023 LayerX Inc.10バクラク請求書 AI-OCR(請求書読み取り)機能のデモ
© 2023 LayerX Inc.11AI-OCR機能の入力と出力請求書ファイル(画像・PDF)請求書に記載の項目ごとの値500,0002021/02/28株式会社テンプレ支払期日支払金額取引先名請求書ファイルを入力し、請求書に記載の必要項目ごとの値を出力してユーザーに提示
© 2023 LayerX Inc.12AI-OCR機能で解いているタスク請求書ファイル(画像・PDF)請求書に記載の項目ごとの値{“bbox”: [{"x": 0.3421,"y": 0.567},...],"word": “2021/2/28”},...請求書内の文字と座標項目推定文字検出文字認識500,0002021/02/28株式会社テンプレ支払期日支払金額取引先名「文字検出・文字認識」と「項目推定」のタスクに分解
© 2023 LayerX Inc.13リリース当初のAI-OCR機能の実現方法請求書ファイル(画像・PDF)請求書に記載の項目ごとの値{“bbox”: [{"x": 0.3421,"y": 0.567},...],"word": “2021/2/28”},...請求書内の文字と座標項目推定文字検出文字認識500,0002021/02/28株式会社テンプレ支払期日支払金額取引先名外部のAPIを利用テキストや位置情報に基づいてルールベースで判定外部APIの利用とルールベースによって実現
© 2023 LayerX Inc.14ルールベースの限界プロダクトの成長に伴うデータ量の増加・フォーマットの多様化により限界を迎える● 対応コストの増加○ 対応すべきサンプル数が加速的に増加○ 対応の難しいフォーマットが増加○ 大量の既存のルールを壊さずに新しいルールを追加することが困難● 維持コストの増加○ コードベースの複雑化が進み負債化・属人化が進行○ 新規メンバーのオンボーディングが辛い
© 2023 LayerX Inc.15AI-OCR機能における機械学習の活用請求書ファイル(画像・PDF)請求書に記載の項目ごとの値{“bbox”: [{"x": 0.3421,"y": 0.567},...],"word": “2021/2/28”},...請求書内の文字と座標項目推定文字検出文字認識500,0002021/02/28株式会社テンプレ支払期日支払金額取引先名外部のAPIを利用テキストや位置情報に基づいてルールベースで判定これまで「ルールベース」で実現していた「項目推定」のタスクを「機械学習」で実現する機械学習で実現
データセットの作成
© 2023 LayerX Inc.17データセットの作成正解ラベルつきのデータセットを大きく2つの方針で作成アノテーションプロダクト上でユーザーが採用した値を利用
© 2023 LayerX Inc.18データセットの作成正解ラベルつきのデータセットを大きく2つの方針で作成アノテーションプロダクト上でユーザーが採用した値を利用
© 2023 LayerX Inc.19プロダクト上でユーザーが採用した値を利用ユーザーはOCRが読み取った値を確認し、必要に応じて修正した上で採用するので、「ユーザーが採用した値」を「請求書に記載の値」の正解データとして利用できそう請求書に記載の値 OCRが読み取った値ユーザーが採用した値必要に応じてユーザーが修正ユーザーに表示 正解データとして利用できそう!ルールベースOCR真の正解データ
© 2023 LayerX Inc.20ルールベースOCR「ユーザーが採用した値」を正解データとする上での問題必ずしも「ユーザーが採用した値」が「請求書に記載の値」に一致するとは限らないOCRが読み取った値必要に応じてユーザーが修正ユーザーに表示ユーザーが採用した値正解データとして利用できそう!請求書に記載の値真の正解データ
© 2023 LayerX Inc.21顧客が真に求めている出力(ユーザーが採用する値)ケース1支払期日として2021年2月28日(日)を検出顧客「実際に支払うのは平日の26日(金)だから変更しないと!」ケース2支払金額として500,000円を検出顧客「実際に支払うのは源泉税10.21%を差し引いた448,950円だから変更しないと!」ユーザーが本当に欲しいのは「請求書に記載の値」ではなく「実際の運用に即した値」
© 2023 LayerX Inc.22「ユーザーが採用した値」を正解データとすると問題になる理由請求書ファイル(画像・PDF)支払期日支払金額2021/02/28取引先名500,000株式会社テンプレ請求書に記載の項目ごとの値支払期日支払金額2021/02/26取引先名448,950株式会社テンプレ請求書に記載の項目ごとの値に基づいた実際の運用に即した値請求書に記載の値は読み取れているが、実際に運用に合わせてユーザーが修正OCRユーザーが採用するのはあくまで「実際の運用に即した値」であり、正解データである「請求書に記載の値」と一致しないケースが少なくない数あるから
© 2023 LayerX Inc.23解決策:「実際の運用に即した値」が「請求書に記載の値」と一致するケースのみ利用ルールベースOCRが読み取った値をユーザーが修正せずに採用した場合に正解とする請求書に記載の値 OCRが読み取った値ユーザーが採用した値ユーザーが修正せずユーザーに表示 正解データとして利用できそう!ルールベースOCR真の正解データ
© 2023 LayerX Inc.24ルールベースOCRが読み取った値を修正せずに採用した場合に正解とする際の問題データの偏り運用面データの質● 「請求書に記載の値」と「実際の運用に即した値」が一致しないケースを捨てている。このようなケースは少なくない割合存在し、かつ企業ごとの運用によるところも大きいため特定の利用企業さまのデータが著しく少なくなることも。● ルールベースOCRが正しい値を読み取れている場合のデータしか得られない。新しいサンプルはルールベースの対応が追いつかないため、その傾向はさらに大きくなる。● ルールベースが正解しているサンプルだけを学習した機械学習モデルではルールベースの性能を超えるのが難しい。● ルールベースOCRが「実際の運用に即した値」をたまたま間違って読み取り、ユーザーが修正せずに採用するケースもしばしば。この際は必要な「請求書に記載の値」の正解データが得られない。● ルールベースOCRの読み取り結果が間違っていたとしても、修正せずにそのまま採用するケースもちらほら(運用の違い・修正までのリードタイム)。● ルールベースOCRから早く脱却したいので依存したくない。いろいろと問題があるのでアノテーションは必要!
© 2023 LayerX Inc.25データセットの作成正解ラベルつきのデータセットを大きく2つの方針で作成アノテーションプロダクト上でユーザーが採用したデータを利用
© 2023 LayerX Inc.26アノテーションアノテーション対象の選定 アノテーションツールの内製アノテーションルールの整備アノテーションで質の高いデータセットを作成するための工夫アノテーションチームの組成
© 2023 LayerX Inc.27アノテーションアノテーションルールの整備アノテーションで質の高いデータセットを作成するための工夫アノテーションチームの組成アノテーションツールの内製アノテーション対象の選定
© 2023 LayerX Inc.28アノテーション対象の選定基本的に「プロダクト上でユーザーが採用した値を利用」することでは得られないデータ、つまり今OCRで読み取れていない書類を優先する方針セールスチームとの連携人の目での確認ダッシュボード・アラートの仕組みプロダクトや書類種別、企業さまごとなどに読み取り性能やアノテーション状況を確認できるダッシュボードの構築とアラートを設定。定量的な基準を決めてアノテーション優先度を決定する。毎日のチームの朝会にて、ダッシュボードなどをもとにいくつか書類をピックアップして生のデータを確認。定性的な観点も入れつつアノテーション優先度に反映させたり、ドメイン知識の獲得や開発方針への反映を行う。セールスチームを通じてお客様からの改善要望や商談状況を受け取り、アノテーションや開発の優先度に反映させる。必要に応じてお客様にご連絡し、追加で書類データをいただくことも。
© 2023 LayerX Inc.29アノテーションアノテーション対象の選定アノテーションルールの整備アノテーションで質の高いデータセットを作成するための工夫アノテーションチームの組成アノテーションツールの内製
© 2023 LayerX Inc.30アノテーションの課題手入力でのアノテーションがつらい。そもそも負荷の大きい課題だから解決しようとしている。
© 2023 LayerX Inc.31アノテーションツールの内製アノテーション作業もバクラクにするためのツールの内製(バクラクデータ管理)
© 2023 LayerX Inc.32アノテーションの手入力をなくすバクラクデータ管理の特徴①複数のモデルの予測結果やユーザーさまの採用した値を用いた入力補完機能
© 2023 LayerX Inc.33画像上で囲った座標の抽出機能アノテーションの手入力をなくすバクラクデータ管理の特徴②
© 2023 LayerX Inc.34画像上で囲った文字の抽出機能アノテーションの手入力をなくすバクラクデータ管理の特徴③
© 2023 LayerX Inc.35バクラクデータ管理についてもっと知りたい方は...昨日(5/31)にブログを公開しましたのでより詳しく知りたい方は是非ご覧ください!https://tech.layerx.co.jp/entry/2023/05/31/173021
© 2023 LayerX Inc.36アノテーションアノテーション対象の選定アノテーションで質の高いデータセットを作成するための工夫アノテーションチームの組成アノテーションツールの内製アノテーションルールの整備
© 2023 LayerX Inc.37アノテーションルールの整備請求書などの書類は多様で複雑なものも多く、その解釈が分かれることもしばしば社内ドメインエキスパート密なコミュニケーションドキュメント整備当たり前であるが、当たり前が最も難しい。書類種別や読み取り項目ごとに、様々なケースにおける入力ルールを明文化、notionに集約。アノテーションチームも会社のslackに参加しており、迷うことがあればすぐに同期・非同期でsyncする体制を構築。隔週でMLチームとの定例の時間を設け、疑問解消や認識合わせ、FBの時間を儲ける。結果はドキュメントに反映。もともと経理業務などに携わっていたドメインごとの有識者が社内にPMなどのポジションで在籍しており、判断に迷う場合は相談可能。
© 2023 LayerX Inc.38アノテーションアノテーション対象の選定アノテーションで質の高いデータセットを作成するための工夫アノテーションツールの内製アノテーションルールの整備 アノテーションチームの組成
© 2023 LayerX Inc.39アノテーションチームの組成どれだけ仕組みが整っていても、結局は人次第当たり前かもしれないですが、いい人を採用していいチームを作ろうとしています。フルタイムではないし、雇用形態は正社員ではないかもしれませんが、一緒にプロダクトを良くする仲間としてプロジェクトを進めています。具体的には、先ほどのMLチームのシンクアップの時間を取るであるとか、「なぜアノテーションを行う必要があるのか」をきちんとお伝えするであるとか、実際に改善が進んで読み取れるようになった書類やご利用いただけるようになった企業さまを共有して一緒に喜ぶとか、打ち上げの懇親会をMLチームと一緒に開催するとか。本当に通常の開発チームと同じような形で並走しています。ただ正解データを入力するだけではなく、大量のデータを見ていく中で気づいた企業さまごとの特徴や、新しいモデルが苦手そうなフォーマットについてまでFBをくれるアノテーションチームは、なかなかいないのではないでしょうか?(自慢です)
まとめ
© 2023 LayerX Inc.41まとめ:LayerXにおける機械学習を活用した請求書OCR機能に関する取り組み● 背景・取り組んでいるタスク○ 解決したい課題:受け取った請求書を手入力でデータ化するという負荷の大きい作業をバクラクにする○ 取り組み内容:請求書AI-OCR機能において「ルールベース」で実現していた「項目推定」のタスクを「機械学習」で実現● データセットの作成○ プロダクトでユーザーが採用した値を利用■ 既存のルールベースOCRが読み取った値をユーザーが修正せずに採用した場合に、「請求書に記載の値」の正解として利用○ アノテーション■ 対象の選定、ツールの内製、ルールの整備、チームの組成など工夫しながら進める■ 結局は人