具有隐式反馈的 Spark ALS 推荐系统的数据格式

Data format for Spark ALS recommendation system with implicit feedback

ALS module in Spark assumes the data to be in form of (user, product, rating) tuples. When using implicitPrefs=True the ratings are assumed to be implicit ratings, so ratings equal to 0 have a special meaning and are not treated as unknown. As described by Hu et al (2008), the implicit ratings are used as weights by ALS. When using implicit ratings, the "missing" ratings need to be passed directly to the algorithms as zeros.

我的问题是:ALS 模块是否需要用户提供 "missing" 隐式评级作为零,或者它是否自动用零填充缺失的单元格?

举个例子,假设我有三个用户、三个产品及其评分(使用 (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)

这可能不会被视为答案。

当然,无论是隐式还是显式,您都不需要通过缺失的评分。

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

如果您想了解更多关于稀疏矩阵的知识,可以查看以下内容link:

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

免责声明:我是 link 中答案的作者。