FeatureStore プロジェクトには、オフラインデータストアとオンラインデータストアがあります。各プロジェクトは独立して実行され、プロジェクト内のオンラインおよびオフライン特徴テーブルはプロジェクトメンバー間で共有されます。このトピックでは、FeatureStore プロジェクトを構成する方法について説明します。
前提条件
ラベルテーブルがオフラインデータストアに格納されている。
ラベルテーブルには、モデルのトレーニングに使用されるラベルが格納され、モデルのトレーニングのターゲット属性と特徴エンティティの結合 ID が含まれています。レコメンデーションシナリオでは、ラベルテーブルは、user_id、item_id、または request_id に基づいて行動テーブルのデータをグループ化することで生成されます。
プロジェクトの作成
PAI コンソール にログオンします。左側のナビゲーションウィンドウで、 を選択します。FeatureStore ページで、ワークスペースを選択し、[FeatureStore に入る] をクリックします。
表示されるページで、[プロジェクトの作成] をクリックします。[プロジェクトの作成] ページで、パラメーターを構成します。
次の表に、主要なパラメーターを示します。
パラメーター
説明
オフラインストア
既存のオフラインデータストアを選択します。
オンラインストア
既存のオンラインデータストアを選択します。
オフラインテーブルのライフサイクル
FeatureStore によって自動的に作成され、オフライン MaxCompute データストアに格納されるテーブルのライフサイクルを指定します。
[送信] をクリックします。
特徴エンティティの作成
特徴エンティティは、意味的に関連する特徴のコレクションです。たとえば、レコメンデーションシナリオでは、user と item という名前の 2 つのエンティティを作成できます。
プロジェクトリストで、プロジェクトの名前をクリックして [プロジェクトの詳細] ページに移動します。
[特徴エンティティ] タブで、[特徴エンティティの作成] をクリックします。表示される右側のペインでパラメーターを構成します。
次の表に、主要なパラメーターを示します。
パラメーター
説明
特徴エンティティ名
特徴エンティティの名前。レコメンデーションシナリオでは、user と item という名前の 2 つのエンティティを作成できます。
結合 ID
特徴ビューを特徴エンティティに関連付けるフィールド。各特徴エンティティには結合 ID があります。結合 ID に基づいて、特徴エンティティを複数の特徴ビューの特徴に関連付けることができます。
各特徴ビューには、特徴を取得するために使用できるプライマリキー (インデックス) があります。プライマリキーは結合 ID と異なる場合があります。
レコメンデーションシナリオでは、user_id (ユーザーテーブルのプライマリキー) または item_id (アイテムテーブルのプライマリキー) を結合 ID として使用できます。
[送信] をクリックします。
特徴ビューの作成
特徴ビューには、特徴と派生特徴の論理コレクションが含まれています。特徴ビューは特徴エンティティのサブセットであり、オフラインとオンラインの特徴間のマッピングを提供します。
[プロジェクトの詳細] ページで、[特徴ビュー] タブをクリックし、次に [特徴ビューの作成] をクリックします。
表示される右側のペインでパラメーターを構成し、[送信] をクリックします。
オフライン特徴ビューを作成して、FeatureStore にオフライン特徴データを登録できます。
リアルタイム特徴ビュー を作成して、FeatureStore にリアルタイム特徴データを登録できます。
オフライン特徴ビューの作成
次の表に、オフライン特徴ビューの主要なパラメーターを示します。
パラメーター | 説明 |
タイプ | 作成する特徴ビューのタイプ。オフライン特徴ビューを作成するには、このパラメーターを [オフライン] に設定します。 |
書き込みモード |
次のフィールド属性を構成します。
|
オンライン特徴テーブルの同期 | 特徴ビューのデータを同じプロジェクトのオンラインデータストアに同期するかどうかを指定します。 |
特徴エンティティ | 特徴ビューに関連付ける特徴エンティティを選択します。 説明 特徴エンティティは、複数の特徴ビューに関連付けることができます。 |
特徴ライフサイクル | 特徴ビューのライフサイクルを指定します。ライフサイクルは、オンラインデータストアに書き込まれた特徴が保持される期間を決定します。 |
リアルタイム特徴ビューの作成
次の表に、リアルタイム特徴ビューの主要なパラメーターを示します。
パラメーター | 説明 |
ビュー名 | カスタム名を指定します。 |
タイプ | 作成する特徴ビューのタイプ。リアルタイム特徴ビューを作成するには、このパラメーターを [リアルタイム] に設定します。 |
特徴エンティティ | 特徴ビューに関連付ける特徴エンティティを選択します。 説明 特徴エンティティは、複数の特徴ビューに関連付けることができます。 |
書き込みモード | オンライン特徴ビューでは、[テーブルスキーマをカスタマイズ] のみがサポートされています。オンライン特徴ビューは、カスタムテーブルスキーマを使用します。 このモードを選択する場合は、フィールドを追加し、フィールド属性を構成する必要があります。 次のフィールド属性を構成します。
|
特徴フィールド | 要件に基づいて特徴フィールドを指定します。
|
特徴ライフサイクル | 特徴ビューのライフサイクルを指定します。1 より大きい値を設定することをお勧めします。デフォルト値: 30。単位: 日。 |
詳細設定 | JSON メッセージを使用して詳細オプションを構成できます。 |
ラベルテーブルの作成
ラベルテーブルには、モデルのトレーニングに使用されるラベルが格納され、モデルのトレーニングのターゲット属性と特徴エンティティの結合 ID が含まれています。レコメンデーションシナリオでは、ラベルテーブルは、user_id、item_id、または request_id に基づいて行動テーブルのデータをグループ化することで生成されます。
[プロジェクトの詳細] ページで、[ラベルテーブル] タブをクリックし、次に [ラベルテーブルの作成] をクリックします。
表示される右側のペインで、使用するラベルテーブルが格納されているデータストアを選択し、次にラベルテーブルを選択します。
ラベルテーブルのフィールドを構成し、[送信] をクリックします。
属性
説明
特徴フィールド
ラベルテーブルの特徴を含むフィールド。
FG 予約フィールド
構成は不要です。
イベント時間
ラベルテーブルのイベントタイムスタンプを含むフィールド。
ラベルフィールド
ラベルテーブルのラベルを含むフィールド。
パーティションフィールド
ラベルテーブルをセグメント化するパーティションフィールド。
モデル特徴の作成
モデル特徴は、モデルがトレーニングとサービングに使用する入力です。選択した特徴に基づいてモデルを構築した後、FeatureStore はオフライントレーニング用に MaxCompute データストアに [トレーニングデータセット] を作成します。 Elastic Algorithm Service (EAS) または PAI-Rec でモデル特徴を指定して、モデル推論のために FeatureStore から特徴データを自動的にプルできます。
[プロジェクトの詳細] ページで、[モデル特徴] タブをクリックし、次に [モデル特徴の作成] をクリックします。
表示される右側のペインで、パラメーターを構成し、[送信] をクリックします。
パラメーター
説明
特徴の選択
バッチ特徴ビューで特徴を選択し、エイリアスを指定します。
ラベルテーブル名
作成したラベルテーブルを選択します。
エクスポートテーブル名
デフォルトでは、[自動作成] が選択されています。これは、オフライントレーニング用に [トレーニングデータセット] が MaxCompute データストアに自動的に作成されることを示します。
リアルタイム特徴とは
用語
リアルタイム特徴とは、ミリ秒単位でもリアルタイムで変化する特徴です。リアルタイム特徴は通常、サーバーなどのシステムで生成または更新され、処理と意思決定にすぐに使用されます。リアルタイム特徴の生成と使用は通常、リアルタイムデータストリーム分析またはシステムで行われ、タイムリー性が高く、応答が速いという特徴があります。
リアルタイム特徴は通常、データストリームから抽出されます。Flink などのデータストリームシステムは、現在の状態を最もよく反映するリアルタイム特徴を計算して生成できます。リアルタイム特徴では、リンク全体が高性能で低レイテンシである必要があります。リアルタイム特徴は動的に更新されるため、システムは特徴を継続的に再計算する必要があります。
シナリオ
リアルタイム特徴は、次の典型的なシナリオで使用されます。
オンライン広告: ユーザーの現在の閲覧行動に基づいて、広告コンテンツをリアルタイムで調整します。
不正検出: 金融取引における疑わしい行動をリアルタイムで検出し、アラートをトリガーするか、取引をブロックします。
パーソナライズされたレコメンデーション: ユーザーの現在のアクティビティと履歴データに基づいて、レコメンデーションリストをリアルタイムで更新します。
IoT システム: IoT システムのデバイスをリアルタイムで監視および制御します。リアルタイム特徴は生成され、環境の変化への対応として使用されます。
レコメンデーションシステムと広告システムでのリアルタイム特徴の使用
リアルタイム特徴の書き込み
FeatureStore でリアルタイム特徴ビューを作成すると、リアルタイム特徴の書き込みと読み取りのために、オンラインデータエンジンに同じスキーマを持つテーブルが自動的に作成されます。 FeatureDB、TableStore、または Hologres などのデータソースを使用する場合、バックエンドは DataHub メッセージキューに接続できます。データは DataHub を介して Flink に送信できます。 Flink はリアルタイム特徴を処理および計算し、オンラインデータソースの対応するテーブルに書き込みます。具体的なテーブル名は、リアルタイム特徴ビューの詳細ページで確認できます。
オンライン特徴の読み取り
EasyRec Processor を使用する場合、EasyRec Processor は Cpp 用の組み込み FeatureStore SDK を提供します。モデル特徴名 (fs_model) を指定するだけで、リアルタイム特徴を識別して読み取ることができます。
Go 用の FeatureStore SDK または Java 用の FeatureStore SDK を使用する場合、SDK 設定に基づいてリアルタイム特徴を読み取ることができます。
オフラインサンプルのエクスポート
FeatureStore は、特徴ビューに対応するオフラインデータエンジン内のテーブルを自動的に結合してエクスポートします。
リアルタイム特徴ビューの場合:
FeatureDB を使用する場合、FeatureDB はオンラインで書き込まれたデータをオフラインデータエンジンの対応するオフラインテーブルに自動的に書き込みます。
FeatureDB を使用しない場合は、データをオフラインデータエンジンの対応するオフラインテーブルに書き込むタスクを作成する必要があります。また、PAI-Rec のカスタマイズレコメンデーションソリューション機能を使用して、オフラインのリアルタイムデータをシミュレートすることもできます。これは、対応するオフラインテーブルのデータとして機能します。
FeatureStore のリアルタイム特徴ビュー
アプリケーションのプロセス
FeatureStore のリアルタイム特徴ビューは、リアルタイムで変化する特徴を処理するように設計されています。 DataHub メッセージキューと Flink を介してオンライン特徴をリアルタイムで書き込みます。次に、EasyRec Processor を使用してリアルタイムで特徴をポーリングおよび読み取るか、FeatureStore SDK を介してリアルタイムで特徴を読み取り、ダウンストリームの変化をミリ秒レベルで認識できるようにします。
エクスポート手順
複数のリアルタイム特徴ビューとオフライン特徴ビューを選択して、エクスポートするモデル特徴を作成できます。 FeatureStore は自動エクスポートをサポートしています。次の表に、さまざまなシナリオにおけるリアルタイム特徴ビューに対応するオフラインテーブルのソースを示します。
オンラインデータソース | FeatureDB | Hologres/TableStore | |
レコメンデーションエンジン | 関係ありません | PAI-Rec (カスタマイズレコメンデーションソリューションを使用) | その他 |
エクスポート手順 | FeatureStore からデータを直接エクスポートします。 | レコメンデーションアルゴリズムによってシミュレートされたデータを関連するオフラインテーブルにインポートします。次に、FeatureStore からデータをエクスポートします。 | 関連するオフラインテーブルを手動でエクスポートします。次に、FeatureStore からデータをエクスポートします。 |
同期手順
同期操作は、次の 2 つのタイプに分類できます。
次のステップ
FeatureStore プロジェクトを構成した後、FeatureStore を使用してレコメンデーションシステムの特徴を管理できます。