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

Platform For AI:ベクター検索評価

最終更新日:Apr 01, 2026

ベクターベース再現率評価コンポーネントは、高次元埋め込み空間におけるヒット率を計算することで、ベクター検索システムの精度を測定します。レコメンデーションシステムや情報検索パイプラインにおける u2i (ユーザー対アイテム) および i2i (アイテム対アイテム) の再現を評価するために使用します。

仕組み

このコンポーネントは、2 種類の再現タイプをサポートしています。

  • u2i: ユーザーベクターを使用して、特定のユーザーに最も類似する上位 K 個のアイテムを再現します。

  • i2i: アイテムベクターを使用して、特定のアイテムに最も類似する上位 K 個のアイテムを再現します。

ヒット率は次のように計算されます。再現をトリガーする関連アイテムのセット M (u2i の場合はユーザーベクター、i2i の場合はアイテムベクター) が与えられた場合、コンポーネントは上位 K 個の類似アイテムを取得し、そのうち M に含まれるアイテムの数 N をカウントします。ヒット率は |N| / |M| となります。

このコンポーネントは、不良ケース分析をサポートするために、M に含まれないアイテムとその距離値も出力します。

このコンポーネントは、スタンドアロンモードまたは分散モードで実行されます。

  1. すべてのワーカーは、ユーザーまたはアイテムの埋め込みテーブルをロードし、k-最近傍探索 (KNN) に必要なインデックスを構築します。

  2. ワーカーは、真のシーケンステーブルをバッチで検索し、上位 K 個の最近傍を返します。

  3. コンポーネントは、真のシーケンステーブル内のシーケンス値を上位 K 個の結果と比較することで、ヒット率を計算します。

  4. 結果は集計され、MaxCompute テーブルに書き込まれます。

重要

再現精度を評価する場合、埋め込みテーブルと真のシーケンステーブルは異なる時点のデータである必要があります。埋め込みデータは時刻 T で、真のシーケンスデータは時刻 T+1 で収集してください。両方のテーブルが同じ時点のデータを使用している場合、ヒット率は真の値よりも人為的に水増しされます。

入力

アイテム埋め込みテーブル

GraphSAGE などのトレーニングアルゴリズムによって通常生成されるアイテムベクターを保存します。

タイプ
item idbigint23456677
アイテム埋め込みstring0.1,0.2,0.3,...

ユーザー埋め込みテーブル

GraphSAGE などのトレーニングアルゴリズムによって通常生成されるユーザーベクターを保存します。u2i の再現にのみ必要です。

タイプ
user idbigint12345
user embeddingsstring0.1,0.2,0.3,...

真のシーケンステーブル

各トリガーを関連アイテムのセットにマッピングするグラウンドトゥルーステーブルです。u2i の再現の場合、トリガー ID 列はユーザー ID 列にマッピングされます。i2i の再現の場合、アイテム ID 列にマッピングされます。

タイプ
trigger idbigint12345
item idsstring23456677,2233445,6837292,...

出力

total_hitrate テーブル

すべてのトリガーにわたる全体的なヒット率が含まれます。

タイプ
hitratedouble0.4

hitrate_details テーブル

真のシーケンステーブルの行数と一致する、トリガーごとの行が含まれます。

タイプ説明
idbigintu2i の再現の場合: user_id。i2i の再現の場合: item_id。
topk_idsstring上位 K 個の再現されたアイテムの ID (カンマ区切り)。
topk_distsstringtopk_ids 内の各アイテムに対応する距離値。
hitratedoubleこのトリガーのヒット率。
bad_idsstring関連セット M に含まれない再現されたアイテム。
bad_distsstringbad_ids 内の各アイテムに対応する距離値。

コンポーネントパラメーター

グループパラメータータイプ説明
入力item_emb_tablestringアイテム埋め込みテーブル。
入力true_seq_tablestringグラウンドトゥルーステーブル。u2i の再現の場合: ユーザーとユーザー関連アイテム。i2i の再現の場合: アイテムとアイテム関連アイテム。
入力user_emb_tablestring (オプション)ユーザー埋め込みテーブル。u2i の再現にのみ必要です。
出力total_hitratestring合計ヒット率値の出力テーブル。
出力hitrate_detailsstringトリガーごとのヒット率詳細の出力テーブル。
パラメーターrecall_typestring再現タイプ: u2i または i2i
パラメーターemb_dimint埋め込みテーブルの埋め込みディメンション。
パラメーターkint再現するアイテムの数 (上位 K)。
パラメーターmetricint (オプション、デフォルト: 1)類似度メトリック。0 は L2 距離を使用し、最短距離の上位 K 個のアイテムを返します。1 は内積を使用し、最大内積値の上位 K 個のアイテムを返します。
パラメーターstrictbool (オプション、デフォルト: False)True の場合、近似なしで類似度を計算します。これにより、ヒット率計算におけるわずかな偏差は解消されますが、計算時間が大幅に増加します。
パラメーターlifecycleint (オプション、デフォルト: 7)出力テーブルの保持期間 (日数)。
チューニングbatch_sizeint (オプション、デフォルト: 1024)バッチごとに処理されるサンプル数。ワーカーがメモリ不足になった場合は、この値を減らしてください。
チューニングworker_countint (オプション、デフォルト: 1)ワーカー数。大規模な入力テーブルの場合、または単一のワーカーでは十分な速度が得られない場合は、この値を増やしてください。
チューニングworker_memoryint (オプション、デフォルト: 20000)各ワーカーに割り当てられるメモリ (MB)。

コマンド例

次のコマンドは、u2i の再現ヒット率を評価します。類似度メトリックとして内積が使用され、strict モードは無効になっており、評価はバッチで実行されます。1 つのワーカーがバッチごとに 1,024 個のアイテムを 20,000 MB のメモリで処理します。出力テーブルは 7 日間保持されます。

pai -name hitrate_gl_ext
    -Ditem_emb_table='item_emb_table'
    -Duser_emb_table='user_emb_table'
    -Dtrue_seq_table='true_seq_table'
    -Dhitrate_details='hitrate_details'
    -Dtotal_hitrate='total_hitrate'
    -Drecall_type='u2i'
    -Dk=5
    -Demb_dim=10
    -Dmetric=1
    -Dstrict=False
    -Dbatch_size=1024
    -Dworker_count=1
    -Dworker_memory=20000
    -Dlifecycle=7;