我想使用spark's Mlib itemsimilarity此处提到的链接构建推荐引擎
但似乎 spark 不再有这个算法,一些论坛建议我使用ALS,但请澄清项目相似性是否从 spark 或任何其他替代原生中删除?我想将我的指标索引到搜索引擎中,我发现 Sparks 项目相似性最适合我。请指教。
我想使用spark's Mlib itemsimilarity此处提到的链接构建推荐引擎
但似乎 spark 不再有这个算法,一些论坛建议我使用ALS,但请澄清项目相似性是否从 spark 或任何其他替代原生中删除?我想将我的指标索引到搜索引擎中,我发现 Sparks 项目相似性最适合我。请指教。
对于您的推荐引擎,如果您选择使用项目相似性方法,那么您可以使用 Spark 的 RowMatrix 数据类型来完成此任务。
项目相似性方法只是在目录中创建项目的方阵(即 itemID X itemID),其中矩阵的每个元素 是和 之间的相似度。这种相似度的大小可以通过使用任何相似度函数来计算,最流行的是余弦相似度。
在火花中,这可以通过以下方式完成:
k X n矩阵,其中 n 项被描述为 k 维向量。要将每个项目表示为k维度向量,您可以使用ALSwhich 表示潜在因子空间中的每个实体。该空间的尺寸(k)可以由您选择。这个 k X n 矩阵可以表示为RDD[Vector]。
columnSimilarities()函数获取n X nn 个项目之间的相似性矩阵。最后,每当查看一个项目时,您可以推荐m通过按相似度递减值对第 i 行中的项目进行排序并选择顶部获得的其他项目m。
更多细节可以在这里找到。
有spark-itemsimilarity基于 Spark 和 Mahout 的命令行工具。(它不是您在 Spark 应用程序中导入的库。)这里解释了它是如何工作的。