すべてのプロダクト
Search
ドキュメントセンター

:再現率の設定

最終更新日:May 16, 2026

リトリーバル設定は、設定の概要にある RecallConfs に対応します。

設定

PAI-Rec エンジンは、協調フィルタリング (UserCollaborativeFilterRecall)、ベクターリコール (HologresVectorRecall)、U2I リコール (UserCustomRecall) などの組み込みリコールテンプレート、および Hologres、PAI-FeatureStore、Tablestore などのデータソースをサポートしています。

再現率の共通設定

各再現率の設定は、共通設定のサブセットを使用します。このセクションでは、各再現率の設定のドキュメントで説明を繰り返すのを避けるため、これらの共通設定について説明します。

設定例:

{
    "RecallConfs": [
        {
            "Name": "collaborative_filter",
            "RecallType": "UserCollaborativeFilterRecall",
            "RecallCount": 1000,
            "RecallAlgo": "",
            "ItemType": "",
            "CacheAdapter": "",
            "CacheConfig": "",
            "CachePrefix": "",
            "CacheTime": 0
        }
    ]
}

パラメーター

タイプ

必須

説明

Name

文字列

はい

リコール設定のカスタム名。SceneConfs で参照されます。

RecallType

文字列

はい

組み込みのリコールタイプ。サポートされている値は次のとおりです:

  • UserCollaborativeFilterRecall

  • UserTopicRecall

  • VectorRecall

  • UserCustomRecall

  • HologresVectorRecall

  • ItemCollaborativeFilterRecall

  • UserGroupHotRecall

  • UserGlobalHotRecall

  • I2IVectorRecall

  • ColdStartRecall

  • MilvusVectorRecall

  • RealTimeU2IRecall

  • OnlineHologresVectorRecall

  • OnlineVectorRecall

  • GraphRecall

  • MockRecall

RecallCount

文字列

はい

リコールするアイテムの数を指定します。

RecallAlgo

文字列

いいえ

リアルタイムベクターリコールのみに使用されます。使用するベクターモデルの名前を指定します。これは AlgoConfs で事前に設定しておく必要があります。

ItemType

文字列

いいえ

推奨するアイテムタイプを指定します。

CacheAdapter

文字列

いいえ

リコール結果をキャッシュするためのアダプターを指定します。サポートされている値は次のとおりです:

  • Redis

  • localCache

CacheConfig

文字列

いいえ

キャッシュの設定を指定します。

Redis の例: "{\"host\":\"xxx.redis.rds.aliyuncs.com\", \"port\":6379,\"maxIdle\":10, \"password\":\"xxxx\"}"

localCache の例: "{\"defaultExpiration\":600, \"cleanupInterval\":600}"

CachePrefix

文字列

いいえ

リコール結果のキャッシュキーに付加されるプレフィックスを指定します。CacheAdapter が設定されている場合、このパラメーターは必須です。異なるリコール設定間でのキーの衝突を防ぐために使用されます。例えば、グループベースのホットアイテムリコールの結果には "group_hot_" を使用できます。

このパラメーターは、キャッシュが有効な場合に異なるリコール設定間のキーの競合を防止するために必須です。たとえば、

"group_hot_" は、グループベースのホットアイテムリコールによる結果に使用できます。

CacheTime

文字列

いいえ

キャッシュの有効期間を秒単位で指定します。デフォルト値は 1800 です。CacheConfig パラメーターで defaultExpiration が指定されている場合、このパラメーターは無視されます。

協調フィルタリング (UserCollaborativeFilterRecall)

Hologres

協調フィルタリングには、固定スキーマを持つ 2 つのテーブルが必要です。user_id に基づいてアイテムリストを取得する u2i テーブルと、類似アイテムを取得する i2i テーブルです。

i2i テーブルから直接類似アイテムを取得する方法 (u2i2i 方式) に加えて、i2x テーブルと x2i テーブルを使用して間接的に取得することもできます (u2i2x2i 方式)。この方法では、「x」はカテゴリ、ブランド、都市などのアイテム属性を表します。このプロセスでは、まずアイテムの「x」属性 (例: category フィールド) を取得し、次に x2i テーブルを使用して、この属性値を共有する人気アイテムを取得して推奨します。

u2i テーブル

パラメーター

タイプ

説明

user_id

文字列

ユーザー ID。この値は一意である必要があります。

item_ids

文字列

ユーザーが閲覧したアイテム ID のリスト。サポートされている形式: item_id1,item_id2,item_id3...

または item_id1:score1,item_id2:score2,item_id3:score3...

i2i テーブル (u2i2i の場合のみ必須)

パラメーター

タイプ

説明

item_id

文字列

アイテム ID。この値は一意である必要があります。

similar_item_ids

文字列

item_id に類似するアイテムのリスト。サポートされている形式: item_id1:score1,item_id2:score2,item_id3:score3...

i2x テーブル (u2i2x2i の場合のみ必須)

パラメーター

タイプ

説明

item_id

文字列

アイテム ID。この値は一意である必要があります。

x

文字列

アイテム属性。列名はカスタマイズ可能で、エンジン設定で指定する必要があります。

x2i テーブル (u2i2x2i の場合のみ必須)

パラメーター

タイプ

説明

x

文字列

アイテム属性。列名はカスタマイズ可能で、エンジン設定で指定する必要があります。

item_id

文字列

アイテム ID。複数の値を区切るには、カンマ (,) を使用します。

u2i2i 設定例:

{
    "RecallConfs": [
        {
            "Name": "collaborative_filter",
            "RecallType": "UserCollaborativeFilterRecall",
            "RecallCount": 1000,
            "UserCollaborativeDaoConf": {
                "AdapterType": "hologres",
                "HologresName": "holo_info",
                "User2ItemTable": "u2i_table",
                "Item2ItemTable": "i2i_table",
                "Normalization": "on"
            }
        }
    ]
}

u2i2x2i 設定例:

{
    "RecallConfs": [
        {
            "Name": "collaborative_filter",
            "RecallType": "UserCollaborativeFilterRecall",
            "RecallCount": 1000,
            "UserCollaborativeDaoConf": {
                "AdapterType": "hologres",
                "HologresName": "holo_info",
                "User2ItemTable": "u2i_table",
                "Item2XTable": "i2x_table",
                "X2ItemTable": "x2i_table",
                "XKey": "category",
                "XDelimiter": ",",
                "Normalization": "on"
            }
        }
    ]
}

UserCollaborativeDaoConfig

パラメーター

タイプ

必須

説明

AdapterType

文字列

はい

固定値:hologres

HologresName

文字列

はい

データソース設定 (HologresConfs) で定義した Hologres インスタンスの名前。例:holo_info

User2ItemTable

文字列

はい

u2i テーブルの名前。

Item2ItemTable

文字列

いいえ

i2i テーブルの名前。このパラメーターは u2i2i 方式の場合、必須です。

Item2XTable

文字列

いいえ

i2x テーブルの名前。このパラメーターは u2i2x2i 方式の場合、必須です。

X2ItemTable

文字列

いいえ

x2i テーブルの名前。このパラメーターは u2i2x2i 方式の場合、必須です。

XKey

文字列

いいえ

i2x テーブルと x2i テーブルの属性列 (x) の名前。このパラメーターは u2i2x2i 方式の場合、必須です。

XDelimiter

文字列

いいえ

「x」値の区切り文字。デフォルトでは、「x」値は分割されません。

Normalization

文字列

いいえ

リコールされたアイテムを正規化するかどうかを指定します。有効な値:on および off。デフォルト値:on

PAI-FeatureStore

協調フィルタリングには、固定スキーマを持つ 2 つのテーブルが必要です。user_id に基づいてアイテムリストを取得する u2i テーブルと、類似アイテムを取得する i2i テーブルです。

両方のテーブルのデータは MaxCompute で生成され、オフラインビューとして PAI-FeatureStore に登録する必要があります。必要な MaxCompute テーブルスキーマを以下に説明します。

u2i テーブル

パラメーター

タイプ

説明

user_id

文字列

ユーザー ID。この値は一意である必要があります。

item_ids

文字列

ユーザーが閲覧したアイテム ID のリスト。サポートされている形式: item_id1,item_id2,item_id3...

または item_id1:score1,item_id2:score2,item_id3:score3...

ds

文字列

MaxCompute テーブルのパーティションフィールド。

以下に、PAI-FeatureStore にデータを登録する例を示します。

i2i テーブル

