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

Artificial Intelligence Recommendation:取得設定

最終更新日:Nov 01, 2025

取得設定は、設定概要の RecallConfs に対応します。

設定方法

PAI-Rec DPI エンジンには、協調フィルタリング (UserCollaborativeFilterRecall)、ベクトル取得 (HologresVectorRecall)、U2I 取得 (UserCustomRecall) など、いくつかの組み込み取得テンプレートがあります。また、Hologres、PAI-FeatureStore、TableStore (OTS) など、複数のデータソースもサポートしています。

共通の取得設定

各取得設定では、一連の共通パラメーターを使用します。このセクションでは、これらの共通パラメーターについて説明します。これらは、個々の取得メソッドのセクションでは繰り返されません。

設定例:

{
    "RecallConfs": [
        {
            "Name": "collaborative_filter", // 協調フィルタリング
            "RecallType": "UserCollaborativeFilterRecall", // ユーザー協調フィルタリングリコール
            "RecallCount": 1000, // リコール数
            "RecallAlgo": "", // リコールアルゴリズム
            "ItemType": "", // アイテムタイプ
            "CacheAdapter": "", // キャッシュアダプター
            "CacheConfig": "", // キャッシュ設定
            "CachePrefix": "", // キャッシュプレフィックス
            "CacheTime": 0 // キャッシュ時間
        }
    ]
}

フィールド

タイプ

必須

説明

Name

string

はい

取得メソッドのカスタム名。SceneConfs でこの名前を参照できます。

RecallType

string

はい

DPI エンジンの組み込み取得タイプ。これは列挙値です。次の値がサポートされています:

  • UserCollaborativeFilterRecall

  • UserTopicRecall

  • VectorRecall

  • UserCustomRecall

  • HologresVectorRecall

  • ItemCollaborativeFilterRecall

  • UserGroupHotRecall

  • UserGlobalHotRecall

  • I2IVectorRecall

  • ColdStartRecall

  • MilvusVectorRecall

  • RealTimeU2IRecall

  • OnlineHologresVectorRecall

  • GraphRecall

  • MockRecall

RecallCount

string

はい

取得するアイテムの数。

RecallAlgo

string

いいえ

呼び出すベクトルモデルの名前。最初に AlgoConfs でモデルを設定する必要があります。このパラメーターは、リアルタイムのベクトル取得にのみ使用されます。

ItemType

string

いいえ

推奨するアイテムのタイプ。

CacheAdapter

string

いいえ

取得結果をキャッシュします。列挙値:

  • Redis

  • ローカルキャッシュ。

CacheConfig

string

いいえ

キャッシュの設定。

Redis を使用してキャッシュする場合、設定例は "{\"host\":\"xxx.redis.rds.aliyuncs.com\", \"port\":6379,\"maxIdle\":10, \"password\":\"xxxx\"}" です。

localCache を使用する場合、設定例は "{\"defaultExpiration\":600, \"cleanupInterval\":600}" です。

CachePrefix

string

いいえ

現在の取得結果のキーにプレフィックスを追加します。

このパラメーターは、キャッシュを有効にする場合に必須です。これにより、異なる取得メソッド間のキャッシュの競合が防止されます。たとえば、

"group_hot_" は、グループベースの人気アイテム取得における特定のユーザーのキャッシュ結果を示します。

CacheTime

string

いいえ

キャッシュ期間 (秒単位)。デフォルト値は 1800 です。

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

Hologres

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

i2i テーブル (u2i2i) から類似アイテムを取得するだけでなく、i2x テーブルと x2i テーブル (u2i2x2i) から間接的に取得することもできます。このメソッドでは、x はカテゴリ、ブランド、都市などの属性を表します。プロセスはまず、カテゴリフィールドなどのアイテムの x 属性を取得します。次に、対応する x 値を持つ人気アイテムを x2i テーブルから取得し、推奨として使用します。

u2i テーブル

テーブルフィールド

タイプ

説明

user_id

string

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

item_ids

string

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

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

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

テーブルフィールド

タイプ

説明

item_id

string

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

similar_item_ids

string

item_id に類似したアイテムのリスト。サポートされているフォーマット: item_id1:score1,item_id2:score2,item_id3:score3...

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

item_id

string

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

x

string

アイテムの属性。列名をカスタマイズし、DPI エンジン設定で実際の名前を指定できます。

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

x

string

アイテムの属性。列名をカスタマイズし、DPI エンジン設定で実際の名前を指定できます。

item_id

string

アイテム 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", // Hologres名
                "User2ItemTable": "u2i_table", // U2Iテーブル
                "Item2XTable": "i2x_table", // I2Xテーブル
                "X2ItemTable": "x2i_table", // X2Iテーブル
                "XKey": "category", // Xキー
                "XDelimiter": ",", // Xデリミタ
                "Normalization": "on" // 正規化
            }
        }
    ]
}

UserCollaborativeDaoConfig:

フィールド

タイプ

必須

説明

AdapterType

string

はい

静的フィールド。値を hologres に設定します。

HologresName

string

はい

データソース設定 (HologresConfs) で設定されている Hologres データソースのカスタム名。例: holo_info。

User2ItemTable

string

はい

u2i テーブル。

Item2ItemTable

string

いいえ

i2i テーブル。このパラメーターは u2i2i メソッドで必須です。

Item2XTable

string

いいえ

i2x テーブル。このパラメーターは u2i2x2i メソッドで必須です。

X2ItemTable

string

いいえ

x2i テーブル。このパラメーターは u2i2x2i メソッドで必須です。

XKey

string

いいえ

x キー。値は i2x および x2i テーブルの x 列の名前です。このパラメーターは u2i2x2i メソッドで必須です。

XDelimiter

string

