Slide 1

Slide 1 text

機械学習を用いず 数学でゲーム内の 需要予測をする 2018/9/7 builderscon 2018 @nessie_sesein

Slide 2

Slide 2 text

機械学習を用いず 数学でゲーム内の 需要予測をする 2018/9/7 builderscon 2018 @nessie_sesein

Slide 3

Slide 3 text

機械学習を用いず 数学でゲーム内の 需要予測をする 2018/9/7 builderscon 2018 @nessie_sesein に対してアレルギー反応と か出ない人が集まっている という仮定の下で話をして いきます この場にいる人は

Slide 4

Slide 4 text

数学とありますが、 高校レベルの数学を理解 していれば問題ありません 統計等の知識も不要です 前提知識

Slide 5

Slide 5 text

自己紹介 • 禰寝崇之(あだ名は「ねっしー」) • 東京工業大学大学院理工学研究科数学専攻 修 士課程修了 • 専門は解析的整数論、特に篩法を用いたPrime Gapsについて • 新卒で面白法人カヤックに入社、ソーシャル ゲーム事業部でレベルデザイナーを経験した 後、事業部を横断して分析する『ねし部』を 設立して現在は分析業務がメイン • 趣味で絵を描いたり

Slide 6

Slide 6 text

話すこと 1.分析の重要性と問題 2.数学について 3.ゲーム内の需要予測

Slide 7

Slide 7 text

話すこと 1.分析の重要性と問題 2.数学について 3.ゲーム内の需要予測 心 構 え 的 な 話 実 践 的 な 話

Slide 8

Slide 8 text

話すこと 1.分析の重要性と問題 2.数学について 3.ゲーム内の需要予測

Slide 9

Slide 9 text

4つの分析 記述的分析 • 何が起こった のかの可視化 診断的分析 • なぜ起こったか を明らかにする 予測的分析 • これから何が 起こるかを予 測する 処方的分析 • 結果を最適化 するための手 段を導く Gartner “IT Glossary_ Predictive Analytics” http://www.gartner.com/it-glossary/predictive-analytics

Slide 10

Slide 10 text

4つの分析 記述的分析 • 何が起こった のかの可視化 診断的分析 • なぜ起こったか を明らかにする 予測的分析 • これから何が 起こるかを予 測する 処方的分析 • 結果を最適化 するための手 段を導く Gartner “IT Glossary_ Predictive Analytics” http://www.gartner.com/it-glossary/predictive-analytics 過去や現在 を知る 因果関係を 見つける 未来を知る 未来をコント ロールする

Slide 11

Slide 11 text

4つの分析 記述的分析 • 何が起こった のかの可視化 診断的分析 • なぜ起こったか を明らかにする 予測的分析 • これから何が 起こるかを予 測する 処方的分析 • 結果を最適化 するための手 段を導く Gartner “IT Glossary_ Predictive Analytics” http://www.gartner.com/it-glossary/predictive-analytics 過去や現在 を知る 因果関係を 見つける 未来を知る 未来をコント ロールする 分析の究極的目標は 未来を知ること!

Slide 12

Slide 12 text

未来がわかれば お金持ちになれる

Slide 13

Slide 13 text

現実的な話 分析は「数%の改善」のために地道 に数字と向き合うことが多い → 短期的には効果が見えづらいが、 この「数%」が長期的には効いてく る!

Slide 14

Slide 14 text

例えば 月に2%の成長をする → 1ヶ月後には1.02倍になる

Slide 15

Slide 15 text

例えば 月に2%の成長をする → 1ヶ月後には1.02倍になる ︙ → 1年後には1.0212≒1.43倍になる

Slide 16

Slide 16 text

例えば 月に2%の成長をする → 1ヶ月後には1.02倍になる ︙ → 1年後には1.0212≒1.43倍になる ︙ → 2年後には1.0224≒2.03倍になる

Slide 17

Slide 17 text

分析の重要性 •長期運用するサービスになればなる ほど、分析の重要性が増す •分析ブームを後押しするように、分 析のための様々なツール等が登場 • BIツールによる可視化 • 機械学習による未来予測 毎年叫ばれる

Slide 18

Slide 18 text

4つの分析 記述的分析 • 何が起こった のかの可視化 診断的分析 • なぜ起こったか を明らかにする 予測的分析 • これから何が 起こるかを予 測する 処方的分析 • 結果を最適化 するための手 段を導く Gartner “IT Glossary_ Predictive Analytics” http://www.gartner.com/it-glossary/predictive-analytics 過去や現在 を知る 因果関係を 見つける 未来を知る 未来をコント ロールする

Slide 19

Slide 19 text

