PAI-Rec を使用してレコメンデーションシステムを構築する前に、モデルのトレーニングとキャリブレーションのために、基本データを準備し、ユーザーの特徴を分析する必要があります。このトピックでは、典型的なシナリオのデータ仕様について説明します。
背景情報
機能データには、一般的に次の基本テーブルが含まれます。
ユーザーテーブル:
ユーザーに関連する機能データが含まれています。このテーブルは、ユーザーの個人情報、好み、行動習慣を記述するために使用されます。
ユーザーテーブル内のユーザー ID は一意です。ユーザーテーブルと行動テーブルは、一意の ID を使用して関連付けることができます。ユーザーテーブルには、年齢、性別、都市、ポイント、登録時間、ユーザタグなどの基本的なユーザー情報が含まれている必要があります。各パーティションは 1 日を表し、すべてのユーザー情報を記録します。
アイテムテーブル:
おすすめのアイテムに関する情報が含まれています。このテーブルは、アイテムのプロパティと特性を記述するために使用されます。
アイテムテーブル内のアイテム ID は一意です。アイテムテーブルと行動テーブルは、一意の ID を使用して関連付けることができます。アイテムテーブルには、レベル 1 カテゴリ、レベル 2 カテゴリ、価格、タイトル、色、仕様、掲載時間、作成者 ID、フォロワー数などの基本的なアイテム情報が含まれている必要があります。各パーティションは 1 日を表し、すべてのアイテム情報を記録します。
行動テーブル:
ユーザーとアイテム間の行動が含まれており、ユーザーがアイテムに対してどのような行動をいつ行ったかを詳述しています。
前提条件
手順
すぐに使い始められるように、PAI-Rec は MaxCompute の pai_online_project プロジェクトに 3 つのテーブルを用意しています。使用するためにデータを自分のプロジェクトに複製できます。
DataWorks コンソール にログインします。左側のナビゲーションウィンドウで、[データ開発 & O&M] > [データ開発] を選択します。
[データ開発] ページで、作成した DataWorks ワークスペースを選択し、[データ開発に移動] をクリックします。
表示されたページで、ポインタを [作成] に移動し、[ノードの作成] > [MaxCompute] > [ODPS SQL] を選択します。表示されたダイアログボックスで、ノードパラメータを設定し、[確認] をクリックします。
作成したノードのタブで、次の SQL 文を実行して、ユーザーテーブル、アイテムテーブル、ラベルテーブルを pai_online_project プロジェクトから MaxCompute プロジェクトに同期します。
-- ユーザーテーブル CREATE TABLE IF NOT EXISTS rec_sln_demo_user_table( 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 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( item_id BIGINT COMMENT 'コンテンツID', duration DOUBLE COMMENT '動画の長さ', title STRING COMMENT 'タイトル', category STRING COMMENT 'レベル 1 タグ', 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 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( 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 PARTITION(ds) SELECT * FROM pai_online_project.rec_sln_demo_behavior_table WHERE ds > "20221231" and ds < "20230217";
また、付録: 一般的なシナリオのデータ仕様 を参照して、独自のユーザーテーブル、アイテムテーブル、行動テーブルを準備することもできます。
付録: 一般的なシナリオのデータ仕様
E コマースレコメンデーションシナリオ
次の表に、E コマースシナリオにおける ユーザーテーブル、アイテムテーブル、行動テーブル の推奨フィールドを示します。網羅されていない他の機能フィールドがある場合は、自分で追加できます。フィールドがより完全で豊富であるほど、レコメンデーションの効果は向上します。フィールド名は、テーブルのフィールド名と完全に一致する必要はありません。
ユーザーテーブル
アイテムテーブル
行動テーブル
コンテンツ推薦シナリオ
次の表に、コンテンツ推奨シナリオにおける user table、item table、および behavior table の推奨フィールドを示します。網羅されていない他の特徴フィールドがある場合は、自分で追加できます。フィールドが完全でリッチであるほど、推奨効果は向上します。フィールド名は、表内のフィールド名と完全に一致する必要はありません。
ユーザーテーブル
アイテムテーブル
行動テーブル
動画のおすすめ
次の表は、動画レコメンデーション シナリオにおける user、item、および behavior テーブルの推奨フィールドについて説明しています。より多くのフィールドを設定すると、より良いレコメンデーション結果が得られます。また、次の表に記載されていない追加のフィールドを提供して、結果をさらに改善することもできます。フィールド名は、次の表のものと同じである必要はありません。
ユーザーテーブル
アイテムテーブル
動作テーブル
ライブストリーミングのおすすめ
次の表は、ライブストリーミングレコメンデーションシナリオにおけるユーザー、アイテム、および動作テーブルの推奨フィールドについて説明しています。より多くのフィールドを設定すると、より良いレコメンデーション結果が得られます。また、結果をさらに向上させるために、以下の表に記載されていないフィールドを追加することもできます。 フィールド名は、以下の表と同じである必要はありません。