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

機械学習を用いず数学でゲーム内の需要予測をする

nessie
September 07, 2018
3.3k

 機械学習を用いず数学でゲーム内の需要予測をする

9/7のbuilderscon 2018で使用したスライドになります

nessie

September 07, 2018
Tweet

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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











    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    → 1年後には1.0212≒1.43倍になる

    View Slide

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

    → 1年後には1.0212≒1.43倍になる

    → 2年後には1.0224≒2.03倍になる

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  30. 参考
    Basic
    Number
    Theory
    Andre Weil

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  35. 私は問題解決のプロ

    View Slide

  36. 私は問題解決のプロ

    View Slide

  37. 私は問題解決のプロ

    View Slide

  38. 私は問題解決のプロ

    View Slide

  39. 私は問題解決のプロ

    View Slide

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

    View Slide

  41. 数学者がやっていること

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    それを数値化することで
    客観性を担保する

    View Slide

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

    それを数値化することで
    客観性を担保する
    数値と言語の行き来

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  62. ぼくポケのガチャ
    スキルレベルを上げること
    が目的
    ★5が2個、★5と★3が合わ
    せて32個あればレベル6を作
    ることができる
    さらに★5改シリーズだと64
    個でレベル7を作ることが可

    闘魂化して
    こめる
    ★3 ガンナーバット【試作】
    スキル「チェインショット」
    レベル1
    スロット空き3
    ★5 ガンナーバット
    スキル「チェインショット」
    レベル1
    スロット空き5
    ★ガンナーバット
    スキル「チェインショット」
    レベル2
    スロット空き4 CAP解放!

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  72. 5. 例外処理・微調整

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  78. 欠点

    View Slide

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

    View Slide

  80. 機械学習はどうなの?

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide