什么是协同过滤算法?协同过滤算法有哪些?

        协同过滤算法(Collaborative Filtering)可以说是推荐领域最为知名的经典算法之一,其最早来源于亚马逊于2003年发表的论文Amazon.com Recommenders Item-to-Item Collaborative Filtering,这篇论文的诞生也让协同过滤在推荐领域大放异彩,成为之后很长时间的研究热点和业界主流。而亚马逊的这一算法就是比较经典的协同过滤算法。

        在我们平时应用的软件中,我们往往能得到用户(User)对物品(Item)的反馈、评价以及评分等海量信息,所谓协同过滤就是要在这海量的信息中筛选过滤出目标用户可能会感兴趣的物品的一个过程。一般来说,协同过滤主要可以分为基于用户(user-based)的协同过滤和基于物品(item-based)的协同过滤。这两种方法分别侧重于用户相似度计算和物品相似度计算,并根据相似度来决定对目标用户的推荐。

1.基于用户的协同过滤

        基于用户的协同过滤主要考虑的是用户和用户之间的相似度,如果用两个用户的相似度比较高,那么其中一个喜欢的物品很有可能也被另一个所喜欢。所以我们只需要找出相似用户喜欢的物品,并预测目标用户对此物品的评分,就可以找到评分最高的若干个物品推荐给目标用户。

        下面举一个例子。假设在一个只有三名用户和四件手机的推荐场景,并且已经获得了目标用户A对其他商品的历史评价数据和其他用户B和用户C对这些商品的历史评价如下图所示,而我们现在的推荐问题就转换成对图中蓝色剪头的一个预测。

什么是协同过滤算法?协同过滤算法有哪些?_第1张图片

        因为是基于用户的协同过滤,所以应当优先考虑与目标用户相似的用户的意见。因此预测的第一步就是要通过相似度计算找到与目标用户的兴趣最相似的用户,在本例中,显然用户A与用户C比较相似。应为用户C喜欢商品D,所以我们预测用户A对商品D也有很大可能是喜欢的,因此我们会向用户A推荐商品D。

        与目标用户相似的用户可能不止一个,在大规模的推荐场景中,往往会有多个与目标用户相似的用户,比较常用的方法是利用用户相似度和相似用户的评价的加权平均获得目标用户的评价预测。在获得目标用户对待推荐列表的评价预测后,就可以根据预测的评价分从高到低给出对目标用户的推荐。以上就是基于用户的协同过滤的全过程。

2.基于物品的协同过滤

        基于用户的协同过滤主要依据用户之间的相似度,而基于物品的协同过滤则主要根据物品之间的相似度来进行推荐。这一点在我们实际生活中应用到的平台中尤为明显,因为同一用户在一段时间内所感兴趣的或者需要购买的物品基本都是同一类的,因此向用户推荐与他感兴趣的物品相似的那些物品是更为有效的一类推荐方式。

        如果把用户-商品的交互表格看成一个矩阵的话,基于用户的协同过滤算法就是计算行向量之间的相似度,而基于物品的协同过滤算法就是计算列向量之间的相似度。还是按照之前的例子来看,用户A对物品A和物品C都比较感兴趣,而物品A和物品C又都和物品D有比较高的相似度,所以我们预测用户A对物品D也有很大可能是喜欢的。

        同样,如果一个物品与多个用户行为历史中的正反馈物品相似,那么该物品最终相似度应该是多个相似度的累加。对相似物品集合中的物品,可以利用相似度的分值从高到低进行排序,从而给出对目标用户的最终推荐列表。以上就是完整的基于物品的协同过滤推荐过程。

        总而言之,协同过滤是一种非常直观的且可解释性比较强的推荐模型。而它的两种具体实现方法,即基于用户的协同过滤和基于物品的协同过滤,除了在技术上实现上有区别外,具体适用场景也有所区别。比如基于用户的协同过滤更强调用户之间的相似度,比较适合用于推荐热点事件或者新闻等内容;而基于物品的协同过滤则更适用于电商平台和短视频平台等用户的兴趣爱好比较稳定的场景。

你可能感兴趣的:(算法)