[レポート]Call of Dutyが機械学習を使用してプレイヤーの戦いをパーソナライズする方法 #GAM303 #reinvent

2019.12.04

こんにちは、AWS事業本部の島川です。

本記事ではラスベガスで開催されたAWSの一大イベント AWS re:Invent 2019で発表されたセッションをご紹介いたします。

ちなみにこのセッションは現地ではなく別会場からの映像配信で視聴していました。

今回紹介するセッション

How Call of Duty uses ML to personalize player engagement

CoDのパーソナライズ(行動分析に基づいてユーザーごとに最適な情報を提供する方法)に焦点を当てたセッションとなっております。ゲームそのもののアーキテクチャなどは出てきませんのでご注意を!

スピーカー

  • Chris Finch - Senior SA Game Tech Evangelist, Amazon Web Services
  • Diego Toledo - Associate Software Architect, Activision Publishing
  • Gina Hope - Senior Director, Consumer Technology, Activision
  • Mike Bleske - Sr. Manager, Consumer Tech, Activision

概要

Join Activision Blizzard to learn how Call of Duty, one of the world’s most famous first-person-shooter game franchises, continues to engage millions of players each day by running real-time analytics and machine learning pipelines with the help of AWS Cloud services. In this technical deep dive, Senior Manager of Consumer Technology Mike Bleske and Associate Solutions Architect Diego Toledo show you how Activision Blizzard nurtures millions of players every day and personalizes their experiences to increase engagement and spending through reinforcement machine learning pipelines built with Amazon Neptune, AWS Lambda, Amazon Kinesis, and Amazon Simple Queue Service (Amazon SQS).

Activision Blizzardに参加して、世界で最も有名なファーストパーソンシューティングゲームフランチャイズの1つであるCall of Dutyが、AWSクラウドサービスの助けを借りてリアルタイム分析と機械学習パイプラインを実行することで、毎日何百万人ものプレイヤーを引き付けている方法を学びましょう。 Activision Blizzardが毎日何百万人ものプレーヤーを育み、AWSで構築された強化機械学習パイプラインを通じてエンゲージメントと支出を増やすために体験をパーソナライズする方法を紹介します。 以下のサービスと一緒に。 Amazon Neptune、Lambda、Amazon Kinesis、Amazon Simple Queue Service(Amazon SQS)

レポート

私たちは何をしているのか

  • プレイヤー向けにパーソナライズされたデータ駆動型の体験を構築して、ゲームへのエンゲージメントをさらに促進する。

  • 様々な体験がある。

    • サイト→CallofDuty.com / CrashBandicoot.com
    • ゲーム内メッセージ
    • CoDモバイル
    • CoD Alexa skill

ご存じの方もいらっしゃるかもですが、CoDではアレクサを使用してより戦略的にゲームを遊ぶことができます!

Call of Duty Alexa Skills

目標

  • 関連するメッセージを個々のプレイヤーに配信する。
  • プレイヤーに新しいコンテンツ、マップ、モードの探索を勧める。
  • プレイヤーのフィードバックに基づいてメッセージングをリアルタイム調整
  • コストを維持しながら、高度なパーソナライズシステムを作成する
  • パーソナライズシステムの複雑さを管理していく

ソリューション

パーソナライズへの現在のアプローチを刷新する

  • メッセージの割り当てに対する人間の介入を少なくする
  • アイテムのオプション、レイアウト、チャンネルの多様性
  • 継続的なテスト、学習、展開

機械学習のパーソナライズシステムについて

プレイヤーに適した一連のメッセージ選択に焦点を当てた機械学習モデル - 長期的なエンゲージメントに最大の影響は何か

  • ユーザーが複数のメッセージを受け取るときの優先順位はどうするか
  • いつ提案をするのが適切なのか
  • いつ、どのようにゲーム中の変更に対応するか

ユーザーのエンゲージメントサイクル

  • プレイヤーの分岐点を見つける。
  • 急激にピークを向かえ、緩く下がっていくのが分かる。

ユーザーの状態を予測する

  • 最適なプレイヤーの行動を単純化した図
  • 単一ステップで済む行動だとエンゲージメントが下がる。
  • 長期的な思考(ステップ)、以前の経験を学びよりステップの多い体験へ。
  • Step3のような目標に向けてメッセージが作成される

ただし、そこまで単純じゃない

  • さらに多くのステータスがあり、そのステータス全てへの行動を探索することは不可能
  • 静的ではない。常にアクション(メッセージ)が削除、追加されている
  • ビジネスのニーズ増加に伴い、新しいステータスが作成されるかもしれない。

不確定で複雑な状態を分析(機械学習)するために

  • モンテカルロ法を採用
  • モデルを作成する必要はなく、サンプリングでより近似値を取っていく
  • 大規模な検索スペース用に設計されている
  • ノイズをうまく扱ってくれる

※モンテカルロ法はシミュレーションなどを乱数を用いて行う手法のことです。今回だとユーザーの行動をシミュレーションしているということです。

探索アルゴリズムについて

  • 選択、拡張、シミュレーション、逆伝番これを繰り返す

最もバランスの取れた値を計算する

  • この式を用いることで最適な値を取得する。

適切なアクションの選択のために

  • アクションに正解はない
  • 異なるアクションは異なる状態に対して異なる結果を持つ
  • 効果は時間とともに変化するかもしれない

まず最初にAmazon Kinesisを使う

  • Kinesisを使ってまずはツリーを構築する。

Thompson samplingに渡す

  • Thompson samplingと呼ばれるアクションを選択するための近似値を取る手法のこと。
  • これを用いる

  • 結果的にゲーム内メッセージにおいて信頼性の高い結果を得ることができた。

AWS上での自動デプロイパイプラインについて

データ分析のアーキテクチャ

Raptorについて

  • DockerとECSを用いたシステムのこと

Raptorのデプロイについて

  • 1 gitコミットしてプッシュ
  • 2 commitトリガーにビルドジョブを走らせる
  • 3 Docker imageをECRにプッシュ
  • 4 エンジニアがデプロイジョブを走らせる
  • 5 Raptorがバージョンを生成、またECRとgitレポジトリにタグを追加
  • 6 RaptorがCFnテンプレートを作成しそれをaws cliに送信する。

Raptorのコンフィグ例

Raptorで見る数字

  • 35+の独立したアプリケーション
  • 80+のECSクラスター
  • 5つの環境(dev,stage,qa,preprod,prod)
  • 200+のスポットインスタンス
  • 50未満のオンデマンドインスタンス/リザーブドインスタンス

結果について

  • 右肩上がりなのが分かります。(lines)

プレイヤーから学んだこと

  • ゲームの知識と歴史にフォーカスしたメッセージを作成する
  • 優先されないゲームモードを全てのプレイヤーに宣伝する
  • プレイヤーの好みと一致しないメッセージ
  • 多様なメッセージを提供する

さいごに

私もCoDのプレイヤーなのですが、本当にゲームの種類が多いです。私自身どれでプレイするか迷っていましたが、最近ではいくつかやりたいゲームモードを選択しておけばいい感じのゲームモードを選択してくれるようになりました。色んなゲームモードで遊ぶことができるので、飽きが少ないと感じています。また機械学習についてはモンテカルロ法やトンプソン法など以外に昔から使われているアルゴリズムだったことにびっくりしました。ちょっと数学的なお話も出てきて楽しくセッションを聞くことができました!