全部產品
Search
文件中心

Platform For AI:FeatureStore概述

更新時間:Sep 18, 2025

FeatureStore作為PAI產品中心化的資料管理和共用平台,用於組織、儲存和管理機器學習和AI訓練中使用的特徵資料。FeatureStore可以方便地向多人、多團隊共用特徵,保證離線線上特徵資料的一致性,並提供高效的線上特徵訪問。

什麼是FeatureStore

FeatureStore是PAI平台下的特徵平台管理工具,用於儲存和管理離線和線上服務中的特徵資料。

FeatureStore整合了阿里雲上DataHub、Flink、Hologres和Tablestore等產品,並且研發了搜尋推薦專用的特徵資料庫FeatureDB,提供特徵管理功能。應用可以從 DataHub 接收使用者行為日誌、物品和使用者即時更新的屬性特徵,直接同步處理到 MaxCompute ,也可以通過Flink處理後通過 FeatureStore 寫入到相應的線上儲存中。最終Recommendation Engine、使用者增長、金融風控等應用通過調用 FeatureStore SDK 來訪問線上儲存中的特徵資料。

下圖展示了從 MaxCompute 和 DataHub 輸入資料,經過特徵計算和模型樣本管理,發布到線上儲存供用戶端應用的過程。

基本概念

  • 特徵實體:特徵實體(FeatureEntity)一組特徵表集合的名稱,例如在推薦情境下,可以設定兩個特徵實體user和item,因為所有的表特徵要麼屬於user側,要麼屬於item側。

  • 特徵視圖:特徵視圖(FeatureView)是一組特徵,包含一組特徵以及這些特徵的衍生特徵的資訊。一個特徵視圖是特徵實體的全量特徵集合的一個子集,離線特徵表和線上特徵表的映射。

  • Join Id:Join Id是關聯特徵視圖到特徵實體的特徵表欄位,每個特徵實體都會有一個Join Id , 通過Join Id可以關聯多個特徵視圖的特徵。

    說明

    每一個特徵視圖都有一個主鍵(索引鍵)來擷取其下面的特徵資料,但是特徵視圖的索引鍵可以和JoinId的名稱不一致。

    以推薦情境為例,Join Id可以配置為user表和item表的主鍵user_id、item_id。

  • Label表:Label表是模型訓練時Label所在的表,帶有模型訓練目標和特徵實體的JoinId。在推薦情境中一般是由行為表通過group by user_id/item_id/request_id等操作得到。

應用情境

  • 推薦系統和廣告排序情境:使用FeatureStore集中系統管理使用者特徵和物品特徵,包括使用者瀏覽歷史、購買記錄和使用者畫像等,FeatureStore的即時特徵讀寫能力能夠提升模型效果,有助於提高廣告精準度和投放效果。

  • 搜尋引擎排序情境:該情境下的特徵資料包括關鍵詞匹配度、點擊率、銷售量等,通過使用FeatureStore訓練排序模型,對Elasticsearch/OpenSearch等搜尋引擎召回結果,用召回結果請求EAS中TensorFlow模型的打分服務,根據使用者的搜尋意圖和個人喜好,為其提供更加精準和個人化的搜尋結果。

  • 使用者增長或風控情境:使用FeatureStore系統管理使用者個人資訊、交易行為和信用記錄等特徵資料,結合機器學習模型(例如XGB和GBDT等)進行風險評估,提高風控準確性和效率。

  • 離線KV資料同步到線上儲存:使用FeatureStore管理商品屬性工作表和使用者屬性等特徵資料,簡化離線資料到線上儲存的同步調度任務。

功能特性

多樣化資料來源支援

FeatureStore 管理從特徵到模型的整個流程。它支援多種離線和線上資料來源,您可以在其中註冊和管理特徵表。

支援的資料來源如下:

  • 離線資料來源:MaxCompute

  • 線上資料來源:FeatureDB、Hologres、TableStore

在將特徵表註冊到FeatureStore後,具有以下優勢:

  • 自動同步:可以自動完成線上和離線表的構建,確保線上和離線的一致性。

  • 節約成本:特徵只需儲存一份,即可在多個團隊間共用,從而降低資源成本。

  • 提升效率:FeatureStore 可以節省時間。以往匯出訓練表或匯入資料到線上庫等複雜操作,現在一行代碼即可完成。

離線特徵和即時特徵管理

特徵平台可以管理離線特徵視圖即時特徵視圖。離線特徵包括使用者和物品的屬性特徵、統計特徵;即時特徵包括新使用者或新物品上線,通過Flink直接寫入到類似Hologres的線上儲存中,也包括按照時間窗統計的特徵(如1小時的點擊、轉寄、購買數量、轉化率等)。

即時統計特徵和使用者序列特徵管理

一般模型特徵的複雜度、即時性都是逐步增加的,因此管理FlinkRealtime Compute得到的即時統計特徵和使用者行為序列特徵非常必要。FeatureStore定義了離線使用者序列特徵,例如使用者點擊過的物品ID序列。只有物品ID序列也是不夠的,在模型中常使用到物品的屬性特徵(SideInfo),而SideInfo線上上通過網路傳輸資料量較大,而在EasyRec中通過FeatureStore SDK緩衝物品特徵,節約了推理回應時間、提高了推理效能。

