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



Spark中的ALS模块以(user, product, rating)元组的形式假定数据。当使用implicitPrefs=True时,额定值被认为是隐式等级,因此等于0的评分具有特殊的含义,并且不被视为未知。如Hu等人(2008年(所述,隐式等级被ALS用作权重。使用隐式评级时,"缺少"评级需要直接传递到算法为零。

我的问题是: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)

这可能不被视为答案。

当然,无论是隐式还是显式。

火花的强度之一是使用稀疏矩阵表示计算您的预测矩阵。

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

使用什么稀疏矩阵?它在机器学习中的应用是什么?

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