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

Platform For AI:フィーチャーストアプロジェクトの構成

最終更新日:Mar 20, 2026

FeatureStore プロジェクトは、1 つのオフラインデータソースと 1 つのオンラインデータソースに接続します。各プロジェクトは相互に分離されており、プロジェクト内ではすべてのオフラインおよびオンライン特徴量テーブルが共有されます。

前提条件

  • オフラインデータソースおよびオンラインストアを作成済みである必要があります。詳細については、「新しいデータソースの作成」をご参照ください。

  • ラベルテーブルは、オフラインストアに保存されました。

    ラベルテーブルには、モデルトレーニングで使用されるラベルが含まれます。これには、モデルトレーニングのターゲット属性および特徴量エンティティにリンクする JoinId が含まれます。レコメンデーションシナリオでは、このテーブルは通常、user_id、item_id、または request_id などのフィールドでグループ化された動作テーブルから派生します。

    ラベルテーブルの例(詳細を表示するにはクリック)

    以下の SQL ステートメントはサンプルのラベルテーブルを作成します。ラベルテーブルにおける一般的なフィールドを理解するためにご活用ください。

    CREATE TABLE IF NOT EXISTS rec_sln_demo_fs_rec_sln_demo_sorting_label_table_v3 
    (
        request_id string
        ,user_id string
        ,page string
        ,net_type string
        ,day_h bigint COMMENT '動作が発生した日の時刻'
        ,week_day bigint COMMENT '動作が発生した曜日'
        ,day_min string
        ,event_unix_time bigint
        ,item_id string
        ,playtime double
        ,is_click BIGINT
        ,ln_playtime DOUBLE
        ,is_praise BIGINT
    )
    PARTITIONED BY 
    (
        ds string
    )
    LIFECYCLE 90
    ;

プロジェクトの作成

  1. PAI コンソール にログインします。左側のナビゲーションウィンドウで、Data Preparation > FeatureStore をクリックします。ワークスペースを選択し、フィーチャーストアへ移動 をクリックします。

  2. Create Project をクリックします。ダイアログボックスでプロジェクトのパラメーターを設定します。

    主なパラメーターを以下に示します。

    パラメーター

    説明

    Offline Store

    既存のオフラインデータソースを選択します。

    Online Store

    既存のオンラインデータソースを選択します。

    Offline Table Lifecycle

    FeatureStore が MaxCompute に自動的に作成・保存するテーブルのライフサイクルです。

  3. Submit をクリックして、プロジェクトの作成を完了します。

特徴量エンティティの作成

特徴量エンティティは、関連する特徴量テーブルをグループ化します。たとえば、レコメンデーションシステムでは、user および item の 2 つの特徴量エンティティを定義できます。

  1. 特徴量プロジェクト一覧で、プロジェクト名をクリックしてプロジェクトの詳細ページを開きます。

  2. Feature Entity タブで、エンティティの作成 をクリックします。ダイアログボックスで特徴量エンティティのパラメーターを設定します。

    主なパラメーターの設定ガイドを以下に示します。

    パラメーター

    説明

    Feature Entity Name

    任意の名前を入力します。レコメンデーションシナリオでは、user および item という名前の 2 つの特徴量エンティティを作成します。

    Join Id

    Join Id は、特徴量テーブル内のフィールドであり、特徴量ビューを特徴量エンティティにリンクします。各特徴量エンティティには 1 つの Join Id があります。複数の特徴量ビューを結合する際に使用します。

    各特徴量ビューには、その特徴量データをフェッチするためのプライマリキー(インデックスキー)があります。インデックスキーの名前は、Join Id の名前と異なる場合があります。

    レコメンデーションシナリオでは、Join Id を user テーブルおよび item テーブルのプライマリキー(user_id および item_id)に設定します。

  3. Submit をクリックして、作成を完了します。

特徴量ビューの作成

特徴量ビューは、一連の特徴量およびその派生特徴量を保持します。これは、特徴量エンティティに対する完全な特徴量セットのサブセットを表し、オフラインおよびオンラインの特徴量テーブルの両方にマップされます。

  1. プロジェクトの詳細ページで、特徴量ビュー タブに移動し、Create Feature View をクリックします。

  2. ダイアログボックスでビューのパラメーターを設定します。Submit をクリックして、作成を完了します。

    • オフライン特徴量ビューの作成:オフライン特徴量データを FeatureStore に登録します。

    • リアルタイム特徴量ビューの作成:リアルタイム特徴量 データを FeatureStore に登録します。

オフライン特徴量ビューの作成

主な設定パラメーターを以下に示します。

パラメーター

説明

Type

FeatureStore にオフライン特徴量データを特徴量ビューとして登録するには、Offline を選択します。

