U2I2I(User-to-Item-to-Item)再現率は、ユーザーのインタラクション履歴とアイテム間類似度(I2I)スコアを組み合わせることで候補アイテム集合を構築します。本トピックでは、PAI Designer で Etrec 再現率パイプラインを実行し、U2I2I 再現率結果を生成する方法について説明します。
仕組み
パイプラインは、以下の 6 つのコンポーネントを順次実行します。
動作の重みを割り当てる — 各インタラクションタイプに数値の重みを割り当て、トレーニング信号としての強さを反映させます。
I2I トレーニングサンプルを準備する — 過去 30 日間のインタラクションデータを収集し、アイテム間(Item-to-Item)のトレーニングサンプル形式にフォーマットします。
U2I トリガーの重みを計算する — 各ユーザーがインタラクションしたアイテムに対して重み付き集約を適用し、U2I トリガーテーブルを生成します。
ErecI2I モデルをトレーニングする — 重み付きサンプルを用いて協調フィルタリングモデルをトレーニングします。
EtrecI2I スコアを KKV パーティションに分割する — アイテム類似度スコアを KKV 形式のパーティショントテーブルに書き込みます。
U2I トリガーと I2I を結合して順位付けする — U2I トリガーテーブルと I2I 類似度テーブルを結合し、各ユーザーごとに上位 500 件の結果を最終的な再現率出力として保持します。
データセット
パイプラインは、動作テーブル pai_online_project.rec_sln_demo_behavior_table から読み取ります。
| フィールド | 型 | 説明 |
|---|---|---|
request_id | BIGINT | 追跡ポイントまたはリクエスト ID |
user_id | BIGINT | 一意のユーザー ID |
exp_id | STRING | 実験 ID |
page | STRING | 動作が発生したページ |
net_type | STRING | ネットワークタイプ |
event_time | BIGINT | 動作のタイムスタンプ |
item_id | BIGINT | アイテム ID |
event | STRING | 動作の種類 |
playtime | DOUBLE | 再生または閲覧の持続時間 |
ds | STRING | パーティション列名 |
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
Machine Learning Platform for AI (PAI) コンソール内のワークスペース
パイプラインの一時データおよびモデルを格納するための Object Storage Service (OSS) バケット
Etrec 再現率パイプラインの実行
ステップ 1:Machine Learning Designer を開く
Machine Learning Platform for AI (PAI) コンソールにログインします。
左側ナビゲーションウィンドウで、ワークスペース をクリックします。ワークスペースページで、管理対象のワークスペース名をクリックします。
左側ナビゲーションウィンドウで、モデルトレーニング > ビジュアルモデリング (Designer) を選択します。
ステップ 2:プリセットテンプレートからパイプラインを作成する
ビジュアルモデリング (Designer) ページで、プリセットテンプレート タブをクリックします。
[推奨ソリューション - Etrec Recall] セクションで、[作成] をクリックします。
パイプラインの作成 ダイアログボックスで、パイプラインデータパス を、パイプラインが一時データおよびモデルを格納する OSS バケットのパスに設定します。デモデータセットでは、デフォルト値のまま使用できます。
OK をクリックします。パイプラインは約 10 秒で準備完了します。
パイプラインリストで、[推奨ソリューション - Etrec Recall] をダブルクリックして開きます。
キャンバスには、以下の図に示すように、6 つのコンポーネントが順次接続されています。

ステップ 3:パイプラインを実行して結果を確認する
パイプライン実行時のグローバル変数を指定します。

上部ツールバーで、
をクリックして実行を開始します。実行が完了したら、DataWorks コンソールを開き、MaxCompute テーブル
rec_sln_demo_etrec_u2i2i_score_v1を検索して結果を確認します。手順については、「テーブルの詳細を表示する」をご参照ください。