パラメーター

タイプ

説明

item_id

文字列

アイテム ID。この値は一意である必要があります。

similar_item_ids

文字列

item_id に類似するアイテムのリスト。サポートされている形式: item_id1:score1,item_id2:score2,item_id3:score3...

dt

文字列

MaxCompute テーブルのパーティションフィールド。

設定例:

{
    "RecallConfs": [
        {
            "Name": "collaborative_filter",
            "RecallType": "UserCollaborativeFilterRecall",
            "RecallCount": 1000,
            "UserCollaborativeDaoConf": {
                "AdapterType": "featurestore",
                "FeatureStoreName": "fs_pairec",
                "User2ItemFeatureViewName": "u2i_recall",
                "Item2ItemFeatureViewName": "i2i_collaborative",
                "Normalization": "on"
            }
        }
    ]
}

UserCollaborativeDaoConfig

パラメーター

タイプ

必須

説明

AdapterType

文字列

はい

固定値:featurestore

FeatureStoreName

文字列

はい

データソース設定 (FeatureStoreConfs) で定義した PAI-FeatureStore インスタンスの名前。例:fs_pairec

User2ItemFeatureViewName

文字列

はい

u2i テーブルに対応するビューの名前。

Item2ItemFeatureViewName

文字列

はい

i2i テーブルに対応するビューの名前。

Normalization

文字列

いいえ

リコールされたアイテムを正規化するかどうかを指定します。有効な値:on および off。デフォルト値:on

Tablestore

協調フィルタリングには、固定スキーマを持つ 2 つのテーブルが必要です。user_id に基づいてアイテムリストを取得する u2i テーブルと、類似アイテムを取得する i2i テーブルです。

u2i テーブル

パラメーター

タイプ

説明

user_id

文字列

ユーザー ID。この値は一意である必要があります。

item_ids

文字列

ユーザーが閲覧したアイテム ID のリスト。サポートされている形式: item_id1,item_id2,item_id3...

または item_id1:score1,item_id2:score2,item_id3:score3...

i2i テーブル

パラメーター

タイプ

説明

item_id

文字列

アイテム ID。この値は一意である必要があります。

similar_item_ids

文字列

item_id に類似するアイテムのリスト。サポートされている形式: item_id1:score1,item_id2:score2,item_id3:score3...

{
    "RecallConfs": [
        {
            "Name": "collaborative_filter",
            "RecallType": "UserCollaborativeFilterRecall",
            "RecallCount": 1000,
            "UserCollaborativeDaoConf": {
                "AdapterType": "tablestore",
                "TableStoreName": "tablestore_info",
                "User2ItemTable": "u2i_table",
                "Item2ItemTable": "i2i_table",
                "Normalization": "on"
            }
        }
    ]
}

パラメーター

タイプ

必須

説明

AdapterType

文字列

はい

固定値:tablestore

TableStoreName

文字列

はい

データソース設定 (TableStoreConfs) で定義した Tablestore インスタンスの名前。例:tablestore_info

User2ItemTable

文字列

はい

u2i テーブルの名前。

Item2ItemTable

文字列

はい

i2i テーブルの名前。

Normalization

文字列

いいえ

リコールされたアイテムを正規化するかどうかを指定します。有効な値:on および off。デフォルト値:on

Redis

Redis の協調フィルタリングプロセスは独自のもので、2 つのステップで構成されます。

  • RedisPrefix 値とユーザー ID (uid) を連結してキーを作成し、u2i リストをクエリします。結果は、次のいずれかの形式の文字列です: item_id1,item_id2,item_id3... または item_id1:score1,item_id2:score2,item_id3:score3...

  • i2i リストをクエリします。前のステップで取得したアイテム ID を使用して MGET コマンドを実行します。i2i データも文字列で、次の形式です: item_id1:score1,item_id2:score2,item_id3:score3...

設定例:

{
    "RecallConfs": [
        {
            "Name": "collaborative_filter",
            "RecallType": "UserCollaborativeFilterRecall",
            "RecallCount": 1000,
            "UserCollaborativeDaoConf": {
                "AdapterType": "redis",
                "RedisName": "redis_info",
                "RedisPrefix": "cr_",
                "Normalization": "on"
            }
        }
    ]
}

パラメーター

タイプ

必須

説明

AdapterType

文字列

はい

固定値:redis

RedisName

文字列

はい

データソース設定 (RedisConfs) で定義した Redis インスタンスの名前。例:redis_info

RedisPrefix

文字列

いいえ

u2i データキーのプレフィックス。このプレフィックスは、キーを作成するためにユーザー ID (uid) の先頭に付加されます。

説明

Redis はサポート対象の唯一のデータキャッシュです。

RealTimeU2IRecall

Hologres

この方式は、協調フィルタリングと同じロジックでデータを取得しますが、ユーザー行動履歴テーブルから U2I データをリアルタイムで計算します。

システムは、ログに基づいてユーザー行動履歴テーブルをリアルタイムで更新し、リアルタイムリコールを実現します。

協調フィルタリングと同様に、この方式も u2i2x2i をサポートしています。まず、アイテムの x 属性を取得し、次に同じ属性を持つ他のアイテムをリコールします。

ユーザー行動履歴テーブル

フィールド

タイプ

説明

user_id

文字列

ユーザー ID。

item_id

文字列

ユーザーが閲覧したアイテムの ID。

event

文字列

イベント名。

play_time

float

動画の視聴時間などのイベントの継続時間。該当しない場合は 0 に設定します。

timestamp

int

イベントのタイムスタンプ (秒単位)。

i2i テーブル (u2i2i の場合のみ必要)

フィールド

タイプ

説明

item_id

文字列

アイテム ID。この値は一意である必要があります。

similar_item_ids

文字列

item_id に類似するアイテムのリスト。対応形式: item_id1:score1,item_id2:score2,item_id3:score3...

i2x テーブル (u2i2x2i の場合のみ必要)

フィールド

タイプ

説明

item_id

文字列

アイテム ID。この値は一意である必要があります。

x

文字列

アイテムの属性。列名はカスタマイズ可能であり、エンジン設定で指定する必要があります。

x2i テーブル (u2i2x2i の場合のみ必要)

フィールド

タイプ

説明

x

文字列

アイテムの属性。列名はカスタマイズ可能であり、エンジン設定で指定する必要があります。

item_id

文字列

アイテム ID。複数の値を区切るには、カンマ (,) を使用します。

行動テーブルを作成するステートメント:

BEGIN;
CREATE TABLE "sv_rec"."user_behavior_seq" (
  "user_id" text NOT NULL,
  "item_id" text NOT NULL,
  "event" text NOT NULL,
  "play_time" float8  NULL,
  "timestamp" int8 NOT NULL
);
CALL SET_TABLE_PROPERTY('"sv_rec"."user_behavior_seq"', 'orientation', 'column');
call set_table_property('"sv_rec"."user_behavior_seq"', 'distribution_key', '"user_id"');
CALL SET_TABLE_PROPERTY('"sv_rec"."user_behavior_seq"', 'clustering_key', '"user_id:asc","timestamp:desc"');
CALL SET_TABLE_PROPERTY('"sv_rec"."user_behavior_seq"', 'bitmap_columns', '"user_id","event"');
CALL SET_TABLE_PROPERTY('"sv_rec"."user_behavior_seq"', 'dictionary_encoding_columns', '"user_id:auto","item_id:auto","event"');
CALL SET_TABLE_PROPERTY('"sv_rec"."user_behavior_seq"', 'time_to_live_in_seconds', '2592000');
comment on table "sv_rec"."user_behavior_seq" is 'ユーザーのリアルタイム行動シーケンス';
comment on column "sv_rec"."user_behavior_seq"."user_id" is 'ユーザーID';
comment on column "sv_rec"."user_behavior_seq"."item_id" is 'アイテムID';
comment on column "sv_rec"."user_behavior_seq"."event" is 'イベントタイプ';
comment on column "sv_rec"."user_behavior_seq"."play_time" is '閲覧または再生時間';
comment on column "sv_rec"."user_behavior_seq"."timestamp" is 'タイムスタンプ(秒単位)';
COMMIT;

設定例:

