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

Artificial Intelligence Recommendation:PAI-Rec でレコメンデーションアルゴリズムをカスタマイズするためのベストプラクティス

最終更新日:Apr 01, 2026

このチュートリアルでは、パブリックデータセットを使用して PAI-Rec でカスタムレコメンデーションソリューションを構成する手順を説明します。最終的には、特徴量エンジニアリング、検索、詳細なランキングを網羅するエンドツーエンドのレコメンデーションパイプラインが動作し、そのワークフローが DataWorks にデプロイされます。

前提条件

開始する前に、以下を完了していることを確認してください。

ステップ 1: PAI-Rec インスタンスを作成し、サービスを初期化する

このステップでは、PAI-Rec Premium Edition インスタンスをプロビジョニングし、前提条件で設定したクラウドリソースに接続します。Premium Edition は必須です。これには、このチュートリアルで使用されるデータ診断とカスタムレコメンデーションソリューション機能が含まれています。

  1. パーソナライズドレコメンデーションプラットフォームのホームページにログインして、[今すぐ購入] をクリックします。

  2. 購入ページで、以下のパラメーターを設定し、[今すぐ購入] をクリックします。

    パラメーター説明
    リージョンとゾーンご利用のクラウドサービスがデプロイされるリージョン。
    サービスタイプ[Premium Edition] を選択します。Premium Edition は、Standard Edition と比較して、データ診断とカスタムレコメンデーションソリューション機能を追加します。
  3. PAI-Rec コンソール にログインし、トップメニューバーからリージョンを選択します。

  4. 左のナビゲーションウィンドウで、[インスタンスリスト] をクリックします。 インスタンス名をクリックしてインスタンス詳細ページを開きます。

  5. 操作ガイド」セクションで、[初期化] をクリックします。[システム構成][エンドツーエンドサービス] にリダイレクトされます。[編集] をクリックし、次の表のリソースを構成してから、[完了] をクリックします。

    リソース構成

    パラメーター説明
    モデリング
    PAI ワークスペース作成したデフォルトの PAI ワークスペースを入力します。
    DataWorks ワークスペース自動生成された DataWorks ワークスペースを入力します。
    MaxCompute プロジェクト (ワークスペース)作成した MaxCompute プロジェクトを入力します。
    OSS バケット作成した OSS バケットを選択します。
    エンジン
    リアルタイム検索エンジンPAI-FeatureStore を使用はい を選択します。
    リアルタイム特徴量クエリPAI-FeatureStore を使用はい を選択します。
  6. 左側のナビゲーションウィンドウで、[システム構成] > [権限管理] を選択します。[アクセスサービス] タブで、各クラウドプロダクトへのアクセスが許可されていることを確認します。

ステップ 2: パブリックデータセットをクローンする

このステップでは、サンプルデータを MaxCompute プロジェクトにロードします。PAI-Rec は、公開アクセス可能な pai_online_project プロジェクトで 3 つの共有テーブルを提供します。

  • ユーザーテーブル: pai_online_project.rec_sln_demo_user_table

  • アイテムテーブル: pai_online_project.rec_sln_demo_item_table

  • 行動テーブル: pai_online_project.rec_sln_demo_behavior_table

これらのテーブルのデータはランダムに生成されており、実際のビジネス上の意味はありません。そのため、AUC (曲線下面積) などのトレーニングメトリクスは低くなります。これはデモ設定では想定内の動作です。

2 つの方法が利用可能です。

方法スケジューリングサポート使用時期
SQL を使用して固定時間ウィンドウを同期なしチュートリアルを探索するための 1 回限りの設定
Python スクリプトを使用してデータを生成あり (日次)スケジュールされたタスクによる定期的なモデルトレーニング

日次データ生成とモデルトレーニングには、Python スクリプト方式を使用してください。

固定時間ウィンドウを同期

