全部產品
Search
文件中心

Platform For AI:特徵工程

更新時間:Jul 13, 2024

通過推薦演算法定製產生的特徵工程,對未經處理資料集(包括使用者表、物料表和行為表等)進行處理,並產生新的特徵表,以供後續的召回和排序使用。

前提條件

資料集

為了示範以下特徵工程,本資料使用指令碼類比構造產生使用者(user)表、物料(item)表和行為(behavior)表,並非真實資料集。

使用者表:pai_online_project.rec_sln_demo_user_table

欄位名

類型

描述

user_id

bigint

使用者唯一ID

gender

string

性別

age

bigint

年齡

city

string

城市

item_cnt

bigint

創作內容數

follow_cnt

bigint

關注數

follower_cnt

bigint

粉絲數

register_time

bigint

註冊時間

tags

string

使用者標籤

ds

string

表分區列名

物料表:pai_online_project.rec_sln_demo_item_table

欄位名

類型

描述

item_id

bigint

物料ID

duration

double

視頻時間長度

title

string

標題

category

string

一級標籤

author

bigint

作者

click_count

bigint

累計點擊數

praise_count

bigint

累計點贊數

pub_time

bigint

發布時間

ds

string

表分區列名

行為表:pai_online_project.rec_sln_demo_behavior_table

欄位名

類型

描述

request_id

bigint

埋點ID/請求ID

user_id

bigint

使用者唯一ID

exp_id

string

實驗ID

page

string

頁面

net_type

string

網路類型

event_time

bigint

行為事件發生的時間

item_id

bigint

物品ID

event

string

行為事件類型

playtime

double

播放時間長度/閱讀時間長度

ds

string

表分區列名

特徵工程

步驟一:進入Designer頁面

  1. 登入PAI控制台

  2. 在左側導覽列單擊工作空間列表,在工作空間列表頁面中單擊待操作的工作空間名稱,進入對應工作空間內。

  3. 在工作空間頁面的左側導覽列選擇模型開發與訓練 > 可視化建模(Designer),進入Designer頁面。

步驟二:構建工作流程

  1. Designer頁面,單擊預置模板頁簽。

  2. 在模板列表的推薦解決方案-特徵工程地區,單擊建立

  3. 建立工作流程對話方塊,配置參數(可以全部使用預設參數)。

    其中: 工作流程資料存放區配置為OSS Bucket路徑,用於儲存工作流程運行中產出的臨時資料和模型。

  4. 單擊確定

    您需要等待大約十秒鐘,工作流程可以建立成功。

  5. 在工作流程列表,雙擊推薦解決方案-特徵工程工作流程,進入工作流程。

  6. 系統根據預置的模板,自動構建工作流程,如下圖所示。image.png

    節點

    描述

    1

    物料表預先處理:

    • 將Tag特徵分隔字元替換為chr(29)供後續特徵產生步驟(FG)使用。

    • 產出是否是新上架物料的特徵。

    2

    行為表預先處理:產出day_h、week_day等行為時間的衍生特徵。

    3

    使用者表預先處理:

    • 產出是否是新註冊使用者的特徵。

    • 將Tag特徵分隔字元替換為chr(29)供後續特徵產生步驟(FG)使用。

    4

    關聯線為表、使用者表和物料表,形成帶統計屬性的行為日誌寬表。

    5

    產生物料特徵表,包含一段時間的物料統計特徵:

    • item__{event}_cnt_{N}d:N天內該物料上發生某行為的數目,表徵物料熱門程度。

    • item__{event}_{itemid}_dcnt_{N}d:N天內該物料上發生某行為的唯一使用者數,表徵物料熱門程度。

    • item__{min|max|avg|sum}_{field}_{N}d:N天內發生在該物料的正向行為中,使用者某數值屬性上的統計分布,表徵物料被那哪種數值屬性的使用者偏好。

    • item__kv_{cate}_{event}_{N}d:N天內發生在該物料上的某行為中,使用者某類目屬性的統計,表徵物料被哪種類目屬性的使用者偏好。

    6

    產生使用者特徵表,包含一段時間的使用者統計特徵。

步驟三:添加函數

  1. 建立商務程序。具體操作,請參見建立商務程序

  2. 按右鍵建立的商務程序下的MaxCompute,選擇建立資源 > Python,建立一個名稱為count_cates_kvs.py的python指令碼資源具體操作,請參見建立並使用MaxCompute資源

  3. 按右鍵建立的商務程序下的MaxCompute,選擇建立函數。建立一個名稱為COUNT_CATES_KVS的MaxCompute函數。其中類名配置為count_cates_kvs.CountCatesKVS資源清單配置為count_cates_kvs.py。具體操作,請參見建立並使用自訂函數

步驟四:運行工作流程並查看輸出結果

說明

本資料集預設使用的是45天的資料,將會運行較長時間。如果希望更快的完成運行,需要進行如下操作:

  • 更新執行時間視窗參數,使用更少時間內的資料。

    • 分別單擊以下節點,將右側參數設定頁簽的執行時間視窗參數由預設的(-45,0]改為(-9,0]

      • 1_rec_sln_demo_item_table_preprocess_v2

      • 2_rec_sln_demo_behavior_table_preprocess_ v2

      • 3_rec_sln_demo_user_table_preprocess_v2

      • 4_rec_sln_demo_behavior_table_preprocess_wide_v2

    • 分別單擊以下節點,將右側參數設定頁簽的執行時間視窗參數由預設的(-31,0]改為(-8,0]

      • 5_rec_sln_demo_item_table_preprocess_all_feature_v2

      • 6_rec_sln_demo_user_table_preprocess_all_feature_v2

  • 修改SQL指令碼代碼,選取一部分使用者。

    • 單擊節點2_rec_sln_demo_behavior_table_preprocess_ v2,將右側參數設定頁簽的SQL指令碼參數配置代碼的第32行由WHERE ds = '${pai.system.cycledate}' 改為WHERE ds = '${pai.system.cycledate}' and user_id %10=1

    • 單擊節點3_rec_sln_demo_user_table_preprocess_v2,將右側參數設定頁簽的SQL指令碼參數配置代碼的第38行由WHERE ds = '${pai.system.cycledate}' 改為WHERE ds = '${pai.system.cycledate}' and user_id %10=1

  1. 單擊Designer工作流程畫布上方的運行按鈕image.png

  2. 工作流程運行結束後,查看以下MaxCompute表是否有30天的資料:

    • 物料特徵表:rec_sln_demo_item_table_preprocess_all_feature_v2

    • 行為日誌寬表:rec_sln_demo_behavior_table_preprocess_v2

    • 使用者特徵表:rec_sln_demo_user_table_preprocess_all_feature_v2

    您可以在SQL查詢頁面,查詢上述表資料。具體操作,請參見使用DataWorks串連

    說明

    表所屬專案禁止了分區表全表掃描,需要指定分區條件。如果查詢表資料的SQL需要進行全表掃描,您可以在SQL語句前加set odps.sql.allow.fullscan=true; 語句並一起提交運行。全表掃描會導致輸入量增加從而使成本增加。