メインコンテンツへスキップ
Kameleoon は、実験のパフォーマンスを最大化するために役立つ、2種類の動的トラフィック配分アルゴリズム(マルチアームドバンディット(MAB)コンテクスチュアルバンディット)を提供しています。どちらのアプローチもリアルタイムのパフォーマンスデータを使用して、よりパフォーマンスの良いバリエーションにより多くのトラフィックを割り当てますが、ユーザーデータの扱い方が異なります。この記事では、これらのアルゴリズムの動作、いつ使うべきか、実験で有効化する方法について説明します。 動的なトラフィック配分を有効にするには、新しい実験を作成するか既存の実験を開きます。
Variation to serve セクションで、ドロップダウンメニューから希望する配分方法を選択します。Multi-armed bandit または Contextual bandit 最適化から選択します。
Kameleoon はプライマリゴールのリフトのみに基づいて配分を更新します。

マルチアームドバンディット

動的配分(MAB など)を使用する場合、露出率を手動で編集できません。代わりに、Kameleoon が元のバリエーションに対する改善を自動的に測定し、Epsilon Greedy アルゴリズムを使用して合計コンバージョン数の利得を推定します。Kameleoon はこのプロセスを1時間ごとに繰り返します。MAB アルゴリズムは、統計的有意性がなくても、よりパフォーマンスの良いバリエーションにトラフィックをリダイレクトするため、勝者または敗者のバリエーションを特定するために必要な時間を大幅に短縮できます。
自動最適化された実験は、偏差を最適化するために元のバリエーション(Feature Experiments では “off”)に依存します。元のバリエーションにトラフィックが届かない場合、偏差が更新されず、明確な勝者バリエーションがあっても配分が 50/50 のままになる可能性があります。
MAB はコントロールやベースライン体験に依存しません。A/B テストとは異なり、MAB は均等配分から始めて改善を優先し、リアルタイムのパフォーマンスに基づいてトラフィックを動的に調整します。統計分析の重要性が低く、“探索” 時間を最小化する必要がある場合、MAB は “活用” に重点を置くため有用です。

コンテクスチュアルバンディット

コンテクスチュアルバンディットは、機械学習を使用して実験のトラフィック配分を動的に最適化します。バリエーションのパフォーマンスとユーザーコンテキストに基づいて、リアルタイムでトラフィックを再分配し、効果を最大化します。 マルチアームドバンディットとコンテクスチュアルバンディットを区別する主な違いは次のとおりです。
  • マルチアームドバンディット: 複数のバリエーション(アーム)間で定義されたゴール(クリック率やコンバージョンなど)を最大化するようにトラフィック配分を最適化します。ユーザー属性に基づく区別なく、すべてのユーザーを平等に扱います。ユーザー固有のデータが利用できない、または不要で、全体オーディエンスにとって最もパフォーマンスの良いバリエーションを見つけることに焦点を当てるシナリオに最適です。
  • コンテクスチュアルバンディット: デバイスタイプ、場所、行動などのユーザー固有のデータを意思決定に組み込みます。特定のユーザーに合わせてバリエーションを調整することで、よりパーソナライズされた意思決定を可能にし、結果を改善します。ユーザー属性によって導入される変動性により、コンテクスチュアルバンディットは動的環境で意思決定を最適化できます。
マルチアームドバンディットはすべてのユーザーに均一にトラフィック配分を最適化する一方、コンテクスチュアルバンディットは文脈データを活用してよりパーソナライズされたデータドリブンな意思決定を行います。 MAB 最適化の動作について詳しくは Dynamic traffic allocation の記事を、MAB アルゴリズムの技術的詳細についてさらに深く学ぶには Kameleoon の統計論文をご覧ください。