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

时间:2018-03-26 11:55:14

标签: apache-spark pyspark recommendation-engine

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)

1 个答案:

答案 0 :(得分:1)

这可能不被视为答案。

当然,无论是隐含的还是明确的,您都不需要传递缺失的评分。

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

如果您想了解更多关于稀疏矩阵的信息,可以查看以下链接:

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

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