{
    "RecallConfs": [
        {
            "Name": "RealTimeEtrecRecall",
            "RecallType": "RealTimeU2IRecall",
            "RecallCount": 200,
            "RealTimeUser2ItemDaoConf": {
                "UserTriggerDaoConf": {
                    "AdapterType": "hologres",
                    "HologresName": "holo_info",
                    "HologresTableName": "user_behavior_table",
                    "WhereClause": "event='xxx'",
                    "Limit": 200,
                    "EventPlayTime": "playback:5000;playvslide:5000",
                    "EventWeight": "playback:1;playvslide:2",
                    "WeightExpression": "exp((-0.2)*((currentTime-eventTime)/3600/24))",
                    "WeightMode": "sum",
                    "NoUsePlayTimeField": false
                },
                "Item2ItemTable": "i2i_table",
                "SimilarItemIdField": "similar_item_ids"
            }
        }
    ]
}

u2i2x2i 設定例:

{
    "RecallConfs": [
        {
            "Name": "RealTimeU2I2X2IRecall",
            "RecallType": "RealTimeU2IRecall",
            "RecallCount": 200,
            "RealTimeUser2ItemDaoConf": {
                "UserTriggerDaoConf": {
                    "AdapterType": "hologres",
                    "HologresName": "holo_info",
                    "HologresTableName": "user_behavior_table",
                    "WhereClause": "event='xxx'",
                    "Limit": 200,
                    "EventPlayTime": "playback:5000;playvslide:5000",
                    "EventWeight": "playback:1;playvslide:2",
                    "WeightExpression": "exp((-0.2)*((currentTime-eventTime)/3600/24))",
                    "WeightMode": "sum",
                    "NoUsePlayTimeField": false
                },
                "Item2XTable": "i2x_table",
                "X2ItemTable": "x2i_table",
                "XKey": "category",
                "XDelimiter": ","
            }
        }
    ]
}

RealTimeUser2ItemDaoConf:

フィールド

タイプ

必須

説明

AdapterType

文字列

はい

固定値: hologres

HologresName

文字列

はい

HologresConfs データソース設定で指定した Hologres インスタンスのカスタム名。例: holo_info

HologresTableName

文字列

はい

Hologres のユーザー行動履歴テーブルの名前。

WhereClause

文字列

いいえ

フィルター条件。SQL の WHERE 句に相当します。

Limit

int

いいえ

クエリの制限。SQL の LIMIT 句に相当します。

EventPlayTime

文字列

いいえ

再生時間によってイベントをフィルタリングします。例えば、e_sv_func_svplayback:5000 は、このイベントタイプの場合、play_time 値が 5000 より大きい必要があることを示します。この条件を満たさないイベントはフィルタリングされます。複数のイベントフィルターを指定する場合は、セミコロン (;) で区切ります。

EventWeight

文字列

いいえ

各イベントの重みを定義できます。デフォルト値は 1 です。

WeightExpression

文字列

いいえ

時間減衰に基づいてイベントの重みを計算するための式。currentTime は現在のタイムスタンプ、eventTime は行動テーブルのタイムスタンプを表します。

WeightMode

文字列

いいえ

トリガーの重みを計算する方法。有効な値は summax です。デフォルト値は sum です。

NoUsePlayTimeField

bool

いいえ

play_time フィールドを使用しない場合は true に設定します。

Item2ItemTable

文字列

いいえ

Hologres の i2i テーブルの名前。このパラメーターは u2i2i 方式の場合に必要です。

SimilarItemIdField

文字列

いいえ

Hologres の i2i テーブルのフィールド名。デフォルト値: similar_item_ids

Item2XTable

文字列

いいえ

i2x テーブルの名前。このパラメーターは u2i2x2i 方式の場合に必要です。

X2ItemTable

文字列

いいえ

x2i テーブルの名前。このパラメーターは u2i2x2i 方式の場合に必要です。

XKey

文字列

いいえ

x キー。i2x テーブルと x2i テーブルの x 列の名前です。このパラメーターは u2i2x2i 方式の場合に必要です。

XDelimiter

文字列

いいえ

x 値のデリミタ。デフォルトでは、x 値は分割されません。

PAI-FeatureStore

この方式は、協調フィルタリングと同じロジックでデータを取得しますが、ユーザー行動履歴テーブルから U2I データをリアルタイムで計算します。

システムは、ログに基づいてユーザー行動履歴テーブルをリアルタイムで更新し、リアルタイムリコールを実現します。

PAI-FeatureStore プラットフォームでは、行動シーケンス特徴量ビューを使用してユーザー行動履歴データを保存できます。

ユーザー行動履歴テーブル

フィールド

タイプ

説明

user_id

文字列

ユーザー ID。

item_id

文字列

ユーザーが閲覧したアイテムの ID。

event

文字列

イベント名。

playtime

float

動画の視聴時間などのイベントの継続時間。該当しない場合は 0 に設定します。

event_unix_time

int

イベントのタイムスタンプ (秒単位)。

i2i テーブル

フィールド

タイプ

説明

item_id

文字列

アイテム ID。この値は一意である必要があります。

similar_item_ids

文字列

item_id に類似するアイテムのリスト。対応形式: item_id1:score1,item_id2:score2,item_id3:score3...

設定例:

{
    "RecallConfs": [
        {
            "Name": "realtimeu2i",
            "RecallType": "RealTimeU2IRecall",
            "RecallCount": 200,
            "RealTimeUser2ItemDaoConf": {
                "UserTriggerDaoConf": {
                    "AdapterType": "featurestore",
                    "FeatureStoreName": "fs_pairec",
                    "FeatureStoreViewName": "user_behavior_table",
                    "TriggerCount": 100,
                    "EventWeight": "click:1;order:1",
                    "WeightExpression": "exp((-0.2)*((currentTime-eventTime)/3600/24))",
                    "WeightMode": "sum",
                    "NoUsePlayTimeField": false,
                    "ItemIdFieldName": "item_id",
                    "EventFieldName": "event",
                    "PlayTimeFieldName": "playtime",
                    "TimestampFieldName": "event_unix_time"
                },
                "Item2ItemFeatureViewName": "i2i_collaborative",
                "SimilarItemIdField": "similar_item_ids"
            }
        }
    ]
}

RealTimeUser2ItemDaoConf:

フィールド

タイプ

必須

説明

UserTriggerDaoConf

  • AdapterType

文字列

はい

固定値: featurestore

  • FeatureStoreName

文字列

はい

FeatureStoreConfs データソース設定で指定した PAI-FeatureStore プロジェクトのカスタム名。例: fs_pairec

  • FeatureStoreViewName

文字列

はい

PAI-FeatureStore のユーザー行動履歴シーケンス特徴量ビューの名前。

  • TriggerCount

int

はい

ユーザー行動トリガーの数。

  • EventPlayTime

文字列

いいえ

再生時間によってイベントをフィルタリングします。例えば、e_sv_func_svplayback:5000 は、このイベントタイプの場合、playtime 値が 5000 より大きい必要があることを示します。この条件を満たさないイベントはフィルタリングされます。複数のイベントフィルターを指定する場合は、セミコロン (;) で区切ります。

  • EventWeight

文字列

はい

各イベントに重みを定義できます。デフォルトの重みは 1 です。複数のイベントの設定は、セミコロン (;) を使用して区切ります。

  • WeightExpression

文字列

はい

時間減衰に基づいてイベントの重みを計算するための式。currentTime は現在のタイムスタンプ、eventTime は行動テーブルのタイムスタンプを表します。

  • WeightMode

文字列

いいえ

トリガーの重みを計算する方法。有効な値は summax です。デフォルト値は sum です。

  • NoUsePlayTimeField

bool

いいえ

playtime フィールドを使用しない場合は true に設定します。

  • ItemIdFieldName

文字列

いいえ

ユーザー行動シーケンスにおける item_id フィールドの名前。デフォルト値: item_id

  • EventFieldName

文字列

いいえ

ユーザー行動シーケンスにおける event フィールドの名前。デフォルト値: event

  • PlayTimeFieldName

文字列

いいえ

ユーザー行動シーケンスにおける再生時間フィールドの名前。デフォルト値: playtime

  • TimestampFieldName

文字列

いいえ

ユーザー行動シーケンスにおけるタイムスタンプフィールドの名前。デフォルト値: event_unix_time

Item2ItemFeatureViewName

文字列

いいえ

PAI-FeatureStore の i2i テーブルの特徴量ビューの名前。このパラメーターは u2i2i 方式の場合に必要です。

SimilarItemIdField

文字列

いいえ

PAI-FeatureStore の i2i テーブルのフィールド名。デフォルト値: similar_item_ids

MergeMode

文字列

いいえ

