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

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

最終更新日:Oct 21, 2025

このトピックでは、公開データセットを使用して PAI-Rec をすぐに使い始める方法を説明します。手順に従って、特徴量エンジニアリング、リコール、カスタムレコメンデーションアルゴリズムの詳細ランキングなどの主要な機能を構成できます。その後、コードを生成し、DataWorks の対応するワークフローにデプロイできます。

前提条件

開始する前に、以下の準備を完了してください:

  • PAI を有効化します。詳細については、「PAI を有効化してデフォルトのワークスペースを作成する」をご参照ください。

  • VPC と vSwitch を作成します。詳細については、「IPv4 CIDR ブロックを持つ VPC を作成する」をご参照ください。

  • PAI-FeatureStore を有効化します。詳細については、「データソースの作成」の「前提条件」セクションをご参照ください。Hologres を有効化する必要はありません。データソースとして FeatureDB を選択します。詳細については、「オンラインストアの作成: FeatureDB」をご参照ください。

  • MaxCompute を有効化し、`project_mc` という名前の MaxCompute プロジェクトを作成します。詳細については、「MaxCompute の有効化」および「MaxCompute プロジェクトの作成」をご参照ください。

  • Object Storage Service (OSS) バケットを作成します。詳細については、「バケットの作成」をご参照ください。

  • DataWorks を有効化し、以下の操作を実行します:

    • DataWorks ワークスペースを作成します。詳細については、「ワークスペースの作成」をご参照ください。

    • DataWorks 用の Serverless リソースグループを購入します。詳細については、「Serverless リソースグループの使用」をご参照ください。このリソースグループは、PAI-FeatureStore のデータを同期し、eascmd コマンドを実行して PAI-EAS サービスを作成および更新するために使用されます。

    • DataWorks データソースを構成します:

  • FeatureStore プロジェクトと特徴エンティティを作成します。Serverless リソースグループを使用する場合は、このステップをスキップできます。DataWorks に専用のリソースグループを使用する場合は、リソースグループに FeatureStore Python SDK をインストールする必要があります。詳細については、「II. FeatureStore の作成と登録」および「FeatureStore Python SDK のインストール」をご参照ください。

  • Realtime Compute for Apache Flink を有効化します。詳細については、「Realtime Compute for Apache Flink の有効化」をご参照ください。注意: [ストレージクラス] を [OSS バケット] に設定し、[完全マネージドストレージ] には設定しないでください。Flink の OSS バケットが PAI-Rec 用に構成されたものと同じであることを確認してください。Flink は、リアルタイムのユーザー行動データを記録し、リアルタイムのユーザー特徴量を計算するために使用されます。

  • EasyRec (TensorFlow) を選択した場合、モデルはデフォルトで MaxCompute 上でトレーニングされます。

  • TorchEasyRec (PyTorch) を選択した場合、モデルはデフォルトで PAI-DLC 上でトレーニングされます。PAI-DLC 上で MaxCompute データをダウンロードするには、Data Transmission Service を有効化する必要があります。詳細については、「Data Transmission Service の専用リソースグループの購入と使用」をご参照ください。

1. PAI-Rec インスタンスを作成してサービスを初期化する

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

  2. PAI-Rec インスタンス購入ページで、以下の主要なパラメーターを構成し、[今すぐ購入] をクリックします。

    パラメーター

    説明

    リージョンとゾーン

    クラウドサービスがデプロイされているリージョン。

    サービスタイプ

    このソリューションでは [プレミアムエディション] を選択します。

    説明

    Standard Edition と比較して、Premium Edition にはデータ診断とカスタムレコメンデーションソリューション機能が追加されています。

  3. PAI-Rec コンソールにログインします。トップメニューバーで、リージョンを選択します。

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

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

    リソース構成

    パラメーター

    説明

    モデリング

    PAI ワークスペース

    作成したデフォルトの PAI ワークスペースを入力します。

    DataWorks ワークスペース

    自動生成された DataWorks ワークスペースを入力します。

    MaxCompute プロジェクト (ワークスペース)

    作成した MaxCompute プロジェクトを入力します。

    OSS バケット

    作成した OSS バケットを選択します。

    エンジン

    リアルタイムリコールエンジン

    [PAI-FeatureStore を使用] で、[はい] を選択します。

    リアルタイム特徴量クエリ

    [PAI-FeatureStore を使用] で、[はい] を選択します。

  6. 左側のナビゲーションウィンドウで、[システム構成] > [権限管理] を選択します。[アクセスサービス] タブで、各クラウドプロダクトの権限付与ステータスを確認し、アクセスが正常であることを確認します。

