Amazon Web Services ブログ

パーソナライズされたオンラインスポーツコンテンツでエンゲージメントを高める

この記事は、Pulselive の Mark Wood 氏によるゲスト投稿された Increasing engagement with personalized online sports content を翻訳したものです。彼ら自身の言葉によれば、「英国を拠点とする Pulselive は、スポーツ界における大手企業の誇り高きデジタルパートナーです。」


Pulselive は、クリケットワールドカップの公式ウェブサイトや、イングランドプレミアリーグの iOS や Android アプリなど、スポーツファンにとって欠かせない体験を作り出しています。

お客様が当社を評価する重要なポイントの 1 つは、動画などのデジタルコンテンツに対するファンのエンゲージメントです。しかし、最近まで、各ファンに表示される動画は公開順のリストに基づいており、パーソナライズされていませんでした。

スポーツ組織は、誰が自分たちのファンで、ファンは何を望んでいるのかを理解しようとしています。それぞれのファンについて収集できる豊富なデジタル行動データは、ファンがいかにユニークで、どのように当社のコンテンツに関わっているかを物語っています。利用可能なデータの増加と機械学習 (ML) の活用機運が高まってきたため、Pulselive は顧客から、カスタマイズされたコンテンツレコメンデーションを提供するように依頼されました。

この記事では、新しいレコメンデーションエンジンとして Amazon Personalize をプラットフォームに追加した経験と、動画の消費量を 20% 増加させた方法について説明します。

Amazon Personalize の実装

開始する前に、Pulselive には 2 つの主な課題がありました。スタッフにデータサイエンティストがいなかったことと、機械学習の経験が最小限のエンジニアでも理解でき、かつ測定可能な結果が得られるソリューションを見つける必要があったことです。Amazon SageMaker (それでもかなりの学習曲線が必要) や Amazon Personalize などのツールを使用して、(費用が掛かりますが) 外部企業の支援を受けることを検討しました。

最終的に Amazon Personalize を使用することを選択しました。それには次のようないくつかの理由がありました。

  1. 技術的にも財政的にも参入障壁が低かった。
  2. A/B テストをすばやく実施してレコメンデーションエンジンの価値を実証できた。
  3. 既存のサイトへの影響を最小限に抑えて、シンプルな概念実証 (PoC) を作成できた。
  4. 私たちは、Amazon Personalize の内部で何が起こっているのかを明確に理解することよりも、その影響と結果の改善に関心を持っていました。

他のビジネスと同様に、日々のオペレーションに悪影響を与えることは避ける必要がありましたが、それでもソリューションが自分たちの環境に適しているという確信が必要でした。そこで、数日でスピンアップして実行できる PoC での A/B テストから始めました。

Amazon Prototyping チームと協力して、最初の統合のためのオプション範囲を、ウェブサイトへの変更が最小限で、簡単に A/B テストできるものに絞り込みました。ユーザーが動画のリストを表示するすべての場所を調べた結果、次に視聴する動画のリストを再ランク付けするのが、パーソナライズされたコンテンツを実装するのに最も速いと判断しました。このプロトタイプでは、AWS Lambda 関数と Amazon API Gateway を使用して、より多くの動画リクエストをインターセプトし、Amazon Personalize GetPersonalizedRanking API を使用して再ランク付けする新しい API を提供しました。

実験が成功したとみなされるためには、動画の合計再生回数または再生完了率のいずれかが統計的に有意に改善されたことを実証する必要がありました。これを可能にするためには、十分に長い期間にわたってテストを行い、複数のスポーツイベントが開催される日と、試合のない静かな日をカバーする必要がありました。さまざまな使用パターンをテストすることで、時間帯や試合が最近行われたかどうかに依存するような動作を排除したいと考えました。最初のデータ収集には 2 週間という期間を設定しました。すべてのユーザーが実験の一部となり、対照群または試験群のいずれかにランダムに割り当てられました。実験をできるだけシンプルにするために、すべての動画が実験の一部となりました。次の図は、このソリューションのアーキテクチャを示しています。

はじめに、実験の出発点となる Amazon Personalize ソリューションを構築する必要がありました。Amazon Personalize では、ソリューションを定義し、ユーザーに動画を推奨するキャンペーンを作成するために、ユーザーと項目のインタラクションデータセットが必要です。これらの要件を満たすために、数週間の使用期間中の各動画視聴について、タイムスタンプ、ユーザー ID、動画 ID を含む CSV ファイルを作成しました。インタラクション履歴を Amazon Personalize にアップロードするのは簡単な作業で、AWS マネジメントコンソールでレコメンデーションをすぐにテストすることができました。モデルをトレーニングするために、30,000 件の最近のインタラクションのデータセットを使用しました。

動画の合計再生回数および再生完了率のメトリクスを比較するために、すべてのビデオインタラクションを Amazon DynamoDB に記録する 2 つ目の API を構築しました。この 2 つ目の API は、PutEvents API を介して新しいインタラクションを Amazon Personalize に伝えるという問題を解決しました。これにより、機械学習モデルを最新の状態に保つことができました。

