フィーチャーストアは、Platform for AI(PAI)における集中型データ管理・共有プラットフォームです。機械学習およびAIトレーニング向けの特徴量データを整理・保存・管理します。フィーチャーストアは、チーム間での特徴量共有を簡素化し、オフラインデータとオンラインデータ間の一貫性を保証するとともに、オンライン特徴量への効率的なアクセスを提供します。
フィーチャーストアとは?
フィーチャーストアは、PAI プラットフォームにおける特徴量管理ツールです。オフラインおよびオンラインサービス向けの特徴量データを保存・管理します。
フィーチャーストアは、DataHub、Flink、Hologres、Tablestore などの Alibaba Cloud 製品と統合されます。また、検索およびレコメンデーション向けに構築された特徴量データベース FeatureDB を含みます。アプリケーションは DataHub から行動ログおよびリアルタイムのアイテム・ユーザー属性を受信し、それらを直接 MaxCompute へ同期できます。また、データは Flink で処理され、フィーチャーストア経由でオンラインストアへ書き込まれます。その後、レコメンデーションエンジン、ユーザーグロースアプリケーション、リスク管理アプリケーションがフィーチャーストアのソフトウェア開発キット(SDK)を呼び出して、オンラインストア内の特徴量データにアクセスします。
以下の図は、MaxCompute および DataHub からデータを取り込み、特徴量計算およびモデルサンプル管理を実行し、クライアントアプリケーション向けにオンラインストアへ公開するまでのプロセスを示しています。
用語
特徴量エンティティ:特徴量テーブルの名前付きコレクションです。たとえば、レコメンデーションのシナリオでは、「ユーザー」と「アイテム」の 2 つの特徴量エンティティを設定できます。これは、すべてのテーブル特徴量がユーザー側またはアイテム側のいずれかに属するためです。
特徴量ビュー:一連の特徴量をグループ化したものです。特徴量およびその派生特徴量に関する情報を含みます。特徴量ビューは、特徴量エンティティの完全な特徴量セットのサブセットであり、オフライン特徴量テーブルをオンライン特徴量テーブルにマップします。
結合 ID(Join ID):特徴量テーブル内に存在するフィールドで、特徴量ビューを特徴量エンティティに関連付けます。各特徴量エンティティには、複数の特徴量ビューから特徴量をリンクするための結合 ID があります。
説明各特徴量ビューには、特徴量データを取得するためのプライマリキー(インデックスキー)があります。ただし、特徴量ビューのインデックスキーの名前は、結合 ID の名前と異なる場合があります。
たとえば、レコメンデーションのシナリオでは、結合 ID を `user_id` および `item_id` に設定できます。これらは、ユーザーおよびアイテムテーブルのプライマリキーです。
ラベルテーブル:モデルトレーニング用のラベルを格納するテーブルです。モデルトレーニングのターゲットおよび特徴量エンティティの結合 ID を含みます。レコメンデーションのシナリオでは、通常、
group by user_id/item_id/request_idなどの操作により行動テーブルから取得されます。
適用範囲/利用シーン
レコメンデーションシステムおよび広告ソート:ユーザーおよびアイテムの特徴量(ユーザーの閲覧履歴、購入記録、ユーザーペルソナなど)をフィーチャーストアで集中管理します。フィーチャーストアのリアルタイム特徴量読み取り・書き込み機能により、モデルのパフォーマンスを向上させ、広告配信の精度および効果を高めます。
検索エンジンのソート:このシナリオでは、キーワード一致度、クリック率(CTR)、売上高などの特徴量データを使用します。フィーチャーストアを活用してソートモデルをトレーニングし、Elasticsearch や Elasticsearch、OpenSearch などの検索エンジンからの再現結果をソートします。その後、再現結果をもとに EAS 内の TensorFlow モデルのスコアリングサービスを呼び出し、ユーザーの検索意図および個人的嗜好に基づいた、より正確かつパーソナライズされた検索結果を提供します。
ユーザーグロースおよびリスク管理:ユーザーの個人情報、トランザクション行動、信用記録などの特徴量データをフィーチャーストアで管理します。XGBoost や GBDT などの機械学習モデルと組み合わせてリスクアセスメントを実行し、リスク管理の精度および効率を向上させます。
オフライン KV データのオンラインストアへの同期:製品属性テーブルやユーザー属性などの特徴量データをフィーチャーストアで管理することで、オフラインデータをオンラインストアへ同期するためのスケジューリングタスクを簡素化します。
機能
多様なデータソースへの対応
フィーチャーストアは、特徴量からモデルに至るまでの全プロセスを管理します。登録および管理可能な、複数のオフラインおよびオンラインデータソースをサポートします。
サポートされるデータソースは以下のとおりです:
オフラインストア:MaxCompute
オンラインストア:FeatureDB、Hologres、Tablestore
フィーチャーストアに特徴量テーブルを登録すると、以下のメリットが得られます:
自動同期:オンラインおよびオフラインテーブルを自動的に構築できます。これにより、オンラインおよびオフラインデータ間の一貫性が保証されます。
コスト削減:特徴量は 1 度だけ保存すればよく、複数のチームで共有できます。これにより、リソースコストを削減できます。
効率向上:フィーチャーストアにより作業時間が短縮されます。トレーニングテーブルのエクスポートやオンラインデータベースへのデータインポートといった複雑な操作も、1 行のコードで完了できます。
オフラインおよびリアルタイム特徴量の管理
特徴量プラットフォームは、オフライン特徴量ビューおよびリアルタイム特徴量ビューを管理できます。オフライン特徴量には、ユーザーおよびアイテムの属性特徴量および統計特徴量が含まれます。リアルタイム特徴量には、Flink 経由で Hologres などのオンラインストアへ直接公開・書き込まれる新規ユーザーまたは新規アイテムが含まれます。また、クリック数、転送数、購入数、および 1 時間以内のコンバージョン率など、タイムウィンドウに基づいて統計解析された特徴量も含まれます。
リアルタイム統計特徴量およびユーザー行動シーケンス特徴量の管理
モデル特徴量の複雑さおよびリアルタイム要件は、一般的に時間とともに増加します。そのため、Flink によってリアルタイムで計算されるリアルタイム統計特徴量およびユーザー行動シーケンス特徴量を管理する必要があります。フィーチャーストアでは、ユーザーがクリックしたアイテム ID のシーケンスなど、オフラインのユーザー行動シーケンス特徴量を定義します。ただし、アイテム ID のシーケンスのみでは不十分です。モデルはしばしばアイテムの属性特徴量(SideInfo)を使用します。ネットワーク経由で SideInfo をオンライン伝送すると、大量のデータを消費します。EasyRec では、フィーチャーストア SDK がアイテム特徴量をキャッシュします。これにより、推論応答時間が短縮され、推論パフォーマンスが向上します。
自動関連付けおよびモデルサンプルのエクスポート
PAI-フィーチャーストアを用いて生成されたサンプルを管理できます。特に、モデルがリアルタイム特徴量ビューから特徴量を使用する場合、モデル特徴量の作成機能を使用します。この機能は、FeatureDB に記録されたリアルタイム特徴量の更新情報をもとに、適切なサンプルを自動生成します。リアルタイム特徴量の自動関連付けが可能であり、PAI-REC エンジンにコールバックインターフェイスを展開する必要はありません。
新旧特徴量の共有
アルゴリズムまたは BI 開発者が新しいユーザーまたはアイテムの特徴量セットを作成する場合、トレーニングデータセットに必要な新旧特徴量を関連付けるための新しいModelFeature を設計できます。フィーチャーストア SDK を使用して、オフライントレーニング用のサンプルをエクスポートできます。また、フィーチャーストア SDK を使用して、オンラインサービス向けにサンプルをオンラインストアへ公開できます。複数のモデルが同じ特徴量ビューを参照する場合、オンラインストアには 1 つのコピーのみが保存されます。特徴量の管理は、アルゴリズムエンジニアリングに大きく貢献し、モデルの反復最適化時に特徴量を追加する際に特に有効です。
マルチ言語 SDK
フィーチャーストアは Go、Java、Python 向けの SDK を提供します。これらの SDK を活用することで、PAI-REC および EasyRecProcessor の連携ソリューション内でフィーチャーストアの機能を利用できます。Java SDK を使用して、検索、レコメンデーション、リスク管理などの独自のサーバー側エンジンから EasyRecProcessor またはその他のモデルスコアリングエンジンを呼び出せます。Python SDK を使用すると、オンラインストア内のデータにアクセスして、データ分析、モデリングなどのタスクを実行できます。
特徴量生成 SDK
特徴量生成とは、特徴量の定義および生成を指します。Python スクリプトを用いて特徴量を簡単に定義し、スクリプトを実行して必要な特徴量を生成できます。最後に、特徴量を PAI-フィーチャーストアプラットフォームに登録します。特徴量生成 SDK は、MaxCompute SQL を基盤とする独立型のオープンソースコードであり、特徴量生成の複雑さを低減するために使用されます。実装プロセスでは、日次の中間データが使用されます。30 日分の行動データを用いてユーザーのプリファレンス統計特徴量を計算する場合、計算リソースを大幅に節約できます。
EasyRec レコメンデーションエンジンとの深く密接な統合
フィーチャーストアは、EasyRec および TorchEasyRec と深く密接に統合されています。効率的な特徴量エンジニアリング(FG)およびモデルトレーニングをサポートします。モデルを直接オンラインで EasyRec Processor および TorchEasyRec Processor へデプロイできます。これにより、高性能なレコメンデーションシステムを短期間で構築できます。EasyRec は、アイテム特徴量テーブル向けのメモリキャッシュを提供し、効率的なモデルスコアリングを実現します。
EasyRec Processor に統合されたフィーチャーストア Cpp SDK は、大規模シナリオ向けに最適化されています。フィーチャーストアを活用すると、以下の効果が得られます:
メモリ使用量:EasyRec Processor に組み込まれたフィーチャーストア Cpp SDK は、特徴量ストレージを最適化し、ネイティブのメモリキャッシュと比較して 50 % のメモリを節約します。多数の特徴量を処理する場合は、さらに大きな節約効果が得られます。これにより、リソース消費を削減できます。
特徴量取得時間:オフライン特徴量ビューは、メモリキャッシュへ特徴量を迅速にキャッシュできます。これは、オンラインデータソースを直接使用する場合と比較して 5 倍以上高速です。これにより、速度が向上し、オンラインデータソースへの負荷が軽減されます。オフラインデータソースの高い安定性により、数百台の EAS インスタンスを同時にスケールアウトできます。各インスタンスは、数分以内にすべての特徴量をロードできます。したがって、スケールアウトによるオンラインストアへの負荷は、ほとんど発生しません。
モデルスコアリング時間:モデルスコアリングは、最適化されたキャッシュからリアルタイムで特徴量を抽出します。フィーチャーストア Cpp SDK の特定の最適化により、tp100 パフォーマンスが大幅に向上します。スコアリングの安定性が向上し、タイムアウトが減少します。
仕組み
フィーチャーストアは、オフラインおよびオンラインストレージ製品に接続できるデータソース機能を提供します。これにより、オフラインおよびオンラインの特徴量データを統一的に読み取り、書き込み、管理できます。
フィーチャーストアの特徴量ビューに、オフラインおよびオンラインの特徴量テーブルを登録して、特徴量データを集約およびマッピングできます。
ラベルテーブルをオフラインストアの MaxCompute に格納し、オフラインデータソース経由で登録できます。登録されたフィーチャーストアのラベルテーブルは、実際のラベルテーブルデータに対応します。
フィーチャーストアは、特徴量プロジェクトおよび特徴量エンティティを提供します。特徴量エンティティの結合 ID を使用して、プロジェクト間で特徴量ビューを関連付け、エンティティのすべての特徴量をリンクできます。最後に、ラベルテーブルと組み合わせることで、モデル特徴量テーブル(トレーニングデータセットとも呼ばれます)を作成し、MaxCompute に格納します。
リージョンおよびゾーン
フィーチャーストアは、以下のリージョンでご利用いただけます:
エリア | リージョン |
アジアパシフィック |
|
ヨーロッパおよびアメリカ |
|
操作手順
データソースの作成が可能です。データソースには、オフラインストアおよびオンラインストアが含まれます。
プロジェクトの作成が可能です。特徴量エンティティ、特徴量ビュー、およびラベルテーブルを作成して、モデル特徴量のトレーニングデータセットテーブル(トレーニングデータセットとも呼ばれます)を作成します。
データ同期タスク を実行して、オフラインデータをオンラインストアへ同期できます。
オフラインデータをオンラインストアへ同期するタスクを開始した後、タスクのステータスおよび詳細の確認をタスクハブで行えます。
Java または Go のオンラインサービスでフィーチャーストアのオンラインデータを読み取り・利用するには、テクニカルサポートへお問い合わせいただくため、DingTalk グループ(34415007523)へご参加ください。