triggerId によってリコールされたアイテムをマージする方法を制御します。デフォルトでは、リコールされたアイテムは結合、ソート、重複排除されます。値 snake を指定すると、リコールされたアイテムリストがインターリーブ形式でマージされます。

I2ICacheSize

int

いいえ

この値が 0 より大きい場合、キャッシングが有効になります。triggerId がキャッシュキーとして使用され、i2i テーブルからリコールされたアイテムのリストがキャッシュ値となります。

I2ICacheTime

int

いいえ

キャッシングが有効な場合、このパラメーターはキャッシュの有効期間を秒単位で設定します。

Hologres のベクトルリコール

ベクトルリコールでサポートされているデータソースは Hologres のみです。すべてのベクトルデータは Hologres テーブルに格納する必要があります。

設定例:

{
    "RecallConfs": [
        {
            "Name": "vector_recall",
            "RecallType": "HologresVectorRecall",
            "RecallCount": 100,
            "VectorDaoConf": {
                "AdapterType": "hologres",
                "HologresName": "holo_info",
                "HologresTableName": "user_embedding_table",
                "KeyField": "user_id",
                "EmbeddingField": "emb"
            },
            "HologresVectorConf": {
                "VectorTable": "item_embedding_table",
                "VectorEmbeddingField": "emb",
                "VectorKeyField": "item_id"
            }
        }
    ]
}

VectorDaoConf:

パラメーター

タイプ

必須

説明

AdapterType

文字列

はい

データソースのタイプです。hologres を指定する必要があります。

HologresName

文字列

はい

HologresConfs セクションで定義した Hologres データソースのカスタム名です。例: holo_info

HologresTableName

文字列

はい

Hologres のベクトルテーブルの名前です。

KeyField

文字列

はい

ベクトルテーブルのプライマリキーフィールドです。

EmbeddingField

文字列

はい

ベクトル埋め込みを格納するフィールドです。

HologresVectorConf:

パラメーター

タイプ

必須

説明

VectorTable

文字列

はい

Hologres のアイテムベクターテーブルです。

VectorEmbeddingField

文字列

はい

アイテムベクターテーブル内でベクターを格納するフィールドです。

VectorKeyField

文字列

はい

アイテムベクターテーブルのプライマリキーフィールドです。

VectorDaoConf オブジェクトは、ユーザーベクターテーブルを定義するものです。テーブル定義は次のとおりです。

BEGIN;
CREATE TABLE "public"."graphsage_user_embedding" (
 "user_id" text NOT NULL,
 "emb" float4[] NOT NULL,
 "dt" text,
PRIMARY KEY ("user_id")
);
CALL SET_TABLE_PROPERTY('"public"."graphsage_user_embedding"', 'orientation', 'row');
CALL SET_TABLE_PROPERTY('"public"."graphsage_user_embedding"', 'clustering_key', '"user_id:asc"');
CALL SET_TABLE_PROPERTY('"public"."graphsage_user_embedding"', 'time_to_live_in_seconds', '3153600000');
comment on column "public"."graphsage_user_embedding"."user_id" is 'ユーザー ID';
comment on column "public"."graphsage_user_embedding"."emb" is 'ユーザーの特徴ベクトル';
comment on column "public"."graphsage_user_embedding"."dt" is 'yyyyMMdd 形式の日付';
COMMIT;

HologresVectorConf テーブルは、アイテムベクトルを格納します:

BEGIN;
CREATE TABLE "public"."graphsage_item_embedding" (
 "item_id" text NOT NULL,
 "emb" float4[] NOT NULL,
PRIMARY KEY ("item_id")
);
CALL SET_TABLE_PROPERTY('"public"."graphsage_item_embedding"', 'orientation', 'column');
CALL SET_TABLE_PROPERTY('"public"."graphsage_item_embedding"', 'bitmap_columns', '"item_id"');
CALL SET_TABLE_PROPERTY('"public"."graphsage_item_embedding"', 'time_to_live_in_seconds', '3153600000');
comment on column "public"."graphsage_item_embedding"."item_id" is 'アイテム ID';
comment on column "public"."graphsage_item_embedding"."emb" is 'アイテムの特徴ベクトル';
COMMIT;

リアルタイム Hologres ベクターリコール (OnlineHologresVectorRecall)

リアルタイムベクトルリコールは標準ベクトルリコールと似ており、どちらも Hologres テーブルのデータを使用します。主な違いは、ユーザーベクトルがテーブルから取得されるのではなく、モデルによってリアルタイムで生成される点です。次に、このベクトルを使ってアイテムベクトルテーブルにクエリを実行します。このプロセスには、主に 3 つのステップがあります:

  • データテーブルにクエリを実行し、ユーザーの特徴を取得します。

  • Elastic Algorithm Service (EAS) にデプロイされたベクターモデルを呼び出し、ユーザーベクターを生成します。

  • 同様に、アイテムベクターテーブルにクエリを実行し、アイテムベクターを取得します。

設定例:

{
    "RecallConfs": [
        {
            "Name": "online_vector_recall",
            "RecallType": "OnlineHologresVectorRecall",
            "RecallCount": 500,
            "UserFeatureConfs": [
                {
                    "FeatureDaoConf": {
                        "AdapterType": "hologres",
                        "HologresName": "holo_info",
                        "FeatureKey": "user:uid",
                        "UserFeatureKeyName": "userid",
                        "HologresTableName": "user_all_feature_table",
                        "UserSelectFields": "*",
                        "FeatureStore": "user"
                    },
                    "Features": []
                }
            ],
            "RecallAlgo": "sv_v2_mind",
            "HologresVectorConf": {
                "HologresName": "holo_info",
                "VectorTable": "item_embedding_table",
                "VectorEmbeddingField": "item_emb",
                "VectorKeyField": "item_id"
            }
        }
    ]
}

パラメーター

タイプ

必須

説明

Name

文字列

はい

カスタムリコール名を指定します。

RecallType

文字列

はい

リコールタイプを指定します。値は OnlineHologresVectorRecall である必要があります。

RecallCount

整数

はい

リコール数を指定します。

RecallAlgo

文字列

はい

使用するベクトルモデル名を指定します。これは AlgoConfsリランキング設定で指定されているように設定されている必要があります。

UserFeatureConfs:

パラメーター

タイプ

必須

説明

AdapterType

文字列

はい

データソースのタイプ。hologres である必要があります。

HologresName

文字列

はい

HologresConfs で定義されている Hologres データソースの名前。例: holo_info

FeatureKey

文字列

はい

エンジンの user_id のソースを指定します。例えば、user:uid はユーザーの uid 特徴を表します。

UserFeatureKeyName

文字列

はい

ユーザー特徴テーブルのプライマリキーフィールド。

HologresTableName

文字列

はい

ユーザー特徴テーブルの名前。

UserSelectFields

文字列

はい

選択する特徴を指定します。すべての特徴を選択するには * を使用するか、f1,f2,... のようにカンマで区切った特徴名のリストを使用します。

FeatureStore

文字列

はい

エンジン内で特徴を格納する場所を指定します。有効な値: user および item

HologresVectorConf:

パラメーター

タイプ

必須

説明

HologresName

文字列

はい

HologresConfs で定義されている Hologres データソースの名前。 例: holo_info

VectorTable

文字列

はい

Hologres のアイテムベクトルテーブルの名前。

VectorEmbeddingField

文字列

はい

アイテムベクトルテーブル内のベクトル埋め込みを格納するフィールド。

VectorKeyField

文字列

はい

アイテムベクトルテーブルのプライマリキーフィールド。

sv_v2_mind モデルは、AlgoConfs で次のように定義されています。

{
    "AlgoConfs": [
        {
            "Name": "sv_v2_mind",
            "Type": "EAS",
            "EasConf": {
                "Processor": "EasyRec",
                "Timeout": 100,
                "ResponseFuncName": "easyrecUserEmbResponseFunc",
                "Url": "http://xxx.vpc.cn-beijing.pai-eas.aliyuncs.com/api/predict/sv_v2_mind",
                "Auth": "xxx"
            }
        }
    ]
}

構成はランキングモデルと同様ですが、ResponseFuncName パラメーターを easyrecUserEmbResponseFunc に設定する必要があります。

FAISS オンラインベクターリコール