DataWorks で SQL コマンドを実行して、pai_online_project から 3 つのテーブルを MaxCompute プロジェクト (例: project_mc) にコピーします。

  1. DataWorks コンソール にログインし、リージョンを選択します。

  2. 左側のナビゲーションウィンドウで、[データ開発と O&M] > [データ開発] をクリックします。

  3. 作成した DataWorks ワークスペースを選択し、[データ開発へ移動] をクリックします。

  4. 「作成」にマウスを合わせ、[ノードの作成] > [MaxCompute] > [ODPS SQL] を選択します。次のパラメーターを設定し、[確認] をクリックします。

    リソース構成

    パラメーター説明
    エンジンインスタンスアタッチされた MaxCompute データソース。
    ノードタイプODPS SQLODPS SQL
    パスこのノードが保存されるパス。Business Flow/Workflow/MaxCompute
    名前このノードのカスタム名。Data
  5. ノードエディターで、以下の SQL を貼り付けて実行します。実行する前に、スケジューリング変数を構成して、${bizdate} が前日の日付に、${bizdate_100}${bizdate} の 100 日前に設定されるようにします。スケジューリングパラメーターは次のように構成します: image パブリックプロジェクトからご利用のプロジェクトにデータをコピーするには、以下の SQL を 1 回実行します。

    CREATE TABLE IF NOT EXISTS rec_sln_demo_user_table_v1(
     user_id BIGINT COMMENT '一意のユーザーID',
     gender STRING COMMENT '性別',
     age BIGINT COMMENT '年齢',
     city STRING COMMENT '都市',
     item_cnt BIGINT COMMENT '作成されたアイテムの数',
     follow_cnt BIGINT COMMENT 'フォロー数',
     follower_cnt BIGINT COMMENT 'フォロワー数',
     register_time BIGINT COMMENT '登録時間',
     tags STRING COMMENT 'ユーザータグ'
    ) PARTITIONED BY (ds STRING) STORED AS ALIORC;
    
    INSERT OVERWRITE TABLE rec_sln_demo_user_table_v1 PARTITION(ds)
    SELECT *
    FROM pai_online_project.rec_sln_demo_user_table
    WHERE ds >= "${bizdate_100}" and ds <= "${bizdate}";
    
    CREATE TABLE IF NOT EXISTS rec_sln_demo_item_table_v1(
     item_id BIGINT COMMENT 'アイテムID',
     duration DOUBLE COMMENT '動画の長さ',
     title STRING COMMENT 'タイトル',
     category STRING COMMENT 'プライマリタグ',
     author BIGINT COMMENT '作成者',
     click_count BIGINT COMMENT '合計クリック数',
     praise_count BIGINT COMMENT '合計いいね数',
     pub_time BIGINT COMMENT '公開時間'
    ) PARTITIONED BY (ds STRING) STORED AS ALIORC;
    
    INSERT OVERWRITE TABLE rec_sln_demo_item_table_v1 PARTITION(ds)
    SELECT *
    FROM pai_online_project.rec_sln_demo_item_table
    WHERE ds >= "${bizdate_100}" and ds <= "${bizdate}";
    
    CREATE TABLE IF NOT EXISTS rec_sln_demo_behavior_table_v1(
     request_id STRING COMMENT 'インストルメンテーションID/リクエストID',
     user_id STRING COMMENT '一意のユーザーID',
     exp_id STRING COMMENT '実験ID',
     page STRING COMMENT 'ページ',
     net_type STRING COMMENT 'ネットワークタイプ',
     event_time BIGINT COMMENT '行動時間',
     item_id STRING COMMENT 'アイテムID',
     event STRING COMMENT '行動タイプ',
     playtime DOUBLE COMMENT '再生/読み取り時間'
    ) PARTITIONED BY (ds STRING) STORED AS ALIORC;
    
    INSERT OVERWRITE TABLE rec_sln_demo_behavior_table_v1 PARTITION(ds)
    SELECT *
    FROM pai_online_project.rec_sln_demo_behavior_table
    WHERE ds >= "${bizdate_100}" and ds <= "${bizdate}";

Python スクリプトを使用してデータを生成

この方法を使用して、日次データ生成をスケジュールします。スクリプトは、指定された時間範囲の合成データを生成します。

  1. DataWorks コンソールで、PyODPS 3 ノードを作成します。「MaxCompute ノードを作成および管理する」をご参照ください。

  2. create_data.py をダウンロードし、その内容を PyODPS 3 ノードに貼り付けます。

  3. 右側のペインで、[スケジューリング構成] をクリックし、スケジューリングパラメーターを設定します。次の変数を置き換えます。置き換え後、スケジューリングの依存関係を設定し、次に保存 image アイコンと送信 image アイコンをクリックします。

    • $user_table_namerec_sln_demo_user_table

    • $item_table_namerec_sln_demo_item_table

    • $behavior_table_namerec_sln_demo_behavior_table

    image

    image

  4. 「運用センター」に移動し、[定期タスクの運用・保守] > [定期タスク] を選択します。

  5. ターゲットタスクの[操作]列で、[データ埋め戻し] > [現在のノードと子孫ノード]を選択します。

  6. データのバックフィル]パネルで、データタイムスタンプを設定し、[送信して移動]をクリックします。データ整合性を確保するために、データタイムスタンプを Scheduled task date - 60 に設定して、60 日分のデータをバックフィルします。

