基于特征的推荐系统架构:
当用户到来之后,推荐系统需要为用户生成特征,然后对每个特征找到和特征相关的物品,从而最终生成用户的推荐列表。因此,推荐系统的核心任务就被拆解为两部分,一个是如何给定用户生成特征,另一个是如何根据特征找到物品。
用户的特征包括:
(1) 人口统计学特征:年龄、性别等
(2) 用户的行为特征:包括浏览、收藏过什么等
(3) 用户的话题特征
推荐引擎架构主要包括3部分
(1) 负责从数据库或者缓存中拿到用户行为数据,通过分析不同行为,生成当前用户的特征向量
(2) 负责将用户的特征向量通过特征-物品相关矩阵转化为初始推荐物品列表
(3) 负责对初始的推荐列表进行过滤、排名等处理,从而生成最终的推荐结果。
1. 生成用户特征向量
(1) 用户行为的种类(购买、收藏等)、
(2) 用户行为产生的时间(最近行为比较重要)
(3) 用户行为的次数
(4) 物品的热门程度(冷门物品)
2. 特征--物品相关推荐
得到用户的特征向量后,可以根据离线的相关表得到初始的物品推荐列表,表可以存储在mysql中
特征ID 物品ID 权重
3. 过滤模块
(1) 用户已经产生过行为物品
(2) 候选物品以外的物品
(3) 某些质量很差的物品
4. 排名模块
(1) 新颖性排名:尽量推荐不知道的、长尾中的物品
(2) 多样性