OnlineVectorRecall コンポーネントは、TorchEasyRec プロセッサで実装されたオンラインベクトルリコールサービスに接続します。OnlineHologresVectorRecall とは異なり、OnlineVectorRecall はオンライン検索のために Hologres アイテムベクトルテーブルに依存しません。代わりに、PAI-EAS サービス内で特徴量エンコーディング、ユーザータワー推論、および FAISS TopK 検索を実行し、リコールされたアイテムのリストを直接返します。

オンラインリクエストのプロセス:

  • PAI-Rec エンジンは、生のユーザーフィーチャーを含むリクエストを送信します。

  • TorchEasyRec プロセッサは、FG モジュールの特徴量エンコーディングを内部で実行します。これはオフラインプロセスと一貫しています。

  • ユーザー タワーは、オンライン推論によってユーザー埋め込みを生成します。

  • ユーザー埋め込みを使用して、FAISS インデックスからトップ K の類似アイテムを取得します。

  • アイテム ID と対応する距離スコアのリストが、ファインランキング用に返されます。

レコメンデーションエンジンの設定ファイルの例:

{
    "RecallConfs": [{
        "Name": "{model_name}",
        "RecallType": "OnlineVectorRecall",
        "RecallCount": 200,
        "RecallAlgo": "{model_name}",
        "VectorAlgoType": "torchrec_vector"
    }],
    "AlgoConfs": [{
        "Name": "{model_name}",
        "Type": "EAS",
        "EasConf": {
            "Processor": "EasyRec",
            "ResponseFuncName": "torchrecEmbeddingItemsResponseFunc",
            "Url": "http://{aliyun_id}.vpc.{region}.pai-eas.aliyuncs.com/api/predict/{model_name}",
            "EndpointType": "DIRECT",
            "Auth": "{eas_token}"
        }
    }]
}

パラメーター

タイプ

必須

説明

Name

文字列

はい

リコールのカスタム名。SceneConfs で参照できます。

RecallType

文字列

はい

リコールのタイプ。値は OnlineVectorRecall である必要があります。

RecallCount

整数

はい

リコールするアイテムの数。

RecallAlgo

文字列

はい

呼び出すオンラインモデルの名前。このモデルを AlgoConfs で設定する必要があります。

VectorAlgoType

文字列

はい

オンラインベクトルリコールのアルゴリズム。値は torchrec_vector である必要があります。

EasConf 構成パラメーター

パラメーター

タイプ

必須

説明

Processor

文字列

はい

EasyRec に設定します。

ResponseFuncName

文字列

はい

torchrecEmbeddingItemsResponseFunc に設定します。この関数は、オンラインサービスから返されるアイテムリストとスコアを解析します。

Url

文字列

はい

EAS のサービスエンドポイント。

EndpointType

文字列

いいえ

アクセスモード。例: DIRECT

Auth

文字列

はい

EAS サービスへのアクセスに使用する認証情報。

  • RecallAlgoAlgoConfs.Name と一致する必要があります。

  • OnlineVectorRecall は、リコールに EasyRec プロセッサ オンラインサービスを使用するため、別途 Hologres アイテム ベクトル テーブルは必要ありません。

  • 現在の参照構成では、VectorAlgoTypetorchrec_vector です。

  • ResponseFuncNametorchrecEmbeddingItemsResponseFunc である必要があります。

  • オンラインサービスは、内部で FG エンコーディング、ユーザー タワー推論、FAISS 検索を実行し、リコール結果を直接返します。

オンラインHologresベクトルリコールとの違い

  • OnlineVectorRecall:ユーザー埋め込みを計算し、内部で FAISS リトリーバルを実行して、アイテムのリストを返します。

  • OnlineHologresVectorRecall:ユーザー埋め込みのみを返し、PAI-Rec が Hologres のアイテムベクターテーブルを使用してリコールを実行できるようにします。

U2I 再現率 (UserCustomRecall)

Hologres

ユーザー ID に基づいてアイテムのリストを取得します。このテーブルは、事前定義されたスキーマを使用します。

U2I テーブル

パラメーター

タイプ

説明

user_id

文字列

ユーザー ID。

item_ids

文字列

アイテム ID のリスト。サポートされている形式: item_id1,item_id2,item_id3.....item_id1:recall_id1,item_id2:recall_id2.....、または item_id1:recall_id1:score1,item_id2:recall_id2:score2.....

設定例:

{
    "RecallConfs": [
        {
            "Name": "user2item_recall",
            "RecallType": "UserCustomRecall",
            "RecallCount": 500,
            "DaoConf": {
                "AdapterType": "hologres",
                "HologresName": "holo_info",
                "HologresTableName": "user_item_table"
            }
        }
    ]
}

パラメーター

タイプ

必須

説明

Name

文字列

はい

リコールのカスタム名。

RecallType

文字列

はい

リコールタイプ。値を UserCustomRecall に設定します。

RecallCount

整数

はい

リコールするアイテム数。

DaoConf

JSON オブジェクト

はい

DAO 設定。

AdapterType

文字列

はい

データソースのタイプ。値を hologres に設定します。

HologresName

文字列

HologresConfs で設定した Hologres データソースのカスタム名。例: holo_info

HologresTableName

文字列

はい

Hologres の U2I テーブルの名前。

PAI-FeatureStore

ユーザー ID に基づいてアイテムのリストを取得します。このテーブルは、事前定義されたスキーマを使用します。

このテーブルのデータは MaxCompute で生成され、PAI-FeatureStore にオフライン特徴量ビューとして登録する必要があります。MaxCompute テーブルでは、次のスキーマを使用する必要があります。

U2I テーブル

パラメーター

タイプ

説明

user_id

文字列

ユーザー ID。

item_ids

文字列

アイテム ID のリスト。サポートされている形式: item_id1,item_id2,item_id3.....item_id1:recall_id1,item_id2:recall_id2.....、または item_id1:recall_id1:score1,item_id2:recall_id2:score2.....

ds

文字列

MaxCompute テーブルのパーティションフィールド。このフィールド名はカスタマイズ可能です。

設定例:

{
    "RecallConfs": [
        {
            "Name": "user2item_recall",
            "RecallType": "UserCustomRecall",
            "RecallCount": 500,
            "DaoConf": {
                "AdapterType": "featurestore",
                "FeatureStoreName": "fs_pairec",
                "FeatureStoreViewName": "u2i_recall"
            }
        }
    ]
}

パラメーター

タイプ

必須

説明

Name

文字列

はい

リコールのカスタム名。

RecallType

文字列

はい

リコールタイプ。値を UserCustomRecall に設定します。

RecallCount

整数

はい

リコールするアイテム数。

DaoConf

JSON オブジェクト

はい

DAO 設定。

AdapterType

文字列

はい

データソースのタイプ。値を featurestore に設定します。

FeatureStoreName

文字列

FeatureStoreConfs で設定した PAI-FeatureStore データソースのカスタム名。例: fs_pairec

FeatureStoreViewName

文字列

はい

U2I テーブルの特徴量ビューの名前。

Tablestore

ユーザー ID に基づいてアイテムのリストを取得します。このテーブルは、事前定義されたスキーマを使用します。

U2I テーブル

パラメーター

タイプ

説明

user_id

文字列

ユーザー ID。

item_ids

文字列

アイテム ID のリスト。サポートされている形式: item_id1,item_id2,item_id3.....item_id1:recall_id1,item_id2:recall_id2.....、または item_id1:recall_id1:score1,item_id2:recall_id2:score2.....

設定例:

{
    "RecallConfs": [
        {
            "Name": "user2item_recall",
            "RecallType": "UserCustomRecall",
            "RecallCount": 500,
            "DaoConf": {
                "AdapterType": "tablestore",
                "TableStoreName": "ots_info",
                "TableStoreTableName": "user_item_table"
            }
        }
    ]
}

パラメーター

タイプ

必須

説明

Name

文字列

はい

リコールのカスタム名。

RecallType

文字列

はい

リコールタイプ。値を UserCustomRecall に設定します。

RecallCount

整数

はい

リコールするアイテム数。

DaoConf

JSON オブジェクト

はい

DAO 設定。

AdapterType

文字列

はい

データソースのタイプ。値を tablestore に設定します。

TableStoreName

文字列

TableStoreConfs で設定した Tablestore データソースのカスタム名。例: ots_info

TableStoreTableName

文字列

はい

Tablestore の U2I テーブルの名前。

Redis

設定例:

{
    "RecallConfs": [
        {
            "Name": "user2item_recall",
            "RecallType": "UserCustomRecall",
            "RecallCount": 500,
            "DaoConf": {
                "AdapterType": "redis",
                "RedisName": "redis_info",
                "RedisPrefix": ""
            }
        }
    ]
}

