2016-11-02 38 views
0

如果我有以下的用户提供电影以下评级,他们观看:协同过滤算法

User1 Movie1-5 Movie2-4 
User2 Movie2-5 Movie2-3 Movie3-4 
User3 Movie1-4 Movie2-4 Movie4-4 

我将如何使用协同过滤提出MOVIE3为user1,如何计算USER1给MOVIE3的概率一个4或更好?

+4

http://stackoverflow.com/help/mcve – xxbbcc

回答

2

那么有几种不同的方式来使用协作过滤来生成推荐,我将解释基于用户和基于项目的协作过滤方法。这些方法最常用于推荐算法。

基于用户的协作过滤

这基本上计算用户之间的相似性。相似性可以是皮尔森相关或余弦相似。有更多的相关数字,但那些是最常用的。 This文章就如何计算这个问题给出了一个很好的解释。

基于用户的过滤确实带来了一些挑战。首先是数据稀疏问题,这是在有很多电影和少量评论的情况下发生的。这使得计算用户之间的相关性变得困难。 This维基百科页面解释了更多关于此的信息。

其次是可伸缩性问题。当拥有数以百万计电影的数百万用户时,计算用户之间相关性的性能将大幅下降。

项目基于协同过滤

此方法从基于用户的滤波不同,因为它计算电影,而不是用户之间的相似性。然后,您可以使用此相似性来预测用户的评分。我发现this演示文稿解释得非常好。

基于项目的过滤器的性能优于基于用户的过滤器,但它们也遭受同样的问题,但稍微少一点。

基于内容的过滤

看到你的数据,这将是困难的,因为你必须从用户的数据太少,产生建议。我建议使用基于内容的过滤器,直到您有足够的数据来使用协作过滤方法。这是一个非常简单的方法,它基本上查看用户的个人资料并将其与电影的某些标签进行比较。 This页面更详细地解释它。

我希望这能回答你的一些问题!