带有 mahout 的推荐引擎

数据挖掘 机器学习 数据挖掘 推荐系统
2021-10-15 04:57:38

我有一个用户数据列表:用户名、年龄、性别、地址、位置等,以及

一组产品数据:产品名称、成本、描述等。

现在我想构建一个推荐引擎,它能够:

1 找出相似的产品

例如:

名称:类别:成本:成分

x : x1 : 15 : xx1, xx2, xx3

y : y1 : 14 : yy1, yy2, yy3

z : x1 : 12 : xx1, xy1

这里 x 和 z 是相似的。

2 将产品列表中的相关产品推荐给用户

如何使用 mahout 来实现这一点?

2个回答

我建议你看看 Oryx ( https://github.com/OryxProject/oryx )。Oryx 基于 Apache Mahout(实际上是 Mahout 的创建者之一 Sean Owen 构建了它)并使用协同过滤提供推荐。Oryx 是一个非常实用的推荐工具。我在几个项目中使用过它:在零售商店(小型企业)推荐产品、构建电子商务推荐器以及来自移动应用交互的用户相似度。

您只需要以以下形式表示数据: UserId ItemId Value

其中,价值是衡量该用户与项目之间交互的重要性影响的(主观的)。用户和项目实际上可以是任何东西,并且可以使用相同的过程进行标记。例如,对于推荐歌曲、查找相似的歌曲和乐队以及根据他们的音乐品味查找相似的用户,您可以将数据表示为

UserId SongId NumberOfPlays

其中 NumberOfPlays 是用户播放歌曲的次数(例如在线音乐服务中)。这个例子是在 Oryx 的前身 Myrrix 中给出的。他们还展示了如何为 StackOverflow 中的问题推荐标签。

github 站点的文档记录不是很好,但足以让它运行(和工作:))

尝试使用Apache Mahout下提供的基于项目的相似性算法它很容易实现,并且您将很好地了解您的数据集的推荐系统将如何工作。您可以提供成分和类别作为获得类似产品的主要输入。作为该领域的新手,我想说这种方法是所有新手都能很好地了解什么样的结果的简单方法可以期望建立自己的推荐系统。