4つの分析 記述的分析 • 何が起こった のかの可視化 診断的分析 • なぜ起こったか を明らかにする 予測的分析 • これから何が 起こるかを予 測する 処方的分析 • 結果を最適化 するための手 段を導く Gartner “IT Glossary_ Predictive Analytics” http://www.gartner.com/it-glossary/predictive-analytics 過去や現在 を知る 因果関係を 見つける 未来を知る 未来をコント ロールする BIツール 機械学習

Slide 20

Slide 20 text

4つの分析 記述的分析 • 何が起こった のかの可視化 診断的分析 • なぜ起こったか を明らかにする 予測的分析 • これから何が 起こるかを予 測する 処方的分析 • 結果を最適化 するための手 段を導く Gartner “IT Glossary_ Predictive Analytics” http://www.gartner.com/it-glossary/predictive-analytics 過去や現在 を知る 因果関係を 見つける 未来を知る 未来をコント ロールする BIツール 機械学習 あれ?? ここは?

Slide 21

Slide 21 text

分析の問題点 たとえ未来予測ができても、人間が 因果関係を履き違えると、適切なア クションが取れない 例:アイスの売上と溺死事故には相 関がある → 溺死を減らすためにアイスの不買 運動をするのは正しいのか?

Slide 22

Slide 22 text

分析の問題点 たとえ未来予測ができても、人間が 因果関係を履き違えると、適切なア クションが取れない 例:アイスの売上と溺死事故には相 関がある → 溺死を減らすためにアイスの不買 運動をするのは正しいのか? データは解釈まで 与えてくれない!!

Slide 23

Slide 23 text

Q.じゃあ正しくデータを 解釈できるようになるた めにはどうすればいい?

Slide 24

Slide 24 text

Q.じゃあ正しくデータを 解釈できるようになるた めにはどうすればいい? A.数学しようぜ

Slide 25

Slide 25 text

話すこと 1.分析の重要性と問題 2.数学について 3.ゲーム内の需要予測

Slide 26

Slide 26 text

定義 ここでの数学は基本的に純粋数学を 指すものとする (統計学や機械学習は応用数学) → 純粋数学の見方・考え方を理解し てもらうことが目標

Slide 27

Slide 27 text

純粋と応用の違い 純粋数学 道具そのものの性質を 知ることに興味がある 応用数学 道具を実際に使うこと に興味がある

Slide 28

Slide 28 text

世間の数学者に対する認識 •数字に強い •計算が得意

Slide 29

Slide 29 text

世間の数学者に対する認識 •数字に強い •計算が得意

Slide 30

Slide 30 text

参考 Basic Number Theory Andre Weil

Slide 31

Slide 31 text

純粋数学って何やってるの?

Slide 32

Slide 32 text

純粋数学って何やってるの? 問題解決 理論構築

Slide 33

Slide 33 text

純粋数学って何やってるの? •前提条件(公理系・定義)は何か? •そこから何が成り立つのか?を言語 化・記号化して紐解いていく •論理に飛躍があると死ぬ •「これ、成り立つんじゃないか なぁ」って思っても、それを証明す るまでは絶対に正しいと信じない → 認知バイアスに引っかからない

Slide 34

Slide 34 text

純粋数学って何やってるの? 数学的なジョーク(Wikipedia)

Slide 35

Slide 35 text

私は問題解決のプロ

Slide 36

Slide 36 text

私は問題解決のプロ

Slide 37

Slide 37 text

私は問題解決のプロ

Slide 38

Slide 38 text

私は問題解決のプロ

Slide 39

Slide 39 text

私は問題解決のプロ

Slide 40

Slide 40 text

私は問題解決のプロ すごい改善 している!!!

Slide 41

Slide 41 text

数学者がやっていること

Slide 42

Slide 42 text

数学者がやっていること なぜの追求 数値と言語の 行き来

Slide 43

Slide 43 text

このグラフはどう伸びる?

Slide 44

Slide 44 text

このグラフはどう伸びる?

Slide 45

Slide 45 text

このグラフはどう伸びる?

Slide 46

Slide 46 text

このグラフはどう伸びる? この条件だけ では答えられない

Slide 47

Slide 47 text

なぜの追求 赤いグラフを想像した人は「なぜ赤 いグラフを想像したのか?」と考え てみる

Slide 48

Slide 48 text

なぜの追求 赤いグラフを想像した人は「なぜ赤 いグラフを想像したのか?」と考え てみる → 曖昧な理由(主観的要素)を排除 し、客観的な正しさを求めるのが数 学の姿勢

Slide 49

Slide 49 text

なぜの追求 赤いグラフを想像した人は「なぜ赤 いグラフを想像したのか?」と考え てみる → 曖昧な理由(主観的要素)を排除 し、客観的な正しさを求めるのが数 学の姿勢 思考そのものにはどうしても 主観的要素が入ってしまう ↓ それを数値化することで 客観性を担保する

