Apache Spark ALS 推荐评级值高于范围

Apache Spark ALS Recommendation Rating values higher than range

我 运行 找到了一个 ALS 推荐系统小程序 在使用 MLlib 的 Apache Spark website 上。当使用评分为 1-5 的数据集时(我使用了 MovieLens 数据集),它会给出预测评分超过 5 的推荐!

我在小测试中发现的最高值是 7.4。显然,我要么误解了代码的用途,要么出了什么问题。我研究了潜在因子推荐系统,印象中 Spark Mlib ALS 实现是基于 this one.

为什么 return 评分会高于可能的评分?没有意义。

是我误解了算法还是程序有缺陷?

您正在看正确的论文,但是,我认为您期望算法做一些它不打算做的事情。它正在为您的输入生成一个低阶近似值作为两个矩阵的乘积,但是矩阵相乘不会限制输出值。

您可以限制或舍入值。您可能不希望它这样做,因为您将获得有关预测评级比 5 强多少的额外信息。我想算法在技术上也不可能假设最大可能值是输入中的最大观察值。