依存ノードを構成する

DataWorks プロジェクトに 3 つの仮想ノードを追加します。これらのノードは、データテーブルの依存アンカーとして機能し、ダウンストリームタスクが実行される前にデータが利用可能になるのを待ちます。

  1. [作成] にカーソルを合わせ、[ノードの作成] > [一般] > [仮想ノード] を選択します。 以下の設定を使用して 3 つの仮想ノードを作成し、[確認] をクリックします。

    リソース構成

    パラメーター説明
    ノードタイプ仮想ノード仮想ノード
    パスノードが保存されるパス。Workflow/Workflow/General
    名前同期されたデータテーブルの名前。rec_sln_demo_user_table_v1rec_sln_demo_item_table_v1rec_sln_demo_behavior_table_v1

    image

  2. 各仮想ノードについて、ノードコンテンツをselect 1;に設定します。次に、右側のペインで[スケジューリング構成]をクリックし、次の設定を完了します。3つのノードすべてを構成します。

    • 「[時間プロパティ]」で、「再実行プロパティ」を「[成功時または失敗時に再実行]」に設定します。

    • [スケジューリング依存関係] > [上流依存関係] で、DataWorks ワークスペース名を入力し、_root サフィックスが付いたノードを選択して、[追加] をクリックします。

    image

  3. 各仮想ノードの前の image アイコンをクリックして送信します。

ステップ 3: データを登録する

後続のステップで特徴量エンジニアリング、検索、ランキング構成で利用できるように、3 つの同期されたテーブルを PAI-Rec に登録します。

  1. PAI-Rec コンソール にログインし、リージョンを選択します。

  2. 左側のナビゲーションウィンドウで、[インスタンスリスト] をクリックします。インスタンス名をクリックして、インスタンス詳細ページを開きます。

  3. 左側のナビゲーションウィンドウで、[カスタムレコメンデーションソリューション][データ登録] を選択します。「MaxCompute テーブル」タブで、[データテーブルの追加] をクリックします。次の設定を使用して、ユーザー テーブル、アイテム テーブル、および動作 テーブルをそれぞれ 1 つずつ追加し、[インポートの開始] をクリックします。

    パラメーター説明
    MaxCompute プロジェクト作成した MaxCompute プロジェクト。project_mc
    MaxCompute テーブル同期されたデータテーブル。ユーザー: rec_sln_demo_user_table_v1; アイテム: rec_sln_demo_item_table_v1; 行動: rec_sln_demo_behavior_table_v1
    データテーブル名テーブルのカスタム表示名。User TableItem TableBehavior Table

ステップ 4: レコメンデーションシナリオを作成する

レコメンデーションが提供されるコンテキスト (例: ホームページフィード) を定義するレコメンデーションシナリオを作成します。レコメンデーションシナリオとトラフィック ID の背景情報については、「用語」をご参照ください。

左側のナビゲーションウィンドウで、[推奨シナリオ] を選択します。 [シナリオの作成] をクリックし、以下のパラメーターを設定して、[OK] をクリックします。

リソース構成

パラメーター説明
シナリオ名このシナリオのカスタム名。HomePage
シナリオの説明シナリオの説明。

ステップ 5: アルゴリズムソリューションを作成および構成する