Slide 50

Slide 50 text

なぜの追求 赤いグラフを想像した人は「なぜ赤 いグラフを想像したのか?」と考え てみる → 曖昧な理由(主観的要素)を排除 し、客観的な正しさを求めるのが数 学の姿勢 思考そのものにはどうしても 主観的要素が入ってしまう ↓ それを数値化することで 客観性を担保する 数値と言語の行き来

Slide 51

Slide 51 text

分析に還元すると…… 正しく分析するには、いかにして主 観に基づく認知バイアスを取り除く かが重要 そのために常々「なぜの追求」と 「数値と言語の行き来」を意識する のが大切

Slide 52

Slide 52 text

話すこと 1.分析の重要性と問題 2.数学について 3.ゲーム内の需要予測

Slide 53

Slide 53 text

ソシャゲ運営あるある 「新規ガチャ、めっちゃ売れた ぞ!! これなら次、復刻したときも かなりの売上を期待できそうだぁあ ああああああああ!!!!」

Slide 54

Slide 54 text

ソシャゲ運営あるある 「新規ガチャ、めっちゃ売れた ぞ!! これなら次、復刻したときも かなりの売上を期待できそうだぁあ ああああああああ!!!!」 → 次の復刻 「あれ、全然売れてなくね?」

Slide 55

Slide 55 text

売上構成がこんなだったら…… 課金者上位 10% 残り 90% 課金者上位10%は全員 新規ガチャアイテムを カンストまで手に入れた 次の売上として期待できるのは • 残り90% • 新規層 であり、今回回した課金者上位 10%は復刻してももう回さない

Slide 56

Slide 56 text

需要予測をしたい! 以下、カヤックのソーシャルゲーム 『ぼくらの甲子園!ポケット』(以 下、ぼくポケ)で行った需要予測の 方法について説明します 間もなく4周年を迎える タイトルです

Slide 57

Slide 57 text

流れ 1. 前提条件とゴールの設定 2. データを眺める 3. 仮説作成 4. 仮説を数値に落とし込む 5. 例外処理・微調整

Slide 58

Slide 58 text

1. 前提条件とゴールの設定 ゴール 現在のデータから次回のガチャがど れくらい回るのかを予測する 前提 長期的な予測はしない(できない) 厳密解を求めようとしない

Slide 59

Slide 59 text

2. データを眺める ソーシャルゲームユーザーはかなり の数がいる → 統計的に、どれくらいのサンプル 数を見れば十分かは求められる

Slide 60

Slide 60 text

2. データを眺める ソーシャルゲームユーザーはかなり の数がいる → 統計的に、どれくらいのサンプル 数を見れば十分かは求められる → でも高々有限なんだし、見れる限 り見ればいいじゃん

Slide 61

Slide 61 text

3. 仮説作成 ここではドメイン知識(=ぼくポケ の知識)が重要になってくる 例えば、 •ガチャの仕組み •どんなユーザーがいるのか •どのガチャが人気なのか

Slide 62

Slide 62 text

ぼくポケのガチャ スキルレベルを上げること が目的 ★5が2個、★5と★3が合わ せて32個あればレベル6を作 ることができる さらに★5改シリーズだと64 個でレベル7を作ることが可 能 闘魂化して こめる ★3 ガンナーバット【試作】 スキル「チェインショット」 レベル1 スロット空き3 ★5 ガンナーバット スキル「チェインショット」 レベル1 スロット空き5 ★ガンナーバット スキル「チェインショット」 レベル2 スロット空き4 CAP解放!

Slide 63

Slide 63 text

3. 仮説作成 • ガチャを回すユーザーは以下の2通りに分けられる • 一気にカンスト近くまで回す熱量の高いユーザー • 手持ちのゲーム通貨で無理せずスキルレベルを上げるユー ザー • 試合にたくさん参加するユーザーの方が熱量が高く、ガ チャをよく回す • ユーザーがガチャをやめるタイミングは手持ちのゲーム 内通貨がなくなったか、目標としていたスキルレベルに 達した瞬間 • カンストしたら以降はガチャを回さなくなる • ユーザーによってはレベル5で満足してそれ以降回さなく なる • 別の高レベルのアイテムを持っているのであれば、そも そも回さない etc..

Slide 64

Slide 64 text

4. 仮説を数値に落とし込む •ゴールと相関関係が強くありそうな ものから順番に処理し、擬似相関が あったり、割合で処理できそうなも のはどんどんまとめる → なるべく少ない要素で予測式を導 きたい

Slide 65

Slide 65 text

