智能圈選依賴必要的數據進行特征開發和模型建模,您需要按照數據格式和建模數量級要求準備建模依賴的數據,并進行數據校驗,幫助您快速接入插件。本文為您介紹訓練任務輸入數據格式說明、建模量級要求及離線自測方法。
策略訓練任務輸入數據格式說明
如果您要在后續使用智能發送來觸達人群,則需要按照個性化觸達時間配置說明來配置行為維表(behavior)和運營記錄維表(operation)的數據。
目錄要求
訓練任務輸入數據依賴用戶基礎信息(user)、物品基礎信息(item)、用戶行為(behavior)、運營記錄(operation)四類數據進行建模,您可以在存儲空間Bucket(以pai-usergrowth-客戶拼寫縮寫命名)下設置兩層文件夾,具體目錄結構如下所示。其中:
一級目錄為各個維表,目錄名稱固定為user、item、behavior和operation,且不能修改。
二級目錄對應各維表的ds分區字段,時間目錄,命名為ds=yyyymmdd,例如ds=20220301。
各ds文件夾下可上傳單個或多個CSV文件,CSV文件內容分別為用戶在YYYYDDMM這一天的用戶基礎信息、物品基礎信息、行為信息和運營信息。您可以上傳單個或多個CSV文件,文件內容格式要求如下:
UTF-8編碼。
首行為字段名,格式以及字段順序嚴格按照各個維表要求。
由于ds已經作為二級目錄名存在,CSV文件中不能包含ds字段。
統一使用\N表示NULL值。
XXX.csv文件內容要求
需要每天按時間目錄更新數據,各個維表字段要求如下:
說明數值型屬性應滿足屬性值比大小是有意義的。提供一個數值型屬性的反例,例如我們對省份按1、2、3...連續編號,則用戶地域信息可轉化為數值型,此時省份x大于省份y并沒有意義,違反約定,因此省份需要按字符型數據處理。
用戶基礎維表(user)
用來記錄靜態用戶屬性,比如性別、年齡、注冊日期等。各字段定義如下表所示。
字段名稱
字段類型
描述
user_id
String
用戶ID,用來唯一區分用戶,不能為空。
gender
Bigint
用戶性別:
1:男。
2:女。
\N:未知。
說明使用\N表示NULL值。
age
Bigint
用戶年齡,\N表示未知。
說明使用\N表示NULL值。
reg_time
String
注冊日期,格式為yyyymmdd,\N表示未知。
說明使用\N表示NULL值。
user_type
String
業務相關的用戶分類。如果業務無分類可以設置為\N。
說明使用\N表示NULL值。
kvs_num
String
擴展的數值型用戶屬性,屬性值支持整型與浮點型,格式為
k1:v1 k2:v2...
。即一對屬性及屬性值由半角冒號(:)分隔,多個屬性對由空格分隔,支持稀疏表示。命名規范如下所示(同樣適用于其他維表):半角冒號(:)、半角逗號(,)和空格為保留字符,不能出現在屬性名和字符型屬性值中。例如:屬性名a b、a:b、a,b與屬性值c 、:d、,e都是不合法的。
屬性名可以匿名化處理成編號,也可以使用原始屬性名。例如:kvs_num字段配置為1:1.02:1.5 4:2.0。
支持稀疏表示:如果用戶缺少某屬性,可直接在kvs_num或kvs_str中跳過該屬性。例如上述示例中缺少屬性3,可以直接跳過。
kvs_str
String
擴展的字符型用戶屬性,格式為
k1:v1 k2:v2...
。命名規范同kvs_num。物品基礎維表(item)
用來記錄靜態物品屬性,比如物品類目等。各字段定義如下表所示。
說明將業務中用戶可交互的項目統稱為物品(item),包括但不限于商品(購買交互)、電影(觀影交互)、小說(閱讀交互)等。
字段名稱
字段類型
描述
item_id
String
物品ID,用來唯一區分物品,不能為空。
item_type
String
業務相關的物品類目。如果業務無分類可以設置為\N。
說明使用\N表示NULL值。
kvs_num
String
擴展的數值型物品屬性,格式為
k1:v1 k2:v2...
,例如:price:18。kvs_str
String
擴展的字符型物品屬性,格式為
k1:v1 k2:v2...
。行為維表(behavior)
用來記錄用戶行為。根據行為是否關聯item中的物品,將行為劃分為一元行為(不關聯物品)和二元行為(關聯物品),行為維表需按日分區,且每個分區包含當日產生的行為數據,建議提供6個月以上的數據。各字段定義如下表所示。
字段名稱
字段類型
描述
user_id
String
用戶ID,與user配置相同。
behavior
String
行為類型。必須包含login,其他建議包含:
一元行為:活躍、充值、搜索等。
二元行為:點擊、收藏、喜歡、不喜歡、觀看、投票、發消息等,
命名規范如下:
login=登錄、active=活躍、recharge=充值、buy=消費、search=搜索、click=點擊、collect=收藏、like=喜歡、dislike=不喜歡、play=觀看、vote=投票、u2u_send_msg=用戶間發消息。
不在以上范圍的behavior,支持自定義名稱。具體使用示例,請參見使用示例。
重要對于社交類服務的用戶間行為,behavior命名必須以
u2u_
開頭,例如:將發消息行為命名為u2u_send_msg。如果后續使用智能發送方式觸達人群,則必須包含click、login或search。
item_id
String
商品ID,與item配置相同。如果behavior為一元行為,該列設置為\N(統一使用該參數表示NULL值)。
說明對于社交類服務的用戶間行為,比如發消息,item_id字段可以直接使用user_id。
kvs_num
String
擴展的數值型行為屬性,例如:活躍時長、投票數量等,格式為
k1:v1 k2:v2...
。屬性名命名規范如下。
hour=小時、act00-act23=對應某小時里的用戶活躍時長(單位秒)、hh=小時、province=省份、city=地市、cents=充值或者消費金額(單位分)、seconds=時長(單位秒)、tickets=投票張數、query=檢索文本、msg=消息文本,不在以上范圍內可自行命名。
重要如果后續使用智能發送方式觸達人群,則該字段key值需配置為
hh00~hh23
,例如:hh21:1,表示21點,頻次為1。kvs_str
String
擴展的字符型行為屬性,例如:搜索關鍵詞、消息內容等。格式為
k1:v1 k2:v2...
。屬性名命名規范同kvs_num。表 1. 使用示例
user_id
behavior
item_id
kvs_num
kvs_str
10001
login
\N
hour:14
\N
10001
active
\N
act14:1800 act20:600
\N
10002
recharge
\N
cents:100
\N
10003
search
\N
\N
query:A
10004
click
90001
\N
\N
10005
watch
90002
seconds:60
\N
10006
u2u_send_msg
10001
\N
msg:Hi
例如行為維表的上級目錄為:ds20210101,表中各行釋義如下:
用戶10001在20210101當日登錄,具體登錄時間為14:00-15:00之間(建議提供小時粒度的登錄時間信息)。
用戶10001在20210101當日14:00-15:00之間的活躍時長為1800秒,在20:00-21:00之間的活躍時長為600秒。即用戶在單日的活躍時長統計對應一條行為記錄,由act00-act23分別記錄24個小時里的活躍時長,不活躍的小時直接忽略即可。
用戶10002在20210101當日充值100分。
用戶10003在20210101當日搜索A。
用戶10004在20210101當日單擊物品90001。
用戶10005在20210101當日觀看物品90002,時長60秒。
用戶10006在20210101當日給用戶10001發消息,內容為Hi。
運營記錄維表(operation)
用來記錄已經開展過的運營行為,按日期和運營目標分區,每個分區包含當日發起的指定運營目標的運營記錄。各字段定義如下表所示。
說明如果您之前未做過運營行為(觸達策略),為了能夠更直觀的查看前后對比效果,建議您沿用原有的觸達策略或隨機觸達發送一次短信,統計下運營記錄。
字段名稱
字段類型
描述
user_id
String
用戶ID。與user配置相同。
item_id
String
商品id,對應物品基礎信息維表;運營行為無item時可配置為\N。
說明使用\N表示NULL值。
strategy
String
用戶圈選策略。例如:rule、random(默認值)等。
您可以自定義圈選策略,系統會根據實際填寫內容來處理。
kvs_num
String
擴展的數值型屬性,例如短信發送時間(小時)等,格式為
k1:v1 k2:v2...
。預留key值
hh00
~hh23
,用于存放運營行為的時間。kvs_str
String
擴展的字符型屬性,例如短信文案、文案類型等。
重要如果后續使用智能發送方式觸達人群,則必須包含buy、click或mix。
label
Bigint
運營成功標簽。
1:成功。
0:失敗。
target
String
分區字段,運營目標。
維表重要性評估如下表所示。
說明表名列的xxx請替換為客戶名或客戶名縮寫。
維表
表名
必要性
ds目錄含義
用戶基礎維表
dwd_xxx_user_df
必選
截止ds日(包含)的數據。
物品基礎維表
dwd_xxx_item_df
可選
截止ds日(包含)的數據。
行為維表
dwd_xxx_behavior_di
必選
ds當日產生的數據。
運營記錄維表
dwd_xxx_operation_di
可選
ds當日產生的數據。
建模數據量級要求
模型訓練要求的數量級與目標轉化行為相關聯,需要您選擇最近三個月內盡可能新的數據作為訓練數據集。例如優化目標為降低用來召回用戶花費的成本,優化層級為付費,具體數據要求說明如下:
全漏斗數據指從短信發送成功后的所有后鏈路數據。您可以將曝光(表示短信發送成功)、登錄、點擊、付費理解為一個全鏈路。
回傳曝光后的全漏斗數據,包括曝光后登錄、曝光后未登錄、登錄后付費、登錄后未付費的用戶數據。
上述全漏斗數據中,應包含至少20000條自曝光后有付費行為用戶的全漏斗數據,即登錄后付費的用戶數據,作為正樣本數據。
例如:當天一共有1萬條短信發送成功,其中1000條短信召回用戶并付費。則您需要回傳1萬條用戶的全量數據,其中的1000條付費數據為正樣本。回傳多天全量數據,直到付費正樣本數據累積到20000條。
數據驗證
準備好訓練數據后,您需要完成以下兩項離線自測:
報表對比
當數據上傳到OSS后,請您將生成的上傳數據明細與您內部的數據報表進行比對,兩份數據表現相似,單日單賬號統計指標相差不超過5%,確保數據在傳輸過程中無錯誤和遺漏。
說明統計指標包括曝光量、轉化量、轉化率等。其中:
曝光量:發送成功的短信數量。
轉化量:用戶接收到短信后,登錄、點擊或付費的用戶數量。
轉化率:用戶接收到短信后登錄的用戶比例、用戶登錄后發生點擊的用戶比例、用戶點擊后發生付費的用戶比例等。
歸因邏輯自洽
投放歸因完整。當一行數據中后鏈路行為取值為1時,跨天登錄等特殊行為情況除外,前鏈路指標邏輯上均為1。例如:一行數據的深轉化(表示用戶點擊后發生付費行為)為1,淺轉化(表示用戶登錄后發生點擊行為)也應當為1。
說明您可以將曝光(表示短信發送成功)、登錄、點擊、付費理解為一個全鏈路。其中:
前鏈路可以表示曝光、登錄等行為。
后鏈路可以表示登錄、點擊或付費等行為。