nlp项目(一)——推荐系统简介及架构设计
1 推荐系统概念
-
什么是推荐系统
没有明确需求的用户访问了我们的服务, 且服务的物品对用户构成了信息过载, 系统通过一定的规则对物品进行排序,并将排在前面的物品展示给用户,这样的系统就是推荐系统
2 推荐系统设计
-
推荐系统整体架构
大数据Lambda架构
-
Lambda架构是由实时大数据处理框架Storm的作者Nathan Marz提出的一个实时大数据处理框架。
-
Lambda架构的将离线计算和实时计算整合,设计出一个能满足实时大数据系统关键特性的架构,包括有:高容错、低延时和可扩展等。
-
分层架构
-
批处理层
-
数据不可变, 可进行任何计算, 可水平扩展
-
高延迟 几分钟~几小时(计算量和数据量不同)
-
日志收集: Flume
-
分布式存储: Hadoop
-
分布式计算: Hadoop、Spark
-
视图存储数据库
-
nosql(HBase/Cassandra)
-
Redis/memcache
-
MySQL
-
-
-
实时处理层
-
流式处理, 持续计算
-
存储和分析某个窗口期内的数据(一段时间的热销排行,实时热搜等)
-
实时数据收集 flume & kafka
-
实时数据分析 spark streaming/storm/flink
-
-
服务层
-
支持随机读
-
需要在非常短的时间内返回结果
-
读取批处理层和实时处理层结果并对其归并
-
-
-
Lambda架构图
推荐算法架构
-
召回阶段 (海选)
-
召回决定了最终推荐结果的天花板
-
常用算法:
-
协同过滤
-
基于内容
-
-
-
排序阶段 (精选)
-
召回决定了最终推荐结果的天花板, 排序逼近这个极限, 决定了最终的推荐效果
-
CTR预估 (点击率预估 使用LR算法) 估计用户是否会点击某个商品 需要用户的点击数据
-
-
策略调整
- 推荐系统的整体架构