小编vom*_*dle的帖子

用于查找类似项目和用户的推荐算法(和实现)

我有一个大约70万用户的数据库以及他们观看/收听/阅读/购买/等的项目.我想建立一个推荐引擎,推荐基于具有相似品味的用户喜欢的新项目,以及实际上找到用户可能希望在我正在构建的社交网络上成为朋友的人(类似于最后.调频).

我的要求如下:

  • 我数据库中的大多数"用户"实际上并不是我网站的用户.它们是从第三方来源挖掘的数据.但是,在推荐用户时,我希望将搜索范围限制为我网站的成员(同时仍然利用更大的数据集).
  • 我需要考虑多个项目.不是"喜欢你喜欢这一项的人......",而是"喜欢你喜欢的大多数物品的人......".
  • 我需要计算用户之间的相似性,并在查看他们的个人资料时显示它们(味道 - 米).
  • 有些项目是评级的,有些则不是.评级是1-10,而不是布尔值.在大多数情况下,如果不存在其他统计数据,则可以从其他统计数据中扣除评级值(例如,如果用户喜欢某个项目,但未对其进行评级,我可以假设评级为9).
  • 它必须以某种方式与Python代码交互.优选地,它应该使用单独的(可能是NoSQL)数据库并公开API以在我的web后端中使用.我正在制作的项目使用Pyramid和SQLAlchemy.
  • 我想考虑项目类型.
  • 我希望在项目页面上显示类似的项目,包括其类型(可能是标签)和喜欢该项目的用户(如亚马逊的"购买此项目的人"和Last.fm艺术家页面).仍应显示来自不同类型的项目,但具有较低的相似度值.
  • 我希望通过一些示例来详细记录算法的实现.

请不要给出像"使用pysuggest或mahout"这样的答案,因为那些实现了大量的算法,我正在寻找最适合我的数据/使用的算法.我一直对Neo4j感兴趣,以及如何将它们表示为用户和项目之间的连接图.

theory algorithm recommendation-engine data-mining collaborative-filtering

7
推荐指数
2
解决办法
4519
查看次数