このステップでは、レコメンデーションシナリオの検索アルゴリズムとランキングアルゴリズムを構成します。完全な本番環境設定では、以下のアルゴリズムが利用可能です。

  • グローバルホット検索: ログデータからのクリック統計に基づいて、上位 k 個のアイテムをランク付けします。

  • グローバルホットフォールバック検索: プライマリ検索エンジンが失敗した場合に空の結果を防ぐために、Redis にフォールバック候補セットを保存します。

  • グループ化されたホット検索: 属性グループ (例: 都市や性別) 別にアイテムを検索し、人気アイテムのパーソナライゼーションを改善します。

  • etrec U2I 検索: etrec 協調フィルタリングアルゴリズムに基づくユーザーからアイテムへの検索。

  • Swing u2i 再現率 (オプション): Swing アルゴリズムに基づくユーザー対アイテムの再現率。

  • コールドスタート検索 (オプション): DropoutNet アルゴリズムを使用した新規ユーザーおよびアイテムの検索。

  • 詳細なランキング: 単一目的ランキングには MultiTower を、多目的ランキングには DBMTL を選択します。

ベクター検索と PDN 検索は、通常、基本的な検索ステージが完了した後に追加されます。ベクター検索にはベクター検索エンジンが必要ですが、FeatureDB はこれをサポートしていないため、このチュートリアルでは扱いません。

