パーソナライズでは、機械学習(特にコンテキストに基づく多腕バンディット アルゴリズム)を使用して、目標を達成するためのユーザーごとの最適なエクスペリエンスを決定します。Google 側の目標は、特定の Google Analytics イベントの合計数または合計パラメータ値を最適化することです。
コンテキストに基づく多腕バンディット アルゴリズムとは
多腕バンディットとは、複数のパスの中から、より多くの報酬をより高い確率で得られるパスを継続的に選択していく状況を表す際に使用される表現です。わかりやすい例として、スロットマシンの列の前にギャンブラーが立っている状況を想像してください。この状況は、1 台のスロットマシンに 1 つのハンドル(またはアーム)が付いているので「片腕バンディット」と呼ばれることもあります。ここでは、複数の「アーム」を解決するため、片腕バンディットは多腕バンディットになります。
たとえば、3 つの選択肢があり、その中で最も報酬を得やすい選択肢を見つける場合、選択肢を一つずつ試して、その結果に基づいて最も報酬が得られるアームを選択していきます。これは greedy アルゴリズムと呼ばれるもので、最初の試みで最も結果の良かった選択肢を続けて選択していきます。しかし、このアルゴリズムが常に有効とは限りません。たまたま高い報酬が得られた可能性もあります。また、ユーザー固有のコンテキストがあり、その期間内は高い報酬が得られたものの、それ以降は望ましい結果が得られない場合もあります。
そのため、コンテキストを追加して、より効果的なアルゴリズムにします。Remote Config のパーソナライズの場合、最初のコンテキストはランダム サンプリング(不確実性)であり、テストになんらかのエントロピーを提供します。これにより、「コンテキストに基づく多腕バンディット」を実装します。テストを繰り返して継続的な調査とモニタリングを行うことで、報酬が得られる確率の高いアームについて実際の学習コンテキストが追加され、より効果的な結果を得ることができます。
アプリへの影響
では、アプリに対して多腕バンディット アルゴリズムはどのような意味を持つのでしょうか。ここでは、バナー広告のクリック数を最適化する場合について考えてみましょう。この例では、パーソナライズの「アーム」は、ユーザーに表示したい異なるバナー広告を表す代替値になります。バナー広告のクリックが報酬で、これが目標となります。
初めてパーソナライズを行う場合、モデルは、各ユーザーの目標を達成できる可能性が最も高い代替値を認識していません。パーソナライズによって各代替値を探索して目的達成の可能性を探るにつれて、基盤となるモデルに対する情報量が増え、各ユーザーに最適なエクスペリエンスを予測して選択できるようになります。
パーソナライズでは 24 時間の固定ウィンドウが使用されます。これは、パーソナライズ アルゴリズムが 1 つの代替値を調べる時間です。パーソナライズでは、各代替値を複数回探索するのに十分な時間を設定する必要があります(通常は約 14 日間)。アプリとユーザーの行動が変化したときに改善と適応ができるように、アプリが永続的に実行されるようにするのが理想的です。
追加の指標を追跡する
Remote Config のパーソナライズでは、最大 2 つの追加指標を追跡し、結果のコンテキスト化を行うことができます。たとえば、ソーシャル アプリにさまざまな代替値を設定して、ユーザーに友だちとコンテンツを共有するように促し、全体的なエンゲージメントを高めるとします。
ここでは、link_received
などの Analytics イベントの最適化を行い、user_engagement
と link_opened
に 2 つの指標を設定して、ユーザー エンゲージメントとユーザーが開いたリンク数が増加しているのか(真のエンゲージメント)、低下しているのか(スパムリンクが多すぎる可能性)を判断します。
これらの追加の指標はパーソナライズのアルゴリズムに組み込まれませんが、パーソナライズの結果と合わせて追跡することで、パーソナライズ全体で目標達成に役立つ有益な情報を得ることができます。
パーソナライズの結果を理解する
パーソナライズが完了して十分なデータが収集できたら、結果を確認できます。
パーソナライズの結果を表示するには:
[Remote Config] ページを開き、[パーソナライズ] をクリックします。
表示するパーソナライズを選択します。名前や目標を指定して特定のパーソナライズを検索したり、名前、開始時間、合計リフトで並べ替えたりできます。
結果ページには、ベースライン グループに対するパーソナライズの結果として全体での増加やパフォーマンスの差(割合)が表示されます。
結果ページには、パーソナライズのステータス、パーソナライズの属性、インタラクティブ グラフも表示されます。このグラフには次のものが表示されます。
ベースラインと比較したパーソナライズのパフォーマンスの 1 日ごとの詳細ビューと合計ビュー。
ベースライン グループ全体での各値の全体的なパフォーマンス。
選択した追加指標に対する目標の結果とパフォーマンス。概要の上部にあるタブからアクセスできます。
パーソナライズは無期限に継続できます。引き続き結果ページでパフォーマンスをモニタリングできます。ユーザーの行動が変化しても適応できるように、アルゴリズムの学習と調整を継続します。
パーソナライズの削除について
パーソナライズを削除するには、Firebase コンソールを使用するか、Firebase Remote Config API を使用してテンプレートからパーソナライズ パラメータを削除します。削除したカスタマイズは復元できません。データの保持について詳しくは、データの削除をご覧ください。
ロールバックまたはテンプレートのインポートによって、パーソナライズを削除することもできます。
ロールバック
現在のテンプレートにパーソナライズがあり、同じパーソナライズがないテンプレートにロールバックすると、パーソナライズは削除されます。以前のテンプレートに戻すには、Firebase コンソールを使用するか、Firebase Remote Config API を使用して roll back
を実行します。
パーソナライズを削除して以前のテンプレートにロールバックすると、その無効なパーソナライズへの参照が Firebase コンソールに表示されます。Firebase コンソールから無効なパーソナライズを削除するには、[Remote Config] ページの [パラメータ] タブでパーソナライズを編集します。
インポート
現在のパーソナライズがすでに含まれていないテンプレートをインポートすると、それらのパーソナライズも削除されます。テンプレートをインポートするには、Firebase コンソールを使用するか、Remote Config REST API を使用します。