本文由簡體中文內容自動轉碼而成。阿里雲不保證此自動轉碼的準確性、完整性及時效性。本文内容請以簡體中文版本為準。

特徵平台(FeatureStore)

更新時間:2025-04-25 09:00

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

什麼是FeatureStore

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

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

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

image

基本概念

  • 特徵實體

    特徵實體(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封裝了整個特徵到模型的流程,支援多種離線和即時資料源,便於您在FeatureStore中進行端到端特徵表註冊、管理操作,當前支援的資料來源包括:

  • 離線資料來源:MaxCompute

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

您將特徵表註冊到FeatureStore後:

  • FeatureStore可以自動完成線上和離線表的構建,保證線上和離線的一致性。

  • 在保證特徵表只存一份的情況下,能夠向多人共用特徵,減少資源成本。

  • FeatureStore還可以節省時間成本,比如匯出訓練表、匯入資料至OnlineStore的操作,原先需要複雜的操作,當前在FeatureStore中都可以通過一行程式碼完成。

建議服務引擎對接

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效能顯著提升,打分穩定性增強,逾時情況減少。

管理離線和線上特徵資料

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

共用新舊特徵

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

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

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

提供多語言SDK

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

自動化特徵工程

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

特徵監控

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

功能原理

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

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

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

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

image

地區限制

FeatureStore支援的地區包括:

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

操作流程

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

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

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

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

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

  • 本頁導讀 (1, M)
  • 什麼是FeatureStore
  • 基本概念
  • 應用情境
  • 功能特性
  • 資料來源能力
  • 建議服務引擎對接
  • 管理離線和線上特徵資料
  • 共用新舊特徵
  • 管理即時統計特徵和使用者序列特徵
  • 提供多語言SDK
  • 自動化特徵工程
  • 特徵監控
  • 功能原理
  • 地區限制
  • 操作流程
文檔反饋