二、推荐系统的设计
1)推荐系统的要素
- UI和UE(前端界面)
- 数据(Lambda架构)
- 业务知识
- 算法
2)推荐系统架构
-
推荐系统的整体架构
-
大数据Lambda架构
-
Lambda架构是实时大数据处理框架
-
Lambda架构将离线计算和实时计算整合,设计出一个能满足实时大数据系统关键特性的架构,包括有:高容错、低延时和可扩展等
- 离线计算:数据量大、对时间要求不高的处理
- 实时计算:数据量小、考虑时效性的处理
-
分层架构
- 批处理层
- 数据不可变,可以进行任何计算,可水平扩展
- 高延迟
- 日志手机:Flume
- 分布式存储:Hadoop
- 分布式计算:Hadoop、Spark
- 视图存储数据库
- nosql(HBase/Cassandra)
- Redis/memcache
- MySQL
- 实时处理层
- 流式处理,持续计算
- 存储和分析某个窗口期内的数据(热销排行)
- 实时数据收集 flume & kafka
- 实时数据分析 spark streaming/storm/flink
- 服务层
- 支持随机读
- 需要在非常短的时间内返回结果
- 读取批处理层和实时处理层结果并对归并
- 批处理层
-
Lambda架构图
-
-
推荐算法架构
-
召回
就是从海量数据中选择少部分数据
- 召回决定了最终推荐结果的上限
- 常用算法:
- 协同过滤
- 基于内容
-
排序阶段
对召回中的数据进行排序,得到少部分数据
- 召回决定了推荐结果上限,排序逼近这个极限,决定了最终推荐结果
- CTR预估(点击率预估 LR算法)估计用户是否会点击某个商品
-
策略调整
-