冷启动版数据规范
概述
冷启动版各行业数据规范,历史数据及实时数据的上传均需要遵守此规范。
同时需要注意:冷启动版实例的启动需要至少20万老用户的行为数据,同时需要您做好新用户标记以及后续实时同步上传新用户发生的行为数据。
数据描述
使用AIRec智能推荐冷启动版前,需要根据规范准备3张数据表的数据:
物品表(item):此处即指商品。
最近推荐场景内全部可以被推荐商品的全量表。由于item数量受配额限制,建议您上传前做去重处理。item_id与item_type二者同时唯一确定一条item。
用户表(user):最近系统的全部注册用户表。
由于user数量受配额限制,建议您上传前做去重处理。根据您内部的用户标记方法,可以选择方案一均通过imei唯一确认一名用户,方案二通过user_id和imei组合确认一名用户(如登录用户使用user_id唯一标记,未登录用户使用imei唯一标记)。
请务必确认用户的唯一性并在请求推荐结果时指定用户的唯一标识信息,否则将无法进行千人千面的推荐。
行为表(behavior):最近一段时间场景的行为数据。冷启动版您提供至少20万的历史数据。
数据准备完成后,若您需要使用MaxComepute导入历史数据,请使用本文结尾处sql建表语句进行建表,注意不可缺失字段。
对于这三张表的选填字段,我们建议您尽量上传。在保证选填字段有效性的条件下,这些选填字段越多越准确,模型的效果越好。未填写部分系统内部将渲染成默认值。
表结构
冷启动版各行业的item、user表与其他版本无异,您可以根据适合您选用的实例行业,查看下方链接中的数据规范
item
与其他版本相同,请根据行业查看通用数据规范的item表部分:
电商行业:item
新闻行业:item
内容行业:item
user
冷启动版user数据上传时,如您后续需要使用友盟数据补全功能,则必须至少有一个设备标记填写至imei字段,否则可能影响特征数据补全及模型训练效果。设备标记可采用如下方案:
可选方案 | 说明 |
aaid | 需装载友盟SDK,通过友盟SDK生成一个aaid,用于弥补高版本设备获取不到设备ID的问题 |
imei | 安卓设备号 |
oaid | 广告渠道的设备标识 |
idfa | 苹果设备号 |
手机号 | / |
其他数据规范与其他版本相同,请根据行业查看通用数据规范的user表部分:
电商行业:user
新闻行业:user
内容行业:user
behavior
字段名 | 字段类型 | 是否必填 | 字段含义 | 字段值枚举 | 字段值说明 | 字段值示例 |
item_id | string | 必填 | 内容ID | 用户自填 | 需要与item表中的item_id相匹配 | 34513 |
item_type | string | 必填 | 商品的类型 | image; article; video; shortvideo; item; recipe; audio; | 需要与item表中的item_type相匹配 | article |
bhv_type | string | 必填 | 行为类型,例如曝光、停留、点击、收藏、下载、购买、加购、评价等,详见下方behavior type | expose/click/ buy/cart/ evaluate | 正例数据click的条数需要小于负例数据expose的条数,否则系统会判断数据异常,无法启动服务 | expose |
trace_id | string | 必填 | 请求追踪/埋点ID。用于在AB实验时区分调用了阿里推荐引擎 | Alibaba/selfhold | 1、调用了阿里推荐引擎而产生的行为数据,填Alibaba;基于自研/运营推荐产生的行为数据,填selfhold。 2、主要用于控制台报表分析,效果对比。 | Alibaba |
trace_info | string | 必填 | 请求埋点信息。一次推荐接口调用时会返回该信息,日志记录时带上即可 | 阿里推荐接口返回字段值 | 1.trace_id=selfhold时,trace_info填1即可。 2.trace_id=Alibaba。在获取推荐结果时,会返回此item的trace_info。trace_id=Alibaba说明这条行为数据,是对从AIRec推荐出来的这条item而产生的行为。回传行为数据时把这个item对应的trace_info原样回传即可。 | 1007.5911.12351.1002000::::: |
scene_id | string | 必填 | 场景ID | 用户自填 | 1、用户产生行为的场景,在对应的item的场景ID中,单值。 2、行为表的scene_id要包含于item表中的scene_id。 3、无场景区分需求,默认填1,若无法追踪到行为的具体场景ID,填-102。具体参考投放场景使用指南。 | a1001 |
bhv_time | string | 必填 | 行为发生的时间戳,单位s | 用户自填 | 用户实际产生行为的时间。 | 1520327038 |
bhv_value | string | 必填 | 行为详情,包括是否为新用户,停留时长,购买订单件数、金额等。 | 用户自填 | 为JSON格式,详见下方behavior value | { "user_new_label": 1, "order_cnt": 2, "order_total_price": 8.88 } |
user_id | string | 已登录用户必填 | 用户ID | 用户自填 | 1、注册用户需要与user表中相匹配。 2、未登录用户访问可不填。 | 1234567 |
platform | string | 可选 | 客户端平台。 | 用户自填 | iOS/Android/H5 | iOS |
imei | string | 未登录用户必填 | 用户设备ID,安卓(imei),IOS(idfa) | 用户自填 | 1、非注册用户必填 2、按照指定要求,mac地址,设备号等无效,会无法使用内部用户画像信息,仅保留曝光过滤功能. 3、32位MD5值 | e2fcdb0f4dce45e35fe2823d7973**** |
app_version | string | 可选 | app的版本号 | 用户自填 | 4.1.10 | |
net_type | string | 可选 | 网络型号 | 用户自填 | 2G/3G/4G/WIFI | 4G |
ip | string | 可选 | 客户端IP信息 | 用户自填 | 234.45.XX.XX | |
login | string | 可选 | 是否登录用户 | 01 | 0:未登录1:登录 | 1 |
report_src | string | 可选 | 上报来源类型 | 12 | 1:服务端。2:客户端。 | 2 |
device_model | string | 可选 | 设备型号 | 用户自填 | iphoneX | |
longitude | string | 可选 | 位置经度 | 用户自填 | 128.4 | |
latitude | string | 可选 | 位置纬度 | 用户自填 | 78.1 | |
module_id | string | 可选 | 模块ID | 用户自填 | 114 | |
page_id | string | 可选 | 页面ID | 用户自填 | 4 | |
position | string | 可选 | 内容所在的位置信息 | 用户自填 | 5 | |
message_id | string | 可选 | 一条行为的唯一标识 | 用户自填 | 若不填写内部将取item_id、item_type、user_id、imei、bhv_type、bhv_time等字段组合去重 | 5 |
behavior type
下表为冷启动版支持的行为类型,根据您的实例行业不同,需要上传的行为类型范围也不同,如果您需要支持其他行为类型,请联系技术人员沟通解决方案。
上报的数据类型与模型优化的目标强相关,如果仅上传点击相关的行为类型,将以点击率为主要的优化目标;
如果上传消费类数据如加购、购买,也会相应地在优化目标中加入对消费数据的考量与优化。注意,此处将以优化点击率为核心目标。如果无法定位到加购、购买行为发生的具体场景,在填写scene_id时请填写为-102。
scene用法见:投放场景使用指南。
bhv_type | 行为释义 | 行业版本 | 说明 |
expose | 曝光 | 电商、新闻、内容行业均需上传 | 必需上传的行为,且曝光行为数量要大于点击行为 |
click | 点击 | 电商、新闻、内容行业均需上传 | 必需上传的行为 |
like | 点赞 | 电商、新闻、内容行业均可上传 | / |
unlike | 踩 | 电商、新闻、内容行业均可上传 | / |
comment | 评论 | 电商、新闻、内容行业均可上传 | / |
collect | 收藏 | 电商、新闻、内容行业均可上传 | / |
stay | 停留时长 | 电商、新闻、内容行业均可上传 | 单位不限,请注意每条数据中具备相同单位约定。 |
cart | 加购 | 仅电商行业可上传 | 单价:RMB,可精确到百分位(分)。 |
buy | 购买 | 仅电商行业可上传 | 单价:RMB,可精确到百分位(分)一条购买行为中,只能对应一个item_id,一个订单多个item_id,需要进行拆分。 |
evaluate | 评价 | 仅电商行业可上传 | 举例:若使用星级评价,1-5星表示好评度递增,则可设置对应关系为1星值取1,2星2,5星5。务必保证增减逻辑与实际好差评趋势对应。 |
share | 分享 | 仅新闻、内容行业可上传 | / |
dowload | 下载 | 仅新闻、内容行业可上传 | / |
tip | 打赏 | 仅新闻、内容行业可上传 | / |
subscribe | 关注 | 仅新闻、内容行业可上传 | / |
page_next | 翻章 | 仅内容行业可上传 | / |
dislike | 负反馈 | 电商、新闻、内容均可上传 | 具体使用参考负反馈功能详解。 |
behavior value
以下为bhv_value字段的JSON格式
字段名 | 字段含义 | 字段值 | 是否必填 |
user_new_label | 新用户标识 | 0否/1是,单值 | 非必填,建议填写 若此处未填写,则必须在访问配置中配置新用户口径 |
order_cnt | 订单数 | int,单值 | 非必填,电商行业建议填写 |
order_total_price | 订单总金额 | double,单值 | 非必填,电商行业建议填写 |
stay_time | 停留时长(秒级) | int,单值 | 非必填,内容行业建议填写 |
如使用MaxCompute服务进行启动数据上报,可参考如下的建表语句:
---创建电商型的行为表
DROP TABLE IF EXISTS behavior_table;
CREATE TABLE IF NOT EXISTS `behavior_table`
(
trace_id STRING COMMENT "请求追踪/埋点ID"
,trace_info STRING COMMENT "请求埋点信息"
,platform STRING COMMENT "客户端平台"
,device_model STRING COMMENT "设备型号"
,imei STRING COMMENT "设备ID"
,app_version STRING COMMENT "app的版本号"
,net_type STRING COMMENT "网络型号"
,longitude STRING COMMENT "位置经度"
,latitude STRING COMMENT "位置纬度"
,ip STRING COMMENT "客户端IP信息"
,login STRING COMMENT "是否登录用户"
,report_src STRING COMMENT "上报来源类型"
,scene_id STRING COMMENT "场景ID"
,user_id STRING COMMENT "用户ID"
,item_id STRING COMMENT "内容ID"
,item_type STRING COMMENT "商品的类型"
,module_id STRING COMMENT "模块ID"
,page_id STRING COMMENT "页面ID"
,position STRING COMMENT "商品所在的位置信息"
,bhv_type STRING COMMENT "行为类型"
,bhv_value STRING COMMENT "行为详情"
,bhv_time STRING COMMENT "行为发生的时间戳"
)
PARTITIONED BY
(
ds STRING
)
LIFECYCLE 30
;
---创建新闻型的行为表
DROP TABLE IF EXISTS behavior_table;
CREATE TABLE IF NOT EXISTS `behavior_table`
(
trace_id STRING COMMENT "请求追踪/埋点ID"
,trace_info STRING COMMENT "请求埋点信息"
,platform STRING COMMENT "客户端平台"
,device_model STRING COMMENT "设备型号"
,imei STRING COMMENT "设备ID"
,app_version STRING COMMENT "app的版本号"
,net_type STRING COMMENT "网络型号"
,longitude STRING COMMENT "位置经度"
,latitude STRING COMMENT "位置纬度"
,ip STRING COMMENT "客户端IP信息"
,login STRING COMMENT "是否登录用户"
,report_src STRING COMMENT "上报来源类型"
,scene_id STRING COMMENT "场景ID"
,user_id STRING COMMENT "用户ID"
,item_id STRING COMMENT "内容ID"
,item_type STRING COMMENT "新闻的类型"
,module_id STRING COMMENT "模块ID"
,page_id STRING COMMENT "页面ID"
,position STRING COMMENT "新闻所在的位置信息"
,bhv_type STRING COMMENT "行为类型"
,bhv_value STRING COMMENT "行为详情"
,bhv_time STRING COMMENT "行为发生的时间戳"
)
PARTITIONED BY
(
ds STRING
)
LIFECYCLE 30
;
---创建内容型的行为表
DROP TABLE IF EXISTS behavior_table;
CREATE TABLE IF NOT EXISTS `behavior_table`
(
trace_id STRING COMMENT "请求追踪/埋点ID"
,trace_info STRING COMMENT "请求埋点信息"
,platform STRING COMMENT "客户端平台"
,device_model STRING COMMENT "设备型号"
,imei STRING COMMENT "设备ID"
,app_version STRING COMMENT "app的版本号"
,net_type STRING COMMENT "网络型号"
,longitude STRING COMMENT "位置经度"
,latitude STRING COMMENT "位置纬度"
,ip STRING COMMENT "客户端IP信息"
,login STRING COMMENT "是否登录用户"
,report_src STRING COMMENT "上报来源类型"
,scene_id STRING COMMENT "场景ID"
,user_id STRING COMMENT "用户ID"
,item_id STRING COMMENT "内容ID"
,item_type STRING COMMENT "内容的类型"
,module_id STRING COMMENT "模块ID"
,page_id STRING COMMENT "页面ID"
,position STRING COMMENT "内容所在的位置信息"
,bhv_type STRING COMMENT "行为类型"
,bhv_value STRING COMMENT "行为详情"
,bhv_time STRING COMMENT "行为发生的时间戳"
)
PARTITIONED BY
(
ds STRING
)
LIFECYCLE 30
;