リコール、フィルタリング、および露出のプロセスが完了した後、パフォーマンスを向上させるために、ランキングプロセスを開始する前にアイテム数を削減する必要があります。 [AdjustCountFilter] や [PriorityAdjustCountFilter] などのパラメーターを設定することで、アイテム数を削減できます。
PAI-Rec では、モデルを呼び出して粗ランキングスコアを取得できます。 その後、スコアに基づいてアイテム数を削減できます。 粗ランキングにモデルを使用すると、よりパーソナライズされた洗練されたリコールを実現できます。
粗ランキングは、以下のフェーズに分けられます。 各フェーズはオプションです。 ビジネス要件に基づいてフェーズを設定できます。
機能の読み込み。 機能の読み込みは、詳細ランキングと同じです。 詳細については、「機能の設定」をご参照ください。
モデルの呼び出し。 アルゴリズムの設定は、詳細ランキングと同じです。 詳細については、「アルゴリズムの設定」をご参照ください。
アクションの実行。 並べ替えやフィルタリングなど、複数の操作を実行できます。 たとえば、粗ランキングモデルを呼び出した後、最初にアイテムを並べ替えてから、スコアの高いアイテムを取得する必要があります。 アクションを設定した後、順番に実行する必要があります。
粗ランキングを設定する場合は、コールドスタートアルゴリズムによって返されるアイテムを考慮する必要があります。 均一な粗ランキングモデルを使用する場合、そのようなアイテムは機能の不足によりスコアが低くなる可能性があります。 したがって、これらのアイテムに対してカスタムの粗ランキング設定を行う必要があります。 メインのレコメンデーションプロセスとコールドスタートリコールプロセスで粗ランキングを設定できます。 コールドスタートリコールプロセスが必要ない場合は、メインのレコメンデーションプロセスでのみ粗ランキングを設定する必要があります。 コールドスタートリコールプロセスが必要な場合は、パイプラインを使用してコールドスタートリコールプロセスを設定することをお勧めします。 詳細については、「カスタムパイプラインプロセス」をご参照ください。
GeneralRankConfs
[GeneralRankConfs] セクションを設定することにより、メインのレコメンデーションプロセスで粗ランキングを設定できます。 [GeneralRankConfs] は、Map[string]object 構造体を使用します。 キーはシナリオを指定します。 シナリオごとに異なる粗ランキングポリシーを使用できます。
設定例:
{
"GeneralRankConfs":{
"scene_name":{
"FeatureLoadConfs":[
{
"FeatureDaoConf":{
"AdapterType":"hologres",
"HologresName":"",
"FeatureKey":"user:uid", // 特徴量のキー
"UserFeatureKeyName":"userid", // ユーザー特徴量のキー名
"HologresTableName":"", // Hologres のテーブル名
"UserSelectFields":"*", // 選択するフィールド
"FeatureStore":"user" // 特徴量ストア
},
"Features":[
]
}
],
"RankConf":{
"RankAlgoList":[
"sv_rocket_launching" // ランキングアルゴリズムのリスト
],
"RankScore":"${sv_rocket_launching}", // ランキングスコア
"ContextFeatures":["none"], // コンテキスト特徴量
"BatchCount":100, // バッチ数
"Processor":"EasyRec" // プロセッサ
},
"ActionConfs":[
{
"ActionType":"sort", // アクションタイプ:ソート
"ActionName":"ItemRankScore" // アクション名:アイテムランキングスコア
},
{
"ActionType":"filter", // アクションタイプ:フィルター
"ActionName":"GeneralCountFilter" // アクション名:汎用カウントフィルター
}
]
}
},
"FilterConfs" :[
{
"Name": "GeneralCountFilter", // フィルター名
"FilterType": "AdjustCountFilter", // フィルタータイプ
"ShuffleItem": false, // アイテムのシャッフル
"RetainNum": 500 // 保持するアイテム数
}
]
}[FeatureLoadConfs] セクションと [RankConf] セクションの設定は、詳細ランキングと同じです。 これらの 2 つのセクションはオプションです。
[ActionConfs] セクションはアクションを指定します。 [ActionType] パラメーターはアクションタイプを指定します。 [ActionType] の有効な値は、sort と filter です。 [ActionName] パラメーターはアクション名を指定します。 アクション名は、対応する設定であらかじめ設定する必要があります。 たとえば、[ItemRankScore] は、アイテムがスコアに基づいてランク付けされることを示し、これは PAI-Rec エンジンによって事前定義されています。 [GeneralCountFilter] は、[FilterConfs] セクションで設定する必要があります。
上記の [ActionConfs] 設定では、システムが最初にスコアに基づいてアイテムを降順にランク付けし、次にアイテム数を調整して 500 個のアイテムを保持することを指定しています。 [ShuffleItem] パラメーターの値は false で、これはアイテムの位置を調整する必要がないことを示します。
ColdStartGeneralRankConfs
コールドスタートの粗ランキング設定は個別に記述されています。 [GeneralRankConfs] の設定と比較して、[RecallNames] パラメーターが追加されています。 [RecallNames] パラメーターは、コールドスタート固有の粗ランキング設定が構成されているリコールを示します。
設定例:
"ColdStartGeneralRankConfs": {
"scene_name": {
"RecallNames": [
"ColdStartRecall", // コールドスタートリコール
"ColdStartVideoVectorRecall", // コールドスタートビデオベクトルリコール
"VideoColdStartRecall1", // ビデオコールドスタートリコール 1
"VideoColdStartRecall2", // ビデオコールドスタートリコール 2
"VideoColdStartRecall3", // ビデオコールドスタートリコール 3
"VideoColdStartRecall4", // ビデオコールドスタートリコール 4
"LinUcbRecall", // LinUcb リコール
"LinUcbRecall_default", // LinUcb リコール(デフォルト)
"LinUcbRecall_highQuality", // LinUcb リコール(高品質)
"LinUcbRecall_default2" // LinUcb リコール(デフォルト 2)
],
"ActionConfs": [
{
"ActionType": "filter", // アクションタイプ:フィルター
"ActionName": "PriorityAdjustCountFilterV4" // アクション名:優先順位調整カウントフィルター V4
}
]
}
}