いいえ

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

Normalization

string

いいえ

列挙値。有効な値: on、off。取得したアイテムを正規化するかどうかを指定します。デフォルト値は「on」です。

PAI-FeatureStore

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

両方のテーブルのデータは MaxCompute で生成されます。オフライン機能ビューを使用して、データを Feature Store に登録する必要があります。MaxCompute テーブルのスキーマは次のとおりです:

u2i テーブル

テーブルフィールド

タイプ

説明

user_id

string

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

item_ids

string

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

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

ds

string

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

次の図は、テーブルを Feature Store に登録する方法を示しています:

i2i テーブル

テーブルフィールド

タイプ

説明

item_id

string

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

similar_item_ids

string

item_id に類似したアイテムのリスト。サポートされているフォーマット: item_id1:score1,item_id2:score2,item_id3:score3...

dt

string

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

string

はい

静的フィールド: featurestore

FeatureStoreName

string

はい

データソース設定 (FeatureStoreConfs) で設定されている Feature Store のカスタム名。例: fs_pairec。

User2ItemFeatureViewName

string

はい

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

Item2ItemFeatureViewName

string

はい

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

Normalization

string

いいえ

列挙値。有効な値: on、off。取得したアイテムを正規化するかどうかを指定します。デフォルト値は「on」です。

TableStore (OTS)

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

u2i テーブル

テーブルフィールド

タイプ

説明

user_id

string

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

item_ids

string

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

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

i2i テーブル

テーブルフィールド

タイプ

説明

item_id

string

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

similar_item_ids

string

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", // TableStore名
                "User2ItemTable": "u2i_table", // U2Iテーブル
                "Item2ItemTable": "i2i_table", // I2Iテーブル
                "Normalization": "on" // 正規化
            }
        }
    ]
}

フィールド

タイプ

必須

説明

AdapterType

string

はい

静的フィールド。値を tablestore に設定します。

TableStoreName

string

はい

データソース設定 (TableStoreConfs) で設定されている Table Store データソースのカスタム名。例: tablestore_info。

User2ItemTable

string

はい

u2i テーブル。

Item2ItemTable

string

はい

i2i テーブル。

Normalization

string

いいえ

列挙値。有効な値: on、off。取得したアイテムを正規化するかどうかを指定します。デフォルト値は「on」です。

Redis

Redis の collaborative_filter プロセスは独特で、2 つのステップを含みます:

  • RedisPrefix と UID を連結してキーを構築し、U2I リストをクエリします。キーは文字列を返します。サポートされているフォーマットは item_id1,item_id2,item_id3... または item_id1:score1,item_id2:score2,item_id3:score3... です。

  • I2I リストをクエリします。前のステップで取得した item_ids に基づいてクエリするには、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", // Redis名
                "RedisPrefix": "cr_", // Redisプレフィックス
                "Normalization": "on" // 正規化
            }
        }
    ]
}

フィールド

タイプ

必須

説明

AdapterType

string

はい

静的フィールド。値を redis に設定します。

RedisName

string

はい

データソース設定 (RedisConfs) で設定されている Redis データソースのカスタム名。例: redis_info。

RedisPrefix

string

いいえ

U2I データ用のプレフィックス。キーは RedisPrefix と UID を連結して構築されます。

説明

データキャッシュには Redis のみがサポートされています。

リアルタイム U2I2I(RealTimeU2IRecall)

Hologres

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

ユーザーの履歴動作テーブルはリアルタイムログに基づいてリアルタイムで更新されるため、リアルタイムの取得が可能です。

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

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

フィールド

タイプ

説明

user_id

string

ユーザー ID。

item_id

string

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

event

string

イベント名。

play_time

float

ビデオ視聴などのイベントの期間。0 に設定することはできません。

timestamp

int

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

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

テーブルフィールド

タイプ

説明

item_id

string

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

similar_item_ids

string

item_id に類似したアイテムのリスト。サポートされているフォーマット: item_id1:score1,item_id2:score2,item_id3:score3...

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

item_id

string

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

x

string

アイテムの属性。列名をカスタマイズし、DPI エンジン設定で実際の名前を指定できます。

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

x

string

アイテムの属性。列名をカスタマイズし、DPI エンジン設定で実際の名前を指定できます。

item_id

string

