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