FeatureStore作為PAI產品中心化的資料管理和共用平台,用於組織、儲存和管理機器學習和AI訓練中使用的特徵資料。FeatureStore可以方便地向多人、多團隊共用特徵,保證離線線上特徵資料的一致性,並提供高效的線上特徵訪問。
什麼是FeatureStore
FeatureStore是PAI平台下的特徵平台管理工具,用於儲存和管理機器學習特徵。
FeatureStore整合了阿里雲上DataHub、Flink、Hologres、Graphcompute等產品,為使用者提供一整套的特徵管理功能,包括從DataHub接收使用者行為日誌、物品和使用者即時更新的屬性特徵,可直接同步處理到MaxCompute,也可以通過Flink處理後寫入到相應的線上儲存中,最終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,可以有效管理和處理多版本的使用者特徵,結合像XGB、GBDT等機器學習模型或深度學習模型進行風險評估,有助於提高業務風控的準確性和效率。
搜尋引擎排序情境:該情境下的特徵資料包括關鍵詞匹配度、點擊率、銷售量等,通過使用FeatureStore訓練排序模型,對Elasticsearch/OpenSearch等搜尋引擎召回結果,用召回結果請求EAS中TensorFlow模型的打分服務,根據使用者的搜尋意圖和個人喜好,為其提供更加精準和個人化的搜尋結果。
離線KV資料同步到線上儲存情境:該情境下的特徵資料包括商品屬性工作表、使用者屬性等,通過使用FeatureStore,簡化離線資料到線上儲存的同步調度任務。
功能特性
資料來源能力
FeatureStore封裝了整個特徵到模型的流程,支援多種離線和即時資料源,便於您在FeatureStore中進行端到端特徵表註冊、管理操作,當前支援的資料來源包括:
離線資料來源:MaxCompute
線上資料來源:Hologres、GraphCompute、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小時的點擊、轉寄、購買數量、轉化率等)。其中線上儲存包括Hologres、GraphCompute、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中。
地區限制
FeatureStore支援的地區包括:華北2(北京)、華東2(上海)、華東1(杭州)、華南1(深圳)、中國(香港)。
操作流程
建立資料來源。
資料來源包含離線資料來源與線上資料來源,操作詳情請參見配置資料來源。
建立專案,並配置特徵實體、特徵視圖、Label表等,產出模型特徵train set表(訓練資料集)。操作詳情請參見配置FeatureStore專案。
查看任務詳情。
您可以在工作中樞中查看各任務的狀態與任務詳情,操作詳情請參見工作中樞。
將資料同步到線上儲存,具體操作請參見DSW Gallery案例。
需要在Java/Go線上引擎中讀取和使用FeatureStore線上資料,請搜尋DingTalk群34415007523,諮詢技術人員。
聯絡我們
如果您在使用FeatureStore時遇到問題,可以搜尋DingTalk群號:34415007523,進入答疑群聯絡群技術人員進行諮詢。