アイテム 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('table_name', '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 'UNIX タイムスタンプ (秒単位)';
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

string

はい

静的フィールド。値を hologres に設定します。

HologresName

string

はい

データソース設定 (HologresConfs) で設定されている Hologres データソースのカスタム名。例: holo_info。

HologresTableName

string

はい

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

WhereClause

string

いいえ

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

Limit

int

いいえ

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

EventPlayTime

string

いいえ

再生時間に基づいてイベントをフィルターします。各イベントをフィルターできます。たとえば、e_sv_func_svplayback:5000 は、e_sv_func_svplayback イベントの play_time 値が 5000 より大きい必要があることを意味します。条件を満たさないレコードは除外されます。セミコロン (;) で区切って複数のイベントを設定できます。

EventWeight

string

いいえ

イベントの重み。各イベントの重みを定義できます。設定しない場合、デフォルト値は 1 です。

WeightExpression

string

いいえ

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

WeightMode

string

いいえ

トリガーの重みを計算するメソッド。有効な値: sum、max。デフォルト値は sum です。

NoUsePlayTimeField

bool

いいえ

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

Item2ItemTable

string

いいえ

Hologres の i2i テーブルの名前。このパラメーターは u2i2i メソッドで必須です。

SimilarItemIdField

string

いいえ

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

Item2XTable

string

いいえ

i2x テーブルの名前。このパラメーターは u2i2x2i メソッドで必須です。

X2ItemTable

string

いいえ

x2i テーブルの名前。このパラメーターは u2i2x2i メソッドで必須です。

XKey

string

いいえ

x キー。値は i2x および x2i テーブルの x 列の名前です。このパラメーターは u2i2x2i メソッドで必須です。

XDelimiter

string

いいえ

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

PAI-FeatureStore

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

ユーザーの履歴動作テーブルはリアルタイムログに基づいてリアルタイムで更新されるため、リアルタイムの取得が可能です。

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

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

フィールド

タイプ

説明

user_id

string

ユーザー ID。

item_id

string

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

event

string

イベント名。

playtime

float

ビデオ視聴などのイベントの期間。0 に設定することはできません。

event_unix_time

int

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

i2i テーブル

テーブルフィールド

タイプ

説明

item_id

string

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

similar_item_ids

string

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

string

はい

静的フィールド: featurestore

  • FeatureStoreName

string

はい

データソース設定 (FeatureStoreConfs) で設定されている Feature Store のカスタム名。例: fs_pairec。

  • FeatureStoreViewName

string

はい

Feature Store のユーザー履歴動作シーケンスビューの名前。

  • TriggerCount

int

はい

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

  • EventPlayTime

string

いいえ

再生時間に基づいてイベントをフィルターします。各イベントをフィルターできます。たとえば、e_sv_func_svplayback:5000 は、e_sv_func_svplayback イベントの play_time 値が 5000 より大きい必要があることを意味します。条件を満たさないレコードは除外されます。セミコロン (;) で区切って複数のイベントを設定できます。

  • EventWeight

string

はい

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

  • WeightExpression

string

はい

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

  • WeightMode

string

いいえ

トリガーの重みを計算するメソッド。有効な値: sum、max。デフォルト値は sum です。

  • NoUsePlayTimeField

bool

いいえ

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

  • ItemIdFieldName

string

いいえ

ユーザー動作シーケンスの item_id フィールドの名前。デフォルト値は item_id です。

  • EventFieldName

string

いいえ

ユーザー動作シーケンスの event フィールドの名前。デフォルト値は event です。

  • PlayTimeFieldName

string

いいえ

ユーザー動作シーケンスの再生時間フィールドの名前。デフォルト値は play_time です。

  • TimestampFieldName

string

いいえ

ユーザー動作シーケンスのタイムスタンプフィールドの名前。デフォルト値は timestamp です。

Item2ItemFeatureViewName

string

いいえ

Feature Store の i2i テーブルビューの名前。このパラメーターは u2i2i メソッドで必須です。

SimilarItemIdField

string

いいえ

Feature Store の i2i テーブルのフィールド名。デフォルト値は similar_item_ids です。

MergeMode

string

いいえ

triggerId によって取得されたアイテムをマージする方法を制御します。デフォルトでは、取得されたアイテムはマージ、ソート、重複排除されます。オプション値: snake。この値は、triggerId によって取得されたアイテムリストをラウンドロビン方式でマージします。

I2ICacheSize

int

いいえ

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

I2ICacheTime

int

いいえ

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

ベクトル取得 (HologresVectorRecall)

現在、ベクトル取得はデータソースとして Hologres のみをサポートしています。すべてのベクトルデータは Hologres テーブルに保存されます。

設定例:

{
    "RecallConfs": [
        {
            "Name": "vector_recall", // ベクトルリコール
            "RecallType": "HologresVectorRecall", // Hologresベクトルリコール
            "RecallCount": 100, // リコール数
            "VectorDaoConf": {
                "AdapterType": "hologres", // アダプタータイプ
                "HologresName": "holo_info", // Hologres名
                "HologresTableName": "user_embedding_table", // ユーザー埋め込みテーブル
                "KeyField": "user_id", // キーフィールド
                "EmbeddingField": "emb" // 埋め込みフィールド
            },
            "HologresVectorConf": {
                "VectorTable": "item_embedding_table", // アイテム埋め込みテーブル
                "VectorEmbeddingField": "emb", // ベクトル埋め込みフィールド
                "VectorKeyField": "item_id" // ベクトルキーフィールド
            }
        }
    ]
}

VectorDaoConf:

フィールド

タイプ

必須

説明

AdapterType

string

はい

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

HologresName

string

はい

データソース設定 (HologresConfs) で設定されている Hologres データソースのカスタム名。例: holo_info。

HologresTableName

string

はい

Hologres 内の対応するベクトルテーブルの名前。

KeyField

string

はい

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

EmbeddingField

string

はい

ベクトルを保存するベクトルテーブルのフィールド。

HologresVectorConf:

フィールド

タイプ

必須

説明

VectorTable

string

はい

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

VectorEmbeddingField

string

はい

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

VectorKeyField

string

はい

ベクトルを保存するアイテムベクトルテーブルのフィールド。

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;

リアルタイムベクトル取得 (OnlineHologresVectorRecall)

リアルタイムベクトル取得の実装は、ベクトル取得の実装と似ており、これも Hologres テーブルデータに基づいています。違いは、ユーザーベクトルがテーブルから取得されるのではなく、モデルによってリアルタイムで生成されることです。その後、アイテムベクトルテーブルがクエリされます。実装プロセスは 3 つのステップで構成されます:

  • ユーザー関連の特徴を取得します。ユーザー特徴はデータテーブルからクエリできます。

  • ベクトルモデルを呼び出してユーザーベクトルを取得します。この実装では、モデルは Elastic Algorithm Service (EAS) にデプロイされます。

  • アイテムベクトルテーブルをクエリします。これはベクトル取得のプロセスと似ています。

設定例:

{
    "RecallConfs": [
        {
            "Name": "online_vector_recall", // オンラインベクトルリコール
            "RecallType": "OnlineHologresVectorRecall", // オンラインHologresベクトルリコール
            "RecallCount": 500, // リコール数
            "UserFeatureConfs": [
                {
                    "FeatureDaoConf": {
                        "AdapterType": "hologres", // アダプタータイプ
                        "HologresName": "holo_info", // Hologres名
                        "FeatureKey": "user:uid", // 特徴量キー
                        "UserFeatureKeyName": "userid", // ユーザー特徴量キー名
                        "HologresTableName": "user_all_feature_table", // ユーザー全特徴量テーブル
                        "UserSelectFields": "*", // ユーザー選択フィールド
                        "FeatureStore": "user" // 特徴量ストア
                    },
                    "Features": []
                }
            ],
            "RecallAlgo": "sv_v2_mind", // リコールアルゴリズム
            "HologresVectorConf": {
                "HologresName": "holo_info", // Hologres名
                "VectorTable": "item_embedding_table", // アイテム埋め込みテーブル
                "VectorEmbeddingField": "item_emb", // アイテム埋め込みフィールド
                "VectorKeyField": "item_id" // ベクトルキーフィールド
            }
        }
    ]
}

フィールド

タイプ

必須

説明

Name

string

はい

取得メソッドのカスタム名。

RecallType

string

はい

取得タイプ。静的フィールド。値を OnlineHologresVectorRecall に設定します。

RecallCount

int

はい

取得するアイテムの数。

RecallAlgo

string

はい

呼び出すベクトルモデルの名前。AlgoConfs でモデルを設定する必要があります。設定の詳細については、「ファイングレインランキング設定」をご参照ください

UserFeatureConfs:

フィールド

タイプ

必須

説明

AdapterType

string

はい

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

HologresName

string

はい

データソース設定 (HologresConfs) で設定されている Hologres データソースのカスタム名。例: holo_info。

FeatureKey

string

はい

DPI エンジン内の user_id のソース。user:uid はユーザーの uid 特徴を示します。

UserFeatureKeyName

string

はい

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

HologresTableName

string

はい

ユーザー特徴テーブル。

UserSelectFields

string

はい

選択する特徴。アスタリスク (*) またはカンマ区切りのリスト (「f1,f2...」など) を使用できます。

FeatureStore

string

はい

DPI エンジンで特徴が保存される場所。列挙値: user、item。

HologresVectorConf:

フィールド

タイプ

必須

説明

HologresName

string

はい

データソース設定 (HologresConfs) で設定されている Hologres データソースのカスタム名。例: holo_info。

VectorTable

string

はい

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

VectorEmbeddingField

string

はい

ベクトルを保存するアイテムベクトルテーブルのフィールド。

VectorKeyField

string

はい

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

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 に設定する必要があります。

U2I 取得 (UserCustomRecall)

Hologres

このメソッドは、ユーザー ID に基づいて対応するアイテムリストを検索します。テーブル定義は規則に基づいています。

u2i テーブル

フィールド

タイプ

説明

user_id

string

ユーザー ID。

item_ids

string

アイテム 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", // user2itemリコール
            "RecallType": "UserCustomRecall", // ユーザーカスタムリコール
            "RecallCount": 500, // リコール数
            "DaoConf": {
                "AdapterType": "hologres", // アダプタータイプ
                "HologresName": "holo_info", // Hologres名
                "HologresTableName": "user_item_table" // ユーザーアイテムテーブル
            }
        }
    ]
}

