Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

11 1. 再帰化とは何か?

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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