この実験では、すべてのユーザーのすべての動画再生、および動画再生を促すきっかけをトラッキングしました。動画再生のきっかけには、(ソーシャルメディアなどからの) 直接リンク、ウェブサイトの他の部分からのリンク、動画リストからのリンクなどがありました。ユーザーが動画ページを閲覧するたびに、対照群または試験群のどちらに属しているかに応じて、現在の動画リストまたは新しく再ランク付けされた動画リストのどちらかが表示されました。全ユーザーの 5% を試験群にして実験を開始しました。このアプローチで問題がなかったので (動画消費の明らかな低下や API エラーの増加がなかった)、試験群を 50% に増やし、残りのユーザーを対照群として、データの収集を開始しました。

実験から学ぶ

2 週間の A/B テストの後、収集した KPI を DynamoDB から取り出し、テストした 2 つのバリエーションのいくつかの KPI を比較しました。この最初の実験ではいくつかの単純な KPI を使用することにしましたが、他の組織の KPI は異なるかもしれません。

最初の KPI は、ユーザーあたりのセッションごとの動画再生数でした。最初の仮説では、動画リストを再ランク付しても意味のある変化は見られないと考えていました。しかし、ユーザーあたりの再生数が 20% 増加したことが測定されました。次のグラフは、各グループの動画再生数をまとめたものです。

合計再生数の測定に加えて、ユーザーが動画を最後まで視聴しているかどうかも確認したいと考えました。ユーザーが動画の 25% を再生するごとにイベントを送信することで、これを追跡しました。その動画が Amazon Personalize で推奨された動画か、元の再生リストで推奨された動画かで、平均再生完了率はあまり変化しないことがわかりました。再生回数と組み合わせて考えると、パーソナライズされたおすすめ動画リストを提示されたユーザーは、全体の再生時間が長くなったと結論付けました。

また、ユーザーの「おすすめ動画」バー内の各動画の位置と、ユーザーが選択した項目も追跡しました。これにより、パーソナライズされたリストと公開順リストのランキングを比較することができました。その結果、2 つのバリエーションに大きな違いはないことがわかりました。これは、ユーザーがリスト全体を見るためにスクロールするのではなく、画面に表示されている動画を選択する可能性が高いことを示唆しています。

実験の結果を分析した後、今後動画をランク付けするデフォルトの方法として Amazon Personalize を有効にするというレコメンデーションをお客様に提示しました。

学んだ教訓

この過程で、次のような教訓を学びました。これは、あなたが独自のソリューションを実装する際に役立つかもしれません。

  1. ユーザーと項目のインタラクション履歴データを収集する。私たちは約 30,000 のインタラクションを使用しました。
  2. 最近の履歴データに焦点を当てる。当面の関心はできるだけ多くの履歴データを取得することですが、最近のインタラクションは古いインタラクションよりも価値があります。過去のインタラクションのデータセットが非常に大きい場合、古いインタラクションをフィルターして、データセットのサイズとトレーニング時間を減らすことができます。
  3. SSO ソリューションを使用するか、セッション ID を生成するかして、すべてのユーザーに一貫性のある一意の ID を付与できることを確認する。
  4. サイトまたはアプリケーションで A/B テストを実行できる場所を見つけ、既存のリストを再ランク付けするか、おすすめアイテムのリストを表示する。
  5. API を更新して Amazon Personalize を呼び出し、項目の新しいリストを取得する。
  6. A/B テストをデプロイし、実験に参加するユーザーの割合を徐々に増やす。
  7. 実験の結果を理解できるように、計測と測定を行う。

結論と今後のステップ

今回、Amazon Personalize で機械学習の世界に初めて足を踏み入れました。トレーニングされたモデルをワークフローに統合するプロセス全体が驚くほどシンプルであることがわかりました。また、Amazon Personalize を実装することよりも、実験の有用性を証明するための適切な KPI とデータキャプチャを確認することにはるかに多くの時間を費やしました。

今後、次のような機能強化を進める予定です。

  1. コンテンツのリストが提供される場所ではどこでも Amazon Personalize を使用する機会を開発チームに提供することで、ワークフロー全体で Amazon Personalize をより頻繁に統合していきます。
  2. ユースケースを拡大し、再ランク付けだけでなくおすすめアイテムを含める。これにより、各ユーザーが好むと思われる古いアイテムを表示できるようになります。
  3. モデルを再トレーニングする頻度を実験する。新しいインタラクションをリアルタイムでモデルに挿入することは常に新鮮さを保つための素晴らしい方法ですが、モデルを最も効果的に活用するためには日々の再トレーニングが必要です。
  4. すべてのお客様に Amazon Personalize を使用して、最も関連性の高いコンテンツをあらゆる形態で推奨することで、ファンのエンゲージメント向上に役立てる方法を検討する。
  5. レコメンデーションフィルターを使用して、各リクエストで使用できるパラメータの範囲を拡張する。近いうちに、お気に入りのプレーヤーの動画をフィルタリングして含めるなど、オプションの追加も検討しています。

著者について

Mark Wood 氏は、Pulselive のプロダクトソリューションディレクターです。Mark 氏は、Pulselive に入社して 6 年以上になりますが、その間にテクニカルディレクターとソフトウェアエンジニアの両方の役割を担ってきました。Pulselive 入社前は、Roke のシニアエンジニア、および Querix のデベロッパーでした。Mark 氏はサウサンプトン大学で数学とコンピュータサイエンスの学位を取得しています。