paint-brush
アダプティブ コントロール グループを使用して大量のテストを同時に実行する方法@schaun.wheeler
137 測定値

アダプティブ コントロール グループを使用して大量のテストを同時に実行する方法

Schaun Wheeler8m2023/05/15
Read on Terminal Reader

長すぎる; 読むには

A/B テストは廃止されつつありますが、私はそのためにここにいます。少数の介入を時間制限付きで個別に評価しても、永続的に実行可能な結果が一貫して得られるわけではありません。実際のビジネス状況では、テストすべき項目の数が急速に膨大になります。
featured image - アダプティブ コントロール グループを使用して大量のテストを同時に実行する方法
Schaun Wheeler HackerNoon profile picture
0-item
1-item

A/B テストは死につつありますが、私はそのためにここにいます。少数の介入セット (場合によっては 1 つの介入のみ) を時間制限付きで個別に評価しても、永続的に実行可能な結果が一貫して得られるわけではありません。


  • 潜在的にテストできることが多すぎます。 A/B テスト フレームワークを使用している場合、実際のビジネス状況では、テストする項目の数が急速に膨大になります。圧倒されるのはテスト アプローチの制限であり、テスト環境の特徴ではありません。


  • テストを実行するには長い時間がかかり、多数のテストを実行するには非常に長い時間がかかることがあります。異なるテストが影響を受けるユーザーに重複しないように注意する必要があります。企業がテストに参加したくない日や場所は避けなければなりません。 A/B テストを実行するために多くのリソースを独占します。


  • テストでは、負けたバリアントへの多くの影響が犠牲になる可能性があります。A と B を 1 か月間実行し、A のパフォーマンスがはるかに優れていたことが判明した場合、ユーザーの半数にパフォーマンスの低いバリアントを 1 か月間見せたことになります。あなたはその価値をすべて失いました。それを喜ぶ人は誰もいません。


  • テストの長期的な有効性は決して確実ではありません。あなたが行う選択の影響は、時刻、曜日、月の時期、一年の時期、世界の出来事、市場の変化によって影響を受ける可能性があります。テストした月に A が B よりも優れていたからといって、常に良くなるというわけではありません。また、A/B テストでは結果の有効期間を知ることはできません。


