0

我需要为登录用户生成一个建议列表。基本上是“因为你喜欢这些东西,而其他喜欢这些东西的人也喜欢这些东西,所以你可能也喜欢这些东西”。

我可能会想出一个像样的算法来产生这样的结果,但在我重新发明轮子之前,我想知道是否已经有一种通用的或已建立的方法或搜索算法来产生这样的结果?

任何建议或意见将不胜感激!

4

3 回答 3

1

最常用的方法是K 最近邻算法

算法是这样的:

  • 选择 N 个“邻居”来考虑(例如 5 个)
  • 选择一种对两个用户的喜欢之间的相似性进行评分的方法(例如两个用户喜欢的项目总数)
  • 要为用户推荐,首先要找到具有最相似个人资料的其他 N 个用户。这里有 5 个与我们的用户共同点赞最多的用户。
  • 推荐是当前用户不喜欢的那些其他用户喜欢的东西。自然地,其他 N 个用户中大多数人喜欢的项目是最佳候选者。

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

于 2012-07-06T14:10:31.513 回答
0

Apache Mahout是一种方法。它相当复杂,但提供了良好的结果

于 2012-07-06T14:03:18.710 回答
0

通常Apache Mahout用于此类事情,请参阅“建议”

于 2012-07-06T14:03:36.793 回答