简单的项目到项目推荐系统是众所周知的并且经常实现。一个例子是Slope One 算法. 如果用户还没有对很多项目进行评分,这很好,但是一旦他们有了,我想提供更细粒度的推荐。让我们以音乐推荐系统为例,因为它们非常流行。如果用户正在查看莫扎特的作品,则可能会给出另一部莫扎特作品或贝多芬的建议。但如果用户对古典音乐进行了多次评分,我们或许可以在这些项目之间建立关联,并看到用户不喜欢人声或某些乐器。我假设这将是一个两部分的过程,第一部分是找到每个用户评分之间的相关性,第二部分是从这些额外数据构建推荐矩阵。所以问题是,它们是否有任何可用于这些步骤的开源实现或论文?
1364 次
3 回答
2
味道可能有一些有用的东西。它已移至 Mahout 项目:
一般来说,这个想法是给定用户过去的偏好,您希望预测他们接下来会选择什么并推荐它。您构建了一个机器学习模型,其中输入是用户过去选择的内容以及每个选择的属性。输出是他们将选择的项目。您通过保留他们的一些选择来创建训练数据,并使用他们的历史来预测您保留的数据。
您可以使用许多不同的机器学习模型。决策树很常见。
于 2010-12-20T18:24:30.643 回答
1
一个答案是任何推荐系统都应该具有您描述的一些属性。最初,建议并不是那么好,而且到处都是。当它学习口味时,推荐将来自用户喜欢的区域。
但是,您描述的协同过滤过程从根本上不是试图解决您要解决的问题。它基于用户评分,两首歌曲的评分并不相似,因为它们是相似的歌曲——它们的评分相似只是因为相似的人喜欢它们。
你真正需要的是定义你对歌曲相似度的概念。它是基于歌曲的声音吗?作曲家?因为听起来这个概念实际上并不是基于收视率。那是您要解决的问题的 80%。
我认为您真正要回答的问题是,哪些项目与给定项目最相似?鉴于您的项目相似性,这是一个比推荐更容易的问题。
Mahout可以帮助解决所有这些问题,除了基于其音频的歌曲与歌曲的相似性——或者至少为您的解决方案提供一个起点和框架。
于 2010-12-23T23:02:55.710 回答