2012-07-06 42 views
0

我需要为登录用户生成建议列表。基本上它是“既然你喜欢这些东西,以及其他喜欢这些东西的人,所以你也可能喜欢这些东西”。有没有做一个“你这个样子,谁喜欢这个也喜欢这些东西别人,所以你可能会喜欢这些”查询的“正确”的方式?

我大概可以工作了制造这种结果的体面的算法,但在此之前我推倒重来,我想知道是否已经有生产这种结果的共同或确定的方法或搜索算法?

任何建议或意见,非常感谢!

谢谢,罗布

回答

2

最常用的方法是K Nearest Neighbours Algorithm

的算法是这样的:

  • 挑一些N“邻居”的考虑(例如5)
  • 挑选得分如何这两个用户的喜好之间的相似性(如总人数的一种方式项目的两个用户等)
  • 要为用户提出建议,首先找到谁拥有最相似的外形的N个其他用户。在这里,拥有大部分物品的5位用户都喜欢与我们的用户共同使用。
  • 的建议是由东西,目前用户已经不喜欢那些其他用户喜欢。当然,大多数其他用户喜欢的项目是最好的候选人。

如果Apache Mahout的为你工作,然后去了。但是,如果不是,这是迄今为止最常用的(也是最简单的)算法之一。如果你使用谷歌搜索,你可能想要搜索“协作过滤”,这是这个问题的公认名称。