配置 FeatureStore 項目
FeatureStore項目對應一個離線數(shù)據(jù)源和在線數(shù)據(jù)源,各個項目中彼此獨立,而項目內可共享所有的離線、在線特征表。本文為您介紹如何配置特性平臺項目。
前提條件
已創(chuàng)建離線和在線數(shù)據(jù)源,操作詳情請參見配置數(shù)據(jù)源。
已將Label表存儲于離線數(shù)據(jù)源中。
Label表是模型訓練時Label所在的表,帶有模型訓練目標和特征實體的JoinId。在推薦場景中一般是由行為表通過group by user_id/item_id/request_id等操作得到。
以下為創(chuàng)建一個示例Label表的建表語句,您可以參考以下建表命令對應的表結構了解Label表的常見字段。
CREATE TABLE IF NOT EXISTS rec_sln_demo_fs_rec_sln_demo_sorting_label_table_v3 ( request_id string ,user_id string ,page string ,net_type string ,day_h bigint COMMENT '行為發(fā)生在當天的第幾小時' ,week_day bigint COMMENT '行為發(fā)生在當前周的第幾天' ,day_min string ,event_unix_time bigint ,item_id string ,playtime double ,is_click BIGINT ,ln_playtime DOUBLE ,is_praise BIGINT ) PARTITIONED BY ( ds string ) LIFECYCLE 90 ;
新建項目
進入特征平臺頁面。
登錄PAI控制臺,在左側導航欄單擊 。
在右側頁面中選擇工作空間后單擊進入FeatureStore。
單擊新建項目,在彈出的頁面中配置項目參數(shù)。
其中關鍵參數(shù)如下。
參數(shù)
說明
離線數(shù)據(jù)源
選擇已創(chuàng)建的離線數(shù)據(jù)源。
在線數(shù)據(jù)源
選擇已創(chuàng)建的在線數(shù)據(jù)源。
離線數(shù)據(jù)表生命周期
通過FeatureStore自動創(chuàng)建、存儲于離線數(shù)據(jù)源MaxCompute中的表的生命周期。
單擊提交,完成項目創(chuàng)建。
新建特征實體
特征實體(FeatureEntity)代表了一組特征表的集合,以推薦系統(tǒng)場景為例,可以設置兩個特征實體user和item。
在特征項目列表中,單擊特征項目名稱,進入項目詳情頁面。
在特征實體頁簽中單擊新建實體,在彈出的頁面中配置特征實體參數(shù)。
其中關鍵參數(shù)配置指導如下。
參數(shù)
說明
特征實體名稱
自定義。以推薦場景為例,可配置兩個特征實體,名稱分別為user、item。
Join Id
Join Id是關聯(lián)特征視圖到特征實體的特征表字段,每個特征實體都會有一個Join Id , 通過Join Id可以關聯(lián)多個特征視圖的特征。
說明每一個特征視圖都有一個主鍵(索引鍵)來獲取其下面的特征數(shù)據(jù),但是特征視圖的索引鍵可以和JoinId的名稱不一致。
以推薦場景為例,Join Id可以配置為user表和item表的主鍵user_id、item_id。
單擊提交,完成創(chuàng)建。
新建特征視圖
特征視圖(FeatureView)是一組特征,包含一組特征以及這些特征的衍生特征的信息。一個特征視圖是特征實體的全量特征集合的一個子集,離線特征表和在線特征表的映射。
在特征項目詳情頁面的特性視圖頁簽,單擊新建特征視圖。
在彈出的頁面中配置視圖參數(shù),完成后單擊提交,完成視圖創(chuàng)建。
創(chuàng)建離線特征視圖:將離線特征數(shù)據(jù)注冊FeatureStore中。
創(chuàng)建在線特征視圖:將實時特征數(shù)據(jù)注冊FeatureStore中。關于實時特征更詳細的內容介紹,請參見實時特征內容介紹。
離線視圖與在線視圖的核心配置參數(shù)請參見下文。
新建離線特征視圖
核心配置參數(shù)如下。
參數(shù) | 說明 |
類型 | 選擇離線時,表明此特征視圖是將離線特征數(shù)據(jù)注冊FeatureStore中的視圖表。 |
寫入方式 |
待配置的字段屬性包括:
|
同步在線特征表 | 選擇是否需要將此視圖中的特征數(shù)據(jù)自動同步到同特征項目的在線數(shù)據(jù)源中。 |
特征實體 | 選擇特征視圖關聯(lián)的特征實體。 說明 多個特征視圖可以關聯(lián)一個特征實體。 |
特征生命周期 | 設置特征視圖的生命周期。設置完成后,后續(xù)同步寫入實時數(shù)據(jù)源中的特征生命周期即為此處配置的生命周期。 |
新建實時特征視圖
核心配置參數(shù)如下。
參數(shù) | 說明 |
視圖名稱 | 參照控制臺界面提示,進行自定義配置。 |
類型 | 選擇實時時,表明此特征視圖是將在線特征數(shù)據(jù)注冊FeatureStore中的視圖表。 |
特征實體 | 選擇特征視圖關聯(lián)的特征實體。 說明 多個特征視圖可以關聯(lián)一個特征實體。 |
寫入方式 | 在線特征視圖僅支持自定義表結構的寫入方式,即自定義本次新建離線視圖的表結構。 選擇此種方式后,您需要根據(jù)界面提示手動添加視圖字段并配置字段屬性。 待配置的字段屬性包括:
|
特征字段 | 您可以根據(jù)實際需要的字段數(shù)來填寫。
|
特征生命周期 | 一般需要大于1,默認為30,單位為天。 |
高級配置 | 使用JSON方式進行高級選項的配置。當前支持配置save_original_field字段。
說明 由于GraphCompute中各個字段名稱長度不能超過30個字符,當MaxCompute字段名稱較長時,需要配置 |
新建Label表
Label表是模型訓練時Label所在的表,帶有模型訓練目標和特征實體的JoinId。在推薦場景中一般是由行為表通過group by user_id/item_id/request_id
等操作得到。
在特征項目詳情頁面的Label表頁簽,單擊新建Label表。
在彈出的頁面中,選擇Label表所在的數(shù)據(jù)源及Label表名。
配置Label表字段,完成后單擊提交。
字段配置
說明
特征字段
Label表中如果存在某些特征的話,可勾選對應字段為特征字段。
FG保留字段
當前階段可不做配置。
事件時間
勾選Label表中記錄行為產(chǎn)生的時間戳字段。
Label字段
勾選Label表中的Label字段。
分區(qū)字段
勾選Label表中的分區(qū)字段。
新建模型特征
模型特征是指定訓練上線過程中所使用的特征的集合,選擇好特征創(chuàng)建模型后,會在MaxCompute中創(chuàng)建一張train set表,用于離線訓練。后續(xù)您也可以在EAS、PAI-rec中指定FeatureStore的模型特征,即可自動拉取用于推理的特征數(shù)據(jù)。
在特征項目詳情頁面的模型特征頁簽,單擊新建模型特征。
在彈出的頁面中配置模型特征參數(shù),完成后單擊提交。
核心參數(shù)如下。
參數(shù)
說明
選擇特征
選擇當前離線視圖中的特征,并配置特征別名。
Label表名稱
選擇已創(chuàng)建的Label表名稱。
導出表名
提交后,后續(xù)會在MaxCompute中自動創(chuàng)建一張train set表,用于離線訓練。
實時特征內容介紹
基本概念
實時特征一般是指會實時變化的特征,可能會在毫秒級時間內發(fā)生改變,通常在服務端等系統(tǒng)中迅速生成或更新,并立即用于處理和決策的特征。實時特征的生成和使用通常發(fā)生在實時數(shù)據(jù)流分析或系統(tǒng)中,具有高時效性和快速響應的特點。
實時特征通常是從數(shù)據(jù)流中提取的,使用數(shù)據(jù)流系統(tǒng)(例如Flink)可以計算并生成實時特征,以確保特征盡可能反映當前的狀態(tài)。實時特征要求整個鏈路具有高性能和低延遲的特點,并且實時特征會動態(tài)更新,系統(tǒng)會不斷重新計算這些特征。
應用場景
實時特征一般具有以下應用場景:
在線廣告:根據(jù)用戶當前的瀏覽行為實時調整廣告內容。
欺詐檢測:在金融交易中實時檢測可疑行為,并觸發(fā)警報或阻止交易。
個性化推薦:根據(jù)用戶當前的活動和歷史數(shù)據(jù)實時更新推薦列表。
IoT系統(tǒng):在物聯(lián)網(wǎng)系統(tǒng)中實時監(jiān)測和控制設備,生成和使用實時特征以響應環(huán)境變化。
實時特征在推薦廣告等機器學習系統(tǒng)中應用
實時特征寫入過程
在特征平臺(FeatureStore)中新建實時特征視圖后,會自動在在線數(shù)據(jù)引擎中新建一張同樣Schema的表,用于實時特征數(shù)據(jù)的寫入和讀取。當使用FeatureDB、TableStore、Hologres或GraphCompute等數(shù)據(jù)源時,客戶后端可以接入阿里云DataHub消息隊列,通過DataHub將數(shù)據(jù)傳輸?shù)紽link,在Flink進行實時特征的處理和計算后,可以將實時特征的結果寫入到對應的在線數(shù)據(jù)源的表中(您可以在實時特征視圖詳情頁中查看具體表名)。
線上特征的讀取
當使用EasyRec Processor時,其內置FeatureStore Cpp SDK,只需要指定模型特征名(fs_model),即可自動分析出哪些特征是實時特征,從而自動讀取實時特征。當使用FeatureStore Go SDK或者FeatureStore Java SDK時,可以根據(jù)SDK的設置進行對應的特征讀取。
離線樣本的導出
特征平臺會自動將特征視圖對應的離線數(shù)據(jù)引擎中的表聯(lián)接后導出。對于實時特征視圖,當使用FeatureDB時,F(xiàn)eatureDB會自動把在線寫入的數(shù)據(jù)寫入到離線數(shù)據(jù)引擎對應的離線表中。當不使用FeatureDB時,需要您自己建任務將數(shù)據(jù)寫入到離線數(shù)據(jù)引擎對應的離線表中。或者使用PAI-Rec中的推薦算法定制,可以離線生產(chǎn)出模擬實時數(shù)據(jù),作為對應的實時特征視圖離線表數(shù)據(jù)。
特征平臺實時特征視圖
實時特征視圖應用流程
特征平臺中的實時特征視圖專門用來處理實時變化的特征,它通過DataHub消息隊列和Flink實時寫入在線特征,然后使用EasyRec Processor實時輪詢讀取特征或者通過FeatureStore SDK實時讀取特征,從而能夠在下游實時感知到特征的毫秒級變化。
導出操作
您可以選擇多個實時特征視圖、離線特征視圖來創(chuàng)建模型特征,創(chuàng)建好模型特征后可以進行導出。特征平臺支持自動導出,實時特征視圖中對應離線數(shù)據(jù)表的來源根據(jù)使用的場景有不同的差異,具體如下:
在線數(shù)據(jù)源 | FeatureDB | Hologres/TableStore/GraphCompute | |
推薦引擎 | 都可以 | PAI-REC (使用推薦算法定制) | 其它 |
導出方案 | 直接使用特征平臺導出。 | 將推薦算法定制的模擬數(shù)據(jù)導入對應的實時特征視圖的離線表后,使用特征平臺導出。 | 需手動導出實時特征視圖對應的離線表數(shù)據(jù),使用特征平臺導出。 |
同步操作
同步操作可以分為以下兩種:
通過Flink Connect寫入,詳情請參見設置Flink Connector。
通過SDK寫入,詳情請參見FeatureStore SDK參考。
相關文檔
配置好FeatureStore項目后,如何應用FeatureSotre,詳情請參見在推薦系統(tǒng)中應用FeatureStore管理特征。