一. 推荐系统主要分3个部分:
1. offline部分-离线:
采用的技术主要有MapReduce,spark,hive,mahout等.
离线挖掘出来的有效数据,为了能够快速的提供服务,一般通过nosql非关系数据库,有时也叫缓存数据库作为中间介质进行交换,为前端提供服务.
2. nearline部分-近线:
采用的技术主要有流行比较的是流式计算框架storm(毫秒级别),spark streaming(秒级别)
3. online部分-在线:
采用的技术主要有:webUI,webserver,nosql
二. 推荐系统简单的架构流程图:
1. UI界面主要用来展示三块内容:
(1) 通过一定方式展示推荐物品(物品标题,缩略图,简介等).
(2) 推荐的理由.
(3) 数据反馈的个性化推荐.
2. 用户行为日志存储的位置:
(1) 数据库或者缓存;
(2) hdfs 分布式文件存储系统.
三. 推荐系统抽象的推荐方式:
推荐系统是基于物品信息和用户信息以及用户行为数据(评分,收藏,购买等行为)进行推荐物品的.
常用的算法有如下三种:
- 基于人口统计的推荐,比如:根据用户的相似度进行推荐,性别,年龄等重要特征;
- 基于内容的推荐,比如物品元数据等,买键盘推荐鼠标之类的;
- 基于协同过滤的推荐,比如豆瓣网,相似的人还都看了哪些数据,然后向你推荐.
推荐的方式方法有很多,所以基于不同的推荐模型算法就有很多种对应的推荐引擎,多种推荐引擎会汇总得出一个初始的推荐结果,这些结果经过过滤和排名,最后展现给用户.