接下來需要做“特徵配置”。特徵配置在推薦方案配置中是一個核心的部分,我們期望通過介面配置出想要的特徵,然後自動產生計算的MaxCompute 和Flink的SQL代碼,生產出常見的統計特徵、序列特徵、MinMax特徵、偏好KV統計特徵,最終輸出給向量召回、粗排和精排模型樣本。
1.常用周期行為類型配置
-
常用周期:可以自訂配置,一般我們配置短、中、長周期,不可過多,過多可能引起過多的特徵(如在一個周期統計200個特徵,通常3個周期就有600個特徵,如果是6個周期就會超過1200個特徵)。
-
重點關注行為:即行為表填寫的行為枚舉值,一般在5個以下(和行為周期一樣,太多會引起過多的特徵)。如果有過多的行為類型,可以在上遊準備表的時候合并一些不重要的,或者含義一樣的行為類型。注意此處一般按照行為發生的先後次序,如次序應該是"曝光、點擊、點贊"(對應expr、click、praise,來自於event欄位裡面的枚舉值)這種順序,次序混亂會影響下面比率特徵的產生,會給下遊更改造成一些手動工作。
此處會根據統計周期以及行為類型,還有上遊3張表提供的類目,數值,tag等類型的基礎特徵,點擊【產生特徵】,會自動在使用者和物品側衍生出多種統計特徵。配置介面上方為"常用周期"設定地區,可配置短、中、長等統計周期;下方為"重點關注行為"選擇地區,用於指定行為枚舉值;頁面底部提供【產生特徵】按鈕,點擊後自動衍生統計特徵。
2.基礎衍生特徵
例如,在使用者側基礎屬性特徵中,原有特徵關聯欄位包括 gender、city、follow_cnt、register_time、age 等。可添加距今時間測算特徵,關聯欄位選擇 register_time,產生特徵名 user_register_time;再添加已有特徵分段加工特徵,關聯欄位選擇 user_register_time,分割點填寫 3,產生特徵名 user_register_time_bin。
一般根據上遊對3張表的配置,下遊對應的基礎屬性特徵已經有一些自動的衍生特徵,不過此處我們還可以點擊添加,繼續增加基礎衍生特徵。注意使用者側,物品側,和行為側都有基礎屬性特徵的衍生。
-
IP衍生:配置IP衍生特徵,只能在上遊對應表配置的IP欄位上進行衍生,我們可以根據配置,解析出IP的省份、城市、國家三種特徵,注意解析結果有一定的誤差。
-
距今時間測算:根據使用者或者商品的註冊時間,計算距今多少天。
-
已有特徵分段加工:只能針對數值欄位,根據填寫的分割點進行分割,分割後則是類目特徵。
-
特徵組合:表示多種類目欄位的組合,可以是類目和類目,類目和tag,tag和tag欄位組合,此種組合要求屬於當前表,且要麼都屬於user側,要麼都屬於item側。
行為表的當日時段加工和工作日時間加工均基於關聯欄位 event_time 進行衍生,產生的特徵名稱分別為 day_h 和 week_day。
點擊行為表,還有其餘的2種基本衍生
-
當日時段加工:根據行為日誌會衍生出屬於日誌發生於當天第幾個小時
-
工作日時段加工:根據行為日誌解析出日誌發生於每周的第幾天
如果手動增加完基礎的衍生特徵,需要點擊右上方的儲存,手動增加的基礎衍生特徵才會生效
3.行為偏好統計
我們已經自動衍生了多種統計特徵,使用者側和物品側都有對應的統計特徵,其中自動以使用者ID和物品ID作為彙總主鍵。目前有以下6種類型的統計:
-
行為統計計數
-
轉化率統計
-
Top偏好屬性類特徵的行為計數
-
Top偏好屬性類特徵的行為佔比
-
偏好數值類特徵
-
Top類目與數值組合特徵計算
如果覺得某些特徵不需要,可以點擊右側的刪除按鈕,或者點擊編輯對某個屬性進行刪除。如果需要添加特徵可以點擊右下角的【添加】按鈕,繼續添加多種類型的統計特徵。以下是幾種統計特徵的介紹
-
行為統計計數
表示會統計使用者在對應的周期,如3、7、15天中,統計對應的行為,如expr、click、praise發生的次數,如果帶有去重ID,則表示依照ID去重之後的次數,如果有配置情境,則表示這些特徵會統計發生在某個情境的行為。以上述3個統計周期和3種統計行為為例,將產生9個特徵,即統計周期數量乘上統計行為數量(3*3=9)。
-
轉化率統計
該樣本中配置了 3 個統計周期(3、7、15 天)和 2 個轉化率公式(click/expr、praise/click)。
為統計行為的轉化率,表示會統計使用者,在對應的周期,如3、7、15天中,統計對應的行為相除,如click的次數除以expr的次數,praise的次數除以click的次數,如果不符合要求還可以繼續修改、增加、刪除。如果有配置情境,則表示只會統計發生在該情境的行為。該樣本配置產生6個特徵,統計周期數量乘以轉化率公式數量。
-
Top偏好屬性類特徵的行為計數

