《推荐系统实战》| 七. 推荐系统实例

        本章将首先介绍推荐系统的外围架构,而后介绍推荐系统的架构,并对架构中的每一个模块的设计进行深刻讨论。sql

7.1 外围架构

       推荐系统依赖的两个外围系统: UI系统(记录用户各类各样的行为) 和用户行为日志存储系统. 通常来讲,须要实时存取的数据存储在数据库和缓存中,而大规模的非实时的数据存储在分布式文件系统(HDFS)上.数据库

7.2 推荐系统架构

1. 推荐系统联系用户和物品的三种方式:缓存

上面三种方式均可以抽象成一种基于特征的推荐系统架构, 也就是首先为用户生成特征,而后根据特征找到物品, 这样是推荐系统的两大核心任务.架构

2. 推荐系统须要由多个推荐引擎组成,每一个推荐引擎负责一类特征和一种任务,而推荐系统将推荐引擎的结果按照必定权重或者优先级合并,排序而后返回.分布式

7.3 推荐引擎的架构

1. A 生成用户特征向量: 设计

           用户特征包括两种:(1) 用户的注册信息 主要是用户的人口统计学特征日志

                                         (2) 由用户行为计算获得的特征: 这部分特征须要考虑用户行为的种类,产生时间, 次数, 物品的热门程度.blog

2. B 特征-物品相关推荐: 排序

           存储在Mysql中的物品相关性表: 存储了每一个特征以及与之最相关的N个物品的id, 好比女性最喜欢看到前N个电影系统架构

3. C 排序模块

            (3.1) 过滤模块: 须要过滤掉: 用户已经产生行为的物品, 候选物品之外的物品, 某些质量不好的物品

            (3.2) 排名模块:

                    ①新颖性排名: 对热门物品进行降权

                    ②多样性, 提升多样性的方法: 1. 按照物品内容属性分红几类,分门别类选出排名最高的物品组合成推荐列表, 2.控制不一样推荐理由出现的次数.

                    ③时间多样性: 提升时间多样性的两种方法.

                     ④ 用户反馈模块主要经过分析用户以前和推荐结果的交互日志,预测用户会对什么样的推荐结果比较感兴趣.