【レポート】機械学習の課題を支援するAmazon ML Solutions Labをご存知ですか?ゲーム業界の事例を基にしたAmazon ML Solutions Labの活用事例のご紹介 #AWSSummit
DA事業本部の春田です。
AWS Summit Online絶賛開催中!ということで、本記事では「CUS-41: 機械学習の課題を支援するAmazon ML Solutions Labをご存知ですか? --ゲーム業界の事例を基にしたAmazon ML Solutions Labの活用事例のご紹介--」の内容についてまとめていきます。
セッション情報
- アマゾン ウェブ サービスジャパン株式会社
- Amazon Machine Learning Solutions Lab Data Scientist 新井 達也
- Amazon Machine Learning Solutions Lab Deep Learning Architect 中山 洋平
- 技術統括本部 ゲーム エンターテインメント ソリューション部 ソリューションアーキテクト 保里 善太
Amazon ML Solutions Labは、お客様のチームとAmazonの機械学習エキスパート(データサイエンティスト、ディープラーニングアーキテクト)が協力して、ブレインストーミングセッションを含む実践的な教育ワークショップとアドバイザリサービスを提供します。ビジネスにおける課題から逆方向に決定(WorkBackwards)し、データの準備、モデルの構築とトレーニング、本番環境への移行を行います。本セッションでは実際の事例を用いてML Solutions Labを利用したエンゲージメントモデルについて説明します。プログラムの終了時には、プロセスを通じて学習したことを組織内の他の場面でも使用し、ビジネスにおいて機械学習を活用することができるようになります。特に今回はゲーム業界での活用事例を中心に解説しますが、その事例とプロセスはあらゆる業界の機械学習課題に対して広く一般的に応用できるものです。
※セッション動画は以下リンク
アジェンダ
- ゲームにおける機械学習の概要
- Amazon ML Solutions Labについて
- CAPCOMとの取り組みについて
- 目的
- ゲーム業界において機械学習がどう利用されているかを理解する
- ML Solutions Labの支援内容を理解する
- ML Solutions Labの活用方法を理解する
- 実際のゲーム開発の例を用いて現在進行中の技術支援について共有する
ゲームにおける機械学習の概要
- ゲームにおける機械学習の利用用途
- セールスの向上やマーケティング施策
- 売り上げの予測
- プレイヤーの離脱予測
- ユーザー体験の向上施策
- チート&不正対策
- チート行為(データの改竄)の検出
- 不正ログインの検出
- リセットマラソンの防御
- 不正な課金の検出
- ゲーム開発のサポート
- レベルデザインのサポート
- QA/デバッグの自動化
- アニメーションの自動生成
- アセットの自動作成
- NPC&キャラクターAI
- 敵のキャラクタの自動化(NPC)
- 最強プレイヤーの作成
- セールスの向上やマーケティング施策
セールスの向上やマーケティング施策
- プレイヤーの離脱予測やアクセス数の予測
- モバイルゲームやソーシャルゲームは、都度課金のシステム
- 売上に直接つながる死活問題
- プレイヤーに持続的・定期的に遊んでもらいたい
- ある一定期間のユーザーの行動履歴(課金情報やログイン頻度)から、そのユーザーがゲームを離脱しそうかどうか離脱率を推論する
- 離脱可能性が高いユーザーに何らかの施策を実施して、リテンション対策する
- モバイルゲームやソーシャルゲームは、都度課金のシステム
チート&不正対策
- ウォールハックの検出
- ウォールハックとは
- 2Dや3Dのゲームで、本来は通り抜けられないような壁を通り抜けたり、壁で見えない敵を可視化したりするチート行為
- プレイヤーの座標情報をリアルタイムに行動ログとして取得して、異常のあるデータポイントを異常スコアにより予測
- ユーザーのアイテム数やスコアの偽装を検出
- ウォールハックとは
ゲーム開発のサポート
- レベルデザインのチェックの自動化
- 新しいステージやキャラクターを追加する際のパラメータの調整が必要
- 極端に強い、または弱いステージやキャラクターができる可能性
- 従来はQAテスターと呼ばれる専門チームが人力で行っていた
- 人手とコストと時間がかかる
- AIにより高速にプレイさせることで、人力では不可能な組み合わせと回数をテスト/QA
- レベルデザインの適性を検査する
- 新しいステージやキャラクターを追加する際のパラメータの調整が必要
NPC&キャラクターAI
- 敵のキャラクタの自動化
- ゲームの敵キャラクタなどにAIを組み込み自律的に動作させる(NPC)
- 名人と対戦する最強のAIなどを作る(AlphaGoなど)
- 本セッションでは詳しく触れない
機械学習における現場の課題
- 機械学習で何ができるのかそもそもわからない
- やりたいことはあるがどうやったら実現できるのかわからない
- 機械学習の理論的知識や実装経験がある人がいない
- 社内の人材を機械学習エンジニアに育てるにも、コストと時間がかかる
- 機械学習を利用するためにどういったデータを取得すればいいのかわからない
→ ソリューションとしてのAmazon ML Solutions Lab
Amazon ML Solutions Labについて
- Amazonは長年に渡り機械学習技術を発展させてきた
- 専門の技術者を集結し、顧客が抱える問題からWork Backwardすることで実現
- 特にPersonalizationやサプライチェーンの分野で機械学習を使用
- Amazon Primeのレコメンド
- Fulfillment Process全体
- 利便性・コスト・配送速度に関する顧客の期待に答えるために、世界中で販売される製品の適切な需要量を予測
- 最先端のハード
- 自然言語処理のAlexa
- Prime Drone
- Fulfillment Centerのロボット
- AWSのミッション
- Amazonの機械学習に関する豊富な経験と知識を活用し、全ての組織・開発者・データサイエンティスト・研修者らに手渡すこと
- 機械学習を簡素化
- 全ての開発者がインテリジェントなアプリを簡単に構築できるように
機械学習技術を全ての技術者の手に
- 機械学習の実用化に向けての道のり
- どこから?何から始めればいいのか?
- 機械学習の開発を開始しても、それを組織全体でどう活用していくか?
- 組織のデータ戦略を正しく見直す
- 機械学習チームの編成
- 動機付け
- 機械学習への興味
- ビジネス的なインパクトのあるプロジェクトの特定
- 熟練データサイエンティストのガイダンスによる、機械学習人材の育成
- ……
2の段階で、多くの企業が機械学習の導入に躊躇してしまう
Amazon Machine Learning Solutions Lab
- AWSにおけるMLのスペシャリスト集団
- 顧客の技術者チームとAWSの機械学習の専門家がタッグ
- データの準備、モデルの構築とトレーニング、本番環境へのデプロイまでを行うプログラム
- 実践的なワークショップとブレインストーミングセッション、アドバイザリーサービス
- 機械学習に基づいたソリューションを段階的なプロセスを経て提供
- ML Solutions Lab活用事例 → NFL: ファン体験の拡張
- 米国のスポーツリーグ・NFLの試合からは、毎週3TBもの大規模なデータが発生
- 世界中にファンが1億8000人、うち90%以上がテレビ・オンライン・モバイルでゲームを視聴
- NFLでは、Amazon SageMakerを活用して試合の映像を解析
- 次のプレイの予測など、試合を視聴しているフットボールファン向けにさまざまな情報を提供
- 数カ月が必要だった計算処理は、AWSとの協業により数日〜数週間程度で完了可能になった
- ML Solutions Labエンゲージメント
- ブレインストーミング
- ディスカバリーワークショップやアイディエーションセッションを通して、顧客ビジネスの課題をMLの課題に変換
- モデリング、オペレーショナライジング
- MLモデルやノートブックの作成して提供
- ハンズオンワークショップなどコーチング
- 包括的な最終レポートを作成して提供
- 課題によって4〜8週間の日程
- ブレインストーミング
CAPCOMとの取り組みについて
- ブレインストーミング
- 2020年5月下旬、ディスカバリーワークショップを通して、3つのビジネスにおける課題を特定
- チート検出(Cheat Detection)
- プレイヤーの離脱予測(Churn Prediction)
- レベルデザイン(Level design, QA Automation)
- 2020年5月下旬、ディスカバリーワークショップを通して、3つのビジネスにおける課題を特定
- モデリング、オペレーショナライジング
- それぞれのビジネスの課題に応じたMLモデルの開発に現在取り組んでいる
クラシカルなアプローチによるチート検出とプレイヤー離脱予測の事例
- クラシカルな機械学習手法
- 分類・回帰分析
- 教師あり学習
- サンプルがどのカテゴリーに所属するのか?
- どのような出力値を取るのか?
- クラスター分析・異常検知
- 教師なし学習
- サンプルがどのようなクラスターをいくつ形成するのか?
- クラスターから大きく外れたサンプルを検出
- 分類・回帰分析
- CAPCOMの事例(チート検出)
- ビジネスの課題
- 不審なゲームプレイをゲームプレイログの中から検出
- 一つ一つ不審なゲームプレイを逐一人手で検出するのは困難
- 新しいゲームがリリースされる度に新しいルールが必要
- MLの課題
- データ
- ゲームプレイログの管理
- ETLパイプラインの設計
- データの抽出(Extraction)、変換(Transformation)、挿入(Load)
- MLアルゴリズム
- 異常検出
- 分類
- データ
- ビジネスの課題
- CAPCOMの事例(プレイヤー離脱予測)
- ビジネスの課題
- プレーヤーの将来の離脱率、継続率をゲームプレイログの中から推測
- 離脱リスクに対応したインターベンション効果の予測
- MLの課題
- データ
- ゲームプレイログの管理
- ETLパイプラインの設計
- MLアルゴリズム
- 分類
- サバイバル分析(回帰分析の一種)
- データ
- ビジネスの課題
- ランダムカットフォレスト
- データセット内の異常なデータポイントを検出する教師なしアルゴリズム
- 各データポイントで異常スコアを計算
- 一般的に、平均スコアから3標準偏差を超える場合は異常とみなされる
- 下のグラフは、NYにおけるタクシーの乗車数
- 何らかのイベントがある日に異常スコアを記録
- AWSクラウドアーキテクチャ
- 左半分が学習用
- プレイヤーのログデータは左上のS3バケットに送られる
- オブジェクト配置のイベントをトリガーに、Lambdaが起動
- Glueを使ったETLジョブが起動
- 生のデータをMLアルゴリズムの入力になるように変換し、別のS3に配置
- オブジェクト配置のイベントをトリガーに、SageMakerが起動
- 学習済みのモデルは、モデル保存用のS3に配置
- 右半分が推論用
- アーキテクチャは学習用とほぼ同じ
- 左半分が学習用
強化学習によるレベルデザインの事例
- 強化学習について
- ある環境において、自律的に決定を行うモデルを作成する
- 5つの構成要素
- エージェント: ある環境で自律的に行動をするモデル・ソフトウェア
- 環境: エージェントとインタラクションを行う
- 状態: 環境に対する観測が状態としてエージェントの入力に与えられる
- 行動: エージェントは状態に基づいて行動を決定する
- 報酬: 報酬関数によって決められ、行動の良し悪しを決める
- エージェントは特定の状態に対して、どの行動が良いのか、悪いのかを判断し、長期的に期待される報酬を最大化するように学習する
- Deep Racerの例
- 仮想的なエージェントがシミュレーション環境で行動を繰り返し、経験(入力画像・行動・次状態・報酬)を蓄積
- 状態(画像)を入力すると運転行動を決定する
- CAPCOMの事例(レベルデザイン)
- Snoopy Puzzle Journey
- パズルステージのレベルが適切かどうか
- 強化学習を使ったアプローチ
- Unity ML Agentsを使った方法
- 学習
- ステージクリアに応じて報酬を与え、パズルを効率的にクリアするエージェントを作成
- 推論
- 新規ステージを環境としてセット
- 学習済みエージェントのクリア率を測定し、レベルが適切かどうかを確認
- 学習
- Snoopy Puzzle Journey
- SageMaker RLを用いたエージェントの学習
- Unityからゲームの実行ファイルがS3へ保存
- SageMakerの学習ジョブでがS3内の実行ファイルをダウンロード
- 学習済みモデルはS3に保存され、推論時に利用
- 推論時のエージェントログは、ステージレベルの確認に使用され、ゲーム開発へのフィードバックとなる
- SageMakerとUnity ML Agentsとの統合
- SageMakerの学習ジョブのスタック
- 学習インスタンスの上で、SageMaker RLコンテナを実行
- TensorFlow用のRay RLlibのDockerイメージを利用
- コンテナ内ではRay RLlibの学習ジョブが実行
- Ray RLlibのTrainerクラスから、OpenAI Gym環境でラップしたUnityの環境を使用
- 学習インスタンスの上で、SageMaker RLコンテナを実行
- 分散学習やアルゴリズムのカスタマイズをRay RLlibを通して実行可能
- SageMakerの機能と連携したUnity環境上での学習が可能
- SageMakerの学習ジョブのスタック
CAPCOM事例のまとめ
- ML Solutions Labエンゲージメント
- チート検出
- 実際のお客様のデータからどのようなチート予測が行えるかを検討
- お客様のユースケースに沿ったアルゴリズムの開発
- プレイヤー離脱予測
- サバイバル分析など高度な機械学習技術の適用
- 大量のログを収集、解析を実施するアーキテクチャを共同で開発
- レベルデザイン
- シームレスな学習、推論、解析システムをAWS上に構築
- ソフトウェアとSageMakerとの統合をユースケースに応じて独自に開発
- チート検出
- 本セッションで説明したこと
- プレイヤー離脱予測、チート検出、QAの自動化、キャラクターAIなどゲーム業界での機械学習の主要な利用用途
- ML Solutions Labの支援内容、ブレインストーミングから実際の課題への落とし込み、プロトタイピング後の提供内容
- アイディアレベルからある程度具体的な課題の解決まで、どうML Solutions Labを活用するか
- ゲームやデータに対してプロトタイピングを実施しているお客様の事例を紹介