自動關聯與模型樣本匯出

可以通過PAI-FeatureStore來管理產出樣本。特別是模型中用到了即時特徵視圖中的特徵的時候,建議使用建立模型特徵功能,通過該功能可能自動基於FeatureDB中記錄的即時特徵更新資訊來得到正確的樣本。通過此功能自動關聯即時特徵,不需要在PAI-Rec引擎中部署Callback 回調介面

共用新舊特徵

當演算法或BI研發出一組新的使用者特徵/物品特徵的時候,可以設計新的ModelFeature關聯訓練集需要的新舊特徵,通過FeatureStore SDK匯出樣本供離線訓練,也可以通過FeatureStore SDK發布到線上儲存供線上服務使用。當多個模型引用同一個特徵視圖的時候,線上儲存始終只有一份。管理特徵對於演算法工程價特徵非常友好,在增加特徵迭代最佳化模型的時候非常有用。

提供多語言SDK

FeatureStore提供了GO/Java/Python SDK,可以協助使用者在PAI-REC和EasyRecProcessor聯合解決方案中使用FeatureStore的功能;通過Java SDK協助使用者在自己的服務端(搜尋、推薦、風控等引擎)中調用EasyRecProcessor或者其他模型打分的引擎;支援使用者通過Python SDK訪問線上儲存中的資料去完成資料分析、建模等工作。

特徵生產SDK

特徵生產指的是定義、產生特徵,使用者可以很方便的用Python指令碼定義特徵,然後執行Python指令碼產出需要的特徵,最終再註冊到PAI-FeatureStore平台上。特徵生產的SDK是獨立的,基於MaxCompute的SQL來產出特徵的開原始碼,來降低特徵生產的複雜度;實現過程中使用天層級中間資料,當基於30天行為資料來統計使用者的偏好統計特徵時,可以大幅節約計算資源。

自動化特徵工程

FeatureStore計劃提供自動化的特徵工程功能,通過機器學習技術,自動挖掘新特徵,減少研發團隊的手動特徵工程工作量。

特徵監控

FeatureStore計劃提供特徵的監控和警示功能,及時發現和解決特徵的異常和問題,減少團隊的故障排查和修複時間。

與Recommendation EngineEasyRec深度整合

FeatureStore和EasyRec深度整合,支援高效地進行FG(特徵工程)和模型訓練,並且能夠直接部署到線上(EasyRec的EAS Processor),可以做到在短時間內搭建起一套推薦系統,並取得優良的效果。EasyRec能夠提供物品特徵表的記憶體Cache,並提供高效的模型打分。

EasyRec Processor中整合的FeatureStore Cpp SDK對於大規模情境有專門的最佳化,使用FeatureStore後:

  • 記憶體佔用EasyRec Processor內建的FeatureStore Cpp SDK針對特徵儲存進行了最佳化,相比原生記憶體緩衝,能有效節省50%的記憶體。尤其在處理大量特徵時,節省效果更為顯著,有助於降低資源消耗。

  • 拉取特徵時間:離線特徵視圖可將特徵快速緩衝至記憶體cache,相比線上資料來源,速度快超過5倍,可以在增加速度的同時減少對線上資料來源的壓力。並且由於離線資料來源的高穩定性,實際測試可以同時擴容至數百個EAS執行個體,並且每個執行個體都可以在幾分鐘內載入完所有特徵。因此擴容時不會給線上儲存帶來很大壓力。

  • 模型打分耗時:模型評分即時從最佳化的緩衝中提取特徵,藉助FeatureStore Cpp SDK的專項最佳化,在使用FeatureStore的情況下,tp100效能顯著提升,打分穩定性增強,逾時情況減少。

功能原理

  • FeatureStore提供資料來源能力,可分別對接離線儲存和線上儲存產品,便於統一讀寫並管理離線、線上特徵資料。

  • 您可以將離線特徵表、線上特徵表註冊至FeatureStore的特徵視圖中,通過特徵視圖匯總和映射特徵資料。

  • 您可以將Label表格儲存體在離線儲存MaxCompute中,通過離線資料來源註冊至FeatureStore中,通過註冊後的FeatureStore Label表映射實際Label表資料。

  • FeatureStore提供特徵專案和特徵實體功能,通過特徵實體的Join Id來關聯各個專案中的特徵視圖,將一個特徵實體的所有特徵進行關聯,最終結合Label表產出模型特徵表Train Set表,並將Train Set表格儲存體在MaxCompute中。

地區與可用性區域

FeatureStore支援的地區包括:

華北2(北京)、華東2(上海)、華東1(杭州)、華南1(深圳)、中國(香港)、新加坡、美國(矽谷)、美國(維吉尼亞)、德國(法蘭克福)。

使用流程

  1. 建立資料來源,資料來源包含離線資料來源與線上資料來源。

  2. 建立專案,並配置特徵實體、特徵視圖和Label表等,產出模型特徵train set表(訓練資料集)。

  3. 資料同步任務,將離線資料同步到線上儲存。

  4. 當啟動離線資料同步到線上的任務之後,您可以在工作中樞查看任務狀態和詳情

  5. 需要在Java/Go線上引擎(線上服務)中讀取和使用FeatureStore線上資料,請加入DingTalk答疑群(34415007523)聯絡技術人員。