个性化推荐的目的:即在保证内容质量的前提下根据用户行为推荐尽可能符合用户期望的丰富内容。

推荐算法评估指标:

  • 准确率:准确率是针对预测结果而言的,表示给用户推荐的物品中,有多少是真正感兴趣的
  • 召回率:召回率是针对推荐的结果,它表示的是用户感兴趣的物品中,有多少个是系统推荐的。
  • 覆盖率:反映了推荐算法挖掘长尾物品的能力,如果所有物品都至少推荐给了1个用户,则覆盖率为100%。
  • 流行度:根据推荐物品的*均流行度进行度量,如果推荐物品的流行度都比较高,则物品新颖度比较低

常用推荐算法:协同过滤算法是基于用户行为数据设计的推荐算法,其中主要包括三类算法:「基于领域的方法」、「隐语义模型」、「基于图的随机游走算法」。其中基于领域的方法,分为 User CF Item CF 两种。

User CF :基于用户的协同过滤(User Collaborative Filtering)


  基础逻辑是给用户推荐和他兴趣相似的其他用户喜欢的物品,步骤如下:

  • 找到和目标用户兴趣相似的用户集合;
  • 找到这个集合中的用户喜欢的,且目标用户没有听说过的物品推荐给目标用户。

 设有两个用户 u 和 v ,N(u) 表示用户u曾经有过正反馈的物品集合,可通过以下方式计算两个用户的兴趣相似度

 得到用户的兴趣相似度后,选择与用户兴趣最相似的K个用户,将他们的兴趣物品(并排除目标用户已反馈过的物品),推荐给目标用户。

算法缺点:

  • 随着网站用户数目越来越大,计算用户兴趣相似矩阵越来越困难;
  • 运算时间复杂度和空间复杂度与用户数增长*似于*方关系

 Item CF :基于物品的协同过滤(Item Collaborative Filtering)


给用户推荐和他之前喜欢的物品相似的物品,步骤如下:

  • 计算物品之间的相似度;
  • 根据物品的相似度和用户的历史行为给用户生成推荐列表。

通过计算喜欢物品  i  的用户中有多少也喜欢物品  j,来计算两个物品的相似度:

最相似的K个物品集合,推荐给目标用户。

User CF 与 Item CF 算法的对比


  

个性化推荐实现 java github 基于个性化推荐_推荐算法

 推荐系统的评估维度


 评估一个推荐系统的质量,需要综合多个维度进行评估,核心维度如下:

  • 用户满意度:用户后续行为反馈,调研
  • 预测准确度:准确度/召回率
  • 覆盖率:对物品长尾的挖掘能力,注意马太效应的影响
  • 多样性:用户兴趣类型分布
  • 新颖性:排除用户历史反馈物品,排除热门物品
  • 惊喜度:非用户历史兴趣,但是满意
  • 信任度:透明度,推荐机制解释程度
  • 实时性:是否可以针对用户行为实时进行反馈
  • 健壮性:防攻击,反作弊
  • 商业目标达成情况

冷启动


涉及冷启动的场景主要有以下三类:

  • 用户冷启动:一个新用户,没有任何历史行为数据,怎么做推荐
  • 物品冷启动:一个新上线的物品,没有用户对它产生过行为,怎么推荐给感兴趣的用户
  • 系统冷启动:一个新开发的网站,没有用户数据,怎么做个性化推荐

根据系统的场景属性,可以设计不同的冷启动方式:

  • 提供非个性化推荐;
  • 利用用户注册信息如年龄性别等做粗颗粒度推荐;
  • 利用用户社交关系;
  • 新用户要求对一系列物品进行反馈;
  • 对应新物品,利用内容属性推荐给相似物品感兴趣用户;
  • 专家搭建多维度标签体系。