特征工程
背景介紹
在推薦系統(tǒng)的粗排和精排系統(tǒng)中,一般都需要在用戶(hù)側(cè)和物品側(cè)設(shè)計(jì)大量的統(tǒng)計(jì)特征、序列特征、組合特征;基于統(tǒng)計(jì)特征還可以設(shè)計(jì)lookup、match特征等衍生特征。例如一個(gè)用戶(hù)側(cè)的偏好類(lèi)目統(tǒng)計(jì)特征f1(KV類(lèi)型特征),需要經(jīng)歷離線(xiàn)統(tǒng)計(jì)、組合為L(zhǎng)ookup特征供離線(xiàn)訓(xùn)練;線(xiàn)上推理的時(shí)候需要把f1同步到在線(xiàn)系統(tǒng)中,推薦引擎通過(guò)PAI-FeatrureStore的SDK讀取到內(nèi)存,然后傳遞給PAI-EAS打分服務(wù)中使用。整個(gè)鏈路很長(zhǎng),因此我們把特征的生產(chǎn)、衍生、離線(xiàn)和在線(xiàn)使用都維護(hù)起來(lái),避免手工一步步的去編程,大大降低工作量,也降低了出錯(cuò)的概率。
下面我們介紹一下從數(shù)據(jù)準(zhǔn)備、注冊(cè),到各種特征設(shè)計(jì)的過(guò)程。在這個(gè)過(guò)程中,對(duì)產(chǎn)出的特征可以做增刪改查,大大提高了對(duì)特征的精細(xì)控制過(guò)程。
數(shù)據(jù)準(zhǔn)備
準(zhǔn)備三張基礎(chǔ)表。
行為日志表:行為日志表就是用戶(hù)在什么時(shí)間,對(duì)什么商品,做了什么行為,以及其附屬字段。例如:
uid_01,20240428112000,item_01,expr uid_01,20240428112005,item_01,click
其中expr、click就是行為類(lèi)型(表示曝光,點(diǎn)擊)。進(jìn)一步的行為類(lèi)型,如加購(gòu)、購(gòu)買(mǎi)、點(diǎn)贊、評(píng)論等。附屬字段例如:requestid、曝光位置、網(wǎng)絡(luò)狀況、操作系統(tǒng)、成交價(jià)格等。行為日志表每天一個(gè)分區(qū),每個(gè)分區(qū)記錄當(dāng)天的行為日志。
用戶(hù)表:用戶(hù)信息表中用戶(hù)ID不重復(fù)。要求可以和行為日志表可以通過(guò)用戶(hù)唯一ID進(jìn)行關(guān)聯(lián)。應(yīng)包含用戶(hù)基礎(chǔ)屬性信息,如年齡、性別、所屬城市、積分、注冊(cè)時(shí)間、用戶(hù)標(biāo)簽等。每天一個(gè)分區(qū),記錄所有用戶(hù)信息。
物品表:商品信息表中商品ID不重復(fù)。要求可以和行為日志表可以通過(guò)商品唯一ID進(jìn)行關(guān)聯(lián)。應(yīng)包含商品基礎(chǔ)屬性信息,如多級(jí)類(lèi)目、價(jià)格、標(biāo)題、顏色、規(guī)格、上架時(shí)間、作者ID、粉絲數(shù)量等
在準(zhǔn)備過(guò)程中對(duì)于其中特殊字符需要經(jīng)過(guò)處理,比如 : ; # chr(2) chr(3) chr(29) 等符號(hào)已經(jīng)被推薦模板占用,應(yīng)在數(shù)據(jù)準(zhǔn)備階段替換掉,還有一些如不能被utf-8解碼的字符,在數(shù)據(jù)準(zhǔn)備階段需要被處理掉。
我們?cè)贛axCompute的項(xiàng)目空間pai_online_project中準(zhǔn)備了3張表(rec_sln_demo_user_table,rec_sln_demo_item_table,rec_sln_demo_behavior_table),采用如下SQL可以將數(shù)據(jù)克隆到自己項(xiàng)目中
--用戶(hù)信息表 CREATE TABLE IF NOT EXISTS rec_sln_demo_user_table( user_id BIGINT COMMENT '用戶(hù)唯一ID', gender STRING COMMENT '性別', age BIGINT COMMENT '年齡', city STRING COMMENT '城市', item_cnt BIGINT COMMENT '創(chuàng)作內(nèi)容數(shù)', follow_cnt BIGINT COMMENT '關(guān)注數(shù)', follower_cnt BIGINT COMMENT '粉絲數(shù)', register_time BIGINT COMMENT '注冊(cè)時(shí)間', tags STRING COMMENT '用戶(hù)標(biāo)簽' ) PARTITIONED BY (ds STRING) STORED AS ALIORC; INSERT OVERWRITE TABLE rec_sln_demo_user_table PARTITION(ds) SELECT * FROM pai_online_project.rec_sln_demo_user_table WHERE ds > "20221231" and ds < "20230217"; --商品信息表 CREATE TABLE IF NOT EXISTS rec_sln_demo_item_table( item_id BIGINT COMMENT '內(nèi)容ID', duration DOUBLE COMMENT '視頻時(shí)長(zhǎng)', title STRING COMMENT '標(biāo)題', category STRING COMMENT '一級(jí)標(biāo)簽', author BIGINT COMMENT '作者', click_count BIGINT COMMENT '累計(jì)點(diǎn)擊數(shù)', praise_count BIGINT COMMENT '累計(jì)點(diǎn)贊數(shù)', pub_time BIGINT COMMENT '發(fā)布時(shí)間' ) PARTITIONED BY (ds STRING) STORED AS ALIORC; INSERT OVERWRITE TABLE rec_sln_demo_item_table PARTITION(ds) SELECT * FROM pai_online_project.rec_sln_demo_item_table WHERE ds > "20221231" and ds < "20230217"; --日志行為表 CREATE TABLE IF NOT EXISTS rec_sln_demo_behavior_table( request_id STRING COMMENT '埋點(diǎn)ID/請(qǐng)求ID', user_id STRING COMMENT '用戶(hù)唯一ID', exp_id STRING COMMENT '實(shí)驗(yàn)ID', page STRING COMMENT '頁(yè)面', net_type STRING COMMENT '網(wǎng)絡(luò)型號(hào)', event_time BIGINT COMMENT '行為時(shí)間', item_id STRING COMMENT '內(nèi)容ID', event STRING COMMENT '行為類(lèi)型', playtime DOUBLE COMMENT '播放時(shí)長(zhǎng)/閱讀時(shí)長(zhǎng)' ) PARTITIONED BY (ds STRING) STORED AS ALIORC; INSERT OVERWRITE TABLE rec_sln_demo_behavior_table PARTITION(ds) SELECT * FROM pai_online_project.rec_sln_demo_behavior_table WHERE ds > "20221231" and ds < "20230217";
數(shù)據(jù)注冊(cè)
【推薦方案定制中】導(dǎo)航列表點(diǎn)擊【數(shù)據(jù)注冊(cè)】,點(diǎn)擊【新增數(shù)據(jù)】
選擇已經(jīng)配置的MaxCompute的項(xiàng)目,也就是3張表所在的項(xiàng)目,MaxCompute表輸入選擇日志行為表rec_sln_demo_behavior_table,并在數(shù)據(jù)表名稱(chēng)輸入相同的名稱(chēng),點(diǎn)擊開(kāi)始導(dǎo)入。
導(dǎo)入成功后,可以在新增好的表中點(diǎn)擊查看字段,可以看到該表的字段明細(xì)
如上方式同樣導(dǎo)入用戶(hù)表和物品表
數(shù)據(jù)表配置
點(diǎn)擊【推薦方案定制】下的【方案配置】,后創(chuàng)建推薦方案,如圖
已經(jīng)創(chuàng)建好的推薦方案,可以點(diǎn)擊右側(cè)的更新方案進(jìn)行配置
1.添加行為表
行為表中的行為信息配置
行為表名稱(chēng):選取我們已經(jīng)注冊(cè)好的行為表
時(shí)間分區(qū):行為表的分區(qū)字段
請(qǐng)求ID:行為日志的請(qǐng)求ID字段,有就填寫(xiě),沒(méi)有可以不填寫(xiě),該字段會(huì)影響樣本精準(zhǔn)度和模擬的實(shí)時(shí)特征,實(shí)時(shí)序列特征的準(zhǔn)確性。
行為事件:表示行為類(lèi)型的字段
行為事件枚舉值:也就是行為事件里面包含的枚舉值,如曝光,點(diǎn)擊,加購(gòu),購(gòu)買(mǎi)等行為
行為的值:表示行為的深度,可以是成交價(jià)格,觀看時(shí)長(zhǎng)等字段。
行為時(shí)間戳:日志發(fā)生的時(shí)間,一般是10位時(shí)間戳,特殊需要指定格式,精準(zhǔn)到秒
時(shí)間戳格式:和行為時(shí)間戳配合使用
行為場(chǎng)景:表示日志發(fā)生的場(chǎng)景字段,如首頁(yè),搜索頁(yè),或者是商品詳情頁(yè)
重點(diǎn)關(guān)注的場(chǎng)景:行為場(chǎng)景重要的值,在下游的特征配置中可以使用
行為表屬于用戶(hù)側(cè)的字段
用戶(hù)ID:行為表中用戶(hù)ID的標(biāo)識(shí)
用戶(hù)類(lèi)別特征:行為表中存在的用戶(hù)類(lèi)別特征,如網(wǎng)絡(luò),操作平臺(tái),性別等
用戶(hù)數(shù)值特征:行為表中存在的用戶(hù)數(shù)值特征,如粉絲數(shù)量,作品數(shù)
用戶(hù)Tag特征:行為表中存在的用戶(hù)多值的類(lèi)目特征,如興趣愛(ài)好等
用戶(hù)IP: 行為日志可能存在的IP,如果有,則下游會(huì)對(duì)IP解析成國(guó)家,省份,城市等類(lèi)目特征
用戶(hù)Text特征:行為表中可能存在的屬于user側(cè)的文本特征
用戶(hù)KV特征:行為表中可能存在,并且屬于user側(cè)的多值類(lèi)目,并帶有權(quán)重的特征
行為表輸入物品側(cè)的字段
物品ID:行為表中物品ID的標(biāo)識(shí)
物品類(lèi)別特征:行為表中存在的物品類(lèi)別特征,如類(lèi)目等
物品數(shù)值特征:行為表中存在的物品數(shù)值特征,如觀看人數(shù)等
物品Tag特征:行為表中存在的物品多值的類(lèi)目特征,如尺碼等
物品Text特征:行為表中可能存在的屬于item側(cè)的文本特征,如標(biāo)題等
物品KV特征:行為表中可能存在,并且屬于item側(cè)的多值類(lèi)目,并帶有權(quán)重的特征
行為表的其他字段
tag特征的分隔符號(hào),如果存在user的tag或者item的tag,則正確填寫(xiě)其多值特征的分割符號(hào)
表生命周期:如果填寫(xiě),則行為表會(huì)保存對(duì)應(yīng)的周期,如果不填寫(xiě),則生成的表將和其上游表同周期
datawroks節(jié)點(diǎn)名稱(chēng):如果填寫(xiě)則依賴(lài)的就是填寫(xiě)節(jié)點(diǎn)的名稱(chēng),如果不填寫(xiě)則依賴(lài)節(jié)點(diǎn)的名稱(chēng)和行為表名稱(chēng)一樣
2.添加用戶(hù)表
用戶(hù)表名稱(chēng):選取我們已經(jīng)注冊(cè)好的用戶(hù)表
時(shí)間分區(qū):用戶(hù)表的時(shí)間分區(qū)字段
用戶(hù)ID:用戶(hù)表中的用戶(hù)ID字段
注冊(cè)時(shí)間戳:該用戶(hù)注冊(cè)的時(shí)間,一般是10位時(shí)間戳,特殊需要指定格式,精準(zhǔn)到秒
時(shí)間戳格式:和注冊(cè)時(shí)間配置配合使用
類(lèi)別特征:用戶(hù)表的類(lèi)別字段,如性別,年齡段,所屬城市等。
數(shù)值特征:用戶(hù)表的數(shù)值字段,如作品數(shù),積分
tag特征:多值類(lèi)別字段,使用tag分割符號(hào)分割
用戶(hù)IP:用戶(hù)表中可能存在的IP字段,下游會(huì)自動(dòng)解析省份,城市等信息
kv類(lèi)特征:用戶(hù)多值特征并帶有分割符號(hào)
embedding特征:用戶(hù)側(cè)帶有的embedding特征
3.添加物品表
物品表名稱(chēng):選取我們已經(jīng)注冊(cè)好的物品表。
時(shí)間分區(qū):物品表的時(shí)間分區(qū)字段。
物品ID:物品表中的物品ID字段。
作者ID:商品所屬的作者。
注冊(cè)時(shí)間戳:該物品注冊(cè)的時(shí)間,一般是10位時(shí)間戳,特殊需要指定格式,精準(zhǔn)到秒。
時(shí)間戳格式:和注冊(cè)時(shí)間配置配合使用。
類(lèi)別特征:物品表的類(lèi)別字段,如類(lèi)目。
數(shù)值特征:物品表的數(shù)值字段,如作價(jià)格,累計(jì)銷(xiāo)量,點(diǎn)贊量。
tag特征:多值類(lèi)別字段,使用tag分割符號(hào)分割。
text特征:物品的文本特征,如標(biāo)題,描述等。
kv類(lèi)特征:物品多值特征并帶有分割符號(hào)。
embedding特征:物品側(cè)帶有的embedding特征。
特征配置
1.常用周期行為類(lèi)型配置
常用周期:可以自定義配置,一般我們配置短,中,長(zhǎng)周期,不可過(guò)多,過(guò)多可能引起過(guò)多的特征(如在一個(gè)周期我們統(tǒng)計(jì)200個(gè)特征,通常3個(gè)周期就有600特征,如果是6個(gè)周期就會(huì)有1200個(gè)特征)。
重點(diǎn)關(guān)注行為:即行為表填寫(xiě)的行為枚舉值,不可過(guò)多(和行為周期一樣,太多會(huì)引起過(guò)多的特征)。如果有過(guò)多的行為類(lèi)型,可以在上游準(zhǔn)備表的時(shí)候合并一些不重要的,或者含義一樣的行為類(lèi)型。注意此處一般按照行為發(fā)生的先后次序,如次序應(yīng)該是"曝光、點(diǎn)擊、購(gòu)買(mǎi)"這種順序,次序混亂會(huì)影響下面比率特征的生成,會(huì)給下游更改造成一些手動(dòng)工作。
此處會(huì)根據(jù)統(tǒng)計(jì)周期以及行為類(lèi)型,還有上游3張表提供的類(lèi)目,數(shù)值,tag等類(lèi)型的基礎(chǔ)特征,點(diǎn)擊【生成特征】,會(huì)自動(dòng)在用戶(hù)和物品側(cè)衍生出多種統(tǒng)計(jì)特征。
2.基礎(chǔ)衍生特征
一般根據(jù)上游對(duì)3張表的配置,下游對(duì)應(yīng)的基礎(chǔ)屬性特征已經(jīng)有一些自動(dòng)的衍生特征,不過(guò)此處我們還可以點(diǎn)擊添加,繼續(xù)增加基礎(chǔ)衍生特征。注意用戶(hù)側(cè),物品側(cè),和行為側(cè)都有基礎(chǔ)屬性特征的衍生。
IP衍生:配置IP衍生,只能上游對(duì)應(yīng)表配置的IP字段才可以衍生,我們可以根據(jù)配置,解析到IP的省份,城市,國(guó)家3種信息。
距今時(shí)間測(cè)算:根據(jù)用戶(hù)或者商品的注冊(cè)時(shí)間,會(huì)計(jì)算距今多少天。
已有特征分段加工:只能數(shù)值字段,根據(jù)填寫(xiě)的分割點(diǎn)進(jìn)行分割,分割后則是類(lèi)目特征。
特征組合:表示多種類(lèi)目字段的組合,可以類(lèi)目和類(lèi)目,類(lèi)目和tag,tag和tag字段組合,此種組合要求屬于當(dāng)前表,且要么都屬于user側(cè),要么都屬于item側(cè)。
點(diǎn)擊行為表,還有其余的2種基本衍生
當(dāng)日時(shí)段加工:根據(jù)行為日志會(huì)衍生出屬于日志發(fā)生于當(dāng)天第幾個(gè)小時(shí)
工作日時(shí)段加工:根據(jù)行為日志解析出日志發(fā)生于每周的第幾天
如果手動(dòng)增加完基礎(chǔ)的衍生特征,需要點(diǎn)擊右上角的保存,手動(dòng)增加的基礎(chǔ)衍生特征才會(huì)生效
3.行為偏好統(tǒng)計(jì)
如下圖所示,我們已經(jīng)自動(dòng)衍生了多種統(tǒng)計(jì)特征,用戶(hù)側(cè)和物品側(cè)都有對(duì)應(yīng)的統(tǒng)計(jì)特征,其中自動(dòng)以用戶(hù)ID和物品ID作為聚合主鍵。目前有以下6種類(lèi)型的統(tǒng)計(jì):
行為統(tǒng)計(jì)計(jì)數(shù)
轉(zhuǎn)化率統(tǒng)計(jì)
Top偏好屬性類(lèi)特征的行為計(jì)數(shù)
Top偏好屬性類(lèi)特征的行為占比
偏好數(shù)值類(lèi)特征
Top類(lèi)目與數(shù)值組合特征計(jì)算
如果覺(jué)得那些特征不需要,可以點(diǎn)擊右側(cè)的刪除按鈕,或者點(diǎn)擊編輯對(duì)某個(gè)屬性進(jìn)行刪除。如果需要添加特征可以點(diǎn)擊右下角的【添加】按鈕,繼續(xù)添加多種類(lèi)型的統(tǒng)計(jì)特征。以下是幾種統(tǒng)計(jì)特征的介紹
行為統(tǒng)計(jì)計(jì)數(shù)
表示會(huì)統(tǒng)計(jì)用戶(hù)在對(duì)應(yīng)的周期,如3,7,15天中,統(tǒng)計(jì)對(duì)應(yīng)的行為,如expr、click、praise發(fā)生的次數(shù),如果帶有去重ID,則表示依照ID去重之后的次數(shù),如果有配置場(chǎng)景,則表示這些特征會(huì)統(tǒng)計(jì)發(fā)生在某個(gè)場(chǎng)景的行為。該示例配置會(huì)產(chǎn)生9個(gè)特征,統(tǒng)計(jì)周期數(shù)量*統(tǒng)計(jì)行為數(shù)量。
轉(zhuǎn)化率統(tǒng)計(jì)
為統(tǒng)計(jì)行為次數(shù)相除,表示會(huì)統(tǒng)計(jì)用戶(hù),在對(duì)應(yīng)的周期,如3,7,15天中,統(tǒng)計(jì)對(duì)應(yīng)的行為相除,如click的次數(shù)除以expr的次數(shù),praise的次數(shù)除以click的次數(shù),如果不符合要求還可以繼續(xù)修改或者增加,刪除等。如果有配置場(chǎng)景,則表示這些特征會(huì)統(tǒng)計(jì)發(fā)生在某個(gè)場(chǎng)景的數(shù)據(jù)下。該示例配置產(chǎn)生6個(gè)特征,統(tǒng)計(jì)周期數(shù)量*轉(zhuǎn)化率公式數(shù)量。
Top偏好屬性類(lèi)特征的行為計(jì)數(shù)
表示會(huì)統(tǒng)計(jì)用戶(hù)在對(duì)應(yīng)的周期,如3,7,15天中,對(duì)屬性特征類(lèi)目或者多值類(lèi)目,統(tǒng)計(jì)對(duì)應(yīng)的行為,如expr,click,praise。每種屬性值發(fā)生的次數(shù),最終生成kv特征。如以類(lèi)目day_h,行為是點(diǎn)擊舉例,生成特征"12:27.0,8:26.0,1:1.0"表示該用戶(hù)在當(dāng)前周期內(nèi),在12點(diǎn)的點(diǎn)擊發(fā)生27次,8點(diǎn)的點(diǎn)擊發(fā)生26次,1點(diǎn)的點(diǎn)擊發(fā)生1次。如果有配置場(chǎng)景,則表示這些特征會(huì)統(tǒng)計(jì)發(fā)生在某個(gè)場(chǎng)景的數(shù)據(jù)下,如果key的數(shù)量過(guò)多,默認(rèn)截?cái)?00個(gè)。該示例配置生成54個(gè)特征,數(shù)量=統(tǒng)計(jì)周期數(shù)量*統(tǒng)計(jì)行為數(shù)量*屬性特征數(shù)量
Top偏好屬性類(lèi)特征的行為占比
表示會(huì)統(tǒng)計(jì)用戶(hù)在對(duì)應(yīng)的周期,如3,7,15天中,對(duì)屬性特征類(lèi)目或者多值類(lèi)目,統(tǒng)計(jì)對(duì)應(yīng)的行為比率,如click/expr (ctr),praise/click(cvr)比率特征。最終生成kv特征。如以類(lèi)目cate為列,公式是click/expr,生成特征"12:0.27,8:0.26"表示該用戶(hù)在當(dāng)前周期內(nèi),在12類(lèi)目的點(diǎn)擊率是0.27,在類(lèi)目8的點(diǎn)擊率0.26。如果有配置場(chǎng)景,則表示這些特征會(huì)統(tǒng)計(jì)發(fā)生在某個(gè)場(chǎng)景的數(shù)據(jù)下,如果key的數(shù)量過(guò)多,默認(rèn)截?cái)?00個(gè)。該示例配置生成36個(gè)特征,數(shù)量=統(tǒng)計(jì)周期數(shù)量*轉(zhuǎn)化率公式數(shù)量*屬性特征數(shù)量
偏好數(shù)值類(lèi)特征
表示會(huì)統(tǒng)計(jì)用戶(hù)在對(duì)應(yīng)的周期,如3,7,15天中;在對(duì)應(yīng)的行為中,如expr,click,praise;對(duì)選擇的數(shù)值屬性,根據(jù)計(jì)算邏輯進(jìn)行統(tǒng)計(jì)。計(jì)算邏輯可以是總和,最大值,最小值,均值等。如果有配置場(chǎng)景,則表示這些特征會(huì)統(tǒng)計(jì)發(fā)生在某個(gè)場(chǎng)景的數(shù)據(jù)下。該示例配置生成36個(gè)特征,數(shù)量=統(tǒng)計(jì)周期數(shù)量*行為數(shù)量*數(shù)值特征數(shù)量。
Top類(lèi)目與數(shù)值組合特征計(jì)算
表示會(huì)統(tǒng)計(jì)用戶(hù)在對(duì)應(yīng)的周期,如3,7,15天中;在對(duì)應(yīng)的行為中,如expr、click、praise;根據(jù)計(jì)算邏輯,如總和,最大值,最小值,均值等;計(jì)算用戶(hù)在對(duì)應(yīng)類(lèi)目特征下對(duì)某數(shù)值的偏好。如果有配置場(chǎng)景,則表示這些特征會(huì)統(tǒng)計(jì)發(fā)生在某個(gè)場(chǎng)景的數(shù)據(jù)下。該示例配置生成27個(gè)特征,數(shù)量=統(tǒng)計(jì)周期數(shù)量*行為數(shù)量*組合特征的類(lèi)目特征數(shù)量。
4.序列特征
序列特征只會(huì)發(fā)生在用戶(hù)側(cè)。序列特征剛開(kāi)始我們都是依靠現(xiàn)有的數(shù)據(jù)模擬實(shí)時(shí)序列特征,節(jié)省線(xiàn)上落下序列特征的時(shí)間,加速上線(xiàn)。其中模擬事件一般都是曝光事件;防穿越時(shí)間是指最近幾秒的行為不會(huì)算入當(dāng)前行為序列(因?yàn)橥评淼臅r(shí)候,日志回流鏈路原因會(huì)導(dǎo)致部分?jǐn)?shù)據(jù)有延遲,如果模擬的過(guò)于實(shí)時(shí),會(huì)導(dǎo)致訓(xùn)練有穿越);序列特征分割符號(hào),是指構(gòu)造序列的時(shí)候,序列之間的分割符號(hào);子特征分割符號(hào),是指在一個(gè)序列中,子特征之間的分割符號(hào)。
行為周期:表示統(tǒng)計(jì)最近多少天內(nèi)的行為,如果有多組序列,則最大的周期起作用。
統(tǒng)計(jì)行為:表示要統(tǒng)計(jì)的行為類(lèi)型。
場(chǎng)景:表示發(fā)生在某單個(gè)場(chǎng)景下。
去重ID:表示在序列中會(huì)依據(jù)該子特征去重,保留當(dāng)前時(shí)刻最后一次該行為發(fā)生。
子特征:表示序列特征子特征,一般都是屬于商品側(cè)的非統(tǒng)計(jì)特征,類(lèi)目,多值類(lèi)目,以及數(shù)值特征。
階段數(shù)量:表示序列特征最大保留的序列數(shù)量。
5.實(shí)時(shí)特征
以用戶(hù)ID和物品ID為主鍵都可以創(chuàng)建實(shí)時(shí)特征,其中防穿越時(shí)間和序列特征的防穿越時(shí)間的功能一樣,表示在目標(biāo)行為的最近多少秒內(nèi)的行為不會(huì)進(jìn)入計(jì)數(shù)統(tǒng)計(jì)(因?yàn)樾袨槿罩緩目蛻?hù)端傳輸?shù)较⒅虚g件,再統(tǒng)計(jì)寫(xiě)入到在線(xiàn)存儲(chǔ)服務(wù)會(huì)有一段時(shí)間差;如果不設(shè)置防穿越時(shí)間,會(huì)導(dǎo)致線(xiàn)上統(tǒng)計(jì)不到理想的數(shù)據(jù))。其中實(shí)時(shí)特征統(tǒng)計(jì)周期單位是秒。統(tǒng)計(jì)類(lèi)型包含以下四種類(lèi)型:
行為統(tǒng)計(jì)計(jì)數(shù)
轉(zhuǎn)化率統(tǒng)計(jì)
Top偏好屬性類(lèi)特征的行為計(jì)數(shù)
Top偏好屬性類(lèi)特征的行為占比
該四種類(lèi)型和行為偏好統(tǒng)計(jì)的4中含義一樣,只是周期不同。
6.聚合特征
聚合特征在用戶(hù)側(cè)和物品側(cè)都可以發(fā)生。需要選擇聚合條件,只能選擇類(lèi)目特征作為聚合條件,可以配置多組。
會(huì)根據(jù)當(dāng)前的聚合條件統(tǒng)計(jì)對(duì)應(yīng)的特征。可以統(tǒng)計(jì)的類(lèi)型和行為偏好的統(tǒng)計(jì)類(lèi)型一樣,含義也一樣
精排配置
在排序配置中我們選擇添加精排
精排模型名稱(chēng):字母加下劃線(xiàn),推薦用:${場(chǎng)景名稱(chēng)}_${模型名稱(chēng)}_rank
精排目標(biāo)設(shè)置:精排目標(biāo)可以設(shè)置多個(gè)目標(biāo),包含分類(lèi)和回歸目標(biāo),詳情如下:
分類(lèi)目標(biāo)
精排目標(biāo)名稱(chēng)自定義;精排目標(biāo)表達(dá)式,一般我們是二分類(lèi)目標(biāo),根據(jù)聚合條件做對(duì)應(yīng)的聚合;目標(biāo)類(lèi)型分類(lèi)就是classfication,如下圖:
回歸目標(biāo)
精排目標(biāo)名稱(chēng)可自定義;
精排目標(biāo)表達(dá)式:對(duì)于回歸目標(biāo),我們需要對(duì)行為表目標(biāo)數(shù)值做sum聚合加和,然后取log變換;
目標(biāo)類(lèi)型:選擇回歸目標(biāo)regression;
精排目標(biāo)依賴(lài):如果某目標(biāo)(x)需要依賴(lài)另外一個(gè)目標(biāo)(y),可以在目標(biāo)依賴(lài)處填寫(xiě)。例如:在視頻中我們只有點(diǎn)擊之后才會(huì)播放,播放的觀看時(shí)長(zhǎng)是play_time,那么play_time目標(biāo)可以依賴(lài)點(diǎn)擊目標(biāo)(注意這里選擇的是上面注冊(cè)的分類(lèi)任務(wù)名稱(chēng)is_click)。同理,別的分類(lèi)任務(wù)也適用。如下圖:
過(guò)濾字段:可以選擇我們不需要參加訓(xùn)練的特征,或者不能在曝光之前獲取到的特征,如play_time。
訓(xùn)練天數(shù):表示我們用多少天的數(shù)據(jù)集進(jìn)行訓(xùn)練精排模型。
模型選擇:如果是單任務(wù)則結(jié)合EasyRec選擇單任務(wù)的模型,是多任務(wù)的選擇多任務(wù)的模型,此處我們是多任務(wù),選擇DBMTL。
特征選擇方式,特征選擇的目標(biāo)列:特征選擇方式如果有配置,將對(duì)所有的特征可以進(jìn)行篩選,選擇重要的特征進(jìn)行訓(xùn)練,目標(biāo)列則配合其選擇方式,選擇重要的特征。
是否增量訓(xùn)練:true則表示增量訓(xùn)練,我們后一天的訓(xùn)練會(huì)在前一天訓(xùn)練好的模型上繼續(xù)訓(xùn)練。
是否異步訓(xùn)練:在分布式訓(xùn)練中是否異步訓(xùn)練。
樣本權(quán)重:如果配置,則會(huì)對(duì)不同樣本根據(jù)表達(dá)式獲得權(quán)重,進(jìn)而影響模型訓(xùn)練精度,一般不用。
場(chǎng)景數(shù)據(jù)篩選:是否用某特定場(chǎng)景下的數(shù)據(jù)進(jìn)行訓(xùn)練。
使用特征平臺(tái):是否會(huì)使用配置好的FeatureStore,如果在推薦方案的環(huán)境配置中有配置FeatureStore,則會(huì)啟用FeatureStore。
自動(dòng)特征工程:是則會(huì)根據(jù)現(xiàn)有的特征,根據(jù)算法挖掘更有用的特征來(lái)進(jìn)行訓(xùn)練。