推荐系统的应用场景
电商、视频、新闻、社交网络等
推荐系统的核心要素
- 用户 user:服务对象
冷启动用户 普通用户
都有用户基础数据,但冷启动用户没有或只有很少的用户行为数据。
字段 |
---|
用户ID |
用户名 |
注册时间 |
年龄 |
性别 |
城市 |
- 物品和内容 item
字段 |
---|
物品ID |
名称 |
描述 |
品类Category |
标签tags |
分享次数 |
- 事件和语境 event & context
事件指的是用户和系统的交互过程
语境泛指推荐系统与用户交互时所有相关的背景信息,包括时间、地点、设备、事件ID、用户反馈等。
利用数据埋点采集用户和app的交互:例如页面停留时间
字段 |
---|
用户ID |
物品ID |
事件ID |
事件类型(例如浏览) |
时间 |
来源 |
推荐系统的基本构成
1. 召回模块
根据用户和场景不同,从物品和内容仓库中粗筛出用户可能感兴趣的物品和内容列表。(千百万数量级)
推荐算法。
- 简单的召回规则:粗筛,快速计算出推荐列表。
- 特征少
- 数据量大
召回方法
-
常规召回
基于热门的召回:用户听、搜最多的歌曲
基于用户分群的召回:先进行用户分群,再使用热门召回策略。例如根据年龄分层,再计算每个组的热门。 -
基于内容的召回
通过物品特征计算物品之间的相似性
使用物品和内容数据中的特征 -
基于协同过滤的召回
通过用户行为数据计算特征
使用用户行为数据 -
其他方式
2. 排序模块
应用更多的信息对召回模块返回的物品和内容列表中的每一项进行打分,根据打分进行倒序排列。(百以内数量级)
- 算法更复杂,精排序
- 更多的特征
- 数据量较小
高阶特征:普通的特征例如歌曲时长、曲风、歌手等,高阶特征指的是特征的组合 create interactions。
排序方法
-
单点排序
对所有样本,转化为分类、回归问题。
Logistic Regression
GBDT + LR
Factor Machine(因子分解机) -
其他
BPR成堆排序(贝叶斯个性化排序)
基于深度学习的排序
3. 过滤模块
对排序模块返回的内容进行过滤。
添加了业务逻辑:例如云音乐推荐会去掉黑名单里的歌曲,已经推荐过的歌曲等。
过滤方法
商业逻辑 + 业务场景
- 已经购买的
- 不适合公开展示的
- 评分过低的
- 重复推荐的
- 同型号商品推荐利润率高的(商业逻辑)
- 促销中的爆款商品:浪费曝光
项目建构和流程
- 召回模块:常规召回+基于协同过滤的召回(ALS)
- 排序模块:LR算法
- 过滤模块:全局黑名单过滤+用户级个性化黑名单过滤
离线推荐系统:每天分析一遍热门数据,推荐一些歌曲。
在线推荐系统:每出现新的数据,都更新一次推荐列表。
个性化音乐推荐策略
首先,将用户分为冷启动用户和普通用户两个群体。进入召回阶段。首先对召回结果进行过滤和去重,然后进行排序,得到推荐结果上传redis(数据库)。
冷启动用户
- 全局热播召回+用户分群召回
- 随机选取召回集中内容进行推荐
- 全局黑名单过滤+个性化黑名单过滤
普通用户
- 全局热播召回+用户分群召回+ALS召回
- 使用LR进行排序,选取TOP10
- 全局黑名单过滤+个性化黑名单过滤