パラメーター

タイプ

必須

説明

Name

文字列

はい

リコールのカスタム名。

RecallType

文字列

はい

リコールタイプ。値を UserCustomRecall に設定します。

RecallCount

整数

はい

リコールするアイテム数。

DaoConf

JSON オブジェクト

はい

DAO 設定。

AdapterType

文字列

はい

データソースのタイプ。値を redis に設定します。

RedisName

文字列

RedisConfs で設定した Redis データソースのカスタム名。例: redis_info

RedisPrefix

文字列

はい

U2I データキーのプレフィックス。完全なキーは、このプレフィックスとユーザー ID を連結して構築されます。値は、次のいずれかの形式の文字列です: item_id1,item_id2,item_id3.....item_id1:recall_id1,item_id2:recall_id2.....、または item_id1:recall_id1:score1,item_id2:recall_id2:score2.....

グラフリコール

グラフリトリーブは、U2I リトリーブの一種で、GraphCompute グラフデータベースを使用します。

設定例:

{
    "RecallConfs": [
        {
            "Name": "graph_recall",
            "RecallType": "GraphRecall",
            "RecallCount": 500,
            "GraphConf": {
                "GraphName": "graph_test",
                "ItemId": "item_id",
                "QueryString": "g(\"test\").V(\"$1\").hasLabel(\"user\").outE().inV()",
                "Params": [
                    "user.uid"
                ]
            }
        }
    ]
}

GraphConf :

パラメーター

タイプ

必須

説明

Name

文字列

はい

リコールのカスタム名。

RecallType

文字列

はい

リコールのタイプ。値は GraphRecall である必要があります。

RecallCount

整数

はい

リコールするアイテムの数。

GraphName

文字列

はい

GraphConfs データソース設定で定義されたグラフの名前。例: graph_info

ItemId

文字列

はい

グラフクエリ結果内のアイテムのプライマリキー。

QueryString

文字列

はい

グラフリコール用の Gremlin クエリ文字列です。$1 などのプレースホルダーをサポートしており、これらのプレースホルダーには Params パラメーターの値が設定されます。

Params

文字列

はい

QueryString のプレースホルダーを置き換えるための値のソース。サポートされている形式は次のとおりです:

  • user.xxxxxx ユーザー特徴量の値。

  • context.xxx:リクエストコンテキストの xxx 特徴量の値。

  • context.features.xxx:リクエストの features フィールド内の xxx 特徴量の値。

ユーザーグループ ホットリコール (UserGroupHotRecall)

Hologres

ユーザーグループホットリコールテーブルには、事前定義されたスキーマがあります。

group_hot_table

フィールド

タイプ

説明

trigger_id

文字列

複数の特徴量の値から構成される ID。

item_ids

文字列

アイテム ID のリスト。サポートされている形式: item_id1,item_id2,item_id3...item_id1:recall_id1,item_id2:recall_id2...、または item_id1:recall_id1:score1,item_id2:recall_id2:score2...

trigger_id は、地域や OS などのユーザー特徴量とコンテキスト情報を組み合わせたものです。

  • 特徴量の値をアンダースコア (_) で順序通りに連結して trigger_id を作成します。

  • 特徴量の値が空の場合は、文字列 "NULL" を使用します。

  • Boundaries パラメーターを含む特徴量は、左開右閉区間に離散化する必要があります。例えば、年齢の境界値が [20, 30, 40, 50] の場合、結果のトリガー値は <=2020-3030-4040-50、および >50 となります。

ユーザーの年齢が 23 の場合、"20-30" に対応します。

ユーザーの年齢が空の場合、"NULL" に対応します。

ユーザーの年齢が 60 の場合、">50" に対応します。

ユーザーの年齢が 19 の場合、"<=20" に対応します。

Hologres テーブルの例:

この例では、性別、年齢、OS の 3 つの特徴量を使用します。

trigger_id

item_ids

Male_<=20_IOS

item_id1:recall_id1:score1,item_id2:recall_id2:score2...

Female_20-30_Android

item_id4:recall_id4:score4,item_id5:recall_id5:score5...

...

...

設定例:

{
    "RecallConfs": [
        {
            "Name": "user_group_hot_recall",
            "RecallType": "UserGroupHotRecall",
            "RecallCount": 500,
            "Triggers": [
                {
                    "TriggerKey": "gender"
                },
                {
                    "TriggerKey": "age",
                    "Boundaries": [20,30,40,50]
                },
                {
                    "TriggerKey": "os"
                }
            ],
            "DaoConf": {
                "AdapterType": "hologres",
                "HologresName": "holo_info",
                "HologresTableName": "group_hot_table"
            }
        }
    ]
}

パラメーター

タイプ

必須

説明

Name

文字列

はい

リコール設定のカスタム名。

RecallType

文字列

はい

リコールのタイプ。 UserGroupHotRecall に設定します。

RecallCount

整数

はい

リコールするアイテムの数。

Triggers

JSON 配列

はい

trigger_id の構築に使用する特徴量を定義します。

  • TriggerKey

文字列

はい

ユーザー特徴量からトリガー値を取得するキー。

  • Boundaries

JSON 整数配列

いいえ

数値特徴量を離散化するための境界値の配列。

DaoConf

JSON オブジェクト

はい

データアクセスオブジェクト (DAO) の定義。

  • AdapterType

文字列

はい

データソースのタイプ。 hologres に設定します。

  • HologresName

文字列

はい

HologresConfs で設定された Hologres データソースのカスタム名。例: holo_info

  • HologresTableName

文字列

はい

Hologres データテーブルの名前。

PAI-FeatureStore

ユーザーグループホットリコールテーブルには、事前定義されたスキーマがあります。

このテーブルのデータは MaxCompute で準備します。テーブルを PAI-FeatureStore にオフライン特徴量ビューとして登録する必要があります。MaxCompute テーブルには次のスキーマが必要です:

group_hot_table

フィールド

タイプ

説明

trigger_id

文字列

複数の特徴量の値から構成される ID。

item_ids

文字列

アイテム ID のリスト。サポートされている形式: item_id1,item_id2,item_id3...item_id1:recall_id1,item_id2:recall_id2...、または item_id1:recall_id1:score1,item_id2:recall_id2:score2...

ds

文字列

MaxCompute テーブルのパーティションフィールド。フィールド名はカスタマイズできます。

trigger_id は、地域や OS などのユーザー特徴量とコンテキスト情報を組み合わせたものです。

  • 特徴量の値をアンダースコア (_) で順序通りに連結して trigger_id を作成します。

  • 特徴量の値が空の場合は、文字列 "NULL" を使用します。

  • Boundaries パラメーターを含む特徴量は、左開右閉区間に離散化する必要があります。例えば、年齢の境界値が [20, 30, 40, 50] の場合、結果のトリガー値は <=2020-3030-4040-50、および >50 となります。

ユーザーの年齢が 23 の場合、"20-30" に対応します。

ユーザーの年齢が空の場合、"NULL" に対応します。

ユーザーの年齢が 60 の場合、">50" に対応します。

ユーザーの年齢が 19 の場合、"<=20" に対応します。

MaxCompute テーブルの例:

この例では、性別、年齢、OS の 3 つの特徴量を使用します。

trigger_id

item_ids

Male_<=20_IOS

item_id1:recall_id1:score1,item_id2:recall_id2:score2...

Female_20-30_Android

item_id4:recall_id4:score4,item_id5:recall_id5:score5...

...

...

この設定では、トリガー特徴量エンティティを使用します。

設定例:

{
    "RecallConfs": [
        {
            "Name": "user_group_hot_recall",
            "RecallType": "UserGroupHotRecall",
            "RecallCount": 500,
            "Triggers": [
                {
                    "TriggerKey": "gender"
                },
                {
                    "TriggerKey": "age",
                    "Boundaries": [20,30,40,50]
                },
                {
                    "TriggerKey": "os"
                }
            ],
            "DaoConf": {
                "AdapterType": "featurestore",
                "FeatureStoreName": "fs_pairec",
                "FeatureStoreViewName": "group_hot_recall"
            }
        }
    ]
}

パラメーター

タイプ

必須

説明

Name

文字列

はい

リコール設定のカスタム名。

RecallType

文字列

はい

リコールのタイプ。 UserGroupHotRecall に設定します。

RecallCount

整数

はい

