7

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

我在小型测试中发现的最高值是 7.4。显然,我要么误解了代码的用途,要么出现了问题。我研究了 Latent Factor Recommender Systems,并认为 Spark Mlib ALS 实现是基于这个

为什么它会返回比可能更高的评级?这没有道理。

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

4

1 回答 1

9

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

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

于 2015-03-14T22:04:07.790 回答