フィールド

タイプ

必須

説明

Name

string

はい

取得メソッドのカスタム名。

RecallType

string

はい

取得タイプ。静的フィールド。値を UserCustomRecall に設定します。

RecallCount

int

はい

取得するアイテムの数。

DaoConf

JSON オブジェクト

はい

DAO の定義

AdapterType

string

はい

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

HologresName

string

データソース設定 (HologresConfs) で設定されている Hologres データソースのカスタム名。例: holo_info。

HologresTableName

string

はい

データテーブルの名前。

PAI-FeatureStore

このメソッドは、ユーザー ID に基づいて対応するアイテムリストを検索します。テーブル定義は規則に基づいています。

テーブルデータは MaxCompute で生成されます。オフライン機能ビューを使用して、データを Feature Store に登録する必要があります。MaxCompute テーブルデータスキーマは次のとおりです:

u2i テーブル

フィールド

タイプ

説明

user_id

string

ユーザー ID。

item_ids

string

アイテム 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

string

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

設定例:

{
    "RecallConfs": [
        {
            "Name": "user2item_recall", // user2itemリコール
            "RecallType": "UserCustomRecall", // ユーザーカスタムリコール
            "RecallCount": 500, // リコール数
            "DaoConf": {
                "AdapterType": "featurestore", // アダプタータイプ
                "FeatureStoreName": "fs_pairec", // FeatureStore名
                "FeatureStoreViewName": "u2i_recall" // u2iリコール
            }
        }
    ]
}

フィールド

タイプ

必須

説明

Name

string

はい

取得メソッドのカスタム名。

RecallType

string

はい

取得タイプ。静的フィールド。値を UserCustomRecall に設定します。

RecallCount

int

はい

リコール数

DaoConf

JSON オブジェクト

はい

DAO 定義。

AdapterType

string

はい

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

FeatureStoreName

string

データソース設定 (FeatureStoreConfs) で設定されている Hologres データソースのカスタム名。例: fs_pairec。

FeatureStoreViewName

string

はい

u2i テーブルに登録されたビューの名前。

TableStore (OTS)

このメソッドは、ユーザー ID に基づいて対応するアイテムリストを検索します。テーブル定義は規則に基づいています。

u2i テーブル

フィールド

タイプ

説明

user_id

string

ユーザー ID。

item_ids

string