A/B テストの問題についてもう少し詳しく説明したい場合は、[Babbel](https://適応制御グループを使用して同時に大量の実験を実行する) の人々が優れたプレゼンテーションを提供しています。このテーマは、バンディット フィードバックに関するこのチュートリアルであり、複数の業界リーダーからの優れた視点から提供されています。

多腕の盗賊は未来であり、未来は現在であり、そして今、私たちは新たな問題を抱えています。

従来の A/B テスト設定では、バリアント A とバリアント B があります。ほとんどの現実の状況では、A または B のどちらかが統計的な意味でのみ「優れている」と考えられます。


テストを実行し、A の成功率が 20%、B の成功率が 10% であれば、A は明らかに「勝利」します…しかし、B に回答した人はどうなるでしょうか?彼らはAを獲得しても大丈夫でしょうか? A/B テストとバンディット アルゴリズムはどちらも、多数派のために少数派の好みを犠牲にすることを強制します。そうである必要はありません。特定の機器がそのように動作するだけです。より良い戦略は、オプション A を好む人々にはオプション A を提供し、オプション B に反応する人々にはオプション B を提供することです。


  • オプション A を 100 人に、オプション B を 100 人に送信します。
  • オプション A の成功率 20% は、20 回成功したことを意味します。
  • オプション B の成功率 10% は、10 回成功したことを意味します。


寛大になって、選択肢 B に反応した人の半数が、実際に選択肢 A を見ていたら、実際に選択肢 A に反応しただろうと仮定しましょう。


つまり:


  • テスト終了後に選択肢 A のみを表示すると、成功率は 12.5% になります (A に回答した 20 名に、B に回答したが A に回答したであろう 5 名を加え、両グループの合計 200 人で割ったもの)。
  • A を望む人にオプション A を送信し、B を望む人に B を送信すると、成功率は 15% になります。


したがって、基づいた結果に基づいて各治療の展開方法を調整することで、テーブルに残す価値は少なくなります。バンディット アルゴリズムが行うことはこれだけです。B は A の半分の成功率なので、実際には半分の確率で B が表示されます。 (A と B だけでなく) 多くの異なるオプションを同時に使用してこれを行うことができ、自動展開と再調整によりテストの実行コストが削減され、バリアントを失うことによる価値の犠牲が少なくなり、システムは次のことを行うことができます。ユーザーの好みやより大きな意思決定環境の変化に適応します。


A/B テストの問題はすべて解決されました。


しかし、これは裏目に出る可能性があります。


個人の好みではなく集計統計に基づいて決定しているため、A を好む人に B を表示する、または B を好む人に A を表示する頻度はどれくらいですか?実際、このような状況では、バンディット アルゴリズムのパフォーマンスが A/B テストよりも悪くなる可能性があります。そしてもちろん、これらすべては時間の経過とともに変化する可能性があります。おそらく、B を好きだった人の半数は、時間の経過とともに実際に A を好むようになります。また、A を好きだった人の 4 分の 1 は、時間の経過とともに B を好むようになります。集計された統計、したがって誰に何を見せるかについての決定が決まります。 、まったく同じままになります。それは最適ではありません。


通常のバンディットアルゴリズムには隠れたコストが伴います。むしろ、A/B テストのコストを取得し、それを別の場所にシャッフルして、簡単には気づかないようにします。アルゴリズムを設定して送信を開始すると、すべてが順調に見えますが、前の段落で述べたいくつかの問題に気づき始めるまでは。おそらく、A と B の好みのバランスは、たとえば新規ユーザーとリピーターの場合では異なります。おそらく、これらの好みは地域によって異なるでしょう。おそらく経験豊富なユーザーであっても、パワーユーザーと単なる常連ユーザーに分かれる可能性があります。これが、人々がコンテキスト バンディット(実際にはバンディットとセグメンテーションを意味する単なる派手な言葉) を発明した理由です。


ユーザー ベースのどのセグメントが異なる設定プロファイルを持つ可能性があるかを理解するには、さらに多くのレポートを実行する必要があります。つまり、実験を分析するために必要なレポートは減らしましたが、盗賊の範囲を調べるために必要なレポートは増やしました。そして、そのレポートを実際の範囲設定に変えるために必要な作業量が増加しました。そして、これらのさまざまなセグメントを作成すると、そのコンテキストを考慮に入れるにはさらに多くのクリエイティブが必要になる可能性があることがわかり、作業がさらに増えます。そして、適切なユーザーを適切な盗賊に引き込むパイプラインを構築するためのエンジニアリング作業があります。そして、メッセージング システムがバックグラウンドで行われているすべての処理を確実にサポートできるようにするために、メッセージング システムで実行する必要がある作業があります。


したがって、バンディットは A/B テストの多くの問題を解決しますが、本当に効果的なバンディットは、解決するのが容易ではない新しい分析ニーズと新しい物流上のハードルを生み出します。これが、A/B テストが依然として人気がある理由の 1 つです。このプロセスは十分に一般的であるため、面倒な作業を支援するツールがたくさんあります。

動的テストには動的評価が必要であり、それには動的制御グループが必要です。

そこで私は、複雑なコンテキストに応じたバンディット テストを簡単に実行できる製品の設計と構築を支援しました。非常に簡単なので、サイトやアプリ上の個々のユーザーごとに個別のコンテキストが作成されます。この製品の詳細については、こちらをご覧ください。それはこの投稿の本質ではないので、これ以上は説明しません。ここで話したいのは、1 日に何十万もの個別の適応テストを評価するという問題をどのように解決したかということです。


詳細については、 arXiv に関する論文を参照してください。


私は以前、実験を評価するためにホールドアウト グループを構築する際に伴う実践的、分析的、そして時には倫理的な課題について書きました。私は今でもそれを支持します。私たちは合成対照を使用して適応実験を評価します。これは、潜在的に有益な介入をユーザーから剥奪することが含まれないためです。ただし、従来の合成制御手法は、基本的に実験を実施する環境のベースライン データ生成プロセスをモデル化することになるため、分析上の落とし穴に満ちている可能性があります。大量の並行実験を投入すると、その多くは重複する環境で行われ、制御問題の分析的解決は…困難なものになります。


だからこそ私たちはその道を歩まなかったのです。


ゲイリー・キングとハーバード大学の同僚は数年前、観察データから因果関係を推論するための驚くほど簡単な方法を考案しました。これは、粗密一致 (CEM) と呼ばれます。独創的な論文はここで、理論的基礎はここで見つけることができます。


アイデアはシンプルです。


  1. 行われている介入 (テスト) の観察をすべて収集します。
  2. 介入が行われなかったが、介入があった可能性がある箇所の観察を大量に収集します。
  3. 2 つのグループからの特定の観測値ペア間の類似性を測定できる属性を選択します。
  4. 属性をカテゴリ変数に「粗く」します。したがって、「年齢」が属性の場合は、それを年齢カテゴリに分類できます。
  5. 粗くされた属性の正確な一致に基づいて、各介入観測値を非介入観測値と照合します。これは、非介入観察のサブセットのみを選択することを意味し、多くの場合、介入観察の一部も削除することになりますが、残ったものは一致します。
  6. 洗練された 2 つのグループ間の違いをモデル化します。


CEM は、因果推論の複雑さを分析メソッドから遠ざけ、任意のメソッドを使用でき、代わりにデータセット作成メソッドに組み込みます。これは概念的には、分類問題における不均衡なデータセットのオーバーサンプリングまたはアンダーサンプリングに似ています。


私たちが気づいたのは、一致する特徴の 1 つとして時間を含めることにより、これと同じ種類のロジックを使用して、バンディット実験に適切な制御コンテキストを見つけることができるということでした。ユーザーが受けた介入の種類と、介入時にユーザーがアプリ上で示したアクティビティのレベルなど、特定の介入属性をすでに照合しています。ただし、観察ウィンドウも定義し、一致するユーザーが、介入自体の観察期間内ではなく、コントロールを求めている介入に近い期間で介入を受けていることを確認します。


これにより、実行するテストの大部分でユーザー レベルでコントロールを一致させることができます。 Bandit アルゴリズムは、大規模な A/B テストの複雑さの一部を取り除きますが、その複雑さの他の部分は隠します。私たちの制御方法は、隠れた複雑さを取り出して解決するため、バンディット割り当ての適応的な利点だけでなく、A/B テストの明確な推論と帰属も得ることができます。

あなたのやるべきことリストは次のとおりです。

  1. 介入ごとに、先読みウィンドウと後読みウィンドウを特定します。ルックアヘッド ウィンドウはユーザーが介入にどのように反応したかを確認するために使用され、ルックビハインド ウィンドウは制御ケースを探すために使用されます。
  2. 各介入について、(1) 先読みウィンドウ内で発生し、(2) 探している介入の先読みウィンドウと重なる先読みウィンドウがない、他の介入のプールを特定します。コントロール。
  3. これらの潜在的なコントロール介入を受けたユーザーと、コントロールを求めている介入を受けたユーザーを照合します。アクティビティのレベル、受けた介入の類似性など、任意の基準に基づいて照合できます。
  4. マッチングプロセスを通過したユーザーの中からランダムに 1 名を選択します。
  5. 元の介入を実際に受信したユーザーだけでなく、コントロールとして選択したユーザーにも送信したとします。
  6. 関心のある期間におけるテスト ユーザーとコントロール ユーザーの応答の違いを測定します。




繰り返しになりますが、詳細についてはarXivの論文を参照してください。