spark项目相似度推荐

数据挖掘 阿帕奇火花 apache-hadoop 推荐系统 pyspark
2022-02-28 05:19:11

我想使用spark's Mlib itemsimilarity此处提到的链接构建推荐引擎

但似乎 spark 不再有这个算法,一些论坛建议我使用ALS,但请澄清项目相似性是否从 spark 或任何其他替代原生中删除?我想将我的指标索引到搜索引擎中,我发现 Sparks 项目相似性最适合我。请指教。

2个回答

对于您的推荐引擎,如果您选择使用项目相似性方法,那么您可以使用 Spark 的 RowMatrix 数据类型来完成此任务。

项目相似性方法只是在目录中创建项目的方阵(即 itemID X itemID),其中矩阵的每个元素 是r_{ij} 之间的相似度这种相似度的大小可以通过使用任何相似度函数来计算,最流行的是余弦相似度。项目项目j

在火花中,这可以通过以下方式完成:

  1. 创建一个k X n矩阵,其中 n 项被描述为 k 维向量。要将每个项目表示为k维度向量,您可以使用ALSwhich 表示潜在因子空间中的每个实体。该空间的尺寸(k)可以由您选择。

这个 k X n 矩阵可以表示为RDD[Vector]

  1. 将此 k X n 矩阵转换为RowMatrix
  2. 使用columnSimilarities()函数获取n X nn 个项目之间的相似性矩阵。

最后,每当查看一个项目时,您可以推荐m通过按相似度递减值对第 i 行中的项目进行排序并选择顶部获得的其他项目m

更多细节可以在这里找到。

spark-itemsimilarity基于 Spark 和 Mahout 的命令行工具。(它不是您在 Spark 应用程序中导入的库。)这里解释了它是如何工作的。