アイテム 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", // user2itemリコール
            "RecallType": "UserCustomRecall", // ユーザーカスタムリコール
            "RecallCount": 500, // リコール数
            "DaoConf": {
                "AdapterType": "tablestore", // アダプタータイプ
                "TableStoreName": "ots_info", // OTS情報
                "TableStoreTableName": "user_item_table" // ユーザーアイテムテーブル
            }
        }
    ]
}

フィールド

タイプ

必須

説明

Name

string

はい

取得メソッドのカスタム名。

RecallType

string

はい

取得タイプ。静的フィールド。値を UserCustomRecall に設定します。

RecallCount

int

はい

リコール数

DaoConf

JSON オブジェクト

はい

DAO 定義。

AdapterType

string

はい

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

TableStoreName

string

データソース設定 (TableStoreConfs) で設定されている Table Store データソースのカスタム名。例: tablestore_info。

TableStoreTableName

string

はい

データテーブルの名前。

Redis

設定例:

{
    "RecallConfs": [
        {
            "Name": "user2item_recall", // user2itemリコール
            "RecallType": "UserCustomRecall", // ユーザーカスタムリコール
            "RecallCount": 500, // リコール数
            "DaoConf": {
                "AdapterType": "redis", // アダプタータイプ
                "RedisName": "redis_info", // Redis名
                "RedisPrefix": "" // Redisプレフィックス
            }
        }
    ]
}

フィールド

タイプ

必須

説明

Name

string

はい

取得メソッドのカスタム名。

RecallType

string

はい

取得タイプ。静的フィールド。値を UserCustomRecall に設定します。

RecallCount

int

はい

取得するアイテムの数。

DaoConf

JSON オブジェクト

はい

DAO 定義。

AdapterType

string

はい

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

RedisName

string

データソース設定 (RedisConfs) で設定されている Redis データソースのカスタム名。例: redis_info。

RedisPrefix

string

はい

U2I データ用のプレフィックス。キーは RedisPrefix と UID を連結して構築されます。値のフォーマットは: item_id1,item_id2,item_id3... または item_id1:recall_id1,item_id2:recall_id2... または item_id1:recall_id1:score1,item_id2:recall_id2:score2...

グラフ取得 (GraphRecall)

グラフ取得は、Graph Database である GraphCompute を使用する U2I 取得の一種です。

設定例:

{
    "RecallConfs": [
        {
            "Name": "graph_recall", // グラフリコール
            "RecallType": "GraphRecall", // グラフリコール
            "RecallCount": 500, // リコール数
            "GraphConf": {
                "GraphName": "graph_test", // グラステスト
                "ItemId": "item_id", // アイテムID
                "QueryString": "g(\"test\").V(\"$1\").hasLabel(\"user\").outE().inV()", // クエリ文字列
                "Params": [
                    "user.uid" // ユーザーUID
                ]
            }
        }
    ]
}

GraphConf:

フィールド

タイプ

必須

説明

Name

string

はい

取得メソッドのカスタム名。

RecallType

string

はい

取得タイプ。静的フィールド。値を GraphRecall に設定します。

RecallCount

int

はい

取得するアイテムの数。

GraphName

string

はい

データソース設定 (GraphConfs) で設定されているグラフのカスタム名。例: graph_info。

ItemId

string

はい

グラフ結果のアイテムのプライマリキーフィールド。

QueryString

string

はい

グラフ取得のための検索文。文中の $1 は、Params から値を取得するプレースホルダーです。

Params

string

はい

パラメーターを埋めるためのソース。フォーマットは次のとおりです:

  • user.xxx は、ユーザーの特徴から xxx 特徴の値を取得し、$N の位置を埋めます。

  • context.xxx は、API から xxx 特徴の値を取得し、$N の位置を埋めます。

  • context.features.xxx は、API の features フィールドから xxx 特徴の値を取得し、埋めるために使用されます。

ユーザーグループの人気アイテム取得 (UserGroupHotRecall)

Hologres

グループ人気アイテム取得のテーブルフォーマットは、規則に基づいています。

group_hot_table

テーブルフィールド

タイプ

説明

trigger_id

string

複数の特徴から組み立てられたトリガー情報。

item_ids

string

アイテム 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 を組み立てることができます。

  • 特徴をアンダースコア (_) で順番に連結して trigger_id を形成します。

  • 空の特徴値は NULL に対応します。

  • Boundaries フィールドを含む特徴は、左排他、右包括の間隔に離散化する必要があります。たとえば、[20, 30, 40, 50] の年齢範囲は、<=20、20-30、30-40、40-50、および >50 のトリガーに対応します。

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

ユーザーの年齢が null の場合は「NULL」に対応します。

ユーザーの年齢が 60 の場合は「>50」に対応します。

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

Hologres テーブルの例:

この例では、性別、年齢、デバイスモデルの 3 つの特徴を使用します。

trigger_id

item_ids

男性_<=20_IOS

item_id1::score1,item_id2::score2...

女性_20-30_Android

item_id4::score4,item_id5::score5...

...

...

設定例:

{
    "RecallConfs": [
        {
            "Name": "user_group_hot_recall", // ユーザーグループホットリコール
            "RecallType": "UserGroupHotRecall", // ユーザーグループホットリコール
            "RecallCount": 500, // リコール数
            "Triggers": [
                {
                    "TriggerKey": "gender" // 性別
                },
                {
                    "TriggerKey": "age", // 年齢
                    "Boundaries": [20,30,40,50] // 境界
                },
                {
                    "TriggerKey": "os" // OS
                }
            ],
            "DaoConf": {
                "AdapterType": "hologres", // アダプタータイプ
                "HologresName": "holo_info", // Hologres名
                "HologresTableName": "group_hotness_table" // グループホットネステーブル
            }
        }
    ]
}

