是否有“正确”的方式做“你喜欢这个,喜欢这个的其他人也喜欢这些东西所以你可能喜欢这些”查询?

时间:2012-07-06 13:58:31

标签: java algorithm social-media-like

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

我可能想出一个合适的算法来产生这样的结果,但在重新发明轮子之前,我想知道是否已经有一个共同的或既定的方法或搜索算法来产生这样的结果?

非常感谢任何建议或建议!

3 个答案:

答案 0 :(得分:2)

最常用的方式是K Nearest Neighbours Algorithm

算法如下:

  • 选择N个“邻居”来考虑(例如5)
  • 选择一种评分两个用户喜欢的相似度的方式(例如,用户喜欢的项目总数)
  • 要为用户提供建议,请先找到其他N个用户,这些用户的个人资料最相似。在这里,拥有最多项目的5位用户与我们的用户完全相同。
  • 推荐是当前用户不喜欢的其他用户喜欢的内容。当然,其他N个用户喜欢的项目是最佳候选者。

如果Apache Mahout适合你,那就去吧。但如果没有,这是迄今为止最常用(也是最简单的)算法之一。如果您正在使用Google搜索,则可能需要搜索“协作过滤”,这是此问题的可接受名称。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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