Upgrade to Pro — share decks privately, control downloads, hide ads and more …

「機械学習」という技術で価値を創出する技術 〜プロダクト開発に機械学習を応用する際に考えること...

「機械学習」という技術で価値を創出する技術 〜プロダクト開発に機械学習を応用する際に考えること〜.pdf / techniques-to-create-values-with-ml-layerx-at-labtech-talk

2022年11月18日、LabTech Talk vol.60 における講演資料です。

様々なコンテンツやクラウドサービスの充実により、機械学習という技術を利用するハードルは低くなりました。一方で、機械学習を用いて価値を生み出すことは容易ではありません。本勉強会では、プロダクト開発において「機械学習」という技術で価値を創出する技術について、バクラク請求書の実例とともにお話ししました。

https://labtechtalk-event221118.peatix.com/

Yuya Matsumura

November 18, 2022
Tweet

More Decks by Yuya Matsumura

Other Decks in Technology

Transcript

  1. Confidential © 2022 LayerX Inc. 3 画像を入れてね 自己紹介 松村 優也(Yuya

    Matsumura) - 株式会社LayerX 機械学習エンジニア - ウォンテッドリー株式会社 技術顧問 - 静岡大学・兵庫県立大学 非常勤講師 共著 『推薦システム実践入門』 @yu___ya4 @yu-ya4
  2. © 2022 LayerX Inc. 4 略歴 2018年3月 京都大学大学院 情報学研究科 社会情報学専攻

    修了 / 情報検索・情報推薦の研究 2018年4月 4回生の時にインターン先のスタートアップから出資を受け起業 プログラミング教育・受託開発・人材系など 2019年まで代表として経営 新卒で Wantedly に1人目のデータサイエンティストとして入社 推薦システムチームの立ち上げ 2019年9月 同チームのリーダーとなり、機械学習活用・推薦システムの開発により一層力を入れる 2021年3月 開発チームのマネージャーに就任 Wantedly Visit の PdM と 組織全体の EM も兼任することに 2021年11月 静岡大学 非常勤講師(年に一度、推薦システムの講演) 2016年3月 京都大学 工学部 情報学科 卒業 元々塾講師になるつもりで3回生までバイトかサークルの日々 → 一念発起してエンジニアの道へ 2022年5月 兵庫県立大学 非常勤講師(年に一度、推薦システムの講演) / 『推薦システム実践入門』出版 2022年9月 LayerXに機械学習エンジニアとして入社 / Wantedly 技術顧問就任
  3. © 2022 LayerX Inc. 11 事業ビジョン 圧倒的に使いやすいプロダクトで わくわくする働き方を。 企業活動を支えるコーポレート業務は、ミスができない難しい業務。 バクラクはそんな業務の負担を少しでも軽くし、日常の業務がわくわくするような体験を届けます。

    使いやすさへの圧倒的なこだわりと、深い顧客理解で業務効率化を実現。 手作業、ハンコ、紙のやり取りから脱却し、事業と組織を支える本来の仕事に向き合えるようサポートします。
  4. © 2022 LayerX Inc. 12 法人支出管理(BSM)SaaS「バクラク」を展開 * 経費精算のSlack連携は申請内容の通知のみ 稟議・支払申請・経費精算・ワークフロー ・AIが領収書を5秒でデータ化

    ・承認はチャットアプリから ・シームレスな内部統制構築 仕訳・支払処理効率化 ・AIが請求書を5秒でデータ化 ・仕訳データを自動学習、 手入力ゼロへ ・改正電子帳簿保存法に対応 ・利用料無料 ・即時追加発行 ・最大1億円決済可能 法人向けクレジットカード ・無料で始められる ・手入力ゼロで証憑管理 ・改正電子帳簿保存法に対応 帳票保存・ストレージ バクラクでは機械学習がコア技術としてフル活用されています!
  5. © 2022 LayerX Inc. 17 「価値を創出する」とは? 今回は「ユーザーの課題を解決でき、ビジネスとして成立するプロダクト作ること」と定義 そのためには以下のような要素が必要 ※研究開発であったり、単に面白いものを作る、というのも大変重要で価値のあることです。そのような活動の先に、現在私たちが当たり前に使 うことのできる技術があります。今回はあくまで「事業会社におけるプロダクト作り」にフォーカスしているということをご理解ください。

    解決すべき課題を 見極める 技術的に解決することが できるのか見極める 実際にユーザーに使われ プロダクトを作る • 本当にユーザーは困っている? • 収益化できる? • (機械学習)技術で解決できるのか? • 真にユーザーの課題が解決されるソ リューションとなっているか? • 使いやすいUXとなっているか? • 正しく(機械学習)技術を活用できるか?
  6. © 2022 LayerX Inc. 18 「価値を創出する」とは? 「ユーザーの課題を解決できてビジネスとして成立するプロダクト作ること」と定義 今回はこの中から3つの要素に注目してお話しします。 ※研究開発であったり、単に面白いものを作る、というのも大変重要で価値のあることです。そのような活動の先に、現在私たちが当たり前に使 うことのできる技術があります。今回はあくまで「事業会社におけるプロダクト作り」にフォーカスしているということをご理解ください。

    解決すべき課題を 見極める 技術的に解決することが できるのか見極める 実際にユーザーに使われ プロダクトを作る • 本当にユーザーは困っている? • 収益化できる? • (機械学習)技術で解決できるのか? • 真にユーザーの課題が解決されるソ リューションとなっているか? • 使いやすいUXとなっているか? • 正しく(機械学習)技術を活用できるか?
  7. © 2022 LayerX Inc. 19 「価値を創出する」とは? 「ユーザーの課題を解決できてビジネスとして成立するプロダクト作ること」と定義 「解決すべき課題を見極める」のもめちゃくちゃ重要な要素ですが、今回は省略 気になる方は「プロダクトマネジメント」について調べてみてください ※研究開発であったり、単に面白いものを作る、というのも大変重要で価値のあることです。そのような活動の先に、現在私たちが当たり前に使

    うことのできる技術があります。今回はあくまで「事業会社におけるプロダクト作り」にフォーカスしているということをご理解ください。 解決すべき課題を 見極める 技術的に解決することが できるのか見極める 実際にユーザーに使われ プロダクトを作る • 本当にユーザーは困っている? • 収益化できる? • (機械学習)技術で解決できるのか? • 真にユーザーの課題が解決されるソ リューションとなっているか? • 使いやすいUXとなっているか? • 正しく(機械学習)技術を活用できるか?
  8. © 2022 LayerX Inc. 20 「価値を創出する」とは? 「ユーザーの課題を解決できてビジネスとして成立するプロダクト作ること」と定義 今回の勉強会では、請求書受け取り業務の非効率を解消することで、時間(将来的にはお金も)の使い方の節約 を目指す、バクラク請求書の「請求書読み取り機能」を例に説明していきます。 ※研究開発であったり、単に面白いものを作る、というのも大変重要で価値のあることです。そのような活動の先に、現在私たちが当たり前に使

    うことのできる技術があります。今回はあくまで「事業会社におけるプロダクト作り」にフォーカスしているということをご理解ください。 解決すべき課題を 見極める 技術的に解決することが できるのか見極める 実際にユーザーに使われ プロダクトを作る • 本当にユーザーは困っている? • 収益化できる? • (機械学習)技術で解決できるのか? • 真にユーザーの課題が解決されるソ リューションとなっているか? • 使いやすいUXとなっているか? • 正しく(機械学習)技術を活用できるか? 仕訳・支払処理効率化 ・AIが請求書を5秒でデータ化 ・仕訳データを自動学習、 手入力ゼロへ ・改正電子帳簿保存法に対応
  9. © 2022 LayerX Inc. 24 機械学習で解決できる課題 (正解データのある) 大量のデータが得られる 扱うデータが 十分に複雑である

    データの特性が 変化し続ける 以下の3つのポイントを満たす場合、機械学習で課題を解決できる・解決すべき可能性が高い
  10. © 2022 LayerX Inc. 25 (正解データのある)大量のデータが得られる 機械学習は、大量のデータから自動でルールを学習する データが十分にないとルールを学習できなかったり(未学習)、学習データのみに適合してしまう(過学習) • 今あるのか?今はなくともこれからたまる仕組みがあるのか?

    • データは使える程度にはキレイか、開発に際してアクセス可能な状態か? • 教師あり学習を行う場合は、正解データも十分に得られるか? ◦ アノテーションを行う必要があるなら、その仕組みや体制は整っているか?
  11. © 2022 LayerX Inc. 26 (正解データのある)大量のデータが得られる 機械学習は、大量のデータから自動でルールを学習する データが十分にないとルールを学習できなかったり(未学習)、学習データのみに適合してしまう(過学習) • 今あるのか?今はなくともこれからたまる仕組みがあるのか?

    → 今もあるし(月次数百億円規模の請求書)、これからも増えていくであろう。 • データは使える程度にはキレイか、開発に際してアクセス可能な状態か?  →整備されており、適切な情報・権限管理のもと一部の開発者はアクセス可能 • 教師あり学習を行う場合は、正解データも十分に得られるか? → サービスが利用されると正解データであるユーザーの入力値がたまっていく。 ◦ アノテーションを行う必要があるなら、その仕組みや体制は整っているか?      → 別途アノテーション用の基盤システムや、組織が整備されている。 https://note.com/fukkyy/n/nf00ddb836a03 の場合
  12. © 2022 LayerX Inc. 27 機械学習で解決できる課題 (正解データのある) 大量のデータが得られる 扱うデータが 十分に複雑である

    データの特性が 変化し続ける 以下の3つのポイントを満たす場合、機械学習で課題を解決できる・解決すべき可能性が高い
  13. © 2022 LayerX Inc. 28 扱うデータが十分に複雑である 機械学習は、複雑で人間が記述することが難しいルールを見つけ出すのが得意 単純なデータであれば、人手でルールを記述する(一般的なプログラミング)ので十分なことも。 • ルールが複雑(難解・大量)で人手で記述することが困難か?

    ◦ Fizz Buzz に機械学習を用いることもできるが、そのコストを事業上許容できるかというと... • データの扱いが難しいか? ◦ めちゃくちゃたくさんのカラムがある表データ ◦ 自然言語や画像、音声などの非構造化データ
  14. © 2022 LayerX Inc. 29 扱うデータが十分に複雑である 機械学習は、複雑で人間が記述することが難しいルールを見つけ出すのが得意 単純なデータであれば、人手でルールを記述する(一般的なプログラミング)ので十分なことも。 • ルールが複雑(難解・大量)で人手で記述することが困難か?

    → 世の中には様々な請求書のパターンが存在しており、かつ、ユーザーの運用もそれぞれで複雑である。 • データの扱いが難しいか? → 非構造化データである画像ファイルやPDF形式の請求書を扱う必要がある。 の場合
  15. © 2022 LayerX Inc. 30 機械学習で解決できる課題 (正解データのある) 大量のデータが得られる 扱うデータが 十分に複雑である

    データの特性が 変化し続ける 以下の3つのポイントを満たす場合、機械学習で課題を解決できる・解決すべき可能性が高い
  16. © 2022 LayerX Inc. 31 データの特性が変化し続ける 機械学習は、データの特性が変わっても再学習することで自動で新しいルールを更新できる 変化し続けるルールを人手で更新し続けるのは困難。変化しないなら気合いですべて記述してしまう手も? • ユーザーの性質は変化するか?

    ◦ プロダクト規模の拡大により、異なるセグメントのユーザーが利用するようになったり ◦ 同一ユーザーでも時間の流れとともに嗜好が変わったり • 世の中の状況の変化にプロダクトは影響を受けるか? ◦ 法改正・流行の変化・景気・パンデミック...
  17. © 2022 LayerX Inc. 32 データの特性が変化し続ける 機械学習は、データの特性が変わっても再学習することで自動で新しいルールを更新できる 変化し続けるルールを人手で更新し続けるのは困難。変化しないなら気合いですべて記述してしまう手も? • ユーザーの性質は変化するか?

     → どんどんいろんな規模や業界の企業さまにご利用いただいていっている。企業さまにより、利用している請 求書のフォーマットは様々である。 • 世の中の状況の変化にプロダクトは影響を受けるか? → 「インボイス制度」により、読み取ることのできるべき請求書の項目が増加。 → コロナ禍による在宅勤務が進んだ影響などで、副業を行う個人事業主が増加。 の場合
  18. © 2022 LayerX Inc. 39 顧客(ユーザー)が本当に求めている出力 ケース1 支払期日として2021年2月28日(日)を検出 顧客「実際に支払うのは平日の26日(金)だから変更しないと!」 ケース2

    支払金額として500,000円を検出 顧客「実際に支払うのは源泉税10.21%を差し引いた448,950円だから変更しないと!」 ユーザーが本当に欲しいのは「請求書に記載の値」ではなく「実際の運用に即した値」
  19. © 2022 LayerX Inc. 40 何を入出力とするか 顧客(ユーザー)が本当に求めていた「請求書読み取り機能」の入出力 請求書ファイル (画像・PDF) 支払期日

    支払金額 2021/02/28 取引先 500,000 株式会社テンプレ 請求書に記載の 項目ごとの値 支払期日 支払金額 2021/02/26 取引先 448,950 株式会社テンプレ 請求書に記載の 項目ごとの値に基づいた 実際の運用に即した値 • 「請求書に記載の値」を正確に読み取れるだけでもユーザーは十分嬉しいが、それだけでは真の課題解決にならない。 • 「実際の運用に即した値」を出力できて初めて真の課題解決、大きな価値を提供できたこととなる。
  20. © 2022 LayerX Inc. 41 「顧客が本当に必要だったもの」を明らかにする方法 例のアレ 顧客へのヒアリングや、実際に顧客に製品(プロトタイプ)を使ってもらう、データ分析、等々... • 詳しく学びたい人はプロダクトマネジメントを学んでみよう!めちゃくちゃ難しいです。

    • LayerX ではめちゃくちゃ顧客にヒアリングをしたり、社内にドメインエキスパートがいたりします。 https://dic.nicovideo.jp/a/%E9%A1%A7%E5%AE%A2%E3%81%8C%E6%9C%AC%E5%BD%93%E3% 81%AB%E5%BF%85%E8%A6%81%E3%81%A0%E3%81%A3%E3%81%9F%E3%82%82%E3%81%AE
  21. © 2022 LayerX Inc. 43 何を性能指標とするか 請求書ファイル (画像・PDF) 支払期日 支払金額

    2021/02/26 取引先 448,950 株式会社テンプレ 請求書に記載の 項目ごとの値に基づいた 実際の運用に即した値 この「請求書読み取り機能」が「真にユーザーの課題を解決している」とはどういう状態? • 1,000件の請求書が入力されて、すべてに対して「実際の運用に即した値」=「正解」を出力できていたら完璧 ◦ だが、もちろん実際はそうもいかない • では、1,000件の請求書が入力されて、910件が正解を出力できている状態は? ◦ 91%正解できているのでけっこう良さそう!本当に...?
  22. © 2022 LayerX Inc. 44 全体の正解率だけでは見えないものがある 1,000件の請求書が入力されて、910件が正解を出力、正解率91%!でも... • たとえば10人のユーザーが利用してくれているとする。 •

    実は1人のユーザーが910件の請求書を入力していて、残りの9人はそれぞれ10件ずつ入力していたとする。 • 実は正解している910件はすべて1人のユーザーが入力したものだとする。 • その場合、1人のヘビーユーザーは正解率100%で大変満足しているが、残りの9人は正解率0%となる。 • 10人のユーザーが利用してくれているのに、1人(10%)のユーザーにしかプロダクトの価値が提供できていな いこの状態は決して「真にユーザーの課題を解決している」とは言えないはず。 😃 😃 😃 😃 😃 😃 😃 😃 😃 😃 😃 😃 😃 😃 😃 😃 😃 😃 😃 😃 😆 😓 😓 😓 😓 😓 😓 😓 😓 😓
  23. © 2022 LayerX Inc. 45 全体だけではなく個別の事象を性能指標に反映する 以下の例では同じ1,000件の請求書が入力されて、910件が正解を出力、正解率91%!でも... • 1人のヘビーユーザーが正解率100%で、残りの9人は正解率0%の場合 ◦

    ユーザーごとの正解率の平均は(100 + 0 * 9) / 10 = 10% • 1人のヘビーユーザーは正解率約95%(865/910)で、残りの9人は正解率50%(5/10)の場合 ◦ ユーザーごとの正解率の平均は(95 + 50 * 9) / 10 = 54.5% 常にユーザーへの提供価値から逆算して何を性能指標とするべきか考える 全体の正解率(91%)は同じでも、ユーザーごとの正解率の平均には大きな差が生まれた。 今回のケースの場合、おそらく後者のほうがプロダクトを利用するユーザーの課題が解決されている状態と言えるため、全体 の正解率(だけ)よりかは、ユーザーごとの正解率の平均を性能指標として使うことは筋が良さそう。 (これはこれで、入力の少ないユーザーの重みが大き過ぎるという問題があるかもしれないが...) 正直なところ正解はない... 難しい...でもだからこそ面白い!
  24. © 2022 LayerX Inc. 46 さらにユーザーへの提供価値を考えてみる バクラクが解決したい課題を思い返すと、請求書読み取りが目指すところは “Saving Time” たとえば、「ユーザーが請求書処理において1枚当たりにかけた時間」を性能指標にすることが考えられる。

    • システムが正解を出力できれば最短で請求書の処理が終わるので性能指標が改善される。 • システムが入力の請求書を受け取ってから出力を返すまでの時間が短くなれば性能指標が改善される。 • 正解を出力できなくとも、ユーザーができるだけ早く間違いを訂正できるような仕組みを提供できれば性能指 標の悪化を最低限に抑えられる。 どれだけたくさんの正解を出力できるか、以外の要素も真の課題解決・ユーザーへの提供価値最大化には重要
  25. © 2022 LayerX Inc. 49 正しく機械学習を活用できるか 「請求書ファイル」を入力、「実際の運用に即した値」を出力と定義、正解データを集めて機械学習? それでも悪くないが、 end-to-end な機械学習(深層学習)が常にベストな選択とは限らない

    • 技術的な難易度や、単純に問題としての難易度が向上する。 • 一般的に必要なデータ量が(より)膨大になる。必要なマシンリソースや学習にかかる時間なども大きくなる。 • まるまるブラックボックスになるため、予測性能が落ちた際などに問題の切り分けが難しい。 請求書ファイル (画像・PDF) 支払期日 支払金額 2021/02/26 取引先 448,950 株式会社テンプレ 請求書に記載の 項目ごとの値に基づいた 実際の運用に即した値
  26. © 2022 LayerX Inc. 50 問題を分割してみる 入力から出力までを意味のある単位で分割し多段の処理で表現、よりうまく機械学習で解けない か、あるいは機械学習という手段を取らない方が良い処理がないか検討してみる。 請求書ファイル (画像・PDF)

    支払期日 支払金額 500,000 請求書に記載の 項目ごとの値 実際の運用に即した値 { “bbox”: [{"x": 0.3421, "y": 0.567},...], "word": “2021/2/28” },... 2021/02/28 株式会社テンプレ 取引先 支払期日 支払金額 448,950 2021/02/26 株式会社テンプレ 取引先 請求書内の 文字と座標 たとえば、 • 「請求書に記載の値」を「実際の運用に即した値」に変換する処理を加えることで、それぞれを分割 • 請求書ファイルから文字検出と文字認識を行う処理と、それぞれの文字がどの項目に該当するか推定する処理 を加えることで、「請求書内の文字と座標」という中間出力を追加 項目推定 なんらかの 変換処理 文字検出 文字認識
  27. © 2022 LayerX Inc. 51 自前で機械学習モデルを作成する以外の手段の検討 請求書ファイル (画像・PDF) 支払期日 支払金額

    500,000 請求書に記載の 項目ごとの値 実際の運用に即した値 { “bbox”: [{"x": 0.3421, "y": 0.567},...], "word": “2021/2/28” },... 2021/02/28 株式会社テンプレ 取引先 支払期日 支払金額 448,950 2021/02/26 株式会社テンプレ 取引先 請求書内の 文字と座標 たとえば、 • 「請求書に記載の値」を「実際の運用に即した値」に変換する処理は、ある程度まではルールベースで十分かも。 ◦ e.g. 抽出された支払期日か土日ならば、それ以前の最後の平日の日時に変換する • 文字検出・文字認識は自前で実装せずにクラウドサービスを利用したほうが手間が少なく、精度も高いかも。 文字検出 文字認識 項目推定 なんらかの 変換処理 Vision API などのク ラウドサービスを利 用 ルールベースで後 処理
  28. © 2022 LayerX Inc. 52 本当に必要な処理のみ自前で機械学習モデルを作成する 請求書ファイル (画像・PDF) 支払期日 支払金額

    500,000 請求書に記載の 項目ごとの値 実際の運用に即した値 { “bbox”: [{"x": 0.3421, "y": 0.567},...], "word": “2021/2/28” },... 2021/02/28 株式会社テンプレ 取引先 支払期日 支払金額 448,950 2021/02/26 株式会社テンプレ 取引先 請求書内の 文字と座標 請求書内の文字と座標がそれぞれどの項目に該当するか推定する、という処理に対して自前で機械学習モデルを作成 • end-to-end な機械学習に比べて技術的な難易度や問題としての難易度が低減 • 必要なデータ量、マシンリソースや学習にかかる時間などのコストが削減 • 予測性能が落ちるなど問題が生じた際、どこの処理で問題が起きているのかの原因に切り分けが行いやすい 文字検出 文字認識 項目推定 なんらかの 変換処理 Vision API などのク ラウドサービスを利 用 ルールベースで後 処理 自前で機械学習モ デルを作成
  29. © 2022 LayerX Inc. 53 正しく機械学習を活用できるか 問題を分解した上で、解決する難易度や精度、コストのバランスを鑑みた上で適切な処理に機械 学習を適用することが重要 請求書ファイル (画像・PDF)

    支払期日 支払金額 500,000 請求書に記載の 項目ごとの値 実際の運用に即した値 { “bbox”: [{"x": 0.3421, "y": 0.567},...], "word": “2021/2/28” },... 2021/02/28 株式会社テンプレ 取引先 支払期日 支払金額 448,950 2021/02/26 株式会社テンプレ 取引先 請求書内の 文字と座標 文字検出 文字認識 項目推定 なんらかの 変換処理 Vision API などのク ラウドサービスを利 用 ルールベースで後 処理 自前で機械学習モ デルを作成
  30. © 2022 LayerX Inc. 55 まとめ - 「機械学習」という技術で価値を創出する技術 • 機械学習で解決できるのか

    ◦ 適切に状況を見極め、手段(≠目的)である機械学習を適用するべきか考えることが重要 • 真にユーザーの課題が解決されるか ◦ ユーザーの課題が解決されるか・ユーザーへの提供価値から逆算してシステムの入出力や性能指 標を考えることが重要 • 正しく機械学習を活用できるか ◦ 問題を分解した上で、解決する難易度や精度、コストのバランスを鑑みた上で適切な処理に機械 学習を適用することが重要
  31. © 2022 LayerX Inc. 56 まとめ - 「機械学習」という技術で価値を創出する技術 • 機械学習で解決できるのか

    ◦ 適切に状況を見極め、手段(≠目的)である機械学習を適用するべきか考えることが重要 • 真にユーザーの課題が解決されるか ◦ ユーザーの課題が解決されるか・ユーザーへの提供価値から逆算してシステムの入出力や性能指 標を考えることが重要 • 正しく機械学習を活用できるか ◦ 問題を分解した上で、解決する難易度や精度、コストのバランスを鑑みた上で適切な処理に機械 学習を適用することが重要 いろいろと説明・事例を紹介しましたが、プロダクトの性質や状況によって進め方は様々なので、 原則に基づいて自分の頭でしっかり考えることが重要