推荐引擎系统的主要模块分为数据收集, 用户建模, 物品建模, 推荐算法, 混合模块, 结果存储, 前端展示和查询引擎. 推荐系统的系统架构包含以下几部分:
推荐系统功能
用户建模: 根据用户的人口统计学信息和用户行为数据, 建立用户画像等模型, 刻画其短期和中长期的兴趣.
物品建模: 根据物品的领域属性, 以及用户访问这些物品的数据, 建立物品画像模型, 刻画其本质特征.
推荐算法: 根据用户和物品的建模, 通过不同的推荐方式进行演算, 最终找到能与用户或物品输入所匹配的推荐物品.
混合模块: 根据不同的混合策略, 将多种方式的推荐结果进行合并. 因为考虑到实时性, 一般都被放入离线处理. 当然, 如果系统足够轻量级, 混合逻辑并不复杂, 数据量也足够小, 是可以放入在线部分来处理的.
结果存储: 将推荐算法的挖掘结果保存下来, 以便于在线的实时访问, 倒排索引同样是不错的选择. 当这些结果数据达到一定的规模, 或者是包含了比较复杂的商业逻辑时, 就可以考虑直接使用搜索引擎来协助了.
前端展示: 这一部分用于接收网页或移动设备发过来的推荐请求, 并经过必要的初步处理之后向推荐后端引擎传递, 并在拿到后端返回的结果之后返回给前端用户.
查询引擎: 推荐系统的复杂逻辑基本上都是在离线时完成的, 因此通常情况下在线查询只需要使用搜索这样的高效检索系统来完成就行了.
来源: http://www.jianshu.com/p/1f4dbbde0834