一、推荐系统
二、阿里云智能推荐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解读









