1 概念
1.1 产生背景
信息过载
用户需求不明确
1.2 推荐系统是什么
没有明确需求的用户访问了我们的服务,且服务的物品对用户构成了信息过载。系统通过了一定的规则对物品进行了排序,并将排在前面的物品展示给用户。
1.3 推荐系统 VS 搜索引擎
# | 搜索 | 推荐 |
---|---|---|
行为方式 | 主动 | 被动 |
意图 | 明确 | 模糊 |
个性化 | 弱 | 强 |
流量分布 | 马太效应 | 长尾效应 |
目标 | 快速满足 | 另类服务 |
评估指标 | 简明 | 复杂 |
1.4 推荐系统的工作原理
- 社会化推荐 向朋友咨询,社会化推荐,让好友给自己推荐物品
- 基于内容的推荐打开搜索引擎,输入自己喜欢的演员,然后看看返回结果中还有什么电影是自己没有看过的
- 基于流行度的推荐 查看票房排行榜
- 基于协同过滤的推荐 找到和自己历史感兴趣的用户,看看他们最近在看什么电影
1.5 推荐系统的应用场景
- feed流 信息流
推荐系统和Web项目的区别
-
稳定的信息流通系统 VS 通过信息过滤实现目标提升
- web项目: 处理复杂逻辑,处理高并发,实现高可用,为用户提供稳定服务,构建一个稳定的信息流通的服务
- 推荐系统:追求指标增加,留存率,阅读时间/GMV
-
确定 VS 不确定思维
- web项目:对结果有确定预期
- 推荐系统:结果是概率问题
2 推荐系统设计
2.1 推荐系统整体架构
2.2 大数据Lambda架构
结合实时数据和离线数据共同提供服务
2.3 推荐算法架构
- 召回阶段(海选)
- 召回决定了最终推荐结果的天花板
- 常用算法
- 协同过滤
- 基于内容(根据用户行为总结出自己的偏好 根据偏好通过文本挖掘技术找到内容上的相似商品)
- 基于隐语义
- 排序阶段
- 召回决定了最终推荐结果的天花板,排序逼近了这个极限,决定了最终的推荐效果
- CTR预估(点击率预估 使用LR算法)估计用户是否会点击某个商品 需要用户的点击数据)
- 策略调整
2.3 推荐系统的整体架构
推荐算法
推荐模型构建流程
Data(数据) -> Feature -> ML Algorithm -> Prediction Output
- 数据清洗/数据处理
- 数据来源
- 显性数据
- Rating 打分
- Comments 评论/评价
- 隐形数据
- 历史订单
- 加购物车
- 页面浏览
- 点击
- 搜索记录
- 显性数据
- 数据量/数据是否满足需求
- 特征工程
- 从数据中筛选特征
- 协同过滤:用户-物品 评分矩阵
- 基于内容:分词 tf-idf word2Vec
- 训练模型
召回 -> 排序 -> 策略调整- 协同过滤
- KNN
- 矩阵分解
- 协同过滤
- 评估、模型上线