フィールド

タイプ

必須

説明

Name

string

はい

取得メソッドのカスタム名。

RecallType

string

はい

取得タイプ。静的フィールド。値を UserGroupHotRecall に設定します。

RecallCount

int

はい

取得するアイテムの数。

Triggers

JSON 配列

はい

trigger_id を構築するための特定の情報。

  • TriggerKey

string

はい

ユーザーの特徴からトリガー値を取得します。

  • Boundaries

JSON 整数配列

いいえ

フィールドの境界値の範囲。

DaoConf

JSON オブジェクト

はい

DAO 定義。

  • AdapterType

string

はい

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

  • HologresName

string

データソース設定 (HologresConfs) で設定されている Hologres データソースのカスタム名。例: holo_info。

  • HologresTableName

string

はい

データテーブルの名前。

PAI-FeatureStore

グループ人気アイテム取得のテーブルフォーマットは、規則に基づいています。

テーブルデータは MaxCompute で生成されます。オフライン機能ビューを使用して、データを Feature Store に登録する必要があります。MaxCompute テーブルデータスキーマは次のとおりです:

group_hot_table

テーブルフィールド

タイプ

説明

trigger_id

string

複数の特徴から組み立てられたトリガー情報。

item_ids

string

アイテム 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

string

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

ユーザー特徴や、リージョンやデバイスモデルなどのコンテキスト情報に基づいて trigger_id を組み立てることができます。

  • 特徴をアンダースコア (_) で順番に連結して trigger_id を形成します。

  • 空の特徴値は NULL に対応します。

  • Boundaries フィールドを含む特徴は、左排他、右包括の間隔に離散化する必要があります。たとえば、[20, 30, 40, 50] の年齢範囲は、<=20、20-30、30-40、40-50、および >50 のトリガーに対応します。

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

ユーザーの年齢が null の場合は「NULL」に対応します。

ユーザーの年齢が 60 の場合は「>50」に対応します。

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

テーブルの例:

この例では、性別、年齢、デバイスモデルの 3 つの特徴を使用します。

trigger_id

item_ids

男性_<=20_IOS

item_id1::score1,item_id2::score2...

女性_20-30_Android

item_id4::score4,item_id5::score5...

...

...

このプロセスでは、トリガー特徴エンティティを使用します。

設定例:

{
    "RecallConfs": [
        {
            "Name": "user_group_hot_recall", // ユーザーグループホットリコール
            "RecallType": "UserGroupHotRecall", // ユーザーグループホットリコール
            "RecallCount": 500, // リコール数
            "Triggers": [
                {
                    "TriggerKey": "gender" // 性別
                },
                {
                    "TriggerKey": "age", // 年齢
                    "Boundaries": [20,30,40,50] // 境界
                },
                {
                    "TriggerKey": "os" // OS
                }
            ],
            "DaoConf": {
                "AdapterType": "featurestore", // アダプタータイプ
                "FeatureStoreName": "fs_pairec", // FeatureStore名
                "FeatureStoreViewName": "group_hot_recall" // グループホットリコール
            }
        }
    ]
}

フィールド

タイプ

必須

説明

Name

string

はい

取得メソッドのカスタム名。

RecallType

string

はい

取得タイプ。静的フィールド。値を UserGroupHotRecall に設定します。

RecallCount

int

はい

取得するアイテムの数。

Triggers

JSON 配列

はい

trigger_id を構築するための特定の情報。

  • TriggerKey

string

はい

ユーザーの特徴からトリガー値を取得します。

  • Boundaries

JSON 整数配列

いいえ

フィールドの境界値の範囲。

DaoConf

JSON オブジェクト

はい

DAO 定義。

  • AdapterType

string

はい

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

  • FeatureStoreName

string

データソース設定 (FeatureStoreConfs) で設定されている Hologres データソースのカスタム名。例: fs_pairec。

  • FeatureStoreViewName

string

はい

人気アイテム取得テーブルに対応する機能ビューの名前。

重要

ユーザーグループの人気アイテム取得が常に 0 アイテムを返す場合は、Triggers の連結順序を確認してください。DPI エンジンは、Triggers 設定で指定された上から下の順序でトリガーを連結します。この順序が取得テーブルの順序と一致することを確認する必要があります。

グローバル人気アイテム取得 (UserGlobalHotRecall)

Hologres

グローバル人気アイテム取得のテーブルスキーマは、グループ取得のスキーマと同じです。唯一の違いは、グローバル人気アイテム取得テーブルには 1 つのレコードしか含まれず、その trigger_id が -1 であることです。

設定例:

{
    "RecallConfs": [
        {
            "Name": "UserGlobalHotRecall", // ユーザーグローバルホットリコール
            "RecallType": "UserGlobalHotRecall", // ユーザーグローバルホットリコール
            "RecallCount": 500, // リコール数
            "DaoConf": {
                "AdapterType": "hologres", // アダプタータイプ
                "HologresName": "holo_info", // Hologres名
                "HologresTableName": "global_hotness_table" // グローバルホットネステーブル
            }
        }
    ]
}

PAI-FeatureStore

グローバル人気アイテム取得のテーブルスキーマは、グループ取得のスキーマと同じです。唯一の違いは、グローバル人気アイテム取得テーブルには 1 つのレコードしか含まれず、その trigger_id が -1 であることです。

テーブルデータは MaxCompute で生成されます。オフライン機能ビューを使用して、データを Feature Store に登録する必要があります。MaxCompute テーブルデータスキーマは次のとおりです:

テーブルフィールド

タイプ

説明

trigger_id

string

テーブルには 1 行のデータしかなく、値は -1 です。

item_ids

string

アイテム 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

string

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

設定例:

