【问题标题】:Data format for Spark ALS recommendation system with implicit feedback具有隐式反馈的 Spark ALS 推荐系统的数据格式
【发布时间】:2026-01-10 16:05:02
【问题描述】:

Spark 中的ALS module 假定数据采用(user, product, rating) 元组的形式。当使用implicitPrefs=True 时,评级被假定为隐式评级,因此等于 0 的评级具有特殊含义,不会被视为未知。如Hu et al (2008) 所述,ALS 将隐式评级用作权重。使用隐式评分时,“缺失”评分need to be passed directly to the algorithms as zeros

我的问题是:ALS 模块是否需要用户将“缺失”的隐式评级设为零,还是会自动用零填充缺失的单元格?

举个例子,假设我有三个用户,三个产品和他们的评分(使用(user, product, rating)格式):

(1, 1, 2)
(1, 2, 1)
(2, 2, 3)
(3, 1, 1)
(3, 3, 2)

所以用户 1 没有评价产品 3,用户 2 既没有评价 1 也没有评价 2,等等。我可以将这些数据直接传递给 ALS 吗? 或者,我是否必须扩展它对于所有 3*3 可能的组合,其中未评级产品的评级填充为零,即

(1, 1, 2)
(1, 2, 1)
(1, 3, 0)
(2, 1, 0)
(2, 2, 3)
(2, 3, 0)
(3, 1, 1)
(3, 2, 0)
(3, 3, 2)

【问题讨论】:

    标签: apache-spark pyspark recommendation-engine


    【解决方案1】:

    这可能不被视为答案。

    当然,无论是隐式还是显式,您都不需要传递缺失的评级。

    Spark 的优势之一是使用稀疏矩阵表示来计算您的预测矩阵。

    如果您想进一步了解稀疏矩阵,可以查看以下链接:

    What are sparse matrices used for ? What is its application in machine learning ?

    免责声明:我是该链接中答案的作者。

    【讨论】: