推荐算法之协同过滤

1、什么是协同过滤

顾名思义,协同过滤包括协同和过滤两个操作。所谓协同就是协同大家的反馈、评价和意见行来进行决策(推荐),生物上有协同进化的说法,通过协同的作用,让群体逐步进化到更佳的状态。对于推荐系统来说,通过用户的持续协同作用,最终给用户的推荐会越来越准。而过滤,就是通过协同将海量的信息进行过滤,从中筛选出目标用户可能感兴趣的推荐过程。

推荐算法之协同过滤_第1张图片

如上图中所示协同过滤推荐过程按照图(a)~(f)分成了六步。在这些步骤中,分别根据不同用户对不同商品的评价,就建立起一个矩阵,叫做共现矩阵。需要进行推荐的就是不同用户未进行体验打分的商品。通过共现矩阵将用户评分信息或者商品被评分信息进行one-hot编码(详解见:https://blog.csdn.net/qq_38375203/article/details/124519359?spm=1001.2014.3001.5502),所谓“协同”就是找出和自己兴趣相似的top k用户,然后综合这些用户对商品的评价,进而过滤预测出自己感兴趣的商品。

2、用户相似度计算

协同过滤的核心是怎么计算用户之间的相似度或者商品之间的相似度。我们可以采用非常朴素的思想来计算相似度。我们将用户对商品的评分(或者隐式反馈,如点击、收藏等)构建如下用户行为矩阵,矩阵的某个元素代表某个用户对某个标的物的评分(如果是隐式反馈,值为1),如果某个用户对某个标的物未产生行为,值为0。其中行向量代表某个用户对所有标的物的评分向量,列向量代表所有用户对某个标的物的评分向量。有了行向量和列向量,我们就可以计算用户与用户之间、标的物与标的物之间的相似度了。具体来说,行向量之间的相似度就是用户之间的相似度,列向量之间的相似度就是标的物之间的相似度。

计算两个与用户之间的相似度,其实就是计算两个向量的相似度。其中两个向量之间常用的相似度计算方法有以下几种。

(1)余弦相似度

余弦相似度衡量了两个用户之间的向量夹角大小。显然夹角越小证明有余弦相似度越大,两个用户就越相似。

(2)皮尔逊相关系数

相比较与余弦相似度,皮尔逊相关系数通过使用用用户平均分对商品进行评分,减少了用户评分偏执的影响。

推荐算法之协同过滤_第2张图片

 在计算用户相似度上并没有绝对的方式,理论上任何合理的向量相似度计算都可以进行应用。在对传统的协同过滤的改进工作中,研究人员也是用过对用户相似度的计算进行调整。

在获得top k相似用户之后,如何利用这些用户产生推荐结果呢?这里介绍一种最常用的加权平均排序方式。

 推荐算法之协同过滤_第3张图片

在获得用户u对不同物品的评价预测后,将评分进行排序就完成了协同过滤算法。

(3)UserCF和ItemCF

协同过滤一般分为UserCF(用户)和ItemCF(商品)两种。在互联网应用的场景,用户量往往大于物品数,可以根据不同的情况来选择不同的策略进行预测。

再一个就是冷启动问题。

「冷启动」包含两个层面:

1. 用户的冷启动,新的用户因为没有在产品上留下行为数据,自然无法得知他/她的喜好,从而做出靠谱的推荐。这时一般需要借助用户的背景资料,或者引导性地让用户选择,或者暂时用热门启动替代个性化推荐来解决,在线推荐系统可以做到在用户产生行为数据后立马更新推荐列表。

2. 物品的冷启动,主要适用于ItemBased的场景,即对一个物品推类似的物品,因为新物品还没有用户行为数据,自然也就没有办法通过协同过滤的方式进行推荐,这时一般会利用物品属性的相关程度来解决。

现实生活中对于电子商务推荐系统,每天都有大量的新用户访问系统,每天都有相当数量的新项目添加到系统中,一方面,如果推荐系统能够为新用户推荐比较喜欢的商品,推荐系统会赢得更多用户的信任,对商家来说增加了客源,提高用户对系统的忠诚度,对用户来说,可以随时得到高质量的个性化服务; 另一方面,如果新商品能够及时地被推荐出去,可以提高产品的销售量,为商家赢得更大的经济利益,促进电子商务的健康发展。

目前针对冷启动问题提出了一些解决方法,如随机推荐法、平均值法、众数法、信息熵法、相似度度量改进法和结合内容信息的方法等。

你可能感兴趣的:(推荐算法,算法,机器学习)