デプロイを迅速に完了するために、このチュートリアルでは、検索ステージには [グローバルホット検索][etrec U2I 検索] のみを、ランキングステージには [詳細なランキング] のみを構成します。

  1. 左側のナビゲーションウィンドウで、[カスタム推奨ソリューション] > [ソリューション構成] を選択します。 作成したシナリオを選択し、[推奨ソリューションの作成] をクリックし、次のパラメーターを入力してから、[アルゴリズムソリューションを保存して構成] をクリックします。 ここに記載されていないパラメーターについては、デフォルト値のままにします。 詳細については、「データテーブル構成」をご参照ください。

    リソース構成

    パラメーター説明
    ソリューション名カスタム名。
    シナリオ名作成したレコメンデーションシナリオ。
    オフラインストアシナリオに関連付けられた MaxCompute プロジェクト。
    DataWorks ワークスペースシナリオに関連付けられた DataWorks ワークスペース。
    ワークフロー名ソリューションスクリプトをデプロイするときに作成される DataWorks ワークフローの名前。例: Flow
    StorageAPI 構成StorageAPI中国本土 (中国 (北京) や中国 (上海) など) のリージョンの場合は、 (従量課金 DTS) を選択します。その他のリージョン (中国 (香港)、シンガポール、ドイツ (フランクフルト) など) の場合は、まず専用 DTS リソースグループを購入し、ここで選択します。PAI-DLC の TorchEasyRec トレーニングタスクに、-odps_data_quota_name ot_xxxx_p#ot_yyyy の形式でパラメーターを追加します。
    slim_mode[いいえ]このチュートリアルでは を選択します。
    OSS バケットシナリオに関連付けられた OSS バケット。
    プロジェクト作成した FeatureStore プロジェクト。オンラインストアには FeatureDB を選択します。
    ユーザーエンティティFeatureStore プロジェクトのユーザー特徴量エンティティ user
    アイテムエンティティFeatureStore プロジェクトのアイテム特徴量エンティティ item
  2. [データテーブル設定] ノードで、各データテーブルの横にある [追加] をクリックします。以下のように動作ログテーブル、ユーザーテーブル、およびアイテムテーブルを設定し、[次へ] をクリックします。ここに記載されていないパラメーターについては、デフォルト値のままにします。詳細については、「データテーブル設定」をご参照ください。動作ログテーブル 動作ログテーブルを設定する際、実際のデータに合わせてフィールドを調整します。デモ動作ログには、リクエスト ID、ユーザー ID、ページ、動作タイムスタンプ、および動作タイプが含まれます。データに追加のディメンションがある場合は、特徴量エンジニアリング用にそれらをユーザー情報またはアイテム情報として分類します。

    行動ログテーブルリソース構成

    パラメーター説明
    行動テーブル名登録された行動テーブル。rec_sln_demo_behavior_table_v1
    時間パーティション行動テーブルのパーティションフィールド。dsyyyymmdd
    行動情報構成
    リクエスト ID各レコメンデーションリクエストを識別する UUID。オプション。request_id
    行動イベント行動イベントを記録するフィールド。event
    行動イベント列挙値行動ログのイベントタイプ。expr,click,praise
    行動値視聴時間や取引価格など、行動の深さ。playtime
    行動タイムスタンプUnix タイムスタンプ (秒単位の精度) としてのイベント時間。event_time
    タイムスタンプ形式行動タイムスタンプの形式。unixtime
    行動シナリオ行動が発生したシナリオフィールド。page
    シナリオ列挙値特徴量統計に含めるシナリオ値。home,detail
    ユーザー情報構成
    ユーザー ID行動テーブルのユーザー ID フィールド。user_id
    ユーザーカテゴリカル特徴量行動テーブルのカテゴリカルユーザー特徴量。net_type
    アイテム情報構成
    アイテム ID行動テーブルのアイテム ID フィールド。item_id

    ユーザーテーブル

    ユーザーテーブルリソース構成

    パラメーター説明
    ユーザーテーブル名登録されたユーザーテーブル。rec_sln_demo_user_table_v1
    時間パーティションユーザーテーブルの時間パーティションフィールド。dsyyyymmdd
    ユーザー情報構成
    ユーザー IDユーザーテーブルのユーザー ID フィールド。user_id
    登録タイムスタンプユーザーが登録した時間。register_time
    タイムスタンプ形式登録タイムスタンプの形式。unixtime
    カテゴリカル特徴量ユーザーテーブルのカテゴリカルフィールド。gender, city
    数値特徴量ユーザーテーブルの数値フィールド。age, item_cnt, follow_cnt, follower_cnt
    タグ機能タグ特徴量フィールド名。tags

    アイテムテーブル

    アイテムテーブルリソース構成

    パラメーター説明
    アイテムテーブル名登録されたアイテムテーブル。rec_sln_demo_item_table_v1
    時間パーティションアイテムテーブルの時間パーティションフィールド。dsyyyymmdd
    アイテム情報構成
    アイテム IDアイテムテーブルのアイテム ID フィールド。item_id
    作成者 IDアイテムの作成者。author
    リスティングタイムスタンプアイテムリスティングタイムスタンプフィールド。pub_time
    タイムスタンプ形式リスティングタイムスタンプの形式。unixtime
    カテゴリカル特徴量アイテムテーブルのカテゴリカルフィールド。category
    数値特徴量アイテムテーブルの数値フィールド。click_count, praise_count
  3. [特徴量構成] ノードで、次のパラメーターを設定し、[特徴量生成] をクリックし、特徴量バージョンを設定して、[次へ] をクリックします。[特徴量生成] をクリックすると、システムがユーザーとアイテムの統計的特徴量を導出します。このチュートリアルでは、デフォルト設定で問題ありません。導出された特徴量をカスタマイズするには、特徴量構成をご参照ください。

    リソース構成

    パラメーター説明
    共通統計期間バッチ特徴量生成の時間ウィンドウ。このチュートリアルでは 3、7、15 日を使用します。ユーザー行動量が少ない場合は、21 日を試してください。3,7,15
    主要行動含める行動イベント。インプレッション (expr)、次に click、次に praise の順に追加します。expr, click, praise
  4. [再現率の構成] ノードで、対象の再現率カテゴリの横にある [追加] をクリックし、パラメーターを設定し、[確認] をクリックし、次に [次へ] をクリックします。

    以下のセクションでは、各リコール手法について説明します。迅速なデプロイメントを行うには、[グローバルホットリコール] および etrec u2i リコール のみを設定してください。残りの手法は参考用です。#### グローバルホットリコール グローバルホットリコールは、クリックイベントの統計に基づいて、人気のあるアイテム(top_n アイテム)のランキング付きリストを生成します。DataWorks にコードをデプロイした後、スコアリング数式または対象イベントを変更できます。スコアリング数式は次のとおりです:

    リソース構成

    グローバルホットリコール

    グローバルホットリコールは、クリックイベントの統計に基づいて、人気アイテムのランキングリスト (top_n アイテム) を生成します。コードを DataWorks にデプロイした後、スコアリング数式やターゲットイベントを変更できます。

    スコアリング数式は以下の通りです:

    click_uv * click_uv / (expr + adj_factor) * exp(-item_publish_days / fresh_decay_denom)

    次に示すとおり:

    • click_uv:同じクリック率 (CTR) の場合、クリック数が多いほど人気度が高いことを示します。

    • click_uv / (expr + adj_factor):平滑化された CTR です。click_uv はクリックしたユニークユーザー数、expr はインプレッション数です。調整係数 adj_factor は、分母がゼロになるのを防ぎ、インプレッション数が少ない場合に CTR を補正します。

    • exp(-item_publish_days / fresh_decay_denom):古いアイテムのスコアを減らすための新鮮さのペナルティです。item_publish_days は公開からの経過日数です。

    image

    etrec u2i リコール

    etrec はアイテムベースの協調フィルタリングアルゴリズムです。詳細については、「協調フィルタリング etrec」をご参照ください。

    image

    パラメーター説明
    トレーニング日数トレーニングに使用される動作ログの日数です。デフォルト:30。ログのボリュームに応じて調整してください。
    リコール数オフラインで生成されるユーザーとアイテムのペアの最終的な数です。
    U2Iトリガーユーザーが操作 (クリック、お気に入り登録、購入など) したアイテムです。インプレッションのみのアイテムは含めないでください。
    動作タイムウィンドウ収集する動作データの日数です。デフォルト:15。
    動作時間減衰係数0 から 1 の間の値です。値が大きいほど、過去の動作の減衰が速くなり、トリガーアイテムを構築する際の重みが減少します。
    トリガー選択数etrec からの i2i データとデカルト積を実行するために使用される、ユーザーあたりのアイテム ID の数です。通常は 10 から 50 の間の値が使用されます。トリガーが多すぎると、候補セットが大きくなりすぎます。
    U2i 動作の重みインプレッションイベントの重みを 0 に設定するか、未設定のままにします。
    I2I モデル設定etrec モデルのパラメーターです。詳細については、「協調フィルタリング etrec」をご参照ください。関連アイテムの選択数を高く設定しすぎないようにしてください。image

    グループ化ホットリコール

    属性グループ (都市や性別など) ごとにランキングを設定し、初期のパーソナライゼーションを提供します。以下の例では、性別と数値属性のバケット化された値の組み合わせをグループとして使用しています。

    image

    Swing u2i リコール

    Swing は、User-Item-User の原則に基づいてアイテムの類似度を測定します。

    image

    image

    ベクターリコール

    利用可能なベクターリコールのメソッドは、DSSMMIND の 2 種類です。

    リコールターゲットを以下のように設定します:

    • リコールターゲット名is_click

    • リコールターゲットの選択max(if(event='click', 1, 0))

    以下の SQL はリコールターゲットを生成します:

    select max(if(event='click',1,0)) is_click, ...
    from ${behavior_table}
    where dt between ${bizdate_start} and ${bizdate_end}
    group by req_id, user_id, item

    以下に示すとおり:

    • ${behavior_table}:動作テーブルです。

    • ${bizdate_start}:動作タイムウィンドウの開始日です。

    • event:動作テーブルのイベントフィールドです。ご利用の特定のフィールドに基づいて値を選択してください。

    • is_click:ターゲット名です。

    埋め込みディメンションの数式:

    EMB_SQRT4_STEP8: (8 + Pow(count, 0.25)) / 8) * 8
    EMB_SQRT4_STEP4: (4 + Pow(count, 0.25)) / 4) * 4
    EMB_LN_STEP8:    (8 + Log(count + 1)) / 8) * 8
    EMB_LN_STEP4:    (4 + Log(count + 1)) / 4) * 4

    特徴量の値の数が多い場合は、Log 関数を使用します。

    image

    image

    コールドスタートリコール

    DropoutNet は、ヘッドユーザーやアイテム、ロングテールや新規のユーザーやアイテムに適したデュアルタワーリコールモデル (ユーザータワー + アイテムタワー) です。詳細については、「DropoutNet」をご参照ください。

    image

    グローバルホットフォールバックリコール

    グローバルホットフォールバックリコールはセーフティネットとして機能します。プライマリリコールエンジンに障害が発生した場合、Redis に保存されている事前計算された候補セットを返します。その出力は単一行のデータです。

    image

    協調メトリック学習 i2i リコール

    協調メトリック学習 I2I リコールモデルは、セッションクリックデータに基づいてアイテムの類似度を計算します。

    image

  5. 検索順位の構成」ノードで、「細かい検索順位」の横にある[追加]をクリックし、パラメーターを設定して[確認]をクリックした後、[次へ]をクリックします。

    リソース構成

    PAI-Rec は複数のランキングモデルをサポートしています。全リストについては、「ランキングモデル」をご参照ください。以下に、多目的ランキングモデルである DBMTL の構成方法を示します。

    image

    [精選ランキングのターゲット設定 (ラベル)] の横にある [追加] をクリックし、2 つのラベルを追加します:

    • ターゲット 1 image

    • ターゲット 2 (「ln」の「l」は小文字の L です) image

  6. Generate script]ノードで、[Generate Deployment Script]をクリックします。

    重要

    スクリプトが生成されると、システムはすべてのデプロイファイルが保存される OSS アドレスを生成します。このアドレスはローカルに保存してください。Migration Assistant を介して手動でデプロイする場合に必要になります。

    image

  7. スクリプトの生成が完了したら、ダイアログボックスで[OK]をクリックします。[カスタムレコメンデーションソリューション] > [デプロイメントレコード]にリダイレクトされます。生成が失敗した場合は、実行ログを確認し、エラーを解決して、スクリプトを再生成します。

