PAI-Rec のすべてのサービスと実験は、レコメンデーションシナリオに関連付ける必要があります。シナリオは、プラットフォーム上のプレースメントを、一連のラボ、実験レイヤー、実験グループ、実験にマッピングします。
レコメンデーションシナリオ
レコメンデーションシナリオは、プラットフォーム上の特定のプレースメント (ホームページのウォーターフォールレコメンデーション、カート内の「こちらもおすすめ」の提案、商品詳細ページの関連アイテムなど) を、一連のレコメンデーションサービスと実験にマッピングします。
各シナリオには、一目でわかるように、ページ上の場所に基づいた名前を付けます。たとえば、「ホームページのウォーターフォールレコメンデーション」という名前は、UI パターン (「ウォーターフォール」) とプレースメント (「ホームページ」) の両方を示します。
トラフィックコード
トラフィックコードフィールドは、レコメンデーションリクエストがシステム間でどのように分割されるかを制御します。PAI-Rec をセルフマネージドレコメンデーションシステムまたはサードパーティレコメンデーションシステムと並行して実行する場合に使用します。
| トラフィックコードの値 | トラフィックの宛先 |
|---|---|
PAI-REC | PAI-Rec システム |
selfhold | セルフマネージドレコメンデーションシステム |
thirdparty | サードパーティレコメンデーションシステム |
たとえば、HomePageRec シナリオでは、トラフィックはデフォルトで PAI-Rec にルーティングされます。トラフィックを段階的に移行するには、まずシナリオのトラフィックの 10%~20% を PAI-Rec にルーティングします。PAI-Rec で期待どおりの結果が得られたら、割合を増やします。
次の図は、6 人のユーザーのトラフィック割り当てを示しています。ユーザー a と b はセルフマネージドシステム (selfhold) から、ユーザー c と d は PAI-Rec (PAI-REC) から、ユーザー e と f はサードパーティシステム (thirdparty) から結果を受け取ります。

ラボと実験レイヤー
PAI-Rec は、4 つのレベルの階層を使用して A/B テストを整理します。
ラボ
└── 実験レイヤー
└── 実験グループ
└── 実験ラボ
ラボは、トラフィックの集合です。PAI-Rec は、実験のマッチングが行われる前に、受信したレコメンデーションリクエストをラボにルーティングします。
すべてのシナリオには、少なくとも 1 つのベースラボが必要です。トラフィックは最初に非ベースラボにマッチングされます。非ベースラボにマッチしない場合、リクエストはベースラボにフォールバックします。ラボを 1 つだけ作成する場合は、フォールバック用のベースラボとして使用する必要があります。ベースラボには、トラフィックスパイク時でも安定性を保つために、シンプルなリコールとランキングロジックを設定します。ベースラボは、人気アイテムとランダムフォールバックロジックを使用して実装することもできます。
非ベースラボには、より複雑なリコールとランキングロジックを設定します。異なるアルゴリズム戦略を並行してテストする必要がある場合は、複数の非ベースラボを作成します。
次の表は、ベースラボの設定フィールドを示しています。
| フィールド | 説明 |
|---|---|
| [Lab Name] | ラボのカスタム名です。 |
| Description | ラボの詳細な説明です。 |
| [Lab Type] | Base Lab (必須) またはNon-base Lab (オプション)。 |
| [ランタイム環境] | レコメンデーションエンジンのランタイム環境です。有効な値:Daily、Staging、Production。 |
| [バケット化方法] | PAI-Rec がユーザーをバケットに割り当てる方法です。後述のバケット化方法をご参照ください。 |
| [バケット] | このラボ内のバケットの総数です (例:100)。 |
| [トラフィックの割り当て] | このラボに割り当てるバケット番号です。有効な範囲:0~99。 |
| [レイヤー化] | このラボ内の実験レイヤーです。一般的な値:recall、filter、coarse_rank、rank。 |
| [テストユーザー] | バケットマッチングをバイパスし、トラフィックがこのラボに直接ルーティングされるユーザーです。 |
テストユーザーは、2 つの入力方法をサポートしています。
Manually Enter:カンマで区切って 1 つ以上のユーザー ID を入力します。
ユーザーグループ ID:ユーザーグループ管理ページで作成されたユーザーグループを選択します。
バケット化方法
PAI-Rec は、ユーザーをバケットに割り当てる 3 つの方法をサポートしています。
| 方法 | 仕組み |
|---|---|
| UID ベースのバケット化 | UID の末尾の数字に基づいてユーザーを割り当てます。 |
| ハッシュ UID ベースのバケット化 | UID のハッシュ値に基づいてユーザーを割り当てます。 |
| 条件ベースのバケット化 | gender=man などのキーバリュー式に基づいてユーザーを割り当てます。 |
実験レイヤー
実験レイヤーは、ラボ内の論理的なグループです。各ラボには複数の実験レイヤーを含めることができます。一般的なレイヤー名には、recall、filter、coarse_rank、rank があります。
実験グループと実験
実験グループ
実験グループは、実験レイヤーのサブディビジョンです。複数のアルゴリズムエンジニアが独立してリコールまたはランキングの実験を実行する必要がある場合は、レイヤー内に複数の実験グループを作成します。
実験
実験は、実験グループ内の単一のアルゴリズムまたは設定のバリエーションです。
実験グループには、通常、同時に実行される複数の実験が含まれています。たとえば、以下の設定では、dssm は、トラフィックの割合を 0% に、状態をオンラインに設定してテストされており、これにより設定済みのホワイトリストを利用して推薦効果を得ることができます。
実験グループの名前は Recall Group で、swing と etrec にはそれぞれ 50% のトラフィックが割り当てられ、etrec はベースライン実験、swing と dssm は通常実験です。