一、推荐系统
二、阿里云智能推荐AIRec
三、用户画像介绍
四、用户行为日志
1、用户行为日志
用户行为数据在系统上最简单的存在形式就是日志。
用户行为事件三要素:
操作(action):定义一个操作动作(如点击、拖拽)
参数/属性:参数可以是任何和这个事件相关的属性,包括触发这个事件的(人、时间、地点、设备、操作的业务信息)
属性值:参数/属性的值参
2、埋点方式比较
埋点方式 | 数据时效 | 数据可靠(安全) | 数据可回溯 | 埋点成本 | 对业务的影响 | 用户流量开销 | 新埋点是否对所有客户端版本生效 |
---|---|---|---|---|---|---|---|
传统代码埋点 | X | X | X | X | X | X | X |
可视化埋点 | X | X | X | X | √ | √ | √ |
无埋点 | X | X | X | √ | √ | √ | √ |
Measurement Protocol | √ | √ | X | X | X | √ | X |
3、数据结构
behavior表
字段名 | 字段类型 | 是否必需 | 字段含义 | 字段值枚举 | 字段值说明 | 字段值示例 |
---|---|---|---|---|---|---|
item_id | string | 是 | 内容ID | 用户自填 | 如果全部数据均无法与内容表匹配,服务无法启动 | 34513 |
item_type | string | 是 | 内容的类型 | image | item_type | string |
article | article | article | article | article | article | article |
video | video | video | video | video | video | video |
shortvideo | shortvideo | shortvideo | shortvideo | shortvideo | shortvideo | shortvideo |
item | item | item | item | item | item | item |
recipe | image | recipe | image | recipe | ||
bhv_type | string | 是 | 行为类型,例如曝光、停留、点击、收藏、下载等 | expose | bhv_type | string |
click | 正利数据click的条数需要小于负利数据expose的条数,否则系统会判断数据异常,无法启动服务 | expose | click | 正利数据click的条数需要小于负利数据expose的条数,否则系统会判断数据异常,无法启动服务 | expose | click |
bhv_value | string | 是 | 行为详情,例如点击次数,停留时长,购买件数等 | 用户自填 | 500 | |
user_id | BIGINT | 是 | 用户ID | 用户自填 | 1234567 | |
trace_id | string | 是 | 请求追踪/埋点ID。用于在AB实验时区分 调用了阿里推荐引擎 | Alibaba | trace_id | string |
selfhold | 如果调用了阿里推荐引擎,该字段为Alibaba;如果没有调用阿里推荐引擎,该字段可以置为selfhold | Alibaba | selfhold | 如果调用了阿里推荐引擎,该字段为Alibaba;如果没有调用阿里推荐引擎,该字段可以置为selfhold | Alibaba | selfhold |
trace_info | string | 推荐 | 请求埋点信息。一次推荐接口调用时会返回该信息,日志记录时带上即可 | 用户自填 | 阿里流量必需 | 阿里流量必需 |
platform | string | 推荐 | 客户端平台。 | 用户自填 | ios/andriod/h5 | ios |
imei | string | 推荐 | 用户设备ID,imei,device_id,idfa | 用户自填 | QLKDJSFALKDSAJLK | |
app_version | string | 推荐 | app的版本号 | 用户自填 | 4.1.10 | |
net_type | string | 推荐 | 网络型号 | 用户自填 | 2G/3G/4G/WIFI | 4G |
ip | string | 推荐 | 客户端IP信息 | 用户自填 | 234.45.13.14 | |
login | string | 推荐 | 是否登录用户 | 0 | login | string |
1 | 0:未登录 | 1 | 0:未登录 | 1 | 0:未登录 | 1 |
1:登录 | 1 | 1:登录 | 1 | 1:登录 | 1 | 1:登录 |
report_src | string | 推荐 | 上报来源类型 | 1 | report_src | string |
2 | 1:服务端,2:客户端。 | 2 | 2 | 1:服务端,2:客户端。 | 2 | 2 |
scene_id | string | 推荐 | 场景ID | 用户自填 | 英文分号分隔的若干场景ID | 1001,1002 |
bhv_time | string | 推荐 | 行为发生的时间戳,单位s | 用户自填 | 1520327038 | |
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 |
behavior type
expose | 曝光 | expose | 曝光 |
---|---|---|---|
click | 点击 | click | 点击 |
like | 点赞 | like | 点赞 |
unlike | 踩 | unlike | 踩 |
comment | 评论 | comment | 评论 |
collect | 收藏 | collect | 收藏 |
stay | 停留时长 | stay | 停留时长 |
share | 分享 | share | 分享 |
download | 下载 | download | 下载 |
tip | 打赏 | tip | 打赏 |
subscribe | 关注 | subscribe | 关注 |
4、埋点
服务端
除了『停留时长』之外,大部分用户行为可以在服务端直接记录,通过SDK直接提交用户行为日志
客户端
支持使用缓冲区,通过API接口批量上传用户行为日志
5、存储介质
数据源可选择的方案有OSS、LogHub、TableStore等,优先考虑选择使用OSS作为数据源(阿里云智能推荐系统相关服务)。
目前阿里云智能推荐系统暂时只支持数据源为ODPS(MaxCompute),因此需要通过DI数据集成投递到MaxCompute中,未来智能推荐支持OSS等数据源后,可移除此部分多余动作。
6、总体架构图
附:参考文章
用户行为的深度追踪——事件与埋点
日志采集与用户行为链路分析
SPM 超级位置模型
淘宝SPM解读