ステップ 6: レコメンデーションソリューションをデプロイする

スクリプトが生成されたら、2 つの方法のいずれかを使用して DataWorks にデプロイします。

方法 1: Personalized Recommendation Platform を介してデプロイする

  1. 対象のソリューションの横にある [デプロイに進む] をクリックします。

    image

  2. [デプロイメントのプレビュー] ページで、[ファイル差分] セクションで、デプロイするファイルを選択します。初回デプロイでは、[すべて選択] をクリックし、次に、[DataWorks へのデプロイ] をクリックします。ページは [デプロイメント記録] に戻り、デプロイが進行中であることが表示されます。

    image

  3. image をクリックしてリストを更新し、デプロイステータスを確認します。

    • デプロイメントが失敗した場合は、[アクション] 列の [ログの表示] をクリックしてエラーを解決し、スクリプトを再生成して再デプロイします。

    • [デプロイメントステータス] が [成功] に変更されると、スクリプトがデプロイされます。DataWorks データ開発ページに移動して、デプロイされたコードを表示します。詳細については、「データ開発プロセスガイド」をご参照ください。

    image

  4. トレーニング用の既存データを投入するために、データバックフィルを実行します。

    1. デプロイメントレコード]ページで、正常にデプロイされたソリューションの横にある[詳細]をクリックします。

    2. [デプロイメントのプレビュー] ページで、[タスクのデータバックフィルプロセスを表示] をクリックして、バックフィル手順を確認し、データ整合性を確保します。

    3. ユーザーテーブル、アイテムテーブル、行動テーブルすべてに、トレーニング時間ウィンドウと最大特徴量時間ウィンドウの合計に等しい過去 _n_ 日間のデータが含まれていることを確認します。このチュートリアルのデモデータを使用している場合は、最新のデータパーティションを同期します。Python スクリプトでデータを生成した場合は、DataWorks オペレーションセンター経由でバックフィルします。

    4. [デプロイメントタスクの作成] をクリックします。[バックフィルタスクリスト] の下で、[タスクを順次開始] をクリックします。すべてのタスクが正常に完了するまで待ちます。タスクが失敗した場合は、[詳細] をクリックしてログを表示し、エラーを解決してタスクを再実行してから、[続行] をクリックして次に進みます。

    截屏2025-10-20 15

方法 2: Migration Assistant を使用してデプロイする

スクリプトが生成されたら、DataWorks Migration Assistant を介して手動でデプロイします。完全な手順については、「DataWorks インポートタスクを作成および表示する」をご参照ください。主要パラメーターは次のとおりです。

  • [インポート名]: コンソールに表示される指示に従って設定します。

  • [アップロード方法]: [OSS ファイル] を選択し、手順 5 の [OSS リンク] を入力して、[検証] をクリックします。

デプロイメントパッケージは、ステップ 5 で生成された OSS アドレス (例: oss://examplebucket/algoconfig/plan/1723717372/package.zip) に保存されます。OSS コンソール にログインして、ファイル URL を取得します。

image

ステップ 7: ノードのフリーズ

このチュートリアルでは、デモデータを使用します。データバックフィルが完了したら、ステップ 2 で作成した 3 つの仮想ノードをフリーズして、日次スケジュールでの実行を防ぎます。

DataWorks オペレーションセンターで、[定期タスク O&M] > [定期タスク] を選択します。ノード名 (例: rec_sln_demo_user_table_v1) を検索し、対象ノード ([Workspace.Node name]) を選択して、[一時停止 (フリーズ)] を選択します。