リコールするアイテムの数。

Triggers

JSON 配列

はい

trigger_id の構築に使用する特徴量を定義します。

  • TriggerKey

文字列

はい

ユーザー特徴量からトリガー値を取得するキー。

  • Boundaries

JSON 整数配列

いいえ

数値特徴量を離散化するための境界値の配列。

DaoConf

JSON オブジェクト

はい

データアクセスオブジェクト (DAO) の定義。

  • AdapterType

文字列

はい

データソースのタイプ。 featurestore に設定します。

  • FeatureStoreName

文字列

はい

FeatureStoreConfs で設定された PAI-FeatureStore データソースのカスタム名。例: fs_pairec

  • FeatureStoreViewName

文字列

はい

ホットリコールテーブルの特徴量ビューの名前。

重要

グルーピングのホットリコールカウントが継続的に 0 の場合は、エンジン設定におけるトリガーの連結順序が、リコールテーブルにおける順序と一致していることを確認してください。

グローバルホットリコール (UserGlobalHotRecall)

Hologres

グローバルホットリコールのテーブルスキーマはグループリコールのものと同じですが、グローバルホットリコールテーブルにはレコードが 1 つのみ含まれ、その trigger_id は -1 です。

設定例:

{
    "RecallConfs": [
        {
            "Name": "UserGlobalHotRecall",
            "RecallType": "UserGlobalHotRecall",
            "RecallCount": 500,
            "DaoConf": {
                "AdapterType": "hologres",
                "HologresName": "holo_info",
                "HologresTableName": "global_hotness_table"
            }
        }
    ]
}

PAI-FeatureStore

グローバルホットリコールのテーブルスキーマはグループリコールのものと同じですが、グローバルホットリコールテーブルにはレコードが 1 つのみ含まれ、その trigger_id は -1 です。

テーブルデータは MaxCompute で生成されます。オフライン FeatureView を使用して、テーブルを特徴量ストアに登録する必要があります。MaxCompute テーブルのスキーマは次のとおりです:

フィールド

タイプ

説明

trigger_id

文字列

テーブルには 1 行のみが含まれており、このフィールドの値は -1 です。

item_ids

文字列

アイテム ID のリスト。サポートされている形式: item_id1,item_id2,item_id3...item_id1:recall_id1,item_id2:recall_id2...、または item_id1:recall_id1:score1,item_id2:recall_id2:score2...

ds

文字列

MaxCompute テーブルのパーティションフィールド。フィールド名はカスタマイズ可能です。

設定例:

{
    "RecallConfs": [
        {
            "Name": "UserGlobalHotRecall",
            "RecallType": "UserGlobalHotRecall",
            "RecallCount": 500,
            "DaoConf": {
                "AdapterType": "featurestore",
                "FeatureStoreName": "fs_pairec",
                "FeatureStoreViewName": "global_hot_recall"
            }
        }
    ]
}

Tablestore

グローバルホットリコールのテーブルスキーマはグループリコールのものと同じですが、グローバルホットリコールテーブルにはレコードが 1 つのみ含まれ、その trigger_id は -1 です。

設定例:

{
    "RecallConfs": [
        {
            "Name": "UserGlobalHotRecall",
            "RecallType": "UserGlobalHotRecall",
            "RecallCount": 500,
            "DaoConf": {
                "AdapterType": "tablestore",
                "TableStoreName": "ots_info",
                "TableStoreTableName": "global_hotness_recall"
            }
        }
    ]
}

パラメーター

タイプ

必須

説明

Name

文字列

はい

リコール設定のカスタム名。

RecallType

文字列

はい

リコールのタイプ。UserGlobalHotRecall である必要があります。

RecallCount

整数

はい

リコールするアイテムの数。

DaoConf

JSON オブジェクト

はい

データアクセスオブジェクト (DAO) 設定を指定します。

AdapterType

文字列

はい

データソースタイプ。tablestore である必要があります。

TableStoreName

文字列

はい

TableStoreConfs で定義された Tablestore インスタンスの名前。例: tablestore_info

TableStoreTableName

文字列

はい

Tablestore インスタンス内のデータテーブルの名前。

コールドスタート再現率

アイテムテーブルを条件または時間に基づいてフィルタリングして、指定されたルールを満たす候補セットをクエリします。

Hologres

{
    "RecallConfs": [
        {
            "Name": "AllLiveItemRecall",
            "RecallType": "ColdStartRecall",
            "RecallCount": 3000,
            "ColdStartDaoConf": {
                "AdapterType": "hologres",
                "HologresName": "holo_info",
                "HologresTableName": "item_status_table",
                "WhereClause": "islist_status=1",
                "PrimaryKey": "\"item_id\"",
                "TimeInterval": 0
            }
        }
    ]
}

ColdStartDaoConf:

パラメーター

タイプ

必須

説明

Name

string

はい

リコールのカスタム名

RecallType

string

はい

リコールタイプです。値は ColdStartRecall である必要があります。

RecallCount

int

はい

リコールするアイテムの数です。

ColdStartDaoConf

json object

はい

コールドスタートデータの設定です。

AdapterType

string

はい

Hologres などのデータソースのタイプです。

HologresName

string

はい

HologresConfs で設定された Hologres インスタンスのカスタム名です。例:holo_info。

HologresTableName

string

はい

Hologres のコールドスタートリコールテーブルの名前です。

WhereClause

string

いいえ

フィルター条件です。時間でフィルタリングするには、${time} プレースホルダーを使用します。例えば、作成時間に基づいてフィルタリングするには、create_time > ${time} を使用できます。

PrimaryKey

string

はい

テーブルのプライマリキーです。

TimeInterval

int

いいえ

${time} 変数の計算に使用するタイムオフセットです。

${time} 変数は次のように計算されます:現在の時刻 - TimeInterval

API リクエストの特徴量やユーザー特徴量に基づいて候補セットをフィルタリングするために WhereClause を使用できます。例えば、言語とユーザーの都市で候補セットをフィルタリングするには、WhereClause を次のように設定できます:

"language=${context.features.language} AND city=${user.city}"

この例では、language は API リクエストの特徴量フィールドから取得され、city はユーザー特徴量です。

パラメーターのソースは次のフォーマットに従います:

  • user.xxx:xxx という名前のユーザー特徴量の値を取得します。

  • context.features.xxx:API リクエストの特徴量フィールドから xxx という名前の特徴量の値を取得します。

PAI-FeatureStore

警告

この機能は、オンラインデータソースとして FeatureDB を使用する FeatureView のみをサポートします。

この機能は、アイテム ID をプライマリキーとして使用する FeatureView からアイテム ID のバッチをランダムにリコールします。

{
    "RecallConfs": [
        {
            "Name": "item_cold_start_recall",
            "RecallType": "ColdStartRecall",
            "RecallCount": 200,
            "ColdStartDaoConf": {
                "AdapterType": "featurestore",
                "FeatureStoreName": "fs_pairec",
                "FeatureStoreViewName": "rec_sln_demo_item_table_preprocess_all_feature_v1"
            },
            "FilterParams": [
            ]
        }
    ]
}

パラメーター

タイプ

必須

説明

Name

string

はい

リコールのカスタム名

RecallType

string

はい

リコールタイプです。値は ColdStartRecall である必要があります。

RecallCount

int

はい

リコールするアイテムの数です。

ColdStartDaoConf

json object

はい

コールドスタートデータの設定です。

AdapterType

string

はい

データソースのタイプです。値は featurestore である必要があります。

FeatureStoreName

string

はい

FeatureStoreConfs で設定された PAI-FeatureStore インスタンスのカスタム名です。

FeatureStoreViewName

string

はい

コールドスタートリコール用の FeatureView の名前です。

FilterParams

json object array

いいえ

コールドスタートリコール用のフィルター条件です。

FeatureStoreViewName で指定された FeatureView は、オフラインまたはリアルタイムの FeatureView のいずれかです。リアルタイムの FeatureView を使用する場合、この設定により、新しく追加されたアイテム ID のリアルタイムリコールも有効になります。

FilterParams が空の場合、フィルター条件は適用されず、アイテム ID はランダムにリコールされます。特定のアイテム ID をフィルターするには、FilterParams を使用します。

