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

【2/3】GMOペパボ機械学習研修2022 資料

watasan
August 19, 2022

【2/3】GMOペパボ機械学習研修2022 資料

GMOペパボの新卒エンジニア向けに実施した機械学習研修の資料です。全3日間のうち2日目の資料です。

弊社のエンジニアリング組織においてサービス価値を高めるために提唱している「再帰化」と機械学習の関係について解説する内容になっています。

他の日の資料は以下です。
1日目の資料(機械学習イントロダクション)
https://speakerdeck.com/ae14watanabe/3-gmopepaboji-jie-xue-xi-yan-xiu-2022-zi-liao-fd3f37c8-39c9-4e53-b622-724e9881bc33

3日目の資料
https://speakerdeck.com/ae14watanabe/gmopepaboji-jie-xue-xi-yan-xiu-2022-zi-liao-3ri-mu-quan-3ri-jian

3日間の資料のpdf版は以下にも置いています。
https://github.com/pepabo/training/tree/master/data-and-machine-learning/2022/machine_learning

watasan

August 19, 2022
Tweet

More Decks by watasan

Other Decks in Programming

Transcript

  1. 1
    機械学習研修 Day2
    (ハンズオン・「再帰化と機械学習」座学)
    渡辺 龍二 / ペパボ研究所
    2022.08.03

    View Slide

  2. 2
    1. 研修についてのおさらい (数分)
    2. ハンズオンの続きをやろう! (120 min)
    3. 再帰化と機械学習(座学) (30 min)
    4. 学んだことを各自まとめる(15 min)
    Day2 アジェンダ

    View Slide

  3. 3
    ガイダンス|研修の目的
    機械学習研修の目的はこれだ!
    サービス価値の向上のために「再帰化」を実現する上で、
    実装手段として機械学習を検討できるようになる。
    • 目的の背景:ペパボのエンジニアとして機械学習を学ぶ動機は、
             機械学習を「再帰化」の実現アプローチとして利用することにある
    • サービス価値の向上において「再帰化」は重要な考え方[栗林2022]
    • 「再帰化 ≠ 機械学習の利用」であることを理解して
    再帰化を実現するために機械学習の利用するか否かを判断できることを目指す
    [栗林2022] GMOペパボが考えるこれからのサービス開発(p.10より引用)
    https://speakerdeck.com/kentaro/toward-the-next-service-development-era?slide=10

    View Slide

  4. 4
    研修についてのおさらい|カリキュラム
    研修目的を達成するために以下のカリキュラムを設定しています!
    サービス価値の向上のために「再帰化」を実現する上で、
    実装手段として機械学習を検討できるようになる。
    研修の目的
    ゴール 実施内容
    Day1
    機械学習とは何か、
    自分の言葉で説明できる
    - 機械学習イントロダクション(座学)
    - Machine Learning Crash Course
    (ハンズオン)
    Day2
    再帰化を実現するために、
    機械学習をどう活用できるか
    イメージできる
    - Machine Learning Crash Course
    (ハンズオン)
    - 再帰化と機械学習(座学)
    Day3
    サービスの実課題を
    機械学習で解決する
    一連の流れの例を挙げられる
    - Machine Learning Crash Course
    (ハンズオン)
    - 機械学習のサービス連携事例紹介(座学)

    View Slide

  5. 5
    1. 研修についてのおさらい (数分)
    2. ハンズオンの続きをやろう! (120 min)
    3. 再帰化と機械学習(座学) (30 min)
    4. 学んだことを各自まとめる(15 min)
    Day2 アジェンダ

    View Slide

  6. 6
    • Machine Learning Crash Course
    • 今日進めて欲しい単元
    • Generalization (15min)
    • Training and test sets (25 min)
    • Validation set (35 min)
    • Representation (40 min)
    ハンズオンを引き続きやっていきましょう!
    ハンズオンの続きをやろう!

    View Slide

  7. 7
    • ハンズオン資料は英語です
    • はぁ?どゆこと?となったらすぐに聞いてください!
    • 動画は飛ばしてください!
    • 休憩を適宜取ってください
    • 早く終わった場合はどんどん先に進んで大丈夫です!
    進める上での注意点
    Let’s ハンズオン

    View Slide

  8. 8
    1. 研修についてのおさらい (数分)
    2. ハンズオンの続きをやろう! (120 min)
    3. 再帰化と機械学習(座学) (30 min)
    4. 学んだことを各自まとめる(15 min)
    Day2 アジェンダ

    View Slide

  9. 9
    再帰化と機械学習
    渡辺 龍二 / ペパボ研究所
    2022.08.03 機械学習研修Day2

    View Slide

  10. 10
    • 再帰化と機械学習の関係について、一緒に考えていきましょう
    • そのために「再帰化ってなんぞや…?」から確認していく
    • 機械学習は再帰化を実現するアプローチの1つ、であることを確認する
    この時間について
    1. 再帰化とは何か?
    2. 再帰化と機械学習の関係
    3. 再帰化と機械学習の発展的な話題
    趣旨
    アジェンダ

    View Slide

  11. 11
    1. 再帰化とは何か?

    View Slide

  12. 12
    • ペパボは様々なユーザに対してwebサービスを提供している
    • サービスを通して1人1人のユーザが得る体験の価値を高めたい
    • Webサービスの主要な構成要素である情報システムが
    様々なユーザに価値を感じてもらえる・満足してもらえるように振る舞ってほしい
    そのための手段の1つが「再帰化」だと言える
    サービス価値の向上、という目的を達成する手段として「再帰化」がある
    1. 再帰化とは何か?|再帰化の動機

    View Slide

  13. 1. 再帰化とは何か?|定義
    13
    構造化・自動化されたサービスが、
    ユーザとのインタラクションの結果を取り込んで、
    システムを自らより良いものへと改修していくプロセス
    再帰化の定義[栗林2022]
    [栗林2022] GMOペパボが考えるこれからのサービス開発(p.10より引用)
    https://speakerdeck.com/kentaro/toward-the-next-service-development-era?slide=10

    View Slide

  14. 1. 再帰化とは何か?|このセクションの進め方
    14
    構造化・自動化されたサービスが、
    ユーザとのインタラクションの結果を取り込んで、
    システムを自らより良いものへと改修していくプロセス
    再帰化の定義[栗林2022]
    以降、この定義について理解を試みます
    [栗林2022] GMOペパボが考えるこれからのサービス開発(p.10より引用)
    https://speakerdeck.com/kentaro/toward-the-next-service-development-era?slide=10

    View Slide

  15. 15
    我々の運営するwebサービスは
    ユーザからの要求に対してレスポンスするシステムによって構成されている
    1. 再帰化とは何か?|背景
    システム
    ① リクエスト
    ② レスポンス
    e.g. ワード「犬」で
    商品を検索したい
    e.g. 「犬」に関連する
    商品のリスト
    ユーザ

    View Slide

  16. 16
    ユーザが変われば、ユーザが満足するレスポンスも変わる
    1. 再帰化とは何か?|背景
    システム
    ① リクエスト
    ② レスポンス
    e.g. ワード「犬」で商品を検索したい
    e.g. 「犬」に関連する商品のリスト
    ユーザA
    ユーザB
    e.g. 複数のユーザが同じリクエストを送り、同じレスポンスを返したとき
    ② レスポンス
    ① リクエスト
    満足!
    不満!
    ③ レスポンスに
    対して印象を抱く
    ③ レスポンスに
    対して印象を抱く

    View Slide

  17. 17
    e.g. 複数のユーザが同じリクエストを送るが、各ユーザに即したレスポンスをする場合
    各ユーザに即して適切なレスポンスをするようなシステムを実現したい
    1. 再帰化とは何か?|理想像
    システム
    ① リクエスト
    e.g. ワード「犬」で商品を検索したい
    e.g. 「犬」に関連する商品を
    ユーザAの好み順に並べたリスト
    ユーザA
    ユーザB
    ① リクエスト
    満足!
    私も満足!
    ③ レスポンスに
    対して印象を抱く
    ③ レスポンスに
    対して印象を抱く
    ② ユーザAに即したレスポンス
    ② ユーザBに即したレスポンス
    e.g. 「犬」に関連する商品を
    ユーザBの好み順に並べたリスト

    View Slide

  18. 18
    • このようなシステムを再帰化されたシステムと呼ぶ
    • 再帰化したい理由は、理想のシステムを人手で作るのが大変かつ有効性が低い場合があるため
    (詳しくは後述)
    ユーザとのインタラクションの中でユーザの満足度合いを推し測りながら
    レスポンスを自ら改善させていく(再帰化する)システムを作りたい
    1. 再帰化とは何か?|やりたいこと
    システム
    ① リクエスト
    ② レスポンス
    ユーザ
    ③ リクエスト
    ⑤ 改善済レスポンス
    ④ 再帰化
    (リクエストを踏まえ
    「ユーザに即した」
    レスポンスをするための改善)
    e.g. こちらの②リクエストに対して
    ③レスポンスを返したということは
    不満だったかもしれないので
    次はXXなレスポンスをしよう

    View Slide

  19. 19
    2. 再帰化と機械学習の関係

    View Slide

  20. 20
    • システムは、リクエスト(入力)対してレスポンス(出力)を返す仕組みである
    • これを抽象的に捉えると関数と見なせる
    システムは「関数」であると捉えることができる
    2. 再帰化と機械学習の関係|前提
    関数
    f
    入力 x(リクエスト)
    出力 y = f(x)
    (レスポンス)
    ユーザ

    View Slide

  21. 21
    • 例えば、この関数の入力として、リクエストだけでなく、ユーザの属性情報も加える
    • こうすると、ユーザの属性に応じて出力を変化させることができる
    各ユーザが満足するレスポンスを返す関数を設計したい
    2. 再帰化と機械学習の関係|動機
    関数
    f
    入力 x
    (リクエストとユーザ属性情報のペア)
    出力 y = f(x)
    (レスポンス)
    ユーザ
    • このような関数fをあらゆるユーザが満足してくれるように設計したい

    View Slide

  22. 22
    関数の設計を運用者が経験を元に行うのは有効性やスピードに劣る(可能性大)
    2. 再帰化と機械学習の関係|問題
    運用者の経験に基づく設計の問題
    ● ユーザの要望を正確に反映することが難しい[三宅2022]
    ○ 様々なユーザの多様性を認知し、
    それぞれにどう対応するか設計することには限界がある
    ○ そのため、設計の際に最大公約数的な振る舞いを定義しがち
    人手でやる設計の問題
    ● 時間がかかる
    ● 属人化しやすい
    スケールしにくい
    [三宅2022] 再帰化への認知的転回。なめらかなシステムの実践に向けた取り組み
    https://rand.pepabo.com/article/2022/04/01/the-turn-to-recursive-system/

    View Slide

  23. 23
    人手での設計の問題に対しては、自動的・データ駆動な設計が有望である
    2. 再帰化と機械学習の関係|解決策
    運用者の経験ベースな
    設計の問題
    ● ユーザの要望を正確に
    反映することが難しい
    データ駆動な設計への期待
    ● ユーザの要望を正確に反映できる(かも)
    データという客観的な事実を元に設計するため
    自動的な設計への期待
    人手でやる設計の問題
    ● 高速化
    ● 属人化の抑制
    ● 時間がかかる
    ● 属人化しやすい
    有望な
    打ち手
    有望な
    打ち手
    スケール
    しやすい
    スケール
    しにくい

    View Slide

  24. 24
    データ駆動・自動的な関数の設計の実現方法として機械学習がある
    2. 再帰化と機械学習の関係|実現アプローチ
    データ駆動な設計への期待
    ● ユーザの要望を正確に反映できる(かも)
    データという客観的な事実を元に設計するため
    自動的な設計への期待
    ● 高速化
    ● 属人化の抑制
    スケール
    しやすい
    機械学習
    実現
    ※ あくまで実現方法の1つの選択肢
    ※ 機械学習を適当に導入すればAll OK!ではない
    (ここまでの研修でよくご承知だと思いますが…)

    View Slide

  25. 25
    機械学習(教師あり学習)はデータ駆動・自動的な関数の設計に利用できる
    2. 再帰化と機械学習の関係|実現アプローチとしての機械学習
    通常のプログラミングによる
    関数の設計
    関数の入出力関係を
    人間(プログラマ)が
    全て書き下す
    (人間が書いたようにしか
    動かない)
    機械学習による関数の設計
    データからアルゴリズムに
    よって自動的に決定する[丸山2021]
    (人間が書き下さなくても
    自動的に挙動が決まる)
    xからyを
    決定する処理
    • ここまでの数学的な「関数」をプログラムにおける「関数」として見てみたとき…
    [丸山2021] Software 2.0とその社会的課題
    https://tech.preferred.jp/ja/blog/software2_0/

    View Slide

  26. 26
    3. 再帰化と機械学習の発展的な話題

    View Slide

  27. 27
    • ある時点で機械学習によって設計した関数がその後も有効とは限らない
    • システムの外側にある、利用者を含む環境は時間と共に変化する
    • 学習時の環境に最適化された関数を使い続けると、環境の変化と共に有効性が落ちる
    • 古典的な機械学習は、環境の変化を想定していないため
    • (イメージとしては内挿はうまくできるが外挿がうまくいかない、という感じ)
    • よって、関数を継続的に設計しなおす必要がある
    • この継続的な設計も自動化できることが望ましい
    • この仕組みをどう作るか?ということが
    MLOps[Mäkinen2021]領域や機械学習研究の領域[Lange2021] で盛んに取り組まれている
    関数の設計を継続的・自動的に更新していく仕組みが必要なのでは?
    3. 再帰化と機械学習の発展的な話題|提言
    [Mäkinen2021] Who Needs MLOps: What Data Scientists Seek to Accomplish and How Can MLOps Help?
    https://ieeexplore.ieee.org/abstract/document/9474355
    [Lange2021] A Continual Learning Survey: Defying Forgetting in Classification Tasks
    https://ieeexplore.ieee.org/abstract/document/9349197

    View Slide

  28. レスポンス
    28
    「関数の設計を継続的・自動的に更新していく仕組み」のイメージ
    3. 再帰化と機械学習の発展的な話題|提言
    デプロイ
    する
    追加ログの
    特徴量と
    ラベルを
    抽出する
    関数f
    機械学習
    モデル
    予測API サービス
    送る
    ログを追加する
    ログ
    予測結果が欲しい
    入力を提示する
    予測結果を返す
    学習
    データ
    学習する
    ユーザ
    リクエスト
    予測結果が
    反映されたもの

    View Slide

  29. 29
    • 異なるタイムスケールでの改善のループを多重に考えることができる
    • 一重目:システムとユーザのインタラクションによる改善
        (e.g. 機械学習の適用による自動的な関数の設計)
    • 二重目:関数の設計を継続的に更新していく仕組み
    • 三重目:二重目の仕組みを見直す、という改善のループ
    • 再帰化とは、各レイヤーでの自動化に取り組んでいく試みと言える
    システムの改善のループはさらに多重に考えることができる
    3. 再帰化と機械学習の発展的な話題|発展

    View Slide

  30. 30
    1. 再帰化とはサービスを構成するシステムが
    ユーザとのインタラクションの中で自らを改善していくプロセス
    2. 再帰化にはデータ駆動・自動的な関数(システム)の設計が有望であり
    そのアプローチの1つとして機械学習がある
    3. 機械学習によって設計された関数の継続的・自動的な改善も必要であり
    このような多重の改善もまた再帰化である
    「再帰化と機械学習」まとめ

    View Slide

  31. 31
    1. 研修についてのおさらい (数分)
    2. ハンズオンの続きをやろう! (120 min)
    3. 再帰化と機械学習(座学) (30 min)
    4. 学んだことを各自まとめる(15 min)
    Day2 アジェンダ

    View Slide

  32. • Day2のゴール「再帰化を実現するために、機械学習をどう活用できるかイメージできる」は
    達成できそうでしょうか…?
    • ぜひ以下のことをまとめてみてください〜!
    • 「再帰化と機械学習の関係」について
    • 学んだこと、難しかったこと、考えたこと、思ったことなど
    32
    Day2 クロージング
    今日学んだことのまとめ・アウトプットの時間にします〜

    View Slide