Write Mode

  • Use Offline Table:オフラインデータソースに格納されている既存の特徴量テーブルのスキーマを使用します。コンソールでデータソースおよびテーブル名を選択し、ビューのフィールドプロパティを設定します。

  • Customize Table Schema:このオフライン特徴量ビュー向けに新しいスキーマを定義します。フィールドを手動で追加し、プロンプトに従ってプロパティを設定します。

設定するフィールドプロパティには、以下が含まれます:

  • Primary Key:ビューのプライマリキーとして使用するフィールドを設定します。

  • Event Time および Partition Field:特徴量の時間範囲を示します。これらのうち少なくとも 1 つを設定する必要があります。

Synchronize Online Feature Table

このビューから特徴量データを、同じ特徴量プロジェクト内のオンラインデータソースに自動的に同期するかどうかを選択します。

Feature Entity

この特徴量ビューに関連付ける特徴量エンティティを選択します。

説明

1 つの特徴量エンティティに複数の特徴量ビューを関連付けることができます。

Feature Lifecycle

この特徴量ビューのライフサイクルを設定します。設定後、新しく書き込まれるリアルタイムデータにはこのライフサイクルが適用されます。

リアルタイム特徴量ビューの作成

主な設定パラメーターを以下に示します。

パラメーター

説明

View Name

コンソールインターフェイスのプロンプトに従って、カスタム設定を行います。

Type

FeatureStore にオンライン特徴量データを特徴量ビューとして登録するには、Real Time を選択します。

Feature Entity

この特徴量ビューに関連付ける特徴量エンティティを選択します。

説明

1 つの特徴量エンティティに複数の特徴量ビューを関連付けることができます。

Write Mode

リアルタイム特徴量ビューでは、Customize Table Schema のみがサポートされます。このリアルタイム特徴量ビュー向けに新しいスキーマを定義します。

このオプションを選択した後、フィールドを手動で追加し、プロンプトに従ってプロパティを設定します。

設定するフィールドプロパティには、以下が含まれます:

  • Primary Key:ビューのプライマリキーとして使用するフィールドを設定します。

  • Event Time および Partition Field:特徴量の時間範囲を示します。これらのうち少なくとも 1 つを設定する必要があります。

Feature Field

必要なフィールド数を入力します。

  • FeatureDB を使用する場合、イベント時間フィールドを入力する必要はありません。FeatureDB がデフォルトでイベント時間フィールドを追加し、その値を実際の特徴量書き込み時刻に設定します。また、event_time フィールドを定義し、特徴量を書き込む際にその値を設定することもできます。

  • FeatureDB を使用しない場合、イベント時間フィールドを入力します。その後、このフィールドに対して値を書き込みます。これらの値は、オフラインサンプルのエクスポート時に使用されます。

Feature Lifecycle

1 より大きい値を設定します。デフォルト値は 30 日です。

Advanced Settings

JSON 形式で高度なオプションを設定します。

ラベルテーブルの作成

ラベルテーブルには、モデルトレーニングで使用されるラベルが格納されます。これには、モデルトレーニングのターゲット属性および特徴量エンティティの結合 ID が含まれます。レコメンデーションシナリオでは、通常、GROUP BY user_id, item_id, または request_id などの操作を用いて動作テーブルから生成されます。

  1. プロジェクトの詳細ページで、Label Table タブに移動し、Create Label Table をクリックします。

  2. ダイアログボックスで、ラベルテーブルのデータソースおよびテーブル名を選択します。

  3. ラベルテーブルのフィールドを設定します。Submit をクリックして完了します。

    フィールド設定

    説明

    Feature Field

    ラベルテーブルに特徴量が含まれている場合、対応するフィールドを特徴量フィールドとして選択します。

    FG Reserved Fields

    このフィールドは、現時点では設定する必要はありません。

    Event Time

    動作が発生した時刻を記録するタイムスタンプフィールドを選択します。

    Label Field

    ラベルテーブル内のラベルフィールドを選択します。

    Partition Field

    ラベルテーブル内のパーティションフィールドを選択します。

モデル特徴量の作成

モデル特徴量は、トレーニングおよび公開時に使用される特徴量のコレクションです。特徴量を選択してモデルを作成すると、MaxCompute がオフライントレーニング用の トレインセット テーブルを作成します。その後、PAI-Rec 内で EAS および FeatureStore からモデル特徴量を指定することで、推論時の特徴量データを自動的に取得できます。

  1. プロジェクトの詳細ページで、Model Features タブに移動し、Create Model Feature をクリックします。

  2. ダイアログボックスでモデル特徴量のパラメーターを設定します。Submit をクリックして完了します。

    パラメーター

    説明

    Select Feature

    現在のオフラインビューから特徴量を選択し、エイリアスを割り当てます。

    Label Table Name

    既存のラベルテーブル名を選択します。

    Export Table Name

    送信後、FeatureStore が MaxCompute にトレインセットテーブルを作成し、オフライントレーニングに使用します。

