FeatureStoreは、platform for AI (PAI) が提供する一元化された機能管理および共有プラットフォームです。 FeatureStoreを使用して、機械学習やモデルトレーニングの機能を保存および管理できます。 FeatureStoreを使用すると、複数のユーザーやチームと機能を共有し、オフライン機能とオンライン機能の一貫性を確保し、低レイテンシでオンラインモデル推論の機能を提供できます。
FeatureStoreとは何ですか?
FeatureStoreは、PAIが提供する機能管理プラットフォームです。 FeatureStoreを使用して、機械学習の機能を保存および管理できます。
FeatureStoreは、DataHub、Realtime Compute for Apache Flink、Hologres、GraphComputeなどの複数のAlibaba Cloudサービスを統合して、包括的な機能管理機能を提供します。 ユーザー行動ログやリアルタイムのアイテムやユーザー機能など、DataHubから受信したデータは、MaxComputeに同期するか、Realtime Compute for Apache Flinkでデータを処理した後にオンラインストアに書き込むことができます。 推奨、ユーザー成長、財務リスク管理エンジンなどのクライアントアプリケーションは、FeatureStore SDKを呼び出して、オンラインストアの機能データにアクセスできます。
次の図は、FeatureStoreが他のAlibaba Cloudサービスとどのように連携するかを示しています。 図では、MaxComputeおよびDataHubからの入力データは、機能エンジニアリングおよびサンプル管理モジュールによって処理され、オンラインストアに公開されます。 クライアントアプリケーションは、オンラインストアのデータにアクセスしてサービスを提供します。
条件
機能エンティティ
特徴エンティティは、オブジェクトに関する情報を提供する意味的に関連する特徴の集合である。 たとえば、レコメンデーションシステム用にuserとitemという名前の2つのエンティティを作成できます。これは、このシナリオでは、すべての機能がユーザーに関する情報またはアイテムに関する情報であるためです。
特徴ビュー
フィーチャビューには、フィーチャとその派生フィーチャの論理コレクションが含まれます。 機能ビューは、機能エンティティのサブセットであり、オフライン機能とオンライン機能の一貫性を確保するのに役立ちます。
参加ID
結合IDは、フィーチャビューをフィーチャエンティティに関連付けるフィールドです。 各特徴エンティティは、結合IDを有する。 結合IDを使用して、複数のフィーチャビューにフィーチャを関連付けることができます。
説明各フィーチャビューには、フィーチャを取得するために使用できる主キー (インデックス) があります。 主キーは、結合IDの名前とは異なる場合があります。
たとえば、推奨システムの結合IDとして、user_id (ユーザーテーブルの主キー) とitem_id (アイテムテーブルの主キー) を設定できます。
ラベルテーブル
ラベルテーブルには、モデルトレーニングに使用するラベルが格納されます。 モデルトレーニングのターゲット属性と、フィーチャーエンティティの結合IDが含まれます。 推奨シナリオでは、ラベルテーブルは、一般に、
group by user_id/item_id/request_id
コマンドを実行することによって挙動テーブルから取得される。
シナリオ
推奨と広告のソート: このシナリオの機能には、閲覧履歴、購入記録、およびユーザーのペルソナが含まれます。 FeatureStoreを使用すると、ユーザーとアイテムのリアルタイム機能を更新し、さまざまな機能バージョンを一元管理できます。 これにより、最新の機能でモデルを最新の状態に保ち、ターゲット広告の精度と効果を向上させます。
ユーザーの成長とリスク管理: このシナリオの機能には、ユーザー情報、取引、および信用記録が含まれます。 FeatureStoreでは、XGBoost (Extreme Gradient Boosting) モデルやGBDT (Gradient Boosting Decision Trees) モデルなどの機械学習または深層学習モデルを使用して、複数のバージョンのユーザー機能を管理および処理し、リスク評価を実行できます。 これにより、ビジネスリスク管理がより正確かつ効率的になります。
検索エンジンランキング: このシナリオの機能には、キーワードの関連性、クリック率、販売量が含まれます。 FeatureStoreを使用して、ランキングモデルをトレーニングできます。 ElasticsearchやOpenSearchなどの検索エンジンから取得した検索結果は、ランキングモデルによって微調整され、Elastic Algorithm Service (EAS) のTensorFlowモデルに渡されてスコアリングされます。 これにより、ユーザーの検索意図と好みに基づいて、より正確でパーソナライズされた検索結果をユーザーに提供できます。
オフラインとオンラインのデータ同期: このシナリオの機能には、製品とユーザーの属性が含まれます。 FeatureStoreは、オフラインとオンラインデータストア間の同期を簡素化します。
機能と特徴
データストア
FeatureStoreは、機能からモデルへのプロセス全体をカプセル化し、さまざまなオフラインおよびオンラインのデータストアをサポートします。 FeatureStoreで機能テーブルを登録および管理できます。 次のデータストアがサポートされています。
オフラインストア: MaxCompute
オンラインストア: Hologres、GraphCompute、Tablestore
FeatureStoreにフィーチャテーブルを登録すると、次の機能が利用可能になります。
FeatureStoreは、オンラインとオフラインのテーブルを自動的に作成し、同期を保つことができます。
FeatureStoreは、機能テーブルのコピーを1つだけ保存し、複数のユーザーと機能を共有してリソースコストを削減できます。
FeatureStoreでは、単純なコードを使用して、トレーニングデータセットのエクスポートやオンラインストアへのデータのインポートなど、以前は複雑だった操作を完了できます。
推奨アルゴリズムとの統合
EasyRecと統合されたFeatureStoreは、効率的な機能エンジニアリング (FG) 、モデルトレーニング、およびオンラインモデル展開を実現します。 サウンドパフォーマンスを備えた高度な推奨システムを簡単に構築できます。 EasyRecプロセッサは、FeatureStoreからメモリにアイテム機能テーブルをキャッシュして、安定したモデルスコアリングを提供できます。
EasyRecプロセッサに組み込まれたFeatureStore SDK for C ++ は、ビッグデータのユースケースに対して以下の最適化を提供します。
メモリ使用量: 組み込みのFeatureStore SDK for C ++ は、ネイティブメモリキャッシュと比較して、機能ストレージを最適化し、メモリ使用量を50% 削減します。 これにより、特にシステムが多数の機能を処理する場合に、リソース消費が大幅に削減されます。
機能のプル: オフライン機能ビューは、オンラインストアの5倍以上の速度で機能をメモリにキャッシュできます。 オフラインストアは非常に安定しているため、数百のEASインスタンスにスケールアウトし、各インスタンスが数分ですべての機能をロードできるようにすることができます。 これにより、スケーリングプロセス中のオンラインストアでの過度のワークロードを防ぎます。
モデルスコアリング: モデルスコアリングのために、フィーチャがキャッシュからリアルタイムで取得されます。 FeatureStore SDK for C ++ を使用すると、EasyRecプロセッサは、最大応答時間が改善され、タイムアウトの問題が少なく、より安定したスコアリングサービスを提供します。
管理のオフラインおよびオンライン机能
オフライン機能には、ユーザーとアイテムに関する属性機能と統計機能が含まれます。 リアルタイム機能には、Realtime Compute for Apache Flinkによってオンラインストアに書き込まれるユーザーおよびアイテム機能の更新、および1時間以内のクリック、転送、購入数量、コンバージョン率などのタイムウィンドウに基づく機能が含まれます。 サポートされているオンラインストアには、Hologres、GraphCompute、Tablestoreがあります。
古い機能と新しい機能の関連付け
アルゴリズムまたはビジネスインテリジェンス (BI) ツールを使用して新しいユーザーまたはアイテム機能のセットを抽出すると、トレーニングデータセットに必要な古い機能と新しい機能を関連付け、FeatureStore SDKを使用してオフライントレーニング用のサンプルをエクスポートできます。 FeatureStore SDKを使用して、オンラインサービスのオンラインストアにサンプルを公開することもできます。 機能ビューは複数のモデルで参照でき、オンラインストレージを節約できます。 FeatureStoreは、フィーチャエンジニアリングを実行してフィーチャを追加し、モデルを最適化するのに役立ちます。
リアルタイムの統計的特徴とシーケンス特徴の管理
一般に、モデルの特徴は時間とともにより複雑になり、リアルタイム機能に対する需要が増大する。 この問題に対処するために、FeatureStoreでは、Realtime Compute for Apache Flinkによって取得されたリアルタイムの統計機能とユーザー行動シーケンス機能を管理できます。 FeatureStoreは、ユーザーがクリックしたアイテムIDのシーケンスなど、オフラインのユーザーシーケンス機能を処理および保存できます。 アイテムIDシーケンスの他に、アイテムの属性特徴 (SideInfo) もモデルで頻繁に使用されます。 属性機能をオンラインで送信するには、大量のデータが必要です。 この問題に対処するには、FeatureStore SDKを使用してEasyRecプロセッサにアイテム機能をキャッシュします。 これは推論応答を加速し、推論結果を改善する。
複数の言語のSDK
FeatureStoreはGo、Java、Python用のSDKを提供しており、FeatureStoreをPAI-RECサービスおよびEasyRecプロセッサと統合できます。 SDK for Javaを使用して、クライアントアプリケーションでEasyRecプロセッサまたは他のモデルスコアリングエンジン (検索、推奨、リスク管理エンジンなど) を呼び出すことができます。 SDK for Pythonを使用して、データ分析とモデリングのためにオンラインストアのデータにアクセスすることもできます。
自動FG
FeatureStoreは、機械学習機能を使用して新しい機能を自動的に抽出する自動FGを提供し、時間と労力を節約します。
機能モニタリング
FeatureStoreは、機能の例外を効率的に特定して解決するのに役立つ機能のモニタリングとアラートを提供します。
FeatureStoreの仕組み
FeatureStoreは、複数のオフラインおよびオンラインストレージサービスを統合して、オフラインおよびオンライン機能を一元的に読み取り、書き込み、管理できるようにします。
オフラインとオンラインのフィーチャテーブルをフィーチャビューに登録し、フィーチャビューを使用してオフラインとオンラインのフィーチャを集約およびマッピングできます。
オフラインのMaxComputeデータストアにラベルテーブルを保存し、FeatureStoreにラベルテーブルを登録できます。 このようにして、FeatureStoreは、マッピング後にラベルテーブルデータを読み取り、処理できます。
FeatureStoreでは、フィーチャエンティティの結合IDを使用して、複数のFeatureStoreプロジェクトにフィーチャビューを関連付けることができます。 これにより、フィーチャエンティティのすべてのフィーチャを関連付け、ラベルテーブルに基づいてトレーニングデータセットを生成できます。 トレーニングデータセットは、オフラインのMaxComputeデータストアに保存されます。
リージョン
FeatureStoreは、中国 (北京) 、中国 (上海) 、中国 (杭州) 、中国 (深セン) 、中国 (香港) の各リージョンでご利用いただけます。
手順
データストアを作成します。
オフラインおよびオンラインのデータストアを作成します。 詳細については、「データストアの設定」をご参照ください。
プロジェクトを作成し、フィーチャエンティティ、フィーチャビュー、およびラベルテーブルを構成し、トレーニング用のサンプルテーブル (トレーニングデータセット) を生成します。 詳細については、「FeatureStoreプロジェクトの設定」をご参照ください。
ジョブの詳細を表示します。
[ジョブ] タブでジョブのステータスと詳細を表示できます。 詳細については、「ジョブ管理」をご参照ください。
オンラインストアにデータを同期します。 詳細については、「DSWギャラリー」をご参照ください。
JavaまたはGoオンラインエンジンでFeatureStoreオンラインストアのデータを読み取る場合は、DingTalkグループ (グループID: 34415007523) に参加してテクニカルサポートを行います。
お問い合わせ
FeatureStoreを使用しているときに問題が発生した場合は、DingTalkグループ (グループID: 34415007523) に参加してテクニカルサポートを行います。