简单的项目到项目推荐系统是众所周知的,并且经常实现。Slope One algorithm就是一个例子。如果用户还没有给很多项目打分,这是可以的,但是一旦他们打了分,我想提供更细粒度的推荐。让我们以音乐推荐系统为例,因为它们非常流行。如果用户正在观看莫扎特的作品,则可能会给出另一首莫扎特作品或贝多芬的建议。但如果用户对古典音乐进行了多次评分,我们也许能够在这些项目之间建立关联,并看到用户不喜欢人声或某些乐器。我假设这将是一个由两部分组成的过程,第一部分是找到每个用户的评分之间的相关性,第二部分是从这些额外的数据中建立推荐矩阵。所以问题是,他们是否有任何开源的实现或论文可以用于这些步骤中的每一个?
发布于 2010-12-21 02:24:31
品味可能会有一些有用的东西。它移到了Mahout项目中:
http://taste.sourceforge.net/
一般来说,这个想法是给定用户过去的偏好,你想要预测他们下一步会选择什么并推荐它。您构建了一个机器学习模型,其中的输入是用户过去选择的内容以及每个选择的属性。输出是他们要挑选的项目。您可以通过保留他们的一些选择来创建训练数据,并使用他们的历史记录来预测您保留的数据。
你可以使用很多不同的机器学习模型。决策树很常见。
发布于 2010-12-24 07:02:56
一个答案是,任何推荐系统都应该具有您所描述的一些属性。最初,推荐并不是那么好,到处都是。随着它学习品味,推荐将来自用户喜欢的区域。
但是,您描述的协作过滤过程从根本上不是试图解决您试图解决的问题。它是基于用户评分的,两首歌的评分并不相似,因为它们是相似的歌曲--它们被相似的评分只是因为相似的人喜欢它们。
你真正需要的是定义你的歌曲-歌曲相似性的概念。它是基于这首歌的发音吗?作曲家?因为听起来这个概念实际上并不是基于评级的。这是你试图解决的问题的80%。
我认为你真正回答的问题是,哪些项目与给定的项目最相似?考虑到你的项目相似性,这是一个比推荐更容易的问题。
除了基于音频的歌曲相似度之外,Mahout可以帮助完成所有这些事情--或者至少为您的解决方案提供一个起点和框架。
发布于 2010-12-21 02:11:55
我可以想到两种技术:
Resilient Propagation).
这些方法的共同特征是:
的质量非常关键(
请注意,这些建议来自基于知识的系统和人工神经网络的大学课程,而不是来自实践经验。
https://stackoverflow.com/questions/4486934
复制相似问题