Remote Config のパーソナライズについて

パーソナライズでは、機械学習(特にコンテキストに基づく多腕バンディット アルゴリズム)を使用して、目標を達成するためのユーザーごとの最適なエクスペリエンスを決定します。Google 側の目標は、特定の Google Analytics イベントの合計数または合計パラメータ値を最適化することです。

コンテキストに基づく多腕バンディット アルゴリズムとは

多腕バンディットとは、複数のパスの中から、より多くの報酬をより高い確率で得られるパスを継続的に選択していく状況を表す際に使用される表現です。わかりやすい例として、スロットマシンの列の前にギャンブラーが立っている状況を想像してください。この状況は、1 台のスロットマシンに 1 つのハンドル(またはアーム)が付いているので「片腕バンディット」と呼ばれることもあります。ここでは、複数の「アーム」を解決するため、片腕バンディットは多腕バンディットになります。

たとえば、3 つの選択肢があり、その中で最も報酬を得やすい選択肢を見つける場合、選択肢を一つずつ試して、その結果に基づいて最も報酬が得られるアームを選択していきます。これは greedy アルゴリズムと呼ばれるもので、最初の試みで最も結果の良かった選択肢を続けて選択していきます。しかし、このアルゴリズムが常に有効とは限りません。たまたま高い報酬が得られた可能性もあります。また、ユーザー固有のコンテキストがあり、その期間内は高い報酬が得られたものの、それ以降は望ましい結果が得られない場合もあります。

そのため、コンテキストを追加して、より効果的なアルゴリズムにします。Remote Config のパーソナライズの場合、最初のコンテキストはランダム サンプリング(不確実性)であり、テストになんらかのエントロピーを提供します。これにより、「コンテキストに基づく多腕バンディット」を実装します。テストを繰り返して継続的な調査とモニタリングを行うことで、報酬が得られる確率の高いアームについて実際の学習コンテキストが追加され、より効果的な結果を得ることができます。

アプリへの影響

では、アプリに対して多腕バンディット アルゴリズムはどのような意味を持つのでしょうか。ここでは、バナー広告のクリック数を最適化する場合について考えてみましょう。この例では、パーソナライズの「アーム」は、ユーザーに表示したい異なるバナー広告を表す代替値になります。バナー広告のクリックが報酬で、これが目標となります。

初めてパーソナライズを行う場合、モデルは、各ユーザーの目標を達成できる可能性が最も高い代替値を認識していません。パーソナライズによって各代替値を探索して目的達成の可能性を探るにつれて、基盤となるモデルに対する情報量が増え、各ユーザーに最適なエクスペリエンスを予測して選択できるようになります。

パーソナライズでは 24 時間の固定ウィンドウが使用されます。これは、パーソナライズ アルゴリズムが 1 つの代替値を調べる時間です。パーソナライズでは、各代替値を複数回探索するのに十分な時間を設定する必要があります(通常は約 14 日間)。アプリとユーザーの行動が変化したときに改善と適応ができるように、アプリが永続的に実行されるようにするのが理想的です。

追加の指標を追跡する

Remote Config のパーソナライズでは、最大 2 つのイベントを追跡できます。 結果のコンテキスト化に役立ちます。たとえば、ソーシャル アプリにさまざまな代替値を設定して、ユーザーに友だちとコンテンツを共有するように促し、全体的なエンゲージメントを高めるとします。

この場合は、次のような Analytics イベントを重視した最適化を行うことをおすすめします。 link_received で、2 つの指標を user_engagementlink_openedで、ユーザー エンゲージメントとリンク数が ユーザーが開く(実際のエンゲージメント)または減少する(スパムリンクが多すぎる)。

これらの追加の指標はパーソナライズのアルゴリズムに組み込まれませんが、パーソナライズの結果と合わせて追跡することで、パーソナライズ全体で目標達成に役立つ有益な情報を得ることができます。

パーソナライズの結果を理解する

パーソナライズが完了して十分なデータが収集できたら、結果を確認できます。

パーソナライズの結果を表示するには:

  1. Remote Config ページを開き、[パーソナライズ] をクリックします。

  2. 表示するパーソナライズを選択します。名前や目標を指定して特定のパーソナライズを検索したり、名前、開始時間、合計リフトで並べ替えたりできます。

結果ページには、ベースライン グループに対するパーソナライズの結果として全体での増加やパフォーマンスの差(割合)が表示されます。

結果ページには、パーソナライズのステータス、パーソナライズの属性、インタラクティブ グラフも表示されます。このグラフには次のものが表示されます。

  • ベースラインと比較したパーソナライズのパフォーマンスの 1 日ごとの詳細ビューと合計ビュー。

  • ベースライン グループ全体での各値の全体的なパフォーマンス。

  • 選択した追加指標に対する目標の結果とパフォーマンス。概要の上部にあるタブからアクセスできます。

パーソナライズは無期限に継続できます。引き続き結果ページでパフォーマンスをモニタリングできます。ユーザーの行動が変化しても適応できるように、アルゴリズムの学習と調整を継続します。

パーソナライズの削除について

パーソナライズを削除するには、Firebase コンソールを使用するか、 カスタムパラメータを使ってテンプレートから Firebase Remote Config API。 削除したカスタマイズは復元できません。データの保持について詳しくは、以下をご覧ください。 データの削除

ロールバックまたはテンプレートのインポートによって、パーソナライズを削除することもできます。

ロールバック

現在のテンプレートにパーソナライズがあり、同じパーソナライズがないテンプレートにロールバックすると、パーソナライズは削除されます。以前の Firebase コンソールを使用するか、 roll back Firebase Remote Config API を使用します。

パーソナライズを削除して以前のテンプレートにロールバックすると、 その無効なパーソナライズへの参照が Firebase コンソールに表示されます。 無効なパーソナライズを Firebase コンソール: [Remote Config] ページの [Parameters] タブでパーソナライズできます。

インポート

現在のパーソナライズがすでに含まれていないテンプレートをインポートすると、それらのパーソナライズも削除されます。テンプレートをインポートするには、Firebase コンソールを使用するか、Remote Config REST API を使用します。

次のステップ