协同过滤
协同过滤是一种方法推荐系统通过使用其他人的偏好来过滤信息。它使用的假设是,如果A在他们都评论过的项目上与B有相似的偏好,那么A很可能在只有B评论过的项目上与B有相似的偏好。
爱丽丝 鲍勃 克里斯 德温 贾斯汀比伯 + - + + 红辣椒 - + + + 甲壳虫乐队 + + + + 一个方向 + + - ? 上面的表格代表了一组人的音乐品味(“+”代表喜欢,“-”代表不喜欢)。我们在试着确定戴文是否喜欢单向乐队。一个协同过滤系统可能会确定Devin的偏好与Chris的最接近,并确定Devin可能不喜欢单向乐队。
协同过滤被许多不同领域的推荐系统所使用,包括音乐、购物、金融数据、社交网络和各种服务(YouTube、Reddit、Last.fm)。任何使用推荐系统的服务都很可能采用协同过滤。
概述
随着互联网和速度更快的计算机的发展,世界各地的公司都在存储大量的数据。这导致了一个分支领域的兴起计算机科学被称为大数据这本书关注的是存储和分析大量数据的问题。协同过滤是一种从数据中提取有用信息的方法,一般过程称为信息过滤.该算法将用户与其他类似用户进行比较(在偏好方面),并根据这些相似性推荐特定的产品或操作。
协同过滤的具体步骤如下:
- 用户通常通过评分来表达对物品的偏好。
- 该算法会找到与该用户有相似品味的其他用户。
- 系统会推荐用户还没有评价过的项目(因此,对用户来说可能是新的),以及类似于给定用户的用户评价很高的项目。
在此过程中需要注意的是,服务用户的积极参与。为了获得推荐,用户必须在过去喜欢或不喜欢某个商品;否则,系统将无法提供良好的建议。
实施差异
协同过滤的实现主要有两种方式内存的方法和模型的方法。
的内存基于方法计算相似度( ) 而且 以以下方式:
- 在首选项集中是否有一个给定的首选项 .
- 是与给定首选项相关联的权重,用于确定其相关性。例如,两个人对一首流行摇滚歌曲的高度评价可能比对一首不知名的歌曲的高度评价更有相关性,因此可以赋予更高的权重。
- 是用户定义的相似度函数,接受两个用户首选项( 而且 ),并决定偏好之间的相似度(越高意味着越相似)。例如,一个简单但有效的相似度函数是,如果偏好相同则返回1,如果不相同则返回0。
相似度计算作为一个整体作为一个变体再邻居算法通过确定哪些用户是最邻近的给定用户的偏好。基于内存的方法的好处是易于实现并且非常有效。然而,一些问题包括数据稀疏,当没有足够的数据来提出好的建议时,就会发生这种情况可伸缩性,因为对于大型数据集,需要更多的计算来确定相似性。
的模型基于方法的使用机器学习在数据集中查找模式的技术。例如,神经网络可用于发现项目偏好之间的趋势。这种方法的优点包括易于扩展,但可能导致昂贵的神经网络模型构建。
许多协同过滤系统使用混合方法,这是基于内存的方法和基于模型的方法的组合。尽管这样的系统实现起来昂贵且复杂,但它们克服了上述每种方法的缺点。
挑战
关于协同过滤存在各种已知的挑战。以下是一些值得注意的问题。
缺乏数据-为了开始推荐,系统必须首先获得足够数量的用户过去的偏好。这会延迟推荐系统的有用性,直到达到这个数字。此外,新产品在被推荐之前必须得到足够多的人的评价。这些问题会延迟协同过滤对用户的有用性。
可伸缩性-随着越来越多的人,越来越多的偏好,协同过滤算法变得计算密集的,可能需要很长时间才能返回结果。有许多方法可以解决这个问题,从使用数据子集到在某种相似度之后返回结果阈值是达到了。
同义词协同过滤可能无法区分两个相同的产品(例如,亚马逊上同一商品的不同名称,或者一首歌和同一首歌的歌迷翻唱)。在这种情况下,算法可能会在不知不觉中推荐相同的产品,并在处理该产品时不必要地执行额外的计算,而不是避免它。
先令攻击-用户可以对自己的产品进行高评分,而对竞争对手的产品进行低评分——这可能会导致过滤算法更喜欢某一种产品而不是竞争对手的产品,这对于保证对用户公平的服务来说是一个巨大的问题。此外,社区内的推荐更倾向于一种观点。这方面的例子包括Reddit、Facebook和Buzzfeed——在这些网站上,排名靠前的链接会偏向于社区的偏好。
偏爱老产品-因为老产品比新产品有更多的相关数据,算法可能会推荐这些老产品,而不是用户正在寻找的新产品。这违背了某些应用程序的目的,在这些应用程序中,用户可能使用该服务来查找新内容。
灰色的羊-一些用户的偏好并不总是与任何一组人一致(灰色的羊).这些用户在确定他们的需求时并不觉得协同过滤特别有用。
实现
下面是本页第一个示例的一个简单协同过滤算法的实现。
12 34 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
|
参考文献
- Moshanin。Collaborative_filtering.gif.检索2016年6月2日,从https://commons.wikimedia.org/wiki/File:Collaborative_filtering.gif