如果我有以下用户对他们观看过的电影评分如下:
User1 Movie1-5 Movie2-4
User2 Movie2-5 Movie2-3 Movie3-4
User3 Movie1-4 Movie2-4 Movie4-4
我如何使用协同过滤向movie1建议movie3?如何计算user1给予movie3 4或更高的概率?
答案 0 :(得分:3)
有几种不同的方法可以使用协同过滤生成推荐,我将解释基于用户和基于项目的协作过滤方法。这些方法最常用于推荐算法。
基于用户的协作过滤
这基本上计算用户之间的相似性。相似性可以是皮尔逊相关或余弦相似性。有更多的相关数字,但最常用的是。 This文章对如何计算这个问题给出了很好的解释。
基于用户的过滤确实带来了一些挑战。首先是数据稀疏性问题,这种情况发生在很多带有一些评论的电影时。这使得难以计算用户之间的相关性。 This维基百科页面详细介绍了这一点。
其次是可扩展性问题。当你有数百万用户拥有数千部电影时,计算用户之间相关性的表现将大幅下降。
基于项目的协作过滤
此方法与基于用户的过滤不同,因为它计算电影而非用户之间的相似性。然后,您可以使用此相似性来预测用户的评级。我发现this演示文稿很好地解释了它。
基于项目的过滤器的性能优于基于用户的过滤器,但它们也遇到了同样的问题,但却少了一些。
基于内容的过滤
查看您的数据,因为您的用户数据太少而难以生成建议。我建议使用基于内容的过滤器,直到您有足够的数据来使用协作过滤方法。这是一种非常简单的方法,它基本上查看用户的个人资料并将其与电影的某些标签进行比较。 This页面更详细地解释了它。
我希望这能回答你的一些问题!