来源于
https://github.com/NLP-LOVE/ML-NLP/tree/master/Project/17.%20Recommendation%20System
个性化推荐系统是建立在海量数据挖掘基础上的一种高级商务智能平台,以帮助电子商务网站为其顾客购物提供完全个性化的决策支持和信息服务。
常见的推荐栏位例如:淘宝的猜你喜欢、看了又看、推荐商品,美团的首页推荐、附近推荐等。
推荐系统是比较偏向于工程类的系统,要做得更加的精确,需要的不仅仅是推荐算法,还有用户意图识别、文本分析、行为分析等,是一个综合性很强的系统。
1. 总体架构
本节介绍的几种推荐系统架构,并不是互相独立的关系,实际的推荐系统可能会用到其中一种或者几种的架构。在实际设计的过程中,读者可以把本文介绍的架构作为一个设计的起点,更多地结合自身业务特点进行独立思
考,从而设计出适合自身业务的系统。
根据响应用户行为的速度不同,推荐系统可以大致分为基于离线训练和在线训练的推荐系统。
1.1 离线推荐
基于离线训练的推荐系统架构是最常见的一种推荐系统架构。这里的“离线”训练指的是使用历史一段时间(比如周或者几周)的数据进行训练,模型迭代的周期较长(一般以小时为单位)。模型拟合的是用户的中长期兴趣。
如下图所示,
一个典型的基于离线训练的推荐系统架构由数据上报、离线训练、在线存储、实时计算和
A/B
测试这几个模块组成。其中,数据上报和离线训练组成了监督学习中的学习系统,而实时计算和
A/B
测试组成了预测系统。另外,除了模型之外,还有一个在线存储模块,用于存储模型和模型需要的特征信息供实时计算模块调用。图中的各个模块组成了训练和预测两条数据流,训练的数据流搜集业务的数据最后生成模型存储于在线存储模块;预测的数据流接受业务的预测请求,通过
A/B 测试模块访问实时计算模块获取预测结果。