20万行あるデータいじると CPUの負荷がヤバイ

Slide 66

Slide 66 text

4. 仮説を数値に落とし込む • いきなりフィットすることはないので、 最初は最小値と最大値が合うような一 次式を組み立てる → 端点さえ合っていれば、中身はあとで いくらでも調整できる → スキルレベル毎の所持人数をカウント して、それに重みをつけた一次式を調整 する

Slide 67

Slide 67 text

4. 仮説を数値に落とし込む 【上級者向け】 •あらかじめ特定のグルーピング分け (例えば人気のあるガチャグループ と、そうでないグループ)をして、 全体では相関はないけど、そのグ ループ内で相関が強く出る式を組み 立てても良い

Slide 68

Slide 68 text

4. 仮説を数値に落とし込む 【上級者向け】 •あらかじめ特定のグルーピング分け (例えば人気のあるガチャグループ と、そうでないグループ)をして、 全体では相関はないけど、そのグ ループ内で相関が強く出る式を組み 立てても良い → グルーピングを数値で表現できれ ばif文が書ける!

Slide 69

Slide 69 text

5. 例外処理・微調整 土台となる式ができても、2,3割ぐら いは実際の値からかけ離れているこ とがほとんど

Slide 70

Slide 70 text

5. 例外処理・微調整 土台となる式ができても、2,3割ぐら いは実際の値からかけ離れているこ とがほとんど → どのデータがズレているのかひた すら観測する

Slide 71

Slide 71 text

5. 例外処理・微調整 土台となる式ができても、2,3割ぐら いは実際の値からかけ離れているこ とがほとんど → どのデータがズレているのかひた すら観測する → なぜズレているのかの言語化がで きると、解決策が見つかることがほ とんど

Slide 72

Slide 72 text

5. 例外処理・微調整 例 データ数が少ないと特にデータがブ レやすい(少数の法則) → データが一定数に達しないものは、 そもそも予測の対象から外したり、 影響が小さくなるような関数を挟み 込む

Slide 73

Slide 73 text

流れ 1. 前提条件とゴールの設定 2. データを眺める 3. 仮説作成 4. 仮説を数値に落とし込む 5. 例外処理・微調整

Slide 74

Slide 74 text

流れ 1. 前提条件とゴールの設定 2. データを眺める 3. 仮説作成 4. 仮説を数値に落とし込む 5. 例外処理・微調整 ゴールと相関のある数字を見つけて 例外をひたすら潰していく作業

Slide 75

Slide 75 text

人気の法則がわかる 改シリーズ(CAP解放)を出すとき、 需要予測ができるようになったおか げで「スキルレベルが4以上を所持し ているユーザー」を増やせば売上に 大きく影響を与えることがわかった

Slide 76

Slide 76 text

人気の法則がわかる ガンナーシリーズ 改を出す前に該当ユーザーを増やす 施策(事前のガチャで★5出現率上げ る)を実施

Slide 77

Slide 77 text

人気の法則がわかる ガンナーシリーズ 改を出す前に該当ユーザーを増やす 施策(事前のガチャで★5出現率上げ る)を実施 → 改登場時の売上が初登場の売上の 144% まで成長!

Slide 78

Slide 78 text

欠点

Slide 79

Slide 79 text

欠点 自分以外誰も 管理できない

Slide 80

Slide 80 text

機械学習はどうなの?

Slide 81

Slide 81 text

機械学習はどうなの? 挑戦しました!!

Slide 82

Slide 82 text

機械学習はどうなの? 挑戦しました!! 全然うまくいきません でした!!!

Slide 83

Slide 83 text

なぜうまくいかない? •元々のデータベースが機械学習を想 定して作られていない → 特に、未来の予測をしたいのに時 系列データを十分に取ってこられな いのが致命的

Slide 84

Slide 84 text

なぜうまくいかない? •ユーザーはそれなりにいるけど、ア イテムのシリーズ単位でガチャを回 したユーザーに絞ってしまうと、機 械学習するほど十分なデータがない •データの前処理(つまりは例外処 理)を先にやらないといけない

Slide 85

Slide 85 text

状況に応じて使い分ける 理論で詰める 機械学習 データが多い DBが機械学習用 に整っている 前処理がしやすい データが少ない DBが整ってない データの分類が難 しい

Slide 86

Slide 86 text

まとめ •理論を詰めて需要予測を行うと機械 学習とは違って未来を最適化するア クションが見えやすい •データが少なくてもいける •どうしても時間が経つと予測がズレ てしまうが、原因は比較的見つけや すい

Slide 87

Slide 87 text

なぜの追求 数値と言語の 行き来

Slide 88

Slide 88 text

ご静聴ありがとうございました