{
    "RecallConfs": [
        {
            "Name": "UserGlobalHotRecall", // ユーザーグローバルホットリコール
            "RecallType": "UserGlobalHotRecall", // ユーザーグローバルホットリコール
            "RecallCount": 500, // リコール数
            "DaoConf": {
                "AdapterType": "featurestore", // アダプタータイプ
                "FeatureStoreName": "fs_pairec", // FeatureStore名
                "FeatureStoreViewName": "global_hot_recall" // グローバルホットリコール
            }
        }
    ]
}

TableStore (OTS)

グローバル人気アイテム取得のテーブルスキーマは、グループ取得のスキーマと同じです。唯一の違いは、グローバル人気アイテム取得テーブルには 1 つのレコードしか含まれず、その trigger_id が -1 であることです。

設定例:

{
    "RecallConfs": [
        {
            "Name": "UserGlobalHotRecall", // ユーザーグローバルホットリコール
            "RecallType": "UserGlobalHotRecall", // ユーザーグローバルホットリコール
            "RecallCount": 500, // リコール数
            "DaoConf": {
                "AdapterType": "tablestore", // アダプタータイプ
                "TableStoreName": "ots_info", // OTS情報
                "TableStoreTableName": "global_hotness_recall" // グローバルホットネスリコール
            }
        }
    ]
}

フィールド

タイプ

必須

説明

Name

string

はい

取得メソッドのカスタム名。

RecallType

string

はい

取得タイプ。静的フィールド。値を UserGlobalHotRecall に設定します。

RecallCount

int

はい

取得するアイテムの数。

DaoConf

JSON オブジェクト

はい

DAO 定義。

AdapterType

string

はい

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

TableStoreName

string

データソース設定 (TableStoreConfs) で設定されている Table Store データソースのカスタム名。例: tablestore_info。

TableStoreTableName

string

はい

データテーブルの名前。

コールドスタート取得 (ColdStartRecall)

このメソッドは、アイテムマテリアルテーブルを提供し、条件や時間に基づいてフィルタリングすることで、指定されたルールを満たす候補セットをクエリします。

Hologres

{
    "RecallConfs": [
        {
            "Name": "AllLiveItemRecall", // 全ライブアイテムリコール
            "RecallType": "ColdStartRecall", // コールドスタートリコール
            "RecallCount": 3000, // リコール数
            "ColdStartDaoConf": {
                "AdapterType": "hologres", // アダプタータイプ
                "HologresName": "holo_info", // Hologres名
                "HologresTableName": "item_status_table", // アイテムステータステーブル
                "WhereClause": "islist_status=1", // 条件句
                "PrimaryKey": "\"item_id\"", // プライマリキー
                "TimeInterval": 0 // 時間間隔
            }
        }
    ]
}

ColdStartDaoConf:

フィールド

タイプ

必須

説明

Name

string

はい

取得メソッドのカスタム名。

RecallType

string

はい

取得タイプ。静的フィールド。値を ColdStartRecall に設定します。

RecallCount

int

はい

リコール数

ColdStartDaoConf

JSON オブジェクト

はい

コールドスタートデータ定義。

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

上記の設定では、WhereClause を使用して候補セットをフィルタリングする場合、API で渡された features フィールドまたはユーザーの特徴フィールドに基づいてフィルタリングできます。たとえば、言語とユーザーの都市属性に基づいて候補セットをフィルタリングするには、WhereClause を次のように記述します:

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

この例では、language は API の features フィールドで渡すことができ、city はユーザー特徴です。

パラメーターのソースは次の形式で指定されます:

  • user.xxx は、ユーザーの特徴から xxx 特徴の値を取得します。

  • context.features.xxx は、API の features フィールドから xxx 特徴の値を取得します。

PAI-FeatureStore

警告

オンラインストアとして FeatureDB を使用する機能ビューのみがサポートされています。

プライマリキーがアイテム ID である機能ビューを提供します。このビューからランダムなバッチのアイテム 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) で設定されている Feature Store のカスタム名。

FeatureStoreViewName

string

はい

コールドスタート取得のための機能ビューの名前。

FilterParams

string

いいえ

コールドスタート取得のフィルター条件。

FeatureStoreViewName に指定された機能ビューは、オフラインまたはリアルタイムの機能ビューにすることができます。リアルタイムビューの場合、この取得メソッドは新しいアイテム ID をリアルタイムで取得します。

FilterParams パラメーターを使用して、特定のアイテム ID をフィルタリングできます。このパラメーターを空のままにすると、フィルター条件は設定されず、アイテム ID はランダムに取得されます。

{
            "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"
                }
            ]
        }

上記の例では、user. で始まる Value は、その値がユーザー特徴から取得されることを示します。カテゴリなどのこれらの特徴は、API の features フィールドで渡すことができます。

Operator の詳細については、「付録」をご参照ください。

コンテキストアイテム取得 (ContextItemRecall)

取得されたアイテムが DPI エンジン API を介して渡されることがあります。item_list を使用してカスタム取得データを渡すことができます。DPI エンジン API の詳細については、「API テスト」をご参照ください。

ContextItemRecall は DPI エンジンの組み込み取得名であり、RecallNames で直接使用できます。次の例は、サンプル設定を示しています:

{
    "SceneConfs": {
        "${scene_name}": { // シーン名
            "default": { // デフォルト
                "RecallNames": [
                    "ContextItemRecall" // コンテキストアイテムリコール
                ]
            }
        }
    }
}

I2I 取得 (ItemCollaborativeFilterRecall)

Hologres

I2I 取得は、類似性ベースの推奨に使用されます。このタイプの推奨では、類似の item_id を渡す必要があります。特定の API 定義の詳細については、「API テスト」をご参照ください。

設定例:

