01 推荐引擎所需要的数据源
• 物品或内容的元数据,例如关键词,基因描述等。
• 用户的基本信息,例如性别,年龄等。
• 用户对物品或内容的偏好,例如用户对物品的评分,用户查看物品的记录,用户的购买记录等。
-这些用户的偏好信息可分为两类:
• 显式的用户反馈:例如用户对物品的评分或评论等。
• 隐式的用户反馈:例如用户购买了某物品,用户查看了某物品等。
02 推荐引擎的分类
-根据推荐引擎是不是为不同的用户推荐不同的数据
• 大众推荐引擎:对每个用户都给出同样的推荐,这些推荐可以人工设定的,或基于全部用户的反馈统计出当下流行的物品或内容。
• 个性化推荐引擎:根据用户的偏好信息,对不同的用户给出不同的推荐,此时需要了解物品和用户的特质,或基于社会化网络,找到与当前用户偏好相同的用户。
-根据推荐引擎的数据源
• 根据用户的基本信息发现用户之间的相关程度,这种被称为基于人口统计学的推荐(Demographic-based Recommendation)。
• 根据推荐物品或内容的元数据,发现物品或内容的相关性,这种被称为基于内容的推荐(Content-based Recommendation)。
• 根据用户对物品或内容的偏好,发现物品或内容本身的相关性,或发现用户的相关性,这种被称为基于协同过滤的推荐(Collaborative Filtering-based Recommendation)。
-根据推荐模型的建立方式
• 基于用户和物品本身:这种推荐引擎将每个用户和每个物品都当作独立的实体,预测每个用户对于每个物品的偏好程度。
• 基于关联规则(Rule-based Recommendation):主要是挖掘一些数据的依赖关系,典型的场景就是“购物篮问题”,通过挖掘关联规则可以找到哪些物品经常被同时购买,或用户在购买物品后通常会购买哪些其它的物品。
• 基于模型(Model-based Recommendation):即机器学习,将已有的用户偏好信息作为训练样本,训练出一个预测用户偏好的模型,并基于此模型计算推荐。
03 基于人口统计学的推荐
• 首先系统对每个用户建模(Profile),其中包括用户的基本信息,例如年龄,性别等;然后根据用户的 Profile 计算用户之间的相似度,相似用户被称为“邻居”;最后基于“邻居”用户群的偏好推荐物品。
• 优点:不使用当前用户对物品偏好的历史数据,避免了冷启动的问题。
• 优点:不依赖于物品本身的数据,所以在不同物品的领域都可以使用(domain-independent)。
• 缺点:对用户进行分类的方法过于粗糙,尤其是在品味要求较高的领域,推荐效果一般。
• 缺点:可能涉及到一些与信息发现无关却比较敏感,难以获取的信息,例如用户的年龄。
04 基于内容的推荐
• 从多个维度对每个物品建模。例如 Pandora 会请专业人员对物品进行基因编码,使每首歌有超过 100 个元数据特征,包括风格,年份,演唱者等。
• 优点:能很好的对用户偏好进行建模,从而提供更精准的推荐。
• 缺点:需要对物品进行分析和建模,推荐的质量依赖于物品模型的完整和全面程度
• 缺点:对于物品相似度的分析仅依赖于物品本身的特征,没有考虑人对物品的态度。
• 缺点:需要基于用户偏好的历史数据做出推荐,存在冷启动问题。
05 基于协同过滤(Collaborative Filtering, CF)的推荐
-基于用户的推荐(User-based Recommendation)
• 和基于人口统计学的推荐同样是在计算用户之间的相似度,并基于“邻居”用户群的偏好进行推荐。不同的是前者只考虑用户的基本信息,而 User CF 是根据用户偏好的历史数据计算用户之间的相似度。
• 它的基本假设是,喜欢类似物品的用户可能有相近的偏好。
-基于项目的推荐(Item-based Recommendation)
• 使用全部用户对物品或内容的偏好,发现物品之间的相似度,然后根据用户偏好的历史信息,将类似的物品推荐给用户。
• 和基于内容的推荐同样是在计算物品之间的相似度,不同的是前者只考虑物品本身的特征信息,而 Item CF是根据用户偏好的历史数据计算物品之间的相似度。
-基于模型的推荐(Model-based Recommendation)
• 即机器学习,将已有的用户偏好信息作为训练样本,训练出一个预测用户偏好的模型,并基于此模型计算推荐。
• 优点:不需要对物品或用户本身进行严格的建模,且不要求物品的描述是机器可理解的,所以这种方法也是领域无关的(domain-independent)。
• 优点:推荐结果是开放的,可以共用他人的经验,用户可以发现潜在的兴趣和偏好。
• 缺点:核心是基于历史数据,所以对新物品和新用户都有冷启动的问题。推荐效果依赖于用户偏好的历史数据的数量和准确性,且对于偏好特殊的小众用户效果一般。
• 缺点:由于是以历史数据为基础,所以在建模用户的偏好后,很难修改和根据用户的新行为进行演变,导致这个方法不够灵活。
06 混合推荐机制
• 加权混合(Weighted Hybridization): 用线性公式将几种不同的推荐结果按一定权重组合起来,权重的具体数值需要在测试数据集上反复实验,从而达到最好的推荐效果。
• 切换混合(Switching Hybridization):对于不同的情况(数据量,系统运行状况,用户和物品的数目等),推荐策略可能不同。切换混合就是允许在不同的情况下,选择最合适的推荐策略。
• 分区混合(Mixed Hybridization):采用多种推荐策略,并将不同的推荐结果分不同的区域显示。很多电子商务网站都在采用这种方式,用户可以得到很全面的推荐。
• 分层混合(Meta-Level Hybridization): 采用多种推荐策略,并将一个推荐策略的结果作为另一个的输入,从而综合各个推荐策略的优缺点,得到更准确的推荐。
07 集合智慧和协同过滤
• 协同过滤是利用集体智慧的一个典型方法。核心思想:你想看电影,但不知道看哪部,此时你会问周围的朋友有什么好看的电影推荐,并倾向于从喜好相近的朋友那里得到推荐。
• 实现协同过滤:1.收集用户的偏好数据,2.找到相似的用户或物品,3.计算推荐
-根据应用的特点添加特殊的用户行为,并用它们表示用户对物品的偏好。一般提取的用户行为都多于一种,组合方式有以下两种:
• 将不同的行为分组,然后分别基于计算不同的用户/物品之间的相似度。
• 根据不同的行为反映用户偏好的程度进行加权,得到用户对于物品的总体偏好。
-User CF vs. Item CF
• 计算复杂度:用户的数量往往超过物品的数量很多,而物品的数量相对稳定,因此计算物品之间的相似度不但计算量较小,同时也不必频繁更新,适应于提供商品的电子商务网站。
• 适用场景:在非社交网络中,物品内在的联系更重要,此时 Item CF 便于为推荐做出解释。User CF 更适合社交网络,可以提高用户对推荐解释的置信度。
• 推荐多样性和精度:
- 从单个用户的角度看,判断推荐结果是否多样,就是比较推荐结果中物品之间的相似度。此时 Item CF 的多样性不如 User CF,因为 Item CF 推荐的物品之间的相似度较高。
- 系统的多样性,也被称为覆盖率(Coverage),是指一个推荐系统能够提供给用户丰富的选择。此时 Item CF 的多样性要远远好于 User CF。因为 User CF 总是倾向于推荐最多人喜欢的。从另一个角度看,Item CF 擅长推荐长尾里的物品。
• 结合 User CF 和 Item CF 是最优的选择,即当 Item CF 导致推荐的多样性不足时,加入 User CF 增加多样性;而当 User CF 导致系统的覆盖率不足时,加入 Item CF 增加覆盖率。
• 用户对推荐策略的适应度:
- User CF 的基本假设是假设用户会喜欢那些和他偏好相近的用户喜欢的物品,但如果一个用户缺少偏好相近的“邻居”,推荐效果就会很差。所以用户对 User CF 的适应度和“邻居”的数量成正比。
- Item CF 的基本假设是用户会喜欢和他之前喜欢的物品相似的物品,即可计算用户喜欢的物品之间的自相似度。若自相似度大,则用户对 Item CF 的适应度较好;反之则较差。