{
            "Name": "item_cold_start_recall",
            "RecallType": "ColdStartRecall",
            "RecallCount": 200,
            "ColdStartDaoConf": {
                "AdapterType": "featurestore",
                "FeatureStoreName": "fs_pairec",
                "FeatureStoreViewName": "rec_sln_demo_item_table_preprocess_all_feature_v1"
            },
            "FilterParams": [
                {
                    "Name": "click_count",
                    "Type": "int",
                    "Operator": "greater",
                    "Value": "15"
                },
                {
                    "Name": "category",
                    "Type": "string",
                    "Operator": "in",
                    "Value": "user.category"
                }
            ]
        }

上記の例では、Value フィールドの user. プレフィックスは、値をユーザー特徴量から取得することを示します。例えば、user.category はユーザーの category 特徴量から値を取得します。

Operator パラメーターの使用方法の詳細については、「付録」をご参照ください。

コンテキスト アイテム リコール

また、item_list パラメーターを使用して、カスタムでリコールされたアイテムをエンジン API に渡すこともできます。エンジン API の詳細については、API テストをご参照ください。

エンジンの組み込みリコール名 ContextItemRecall を、次のように RecallNames で直接使用します。

{
    "SceneConfs": {
        "${scene_name}": {
            "default": {
                "RecallNames": [
                    "ContextItemRecall"
                ]
            }
        }
    }
}

I2I リコール (ItemCollaborativeFilterRecall)

Hologres

I2I リコールは類似性レコメンデーションに使用されます。類似アイテムを取得するには、ソースアイテムの item_id を渡す必要があります。API 定義については、「APIテスト」をご参照ください。

設定例:

{
    "RecallConfs": [
        {
            "Name": "I2IRecall",
            "RecallType": "ItemCollaborativeFilterRecall",
            "RecallCount": 500,
            "ItemCollaborativeDaoConf": {
                "AdapterType": "hologres",
                "HologresName": "holo_info",
                "Item2ItemTable": "item_collaborative_list"
            }
        }
    ]
}

次の表で、設定パラメーターを説明します。

パラメーター

タイプ

必須

説明

Name

文字列

はい

リコールのカスタム名。

RecallType

文字列

はい

リコールのタイプ。この値は ItemCollaborativeFilterRecall に設定する必要があります。

RecallCount

整数

はい

取得する類似アイテムの数。

ItemCollaborativeDaoConf

JSON オブジェクト

はい

I2I データテーブルの設定。

  • AdapterType

文字列

はい

データソースのタイプ。hologres に設定する必要があります。

  • HologresName

文字列

はい

HologresConfs で設定された Hologres インスタンスのカスタム名。例: holo_info

  • Item2ItemTable

文字列

はい

I2I データテーブルの名前。

Item2ItemTable テーブルは次のように定義されます。

パラメーター

タイプ

説明

item_id

文字列

ソースアイテム ID。

item_ids

文字列

類似アイテム ID のリストを含む文字列。サポートされているフォーマット: item_id1,item_id2,item_id3...item_id1:recall_id1,item_id2:recall_id2...、または item_id1:recall_id1:score1,item_id2:recall_id2:score2...

PAI-FeatureStore

I2I リコールは類似性レコメンデーションに使用されます。類似アイテムを取得するには、ソースアイテムの item_id を渡す必要があります。API 定義については、「APIテスト」をご参照ください。

FeatureStoreViewName で指定されたデータテーブルビューは、次のように定義されます。

パラメーター

タイプ

説明

item_id

文字列

ソースアイテム ID。

item_ids

文字列

類似アイテム ID のリストを含む文字列。サポートされているフォーマット: item_id1,item_id2,item_id3...item_id1:recall_id1,item_id2:recall_id2...、または item_id1:recall_id1:score1,item_id2:recall_id2:score2...

設定例:

{
    "RecallConfs": [
        {
            "Name": "I2IRecall",
            "RecallType": "ItemCollaborativeFilterRecall",
            "RecallCount": 200,
            "ItemCollaborativeDaoConf": {
                "AdapterType": "featurestore",
                "FeatureStoreName": "fs_pairec",
                "FeatureStoreViewName": "i2i_recall"
            }
        }
    ]
}

次の表で、設定パラメーターを説明します。

パラメーター

タイプ

必須

説明

Name

文字列

はい

リコールのカスタム名。

RecallType

文字列

はい

リコールのタイプ。この値は ItemCollaborativeFilterRecall に設定する必要があります。

RecallCount

整数

はい

取得する類似アイテムの数。

ItemCollaborativeDaoConf

JSON オブジェクト

はい

I2I データテーブルの設定。

  • AdapterType

文字列

はい

データソースのタイプ。featurestore に設定する必要があります。

  • FeatureStoreName

文字列

はい

FeatureStoreConfs で設定された PAI-FeatureStore インスタンスのカスタム名。例: fs_pairec

  • FeatureStoreViewName

文字列

はい

I2I のデータテーブルビューの名前。

EnableMultipleItemId

ブール値

いいえ

item_id パラメーターに複数の値が含まれるかどうかを指定します。

MultipleItemIdDelimiter

文字列

いいえ

EnableMultipleItemIdtrue の場合の、複数のアイテム ID のデリミター。デフォルト値は , です。

API に渡される item_id が複数値フォーマットで、, で区切られている場合は、次の設定をご参照ください。

{
    "RecallConfs": [
        {
            "Name": "I2IRecall",
            "RecallType": "ItemCollaborativeFilterRecall",
            "RecallCount": 200,
            "ItemCollaborativeDaoConf": {
                "AdapterType": "featurestore",
                "FeatureStoreName": "fs_pairec",
                "FeatureStoreViewName": "i2i_recall"
            },
            "EnableMultipleItemId": true,
            "MultipleItemIdDelimiter": ","
        }
    ]
}
説明

Redis またはローカルキャッシュの場合、キャッシュキーは item_id です。

I2I リコールの場合は、API リクエストで item_id フィールドを設定してください。

OpenSearch の再現率

OpenSearch service を呼び出してリコールリストを取得します。詳細については、「Industry Algorithm Edition」をご参照ください。

設定例:

{
    "RecallConfs": [
        {
            "Name": "OpenSearchRecall",
            "RecallType": "OpenSearchRecall",
            "OpenSearchConf": {
                "OpenSearchName": "OpenSearch",
                "AppName": "test_search",
                "ItemId": "log_id",
                "RequestParams": {
                    "query": "query=result:'$1'&&config=start:0,hit:10,format:fulljson&&sort=-log_id&&filter=request_time>1703952000000",
                    "format": "fulljson",
                    "second_rank_type": "expression",
                    "fetch_fields": "log_id;result_data"
                },
                "Params": [
                    "context.features.topic"
                ]
            }
        }
    ]
}

上記の例は、result インデックスに対するクエリであり、クエリ用語は API リクエストのコンテキストにある featurestopic フィールドから取得されます。

OpenSearchConf の設定フィールド:

パラメーター

タイプ

必須

説明

Name

文字列

はい

リコールのカスタム名です。

RecallType

文字列

はい

リコールタイプです。値は OpenSearchRecall にする必要があります。

RecallCount

整数

はい

リコールするアイテムの数です。

OpenSearchName

文字列

はい

OpenSearchConfs で指定された OpenSearch インスタンスのカスタム名です。

AppName

文字列

はい

OpenSearch アプリケーションの名前です。

ItemId

文字列

はい

OpenSearch の結果におけるアイテムのプライマリキーフィールドです。

RequestParams

map[string]interface{}

はい

OpenSearch のクエリ文です。$1 などのプレースホルダーには、Params の値が設定されます。構文の詳細については、「デベロッパーガイド」をご参照ください。

Params

文字列の配列

はい

クエリプレースホルダーの値のソースです。次のフォーマットがサポートされています:

  • user.xxx$N などのプレースホルダーに、ユーザー特徴量の xxx の値を設定します。

  • context.xxx$N などのプレースホルダーに、API リクエストの xxx 特徴量の値を設定します。

  • context.features.xxx:プレースホルダーに、API リクエストの features フィールドにある xxx 特徴量の値を設定します。

使用方法

設定概要の SceneConfs で再現率設定を設定できます。 SceneConfsMap[string]object で、シーンごとに異なる再現率設定を適用できます。設定は次のとおりです:

"SceneConfs": {
  "${scene_name}": {
    "default": {
      "RecallNames": [
        "collaborative_filter"
      ]
    }
  }
}
  • ${scene_name} を実際のシーン名に置き換えてください。

  • default はディレクトリです。デフォルトのままでかまいません。

  • RecallNames は、リコール設定からカスタムリコール名を指定する []文字列 です。