表示會統計使用者在對應的周期,如3、7、15天中,對屬性特徵類目或者多值類目,統計對應的行為,如expr,click,praise。每種屬性值發生的次數,最終產生kv特徵。如以類目day_h,行為是點擊舉例,產生特徵"12:27.0,8:26.0,1:1.0"表示該使用者在當前周期內,在12點的點擊發生27次,8點的點擊發生26次,1點的點擊發生1次。如果有配置情境,則表示這些特徵會統計發生在某個情境的資料下,如果key的數量過多,預設截斷100個。該樣本配置產生54個特徵,數量=統計周期數量*統計行為數量*屬性特徵數量。
-
Top偏好屬性類特徵的行為佔比
表示會統計使用者在對應的周期,如3、7、15天中,對屬性特徵類目或者多值類目,統計對應的行為比率,如click/expr (ctr),praise/click(cvr)比率特徵。最終產生kv特徵。如以類目cate為列,公式是click/expr,產生特徵"12:0.27,8:0.26"表示該使用者在當前周期內,在12類目的點擊率是0.27,在類目8的點擊率0.26。如果有配置情境,則表示這些特徵會統計發生在某個情境的資料下,如果key的數量過多,預設截斷100個。該樣本配置產生36個特徵,即 3 個統計周期(3、7、15 天)× 2 個轉化率公式(click/expr、praise/click)× 6 個屬性特徵
-
偏好數值類特徵
該樣本中選擇的數值特徵為
click_count、praise_count、duration、item_pub_time共 4 個。表示會統計使用者在對應的周期,如3、7、15天中;在對應的行為中,如expr、click、praise;對選擇的數值屬性,根據計算邏輯進行統計。計算邏輯可以是總和,最大值,最小值,均值等。如果有配置情境,則表示這些特徵會統計發生在某個情境下的資料。該樣本配置產生36個特徵,數量=統計周期數量×行為數量×數值特徵數量。
-
Top類目與數值組合特徵計算
該樣本中,組合特徵左側類目特徵選取
category、day_h、week_day,右側數值特徵選取playtime,截斷數量設為 100。表示會統計使用者在對應的周期,如3、7、15天中;在對應的行為中,如expr、click、praise;根據計算邏輯,如總和,最大值,最小值,均值等;計算使用者在對應類目特徵下對某數值的偏好。如果有配置情境,則表示這些特徵會統計發生在某個情境的資料下。該樣本配置產生27個特徵,數量=統計周期數量*行為數量*組合特徵的類目特徵數量。
4.序列特徵
序列特徵只能在使用者側設定。由於推薦系統最開始沒有序列特徵,因此剛開始我們都是依靠現有的歷史行為資料來類比產出即時序列特徵,節省線上落下序列特徵的時間,加速實驗上線的過程。其中類比事件一般都是曝光事件;防穿越時間是指最近n秒的行為不會算入當前行為序列(因為推理的時候,日誌迴流鏈路原因會導致部分資料有延遲,如果類比得過於即時,會導致訓練有穿越);序列特徵分隔字元,是指構造序列的時候,序列之間的分隔字元;子特徵分隔字元,是指在一個序列中,子特徵之間的分隔字元。
通用配置中,類比事件預設值為expr,序列特徵分割符預設值為;,子特徵分割符預設值為#。下方表格展示已配置的序列特徵規則,包含主鍵、分類、計算邏輯、操作列,可通過添加新增規則,或對已有規則進行編輯和刪除。
例如,行為統計周期設為30天,統計行為選擇expr,去重ID選擇item_id,子特徵選擇category、click_count、praise_count和duration,截斷數量設為100。
-
行為周期:表示統計最近多少天內的行為,如果有多組序列,則最大的周期起作用。
-
統計行為:表示要統計的行為類型。
-
情境:表示只統計該情境下的行為,不選擇則統計所有情境。
-
去重ID:表示在序列中會依據該子特徵去重,保留當前時刻最後一次該行為發生。
-
子特徵:表示序列特徵的子特徵,一般都是屬於商品側的非統計特徵,包括類目、多值類目以及數值特徵。
-
階段數量:表示序列特徵最大保留的序列數量。
5.即時特徵
以使用者ID和物品ID為主鍵都可以建立即時統計特徵,其中防穿越時間和序列特徵的防穿越時間的功能一樣,表示在目標行為的最近多少秒內的行為不會進入計數統計(因為行為日誌從用戶端傳輸到訊息中介軟體,再統計寫入到線上儲存服務會有一段時間差;如果不設定防穿越時間,會導致線上統計不到理想的資料)。其中即時特徵統計周期單位是秒。統計類型包含以下四種類型:
-
行為統計計數
-
轉化率統計
-
Top偏好屬性類特徵的行為計數
-
Top偏好屬性類特徵的行為佔比
該四種類型和行為偏好統計的四種含義一樣,只是周期不同。
配置樣本中,防穿越時間設為10秒,以user_id為主鍵,在[1800,3600]秒視窗下對click和praise行為進行統計,Top值設為100,偏好屬性為category和duration_bin。每行可通過操作列進行編輯或刪除,底部可單擊添加新增配置行或單擊查看明細查看詳情。
6.彙總特徵
彙總特徵在使用者側和物品側都可以設定。需要選擇彙總條件,只能選擇類目特徵作為彙總條件,並且可以配置多組。
會根據當前的彙總條件統計對應的特徵。可以統計的類型和行為偏好的統計類型一樣,含義也一樣。例如,第一行的含義:是統計在不同性別和年齡組合下"點擊、點贊、曝光"的次數總計。以"口紅"這種商品為例,是女性點擊的次數明顯會多一些,因此按照性別統計商品的銷量是很有用的。
配置表格中,主鍵為使用者ID:gender_age,各統計類型在[3,10]天時間視窗內基於gender_age維度進行計算。可通過頁面底部的添加、查看明細、添加彙總條件、刪除彙總條件連結管理配置項。