2. 公開データセットのクローンを作成する

1. データテーブルの同期

このソリューションの入力データは、2 つの方法で提供できます:

  1. `pai_online_project` プロジェクトから固定タイムウィンドウのデータをクローンします。この方法は、定期的なタスクスケジューリングをサポートしていません。

  2. Python スクリプトを使用してデータを生成します。DataWorks でタスクを実行して、特定の期間のデータを生成できます。

毎日のデータ生成とモデルトレーニングをスケジュールするには、2 番目の方法を使用します。指定された Python コードをデプロイして、必要なデータを生成する必要があります。詳細については、[コードを使用してデータを生成] タブをご参照ください。

固定タイムウィンドウのデータを同期する

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`

このソリューションの以降の操作は、これら 3 つのテーブルに基づいています。データはランダムに生成およびシミュレートされており、実際のビジネス上の意味はありません。そのため、トレーニングから得られる曲線下面積 (AUC) などのメトリックは低くなります。DataWorks で SQL コマンドを実行して、`pai_online_project` プロジェクトから `DataWorks_a` などの DataWorks プロジェクトにテーブルデータを同期する必要があります。手順は次のとおりです:

  1. DataWorks コンソールにログインします。トップメニューバーで、リージョンを選択します。

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

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

  4. [作成] にカーソルを合わせ、[ノードの作成] > [MaxCompute] > [ODPS SQL] を選択します。次の表の説明に従ってパラメーターを構成し、[確認] をクリックします。

    リソース構成

    パラメーター

    説明

    エンジンインスタンス

    アタッチされた MaxCompute データソースを選択します。

    ノードタイプ

    ODPS SQL を選択します。

    パス

    現在のノードのパスを選択できます。例: Business Flow/Workflow/MaxCompute

    名前

    カスタム名を入力します (例: Data)。

  5. 新しいノードセクションで、次のコードを実行して、`pai_online_project` プロジェクトから `project_mc` などの MaxCompute プロジェクトにユーザー、アイテム、および行動テーブルを同期します。このコードは、2023 年 1 月 1 日から 2023 年 2 月 16 日までのデータを同期します。

    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 > "20221231" and ds < "20230217";
    
    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 > "20221231" and ds < "20230217";
    
    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 > "20221231" and ds < "20230217";

コードを使用してデータを生成する

固定タイムウィンドウのデータを使用すると、定期的なタスクスケジューリングはサポートされません。タスクをスケジュールするには、特定の Python コードをデプロイして必要なデータを生成する必要があります。手順は次のとおりです:

  1. DataWorks コンソールで、PyODPS 3 ノードを作成します。詳細については、「MaxCompute ノードの作成と管理」をご参照ください。

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

  3. 右側のペインで、[スケジュール構成] をクリックし、パラメーターを構成してから、右上隅にある [保存] image アイコンと [送信] image アイコンをクリックします。

    • スケジューリングパラメーターを構成します:

      • 注意: `$user_table_name` を `rec_sln_demo_user_table` に、`$item_table_name` を `rec_sln_demo_item_table` に、`$behavior_table_name` を `rec_sln_demo_behavior_table` に置き換えることができます。image

    • スケジューリングの依存関係を構成します。

  4. オペレーションセンターに移動し、[定期タスク O&M] > [定期タスク] を選択します。

  5. ターゲットタスクの [操作] 列で、[データ補填] > [現在および子孫ノード] を選択します。

  6. [データ補填] パネルで、データタイムスタンプを設定し、[送信して実行] をクリックします。

    適切なデータ補填期間は 60 日です。データ整合性を確保するために、データタイムスタンプを スケジュールされたタスクの日付 - 60 に設定することをお勧めします。

2. 依存ノードの構成

コードの生成とデプロイをスムーズに行うために、事前に DataWorks プロジェクトに 3 つの SQL コードノードを追加します。これらのノードのスケジューリング依存関係をワークスペースのルートノードに構成します。すべての設定が完了したら、ノードを公開します。手順は次のとおりです:

  1. [作成] にカーソルを合わせ、[ノードの作成] > [一般] > [仮想ノード] を選択します。次の表の説明に従って 3 つの仮想ノードを作成し、[確認] をクリックします。

    リソース構成

    パラメーター

    説明

    ノードタイプ

    ノードタイプを選択します。

    仮想ノード

    パス

    現在のノードが配置されているパスを選択します。

    Workflow/Workflow/General

    名前

    同期されたデータテーブルの名前を入力します。

    • rec_sln_demo_user_table_v1

    • rec_sln_demo_item_table_v1

    • rec_sln_demo_behavior_table_v1

    image

  2. ノードを選択し、各ノードのノードコンテンツを select 1; に設定し、右側のペインで [スケジュール構成] をクリックして構成を完了します:

    • [時間プロパティ] セクションで、[再実行プロパティ][成功または失敗時に再実行] に設定します。

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

      3 つすべての仮想ノードを構成します。

      image

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

3. データの登録

カスタムレコメンデーションソリューションで特徴量エンジニアリング、リコール、およびソートアルゴリズムを構成するには、まず DataWorks プロジェクトに同期した 3 つのテーブルを登録する必要があります。手順は次のとおりです:

  1. PAI-Rec コンソールにログインします。トップメニューバーで、リージョンを選択します。

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

  3. 左側のナビゲーションウィンドウで、[カスタムレコメンデーションソリューション] > [データ受付] を選択します。[MaxCompute テーブル] タブで、[データテーブルの追加] をクリックします。次の表の説明に従って、ユーザーテーブル、アイテムテーブル、および行動テーブルを 1 つずつ追加し、[インポート開始] をクリックします。

    パラメーター

    説明

    MaxCompute プロジェクト

    作成した MaxCompute プロジェクトを選択します。

    project_mc

    MaxCompute テーブル

    DataWorks ワークスペースに同期したデータテーブルを選択します。

    • ユーザーテーブル: rec_sln_demo_user_table_v1

    • アイテムテーブル: rec_sln_demo_item_table_v1

    • 行動テーブル: rec_sln_demo_behavior_table_v1

    データテーブル名

    カスタム名を入力します。

    • ユーザーテーブル

    • アイテムテーブル

    • 行動テーブル

4. レコメンデーションシナリオの作成

レコメンデーションタスクを構成する前に、レコメンデーションシナリオを作成する必要があります。レコメンデーションシナリオの基本的な概念とトラフィック ID の意味については、「用語」をご参照ください。

左側のナビゲーションウィンドウで、[レコメンデーションシナリオ] を選択します。[シナリオの作成] をクリックし、次の表の説明に従ってレコメンデーションシナリオを作成してから、[OK] をクリックします。

リソース構成

パラメーター

説明

シナリオ名

カスタム名を入力します。

HomePage

シナリオの説明

シナリオの詳細な説明。

なし

5. アルゴリズムソリューションの作成と構成

完全な実世界のシナリオを構成するために、次のリコールと詳細ランキングの構成をお勧めします:

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

  • グローバルホットフォールバックリコール: レコメンデーション API が空のデータを返すのを防ぐために、Redis をフォールバックとして使用します。

  • グループ化ホットリコール: 都市や性別などのカテゴリ別にアイテムをリコールし、人気アイテムのレコメンデーションの精度を向上させます。

  • etrec u2i リコール: etrec 協調フィルタリングアルゴリズムに基づいています。

  • swing u2i リコール (オプション): Swing アルゴリズムに基づいています。

  • コールドスタートリコール (オプション): DropoutNet アルゴリズムを使用したコールドスタートリコール。

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

ベクターリコールまたは PDN リコールアルゴリズムは、通常、リコール段階が包括的になった後に有効になります。ベクターリコールにはベクターリコールエンジンが必要です。FeatureDB はサポートしていないため、この例ではベクターリコールを構成しません。

このトピックは、構成とデプロイのプロセスをガイドすることを目的としています。したがって、リコール構成段階では、グローバルホットリコールと RECommender (eTREC、協調フィルタリングの実装) の u2i リコール戦略のみを構成します。ランキング構成では、エクスペリエンスを最適化するために詳細ランキングを選択します。手順は次のとおりです:

  1. 左側のナビゲーションウィンドウで、[カスタムレコメンデーションソリューション] > [ソリューション構成] を選択します。作成したシナリオを選択し、[レコメンデーションソリューションの作成] をクリックし、次の表の説明に従ってソリューションを作成してから、[保存してアルゴリズムソリューションを構成] をクリックします。

    説明されていないパラメーターはデフォルト値のままにします。詳細については、「データテーブル構成」をご参照ください。

    リソース構成

    パラメーター

    説明

    ソリューション名

    カスタム名を入力します。

    シナリオ名

    作成したレコメンデーションシナリオを選択します。

    オフラインストア

    レコメンデーションシナリオに関連付けられている MaxCompute プロジェクトを選択します。

    DataWorks ワークスペース

    レコメンデーションシナリオに関連付けられている DataWorks ワークスペースを選択します。

    ワークフロー名

    これは、レコメンデーションソリューションスクリプトをデプロイするときに DataWorks で作成されるワークフローの名前です。Flow などのカスタム名を入力できます。

    StorageAPI 構成

    北京や上海など、中国国内のリージョンでは、「StorageAPI」を選択できます。これは従量課金の Data Transmission Service です。

    中国 (香港)、シンガポール、フランクフルトなど、中国国外のリージョンでは、まずData Transmission Service の専用リソースグループを購入して使用する必要があります (従量課金のオプションが利用できない場合は、サブスクリプションの Data Transmission Service を購入する必要があります)。次に、サブスクリプションの Data Transmission Service の名前を更新して選択します。DataWorks の PAI-DLC の TorchEasyRec トレーニングタスクに、-odps_data_quota_name ot_xxxx_p#ot_yyyy のような形式でパラメーターを追加します。

    slim_mode

    購入した DataWorks エディションに、移行アシスタントによってインポートされるコードパッケージのサイズ制限がある場合は、この機能を使用して、サイズ制限を超えるコードパッケージを手動でアップロードできます。このソリューションでは、[いいえ] を選択します。

    OSS バケット

    レコメンデーションシナリオに関連付けられている OSS バケットを選択します。

    プロジェクト

    作成した FeatureStore プロジェクトを選択します。オンラインストアには、FeatureDB を選択します。

    ユーザーエンティティ

    FeatureStore プロジェクトに対応するユーザー特徴エンティティ `user` を選択します。

    アイテムエンティティ

    FeatureStore プロジェクトに対応するアイテム特徴エンティティ `item` を選択します。

  2. [データテーブル構成] ノードで、ターゲットデータテーブルの右側にある [追加] をクリックします。次の表の説明に従って、行動ログテーブルユーザーテーブル、およびアイテムテーブルを構成します。パーティション、イベント、特徴量、およびタイムスタンプのフィールドを設定し、[次へ] をクリックします。

    説明されていないパラメーターはデフォルト値のままにします。詳細については、「データテーブル構成」をご参照ください。

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

    行動ログテーブルを構成する際は、実際のデータ内容に基づいて調整します。このトピックでは、行動ログには、リクエスト ID、一意のユーザー ID、行動が発生したページ、行動タイムスタンプ、行動カテゴリなどのコア情報が含まれています。テーブルにさらに豊富なデータディメンションが含まれている場合は、この情報をユーザーとアイテムで分類し、後続の特徴量エンジニアリングのためにユーザー情報またはアイテム情報で構成することをお勧めします。

    パラメーター

    説明

    行動テーブル名

    登録済みの行動テーブルを選択します。

    rec_sln_demo_behavior_table_v1

    時間パーティション

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

    ds

    yyyymmdd

    行動情報構成

    リクエスト ID

    ログ内の各レコメンデーションリクエストをマークする 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

    時間パーティション

    ユーザーテーブルの時間パーティションフィールド。

    ds

    yyyymmdd

    ユーザー情報構成

    ユーザー ID

    ユーザーテーブル内のユーザー ID フィールド。

    user_id

    登録タイムスタンプ

    ユーザーが登録した時刻。

    register_time

    タイムスタンプフォーマット

    登録タイムスタンプとともに使用されます。

    unixtime

    カテゴリ特徴量

    ユーザーテーブル内のカテゴリフィールド (例: 性別、年齢層、都市)。

    gender, city

    数値特徴量

    ユーザーテーブル内の数値フィールド (例: 作品数、ポイント)。

    age, item_cnt, follow_cnt, follower_cnt

    タグ特徴量

    タグ特徴量フィールドの名前。

    tags

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

    パラメーター

    説明

    アイテムテーブル名

    登録済みのアイテムテーブルを選択します。

    rec_sln_demo_item_table_v1

    時間パーティション

    アイテムテーブルの時間パーティションフィールド。

    ds

    yyyymmdd

    アイテム情報構成

    アイテム ID

    アイテムテーブル内のアイテム ID フィールド。

    item_id

    作成者 ID

    アイテムの作成者。

    author

    出品タイムスタンプ

    アイテム出品タイムスタンプフィールドの名前。

    pub_time

    タイムスタンプフォーマット

    出品タイムスタンプとともに使用されます。

    unixtime

    カテゴリ特徴量

    アイテムテーブル内のカテゴリフィールド (例: カテゴリ)。

    category

    数値特徴量

    アイテムテーブル内の数値フィールド (例: 価格、総売上、いいね数)。

    click_count, praise_count

  3. [特徴量設定] ノードで、次の表に従ってパラメーターを設定し、[特徴量を生成] をクリックし、特徴量バージョンを設定し、次に [次へ] をクリックします。

    [特徴量の生成] をクリックすると、ユーザーとアイテムに対してさまざまな統計的特徴量が派生します。このソリューションでは、派生した特徴量を編集せず、デフォルト設定のままにします。必要に応じて、派生した特徴量を編集できます。詳細については、「特徴量構成」をご参照ください。

    リソース構成

    パラメーター

    説明

    共通統計期間

    この構成は、バッチ特徴量生成に使用されます。特徴量が多すぎないようにするため、このソリューションでは統計期間を 3、7、15 日に設定し、それぞれ過去 3、7、15 日のユーザーとアイテムの統計を計算します。

    ユーザーの行動数が少ない場合は、21 日に設定してみてください。

    3,7,15

    主要な行動

    構成された行動イベントを選択します。expr (インプレッション)、click、praise の順に追加することをお勧めします。

    expr, click, praise

  4. [リコール構成] ノードで、ターゲットカテゴリの右側にある [追加] をクリックし、パラメーターを構成して [確認] をクリックしてから、[次へ] をクリックします。

    以下のセクションでは、複数のリコール構成方法について説明します。デプロイプロセスを迅速にガイドするために、グローバルホットリコールetrec u2i リコールのみを構成できます。ベクターリコールや協調メトリックリコールなどの他の方法は、参考用です。

    リソース構成

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

    グローバルホットリコールは、クリックイベントの統計に基づいて人気アイテムのランキングを生成します (`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 を調整するために追加されます。インプレッションが少ない場合、CTR は 1 に近づきます。`adj_factor` を追加すると、CTR は 1 から離れ、真の CTR に近づきます。

    • `exp(-item_publish_days/fresh_decay_denom)`: 以前に公開されたアイテムにペナルティを課します。`item_publish_days` は、公開日から現在までの日数です。

    image

    etrec u2i リコール

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

    image

    パラメーター

    説明

    トレーニング日数

    トレーニングに使用される行動ログの日数。デフォルトは 30 日です。ログの量に応じてこの値を増減できます。

    リコール数

    オフラインで生成される最終的なユーザー対アイテムのペアの数。

    U2ITrigger

    ユーザーがインタラクションしたアイテム。たとえば、ユーザーがクリック、お気に入り、または購入したアイテム。これには通常、インプレッションのみのアイテムは含まれません。

    行動タイムウィンドウ

    収集する行動データの日数。デフォルトは 15 で、過去 15 日間を意味します。

    行動時間減衰係数

    0 から 1 の間の値。値が大きいほど、過去の行動がより急速に減衰し、trigger_item の構築における重みが小さくなることを示します。

    トリガー選択数

    etrec によって生成された i2i データとデカルト積を実行するために、各ユーザーに対して取得するアイテム ID の数。10 から 50 の間の値をお勧めします。トリガーの数が多すぎると、リコールの候補アイテムが多すぎることになります。

    U2i 行動の重み

    インプレッションイベントは設定しないか、重みを 0 に設定する必要があることに注意してください。インプレッションイベントを設定しないことをお勧めします。これは、ユーザーのインプレッションデータをスキップすることを意味します。

    I2I モデル設定

    etrec のパラメーター設定。詳細については、「協調フィルタリング etrec」をご参照ください。関連アイテムの選択数を高く設定しすぎないことをお勧めします。image

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

    都市や性別などの属性に基づいてランキングを設定し、初期のパーソナライズされたリコールを提供できます。次の例では、性別と数値のバケット番号の組み合わせがグループとして使用されます。

    image

    swing u2i リコール

    Swing はアイテムの関連性を計算する方法で、User-Item-User の原則に基づいてアイテムの類似性を測定します。image

    image

    ベクターリコール

    2 つのベクターリコール方法が提供されています: DSSMMIND。詳細については、以下をご参照ください:

    • リコールターゲット名: 通常、アイテムがクリックされたかどうかを指します。これを `is_click` に設定します。

    • リコールターゲット選択: これを max(if(event='click', 1, 0)) に設定します。

      実行には次のコードを参照できます:

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

      ここで:

      • `${behavior_table}`: 行動テーブル。

      • `${bizdate_start}`: 行動タイムウィンドウの開始日。

      • `event`: `${behavior_table}` テーブルのイベントフィールド。特定のフィールドに基づいて値を選択します。

      • `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

      ここで、`count` は特徴量列挙値の数です。特徴量値の数が多い場合は `Log` 関数を使用します。

    image

    image

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

    DSSM デュアルタワーリコールモデルと同様に、ユーザータワーとアイテムタワーに分かれています。DropoutNet は、ヘッドユーザーとアイテム、およびロングテール、さらには全く新しいユーザーとアイテムに適したリコールモデルです。

    image

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

    グローバルホットフォールバックリコールは、基本的にグローバルホットリコールと同じです。その主な目的は、グローバルホットリコールエンジンが失敗した場合に、十分な候補セットをリコールできるようにすることです。そのため、Redis に保存され、この出力には 1 行のデータしかありません。image

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

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

  5. [ランキング構成] ノードで、[詳細ランキング] の右側にある [追加] をクリックし、次の表の説明に従ってパラメーターを構成し、[確認] をクリックしてから、[次へ] をクリックします。

    リソース構成

    プラットフォームは複数のランキングモデルを提供しています。詳細については、「ランキングモデル」をご参照ください。以下のセクションでは、DBMTL 多目的ランキングモデルのランキングパラメーターを設定する方法について説明します。

    image

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

    • ターゲット 1image

    • ターゲット 2 (注意: 'ln' の 'l' は小文字の L です)image

  6. [スクリプトの生成] ノードで、[デプロイメントスクリプトの生成] をクリックします。image

    重要

    スクリプトが正常に生成されると、システムは上の図に示すように OSS アドレスを生成します。この OSS パスには、デプロイするすべてのファイルが保存されます。後でスクリプトを手動でデプロイするために、このアドレスをローカルに保存できます。

  7. スクリプトが生成されたら、ダイアログボックスで [OK] をクリックします。[カスタムレコメンデーションソリューション] > [デプロイメントレコード] ページにリダイレクトされます。

    生成に失敗した場合は、実行ログを表示し、特定のエラーを分析して解決してから、スクリプトを再度生成します。

6. レコメンデーションソリューションのデプロイ

スクリプトが生成された後、2 つの方法で DataWorks にデプロイできます。

方法 1: エンドツーエンドレコメンデーションシステム開発プラットフォームを介したデプロイ

  1. ターゲットソリューションの右側にある [デプロイに進む] をクリックします。image

  2. [デプロイプレビュー] ページの [ファイル差分] セクションで、デプロイするファイルを選択します。これが最初のデプロイであるため、[すべて選択] をクリックし、次に [DataWorks にデプロイ] をクリックします。

    ページは自動的に [デプロイメントレコード] ページに戻り、スクリプトのデプロイが進行中であることが示されます。image

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

    • デプロイに失敗した場合は、[操作] 列の [ログの表示] をクリックし、特定のエラーを分析して解決してから、スクリプトを再生成してデプロイします。

    • [デプロイステータス][成功] に変わると、スクリプトは正常にデプロイされます。このソリューション用に構成された DataWorks ワークスペースのデータ開発ページに移動して、デプロイされたコードを表示できます。詳細については、「データ開発プロセスガイド」をご参照ください。image

  4. タスクデータのバックフィルプロセスを表示します。

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

    2. [デプロイプレビュー] ページで、[タスクデータのバックフィルプロセスを表示] をクリックして、バックフィルプロセスと関連する指示を理解し、データの整合性を確保します。截屏2025-10-20 14

方法 2: 移行アシスタントを使用したデプロイ

スクリプトが正常に生成された後、DataWorks コンソールに移動し、移行アシスタント機能を使用してスクリプトを手動でデプロイすることもできます。主要なパラメーターは以下に説明されています。その他の操作については、「DataWorks インポートタスクの作成と表示」をご参照ください。

  • インポート名: コンソールのプロンプトに従って設定します。

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

    デプロイファイルは、ステップ 5 で生成された OSS アドレス (例: oss://examplebucket/algoconfig/plan/1723717372/package.zip) に保存されます。OSS コンソールにログインし、以下の手順に従って対応するファイルの URL を取得できます。image