リアルタイム特徴量の概要

用語

リアルタイム特徴量は、ミリ秒単位で急速に変化します。サーバー側で迅速に生成または更新され、処理および意思決定に即座に使用されます。リアルタイム特徴量は、通常、リアルタイムデータストリームシステムで構築および消費され、高い適時性と高速な応答が求められます。

リアルタイム機能は、データストリームから抽出されます。Flink などのストリーム処理システムが、現在の状況を反映するためにそれらを計算および生成します。パイプライン全体は、高性能および低遅延を実現する必要があります。リアルタイム機能は動的に更新され、システムによって継続的に再計算されます。

利用シーン

リアルタイム特徴量の一般的なユースケースには、以下のようなものがあります。

  • オンライン広告:ユーザーの閲覧行動に基づき、広告コンテンツをリアルタイムで調整します。

  • 不正検出:疑わしい金融取引をリアルタイムで検出し、アラートをトリガーしたり取引をブロックしたりします。

  • パーソナライズされたレコメンデーション:現在のアクティビティおよび履歴データを用いて、レコメンデーションリストをリアルタイムで更新します。

  • IoT システム:デバイスをリアルタイムで監視および制御します。環境の変化に対応するためにリアルタイム特徴量を生成・使用します。

レコメンデーションおよび広告システムにおけるリアルタイム特徴量

リアルタイム特徴量の書き込みプロセス

FeatureStore でリアルタイム特徴量ビューを作成すると、FeatureStore はオンラインデータエンジンに一致するテーブルを自動的に作成します。このテーブルは、リアルタイム特徴量データを格納および提供します。FeatureDB、TableStore、Hologres などのデータソースを使用する場合、バックエンドは Alibaba Cloud DataHub に接続します。DataHub がデータを Flink に転送し、Flink がリアルタイム特徴量を処理・計算してオンラインデータソースのテーブルに結果を書き込みます。正確なテーブル名は、リアルタイム特徴量ビューの詳細ページで確認できます。

オンライン読み取り機能

EasyRec Processor を使用する場合、その組み込みの FeatureStore C++ SDK がモデル特徴量名 (fs_model) を解析し、リアルタイム特徴量を特定して自動的に読み取ります。FeatureStore Go SDK または Java SDK を使用する場合は、SDK のドキュメントに従って特徴量の読み取りを設定します。

オフラインサンプルのエクスポート

FeatureStore は、特徴量ビューに対応するオフラインデータエンジンのテーブルを自動的に結合し、その結果をエクスポートします。リアルタイム特徴量ビューの場合、FeatureDB はオンラインモードのデータを自動的にオフラインデータエンジンのオフラインテーブルに書き込みます。FeatureDB を使用しない場合、オフラインデータエンジンのオフラインテーブルにデータを書き込むタスクを作成する必要があります。あるいは、PAI-Rec のレコメンデーションアルゴリズムを使用して、オフラインで疑似リアルタイムデータを生成し、これを対応するリアルタイム特徴量ビューのオフラインテーブルのデータソースとして使用できます。

FeatureStore におけるリアルタイム特徴量ビュー

リアルタイム特徴量ビューのワークフロー

image

FeatureStore のリアルタイム特徴量ビューは、リアルタイムで変化する特徴量を処理します。DataHub および Flink を使用して特徴量をオンラインストアに書き込み、EasyRec Processor が特徴量をポーリングするか、FeatureStore SDK が直接読み取ります。これにより、ダウンストリームサービスがミリ秒単位の特徴量変化を検出できます。

エクスポート操作

モデル特徴量の作成には、複数のリアルタイムおよびオフライン特徴量ビューを選択できます。モデル特徴量を作成した後、それらをエクスポートします。FeatureStore は自動エクスポートをサポートしています。リアルタイム特徴量ビューのオフラインテーブルのソースは、お客様の設定によって異なります。

オンラインデータソース

FeatureDB

Hologres/TableStore

レコメンデーションエンジン

両方

PAI-REC(レコメンデーションアルゴリズムのカスタマイズ機能を使用)

その他

エクスポート方法

FeatureStore を使用して直接エクスポートします。

レコメンデーションアルゴリズムのカスタマイズ機能から生成した疑似データを、リアルタイム特徴量ビューのオフラインテーブルにインポートします。その後、FeatureStore を使用してエクスポートします。

リアルタイム特徴量ビューのオフラインテーブルから手動でデータをエクスポートします。その後、FeatureStore を使用してエクスポートします。

同期操作

データの同期には、以下の 2 つの方法があります。

参考文献

フィーチャーストアプロジェクトの構成後は、その使用方法について学習してください。詳細については、「レコメンデーションシステムにおけるフィーチャーストアを用いた特徴量管理」をご参照ください。