hirapi's blog

駆け出しwebエンジニアのなんでもないメモ書き

builderscon tokyo 2018 聴講メモ #3「機械学習を用いず数学でゲーム内の需要予測をする」by @nessie_seseinさん

speakerdeck.com

※ 以下は私個人の解釈を多大に含んだメモ書きです。正確な講演内容はスライドか、もしくはYouTubeで公開される(?)公式動画をご覧ください。

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

@nessie_sesein

カヤックのゲームレベルデザイナー

テーマ

  • 純粋数学の見方・考え方を理解する

  • 分析の重要性と問題

  • 数学について
  • ゲーム内の需要予測

テイクホームメッセージ

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

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

内容めも

  • 分析の重要性と問題
    • 分析は地道な「数%の改善」であって、いきなり大金持ちにはなれない
    • 毎年「ビッグデータ元年」みたいに言われてる
    • ゲーム:コンシューマー向け買い切りから長期的なソーシャルゲームへ → 分析の重要性
    • 因果関係の分析を誤ると適切なアクションが取れない(e.g. 疑似相関)
  • 純粋数学
    • 証明するまで正しさを認めない、見える範囲の事実にだけ言及するのが数学
    • なぜの追求:事実以外の認知をしたとき、なぜ自分はそう考えた? を追求する
    • 数値と言語の行き来:数値による根拠を元に認知する。バイアスを取り除く
  • ゲーム内の需要予測
    あるある:「新規ガチャ売れた → 復刻ガチャでも売れるでしょ!」← なぜ主観的予測がこうなるのか?
    もし売上構成が「課金上位者10%が売上の90%を占めていた」場合、その人達がガチャをコンプリート・カンストしたら買わない
    → 残りの課金下位90%(売上の10%を占めていた)の人達だけが復刻ガチャに課金しうる
    1. 前提条件とゴールの設定
    2. データを眺める
      サンプル500くらいあればいいと統計学的には良いと言われるけど、高々有限なんだから全部見ればいい。
      自分は5,000くらいは眺める
    3. 仮説作成
    4. 仮説を数値に落とし込む
      ゴール(ユーザーがガチャを何回回すか)と相関がありそうなものから順番に処理。
      「レベル5になったら何人かのユーザーは満足しちゃうかな」→ とりあえず8割くらいガチャやめるとする
      端点さえ合っていれば中身はどうとでもできる
      = 相関係数を元に一度 y = ax + b を用意して、例えば上側にふくらむ非線形の式にしたいのであれば、上側にふくらませるf(x)をかける
      → y = (ax + b)・f(x)
    5. 例外処理・微調整
      土台の式ができても、3割くらいはズレている → 外したり、影響を小さくする関数をはさんだり
      ゴールと相関のある部分を求めて、例外をつぶしていく
  • 施策
    改を出す前に、☆5の排出率を上げて、改を欲しがりそうなユーザーを増やしておく → 売上144%
  • 機械学習
    ユーザー数はあっても、1ユーザーあたりの試行回数が少ないと処理する例外が多くなる。
    前処理しやすい、DBが機械学習用に整っている、データが多い、というケースでは機械学習が適用できる。
    そうでなければ理論で予測したほうがいい。

質疑

  • 今のお話に必要な数学的素養を身につけるのにおすすめの本
    普段から「なぜ?」を考える癖をつけてみるといいかも
  • ドメイン知識・仮説
    自分が「なぜ」を追求して、誰にでもそれを説明できるように用意する。
    自分がユーザーにもなって、行動経済学や心理学の知見ともあわせながら説明できるようにする。

感想

面白かったあー!
言葉の端々に数学徒感が出てて楽しかったw 「高々有限なんだから全部見る」は名言。
定理・公理や数式ではなくて、なんていうか「"数学的"なものの見方」にこだわって話を進められていた。
質疑にあったように日常的な習慣づけで数字の扱い方を変えていけるんだなって素直に思った。

でも別に知識が何もいらないということではなく、普段からなぜを考えていくことで知識の身につけ方も変わっていくのかなあとか。
大人になったあとの勉強の仕方もあるかもしれないと思った。