1 推荐系统基础知识
从常用概念展开, 简要介绍基本原理和流程, 以便业务方了解如何构建和使用推荐系统
2 基本概念
2.1 推荐系统
通过将内容 (生产方) 与用户 (消费方) 进行匹配, 提供符合不同消费方各自偏好的内容, 在不同业务方的知识体系中可能会被称为: 智能分发, 个性化推荐, 千人千面
2.2 内容
平台或用户所生产出的成果, 可以为文章, 视频, 课程, 商品等
2.3 用户
对内容进行消费的对象, 可以为普通用户, 商业客户, 第三方服务等
2.4 行为
用户对内容产生的操作, 如点击, 收藏, 购买, 分享等, 通过日志记录存储后, 用于建立内容与用户的关联
2.5 标签
通过人工或机器的方法, 对内容和用户添加特征, 用来标识其特有属性, 可从内容本身中发现, 也可从用户行为中体现, 也可由用户自行填写, 如用户性别, 内容长度, 内容分类等
2.6 适用场景
什么时候引入推荐系统:
当内容和用户积累达到一定量级 (内容至少千级), 且内容分布达到一定宽度, 可分离出不同维度, 进而产生了用户对内容的偏好性, 需要对内容进行合理高效的分发以充分利用流量, 并开始要求高并发高实时的性能时, 可以开始考虑使用推荐系统
3 实现依赖
仅简要阐述实现推荐系统所需的功能组件, 是基本概念的具象化
3.1 内容画像
可包含:
- 标签, 类别等结构化特征
- 原始文本, 图片等非结构化特征
- 动态属性, 如用户行为的聚合
3.2 用户画像
可包含:
- 静态属性, 如一经确定不再变更, 如性别, 年龄等自然属性
- 动态属性, 在一定时间尺度内会有变更, 长期的如居住城市等社会属性, 中短期的如一个月内感兴趣的内容类型
- 用户行为, 通过分析用户对内容的行为, 建立起两个画像间的连接, 从对内容的态度可分为
- 显式反馈, 用户直接表现出的行为, 如点击, 分享, 评论
- 隐式反馈, 用户间接表现出的行为, 如停留时长, 点击次数, 搜索次数
- 正向反馈, 用户表现出的偏好行为, 如点赞, 收藏
- 负向反馈, 用户表现出的非偏好行为, 如点踩, 举报, 点不感兴趣
以上两个维度可以互相组合, 如显式负反馈, 隐式正反馈
4 个性化推荐策略
通过设计多种推荐策略, 召回不同内容, 组合后提供给用户, 以满足不同类型的需求
4.1 协同过滤
经典的推荐方法, 可以不基于预先准备的用户画像和内容画像体系, 依靠大量的用户与内容的关系行为, 对相似用户提供相似内容, 缺点是颗粒度依赖数据量, 且需要批量计算, 无法做到实时响应
4.2 长期
对于长期的关注和订阅需求, 在用户显式反馈后, 召回其下属内容, 给予推荐
4.3 短期
对于短期内的点击或搜索行为, 将基于内容的标签更新至用户画像后, 在下一次推荐中即可提供相关标签的内容, 从而达到准实时的响应, 提高用户体验
4.4 场景
对于不同业务, 可细分出不同场景下的差异, 如工作日与周末, 早晚高峰与睡前均会对内容存在不同偏好
4.5 热门候补
通过计算全局性的热门内容, 用于在冷启动或无更多个性化内容时, 扩充用户画像
4.6 负反馈
如果产品形态有负反馈功能, 如对某个标签不感兴趣, 对于用户显式负反馈的内容, 可在结果中进行过滤
5 数据驱动
新增功能和优化功能均需要经过以下环节评估效果
5. 1 线下|模型指标
针对不同业务场景, 设计对应方案, 使用不同模型, 用机器学习的指标评估模型效果, 达到一定基准线可进入线上环节
5.2 线上|A/B 测试
设计对照组和测试组, 切一部分真实流量, 运行一段时间后, 观察核心指标的差异, 如有提升可认为达到预期效果, 最终逐步替换现有方案
6 业务形态
涉及将内容分发给用户的场景均可使用, 推荐系统在广义上就是对用户画像和内容画像的有效使用, 因此除实现资讯流这样的具体产品形态外, 也可扩展至精准推送, 用户分层等, 以提供服务的形式满足更深层需求