自学内容网 自学内容网

推荐算法(基于用户/物品的协同过滤算法)

1.1 推荐算法概述

        信息过载的时代。信息消费者面临的问题是如何收集到自己感兴趣的信息。对于信息生产者来说,高效地把信息推送给感兴趣的信息消费者,而不是淹没在信息互联网的海洋之中,也非常困难。 如何从大量的数据信息中获取有价值的信息成为关键问题。 由此,推荐系统便应运而生,得到了广泛的应用。

推荐流程示意:

推荐系统首先收集、处理客户的数据,通过分析客户的特征,为客户推荐最合适的商品。

1.1.1常见评价指标

  1. 用户信任度
  2. 预测准确度
  3. 覆盖率
  4. 多样性  
  5. 实时性

1.1.3 推荐系统面临的挑战

1.冷启动问题

冷启动问题主要分为三类:

  • 用户冷启动:指新用户情况下,如何给新用户做个性化推荐的问题。
  • 系统冷启动: 指新系统情况下,只有物品的信息没有用户及行为,如何进行推荐。
  • 物品冷启动:指新物品情况下,如何将新推出的物品推荐给可能的感兴趣用户。
2.多目标优化问题

        影响推荐系统性能的因素非常多,因此推荐系统可以看作一个多目标优化问题。怎样能综合考虑这些繁杂的影响因素,达到理想的推荐效果,也是一个有挑战的问题。

3.多源的异构数据

        推荐系统的数据来自于各种数据源、各种格式,例如用户信息、物品信息、用户和用户的关系,以及用户和物品的关系。数据源还经常是异构的,存在文字、网页、图片、声音、视频等丰富的格式。内容的多源和异构性都是需要解决的问题。

4.时效问题 

        像新闻这样的产品,有时效性要求。另一方面,用户的兴趣会改变,要进行跟踪更新。

1.1.4 常见的推荐算法

        随着推荐系统的广泛应用,推荐算法也不断发展。目前来说,推荐算法可以粗略分为几个大类:

  1. 协同过滤推荐算法
  2. 基于内容的推荐算法
  3. 基于图结构的推荐算法
  4. 混合推荐算法。

1.2 协同过滤推荐算法

        协同过滤(Collaborative Filtering,CF)概念是1992年提出的,并被GroupLens在1994年应用在新闻过滤中。 目前的协同过滤推荐算法可以按数据维度分为两类:

  1. 基于用户的协同过滤算法。
  2. 基于物品的协同过滤算法。

1.2.1基于用户的(user-based)协同过滤算法

        在日常交往中,可以观察一个人的朋友们的喜好,借此推测这个人的兴趣偏好,从而为他推荐他可能喜欢的内容。基于协同过滤的算法就是基于这个想法。首先使用特定的方式找到与一个用户相似的用户集合,即他的“朋友们”。分析这些相似用户的喜好,将这些“朋友们”喜欢的东西推荐给该用户。

        算法流程如图所示:

        下面对算法流程进行详细介绍。

        首先,系统需要采集用户、项目的相关数据,构建一个用户-物品评分矩阵,例如如下表所示的信息矩阵。

        接下来,要计算用户和用户之间的相似度。相似度根据距离计算,如欧式距离、余弦距离等。假设用户数据为N维的,则用户U和用户V 两个向量的欧式距离为:

        欧式距离得到的结果是一个非负数,最大值是正无穷。显然,距离越大相似度越小,即相似度与距离负相关。另外,为方便使用,通常希望相似度值是在某个具体范围内。所以,可以将上面的欧氏距离进行变换,转换到(0,1]。

        余弦相似度也是经常使用的相似度度量方法,它计算的是两个向量之间夹角的余弦值。余弦相似度的结果范围为[一1,1]。仍然使用上面假设的N维的用户数据,则用户U和用户v 两个向量的余弦相似度如下。

        对于每个候选物品i,用户U对它感兴趣的程度f(u,i)可以通过其他用户的喜欢程度与用户间的相似度来计算,公式如下。

其中:

  • P(u,k):与用户U最相似的前k个用户的集合。
  • N(i):喜欢物品i的用户集合(i一般为用户U未喜欢过的物品)。
  • v:与用户U最相似的前k个用户集合中,喜欢过物品i的用户。
  • sim_uv:用户U和用户V的相似度。
  • r_vi:用户V对物品i的喜欢程度。

        下面使用例子进行详细讲解。在某个电子商务平台上,收集到的用户对物品的评价结果数据如表所示。下面对用户 U1,提取两个相邻用户(k=2)的历史偏好,预测用户U1对12物品的评分。

 1.2.2基于物品的(item-based)协同过滤算法

        算法基于以下假设,同一个用户对相似项目的评分存在相似性。当测算用户对某不项目的评分时,可以根据用户对若干相似项目的评分进行估计。
        例如,喜欢看电影的小明,对影片《少林寺》《醉拳》和《一代宗师》的评价比较高,由于电影《叶间》与上述电影的相似度较高,那么影片《时间》很可能是他感兴趣的。
        基于物品的协同过滤算法的想法本质上与基于用户的协同过滤算法类似,可以使用前文介绍的用户相似度公式计算项目间的相似度。相似度与预测的计算过程都类似。 预测某个用户U对某个项目i的评分r_ui的计算如下:

其中:

  • r_vi:用户V对物品i的喜欢程度。
  • G(i,k):与物品i最相似的前k个物品集合。
  • N(u):U喜欢过的物品集合。
  • j:与物品i最相似的前k个物品集合中,用户喜欢过的物品。
  • sim_ij:物品i和物品j的相似度。 

        基于物品的协同过滤推荐算法原理上和基于用户的协同过滤推荐算法类似,只是在计算邻居时采用物品作为对象,而不是从用户的维度。将所有用户对某个物品的喜欢程度作为一个向量,计算物品之间的相似度,得到某物品的相似物品。然后,根据用户历史的评价数据,预测当前用户对没评价过的物品的评分,对物品排序后作为推荐。

        基于下表的数据,使用基于物品的协同过滤推荐算法,计算用户U2对物品I2的评分。


原文地址:https://blog.csdn.net/qq_55882840/article/details/143863923

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!