数据准备¶
为了方便最佳实践方案落地操作,我们提供了以内容场景为例的示例数据便于后续算法和工程步骤的讲解,包含用户表、内容表和行为表。场景的详细建议详见
电商场景数据规范文档
内容场景数据规范文档
数据详情¶
以下示例中包含了三张表 用户表:rec_sln_demo_user_table 内容表:rec_sln_demo_item_table 行为表:rec_sln_demo_behavior_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 |
用户标签 |
内容表¶
内容表是推荐系统内全部内容,包含了内容的属性和历史行为信息,是一个天级分区表,每个分区为当天全量内容的的快照
字段名 |
字段类型 |
字段说明 |
---|---|---|
item_id |
BIGINT |
内容ID |
duration |
DOUBLE |
视频时长 |
title |
STRING |
标题 |
category |
STRING |
一级标签 |
author |
BIGINT |
作者 |
click_count |
BIGINT |
累计点击数 |
praise_count |
BIGINT |
累计点赞数 |
pub_time |
BIGINT |
发布时间 |
行为表¶
行为表最近一段时间App的用户浏览内容产生的行为数据 或 在App某个场景内的行为数据,示例数据中是是一个天级分区表,也可以是小时分区表或是实时流,线上使用建议至少30-60天。
字段名 |
字段类型 |
字段说明 |
---|---|---|
request_id |
BIGINT |
埋点id/请求id |
user_id |
BIGINT |
用户唯一ID |
exp_id |
STRING |
实验id |
page |
STRING |
页面 |
net_type |
STRING |
网络型号 |
item_id |
BIGINT |
内容ID |
event |
STRING |
行为类型,例如:曝光,点击,点赞等 |
playtime |
DOUBLE |
播放时长/阅读时长 |
实时行为(非必须):¶
为了让推荐系统根据用户的点击、收藏、播放等行为实时反馈推荐结果,客户可实时提供用户数据,例如把数据写入kafka或者Datahub。使用实时行为序列做trigger去召回相关的item作为推荐的候选集。数据格式如下:
字段名 |
字段类型 |
字段说明 |
---|---|---|
user_id |
BIGINT |
用户唯一ID |
item_id |
BIGINT |
物品ID |
action_time |
BIGINT |
时间戳 |
action_type |
STRING |
行为类型:点击、收藏、购买等 |
数据导入¶
本文采用迁移助手导入+补数据的方式生成示例数据,具体步骤如下:
下载迁移助手包: https://pai-rec-sln.oss-cn-zhangjiakou.aliyuncs.com/data/content_scene/package_v1.zip
在DataWorks的迁移助手页面导入这个迁移助手包,详见迁移助手使用手册,主要步骤如下
登录DataWorks控制台,单击工作空间列表后**,进入相应工作空间的数据开发**,单击左上方的图标,选择全部产品 > 其他 > 迁移助手,进入迁移助手首页。
在迁移助手的左侧导航栏,单击DataWorks迁移 > DataWorks导入,进入导入页面,单击右上方的新建导入任务进行导入
看到以下状态,表示导入成功
回到DataWorks的数据开发页面,按顺序提交 content_scene_data, rec_sln_demo_user_table, rec_sln_demo_item_table, rec_sln_demo_behavior_table 4个节点
在DataWorks的数据开发页面右键content_scene_data节点,点击在运维中心中定位进入运维中心页面,右键该节点,点击补数据 > 当前节点,我们可以选择补30天数据
注册数据表¶
准备完示例数据后,我们需要在PAI-REC **实例->服务基础配置->配套功能-> 运维与实验操作台 **页面上注册这些数据表的Meta信息,具体步骤如下:
进入运维实验与操作台的基础配置 > 数据表管理 > 推荐数据表页面,点击新增按钮
填写表名称,选择数据源后点击表内导入获取到表的schema信息后,点击确定
将rec_sln_demo_user_table, rec_sln_demo_item_table, rec_sln_demo_behavior_table三张表都注册上
数据准备方面的经验:¶
1.通过小时表提升实验迭代效率¶
强烈建议把行为表设计为小时表,因为我们可以基于小时表制作小时报表。通过小时报表,可以在上实验当天看到实时效果,如果效果差异太大可以迅速去定位问题并重新上实验,这样可以大大加快实验迭代的效率。
2.可以利用之前已经在用户或者物品ID上面的统计特征¶
特别是复用之前基于业务知识统计的特征,能够不浪费之前的工作,可提高实验优化的成功率。
把之前的多个用户特征表合并成一个用户特征宽表,提供给推荐算法做模型训练。