如何使用具有有限评级值的 Apache Spark ALS(交替最小二乘法)算法

How to use Apache Spark ALS (alternating-least-squares) algorithm with limited Rating values

我正在尝试使用 ALS,但目前我的数据仅限于有关用户购买内容的信息。因此,当用户 X 购买商品 Y(并且我只向该算法提供此类信息)时,我试图从 Apache Spark 中为 ALS 填充等于 1(一)的评分。

我试图学习它(将数据划分为 train/test/validation)或者只是尝试学习所有数据,但最后我得到的预测值对任何一对用户项目(值在逗号后的第 5 位或第 6 位进行区分,例如 0,86001 和 0,86002)。

我在考虑这个,也许是因为我只能提供等于 1 的评级,所以 ALS 不能在这种极端情况下使用吗?

评级有什么技巧可以用来解决这个问题吗(我只有关于购买的信息 - 稍后我将获得更多数据,但现在我必须使用某种协作过滤直到我将获取更多数据 - 换句话说,我需要在启动页面上向用户展示某种推荐我选择 ALS 作为启动页面,但也许我使用其他东西,究竟是什么)?

当然,我正在更改迭代、lambda、等级等参数。

在这种情况下,关键是你必须使用trainImplicit,它会忽略Rating的值。否则,您是在要求它预测每个人对所有事物的评分均为 1 的世界中的评分。正确答案始终为 1,因此您的所有答案都是相似的。