{
    "RecallConfs": [
        {
            "Name": "I2IRecall", // I2Iリコール
            "RecallType": "ItemCollaborativeFilterRecall", // アイテム協調フィルタリングリコール
            "RecallCount": 500, // リコール数
            "ItemCollaborativeDaoConf": {
                "AdapterType": "hologres", // アダプタータイプ
                "HologresName": "holo_info", // Hologres名
                "Item2ItemTable": "item_collaborative_list" // アイテム協調リスト
            }
        }
    ]
}

設定フィールドの説明:

フィールド

タイプ

必須

説明

Name

string

はい

取得メソッドのカスタム名。

RecallType

string

はい

取得タイプ。静的フィールド。値を ItemCollaborativeFilterRecall に設定します。

RecallCount

int

はい

取得するアイテムの数。

ItemCollaborativeDaoConf

json object

はい

I2I テーブルデータ定義。

  • AdapterType

string

はい

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

  • HologresName

string

はい

データソース設定 (HologresConfs) で設定されている Hologres データソースのカスタム名。例: holo_info。

  • Item2ItemTable

string

はい

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

Item2ItemTable テーブルの定義:

フィールド

タイプ

説明

item_id

string

アイテム ID。

item_ids

string

アイテム 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 テスト」をご参照ください。

Item2ItemTable テーブルの定義:

フィールド

タイプ

説明

item_id

string

アイテム ID。

item_ids

string

アイテム 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", // I2Iリコール
            "RecallType": "ItemCollaborativeFilterRecall", // アイテム協調フィルタリングリコール
            "RecallCount": 200, // リコール数
            "ItemCollaborativeDaoConf": {
                "AdapterType": "featurestore", // アダプタータイプ
                "FeatureStoreName": "fs_pairec", // FeatureStore名
                "FeatureStoreViewName": "i2i_recall" // i2iリコール
            }
        }
    ]
}

設定フィールドの説明:

フィールド

タイプ

必須

説明

名前

文字列

はい

取得メソッドのカスタム名。

再呼び出しタイプ

文字列

はい

取得タイプ。静的フィールド。値を ItemCollaborativeFilterRecall に設定します。

呼び戻し回数

int

はい

取得するアイテム数。

ItemCollaborativeDaoConf

json オブジェクト

はい

I2I テーブルデータ定義。

  • AdapterType

文字列

はい

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

  • FeatureStoreName

文字列

はい

データソース構成 (FeatureStoreConfs) で設定されているカスタム名。例: fs_pairec。

  • FeatureStoreViewName

文字列

はい

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

EnableMultipleItemId

bool

いいえ

渡された item_id が複数値フォーマットであるかどうかを指定します。

MultipleItemIdDelimiter

文字列

いいえ

EnableMultipleItemId=true の場合、item_id の区切り文字を定義します。デフォルト値はカンマ ( ,) です。

インターフェイスに渡す item_id が、カンマ (,) で区切られた複数値フォーマットの場合は、以下の構成を使用できます。

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

Redis または localCache を使用してデータをキャッシュする場合、キャッシュキーは item_id です。

I2I 取得の場合、API リクエストで item_id フィールドに値を渡す必要があります。

OpenSearch Recall (OpenSearchRecall)

このメソッドは、OpenSearch サービスを直接呼び出して、リコールリストを返します。OpenSearch ドキュメントの詳細については、「業界アルゴリズム版の概要」をご参照ください。

設定例:

{
    "RecallConfs": [
        {
            "Name": "OpenSearchRecall", // OpenSearchリコール
            "RecallType": "OpenSearchRecall", // OpenSearchリコール
            "OpenSearchConf": {
                "OpenSearchName": "opensearch", // OpenSearch名
                "AppName": "test_search", // アプリ名
                "ItemId": "log_id", // ログ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" // コンテキスト特徴量トピック
                ]
            }
        }
    ]
}

上記の例は、結果インデックスに対するクエリを示しています。クエリ term は、インターフェイスコンテキストにおける特徴の Topic フィールドから取得されます。

OpenSearchConf では、以下のパラメーターを指定できます。

フィールド

タイプ

必須

説明

Name

string

はい

カスタム取得名。

RecallType

string

はい

取得タイプ。値は OpenSearchRecall に固定されます。

RecallCount

int

はい

取得数

OpenSearchName

string

はい

OpenSearch インスタンスのカスタム名。この名前は、データソース構成 (OpenSearchConfs) で構成されます。

AppName

string

はい

OpenSearch アプリケーション名。

ItemId

string

はい

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

RequestParams

map[string]interface{}

はい

OpenSearch の検索文。$1 は、Params から値を取得するプレースホルダーです。構文の詳細については、「デベロッパーガイド」をご参照ください。

Params

string

はい

パラメーターを埋めるために使用されるソース。フォーマットは次のとおりです:

  • user.xxx: ユーザーの特徴から xxx の特徴の値を取得して、$N プレースホルダーを埋めます。

  • context.xxx: API から xxx の特徴の値を取得して、$N プレースホルダーを埋めます。

  • context.features.xxx: API の features フィールドから xxx の特徴の値を取得して、プレースホルダーを埋めます。

手順

構成概要にある SceneConfs パラメーターは、取得シナリオを指定します。このパラメーターは Map[string]object 構造です。構成は以下のとおりです。

"SceneConfs": {
  "${scene_name}": { // シーン名
    "default": { // デフォルト
      "RecallNames": [
        "collaborative_filter" // 協調フィルタリング
      ]
    }
  }
}

  • ${scene_name} をシナリオ名に置き換えてください。

  • default はフォルダです。デフォルト設定のままでかまいません。

  • RecallNames は []string です。値は、リコール構成内のカスタムリコール名です。