如何评估 Apache Spark 中推荐的隐式反馈 ALS 算法?
How can I evaluate the implicit feedback ALS algorithm for recommendations in Apache Spark?
鉴于 隐式 "ratings" 可以变化,您如何评估 Apache Spark 的 隐式 反馈协同过滤算法从零到任何东西,所以简单的 MSE 或 RMSE 没有太大意义?
评估它的一种方法是将数据分成训练集和测试集,并进行时间切割。通过这种方式,您可以使用训练集训练模型,然后 运行 预测并根据测试集检查预测。
现在您可以使用 Precision、Recall、F1... 指标进行评估。
要回答这个问题,您需要返回定义什么是隐式反馈和 ALS 算法的原始论文 隐式反馈数据集的协同过滤
作者:Yifan Hu、Yehuda Koren 和 Chris Volinsky。
什么是隐式反馈?
在没有明确评分的情况下,推荐系统可以从更丰富的隐式反馈中推断用户偏好,通过观察用户行为间接反映意见。
隐式反馈可以包括购买历史、浏览历史、搜索模式,甚至鼠标移动。
相同的评估技术是否适用于此?比如RMSE,MSE。
重要的是要认识到我们没有关于哪些项目不受欢迎的可靠反馈。没有点击或购买可能与多种原因有关。我们也无法跟踪用户对我们的建议的反应。
因此,基于精度的指标,例如 RMSE 和 MSE,不是很合适,因为它们需要知道用户不喜欢哪些项目让它有意义。
但是,购买或点击某件商品表示对其感兴趣。我不会说喜欢,因为根据推荐者的上下文,点击或购买可能具有不同的含义。
因此在这种情况下适用以召回为导向的措施。所以在这种情况下,引入了几个指标,最重要的是平均百分比排名(MPR),也称为百分比排名。
MPR 值越低越好。随机预测的 MPR 期望值为 50%,因此 MPR > 50% 表示算法并不比随机更好。
当然,这不是评估具有隐式评级的推荐系统的唯一方法,但它是实践中最常用的方法。
有关此指标的更多信息,我建议您阅读上述论文。
好的,现在我们知道要使用什么了,但是 Apache Spark 呢?
Apache Spark 仍然没有为此指标提供开箱即用的实现,但希望不会持续很长时间。有一个 PR 等待验证 https://github.com/apache/spark/pull/16618 关于为 spark-ml
添加 RankingEvaluator
。
实现起来并不复杂。有兴趣的可以参考代码here早日拿到
我希望这能回答你的问题。
鉴于 隐式 "ratings" 可以变化,您如何评估 Apache Spark 的 隐式 反馈协同过滤算法从零到任何东西,所以简单的 MSE 或 RMSE 没有太大意义?
评估它的一种方法是将数据分成训练集和测试集,并进行时间切割。通过这种方式,您可以使用训练集训练模型,然后 运行 预测并根据测试集检查预测。
现在您可以使用 Precision、Recall、F1... 指标进行评估。
要回答这个问题,您需要返回定义什么是隐式反馈和 ALS 算法的原始论文 隐式反馈数据集的协同过滤 作者:Yifan Hu、Yehuda Koren 和 Chris Volinsky。
什么是隐式反馈?
在没有明确评分的情况下,推荐系统可以从更丰富的隐式反馈中推断用户偏好,通过观察用户行为间接反映意见。
隐式反馈可以包括购买历史、浏览历史、搜索模式,甚至鼠标移动。
相同的评估技术是否适用于此?比如RMSE,MSE。
重要的是要认识到我们没有关于哪些项目不受欢迎的可靠反馈。没有点击或购买可能与多种原因有关。我们也无法跟踪用户对我们的建议的反应。
因此,基于精度的指标,例如 RMSE 和 MSE,不是很合适,因为它们需要知道用户不喜欢哪些项目让它有意义。
但是,购买或点击某件商品表示对其感兴趣。我不会说喜欢,因为根据推荐者的上下文,点击或购买可能具有不同的含义。
因此在这种情况下适用以召回为导向的措施。所以在这种情况下,引入了几个指标,最重要的是平均百分比排名(MPR),也称为百分比排名。
MPR 值越低越好。随机预测的 MPR 期望值为 50%,因此 MPR > 50% 表示算法并不比随机更好。
当然,这不是评估具有隐式评级的推荐系统的唯一方法,但它是实践中最常用的方法。
有关此指标的更多信息,我建议您阅读上述论文。
好的,现在我们知道要使用什么了,但是 Apache Spark 呢?
Apache Spark 仍然没有为此指标提供开箱即用的实现,但希望不会持续很长时间。有一个 PR 等待验证 https://github.com/apache/spark/pull/16618 关于为 spark-ml
添加 RankingEvaluator
。
实现起来并不复杂。有兴趣的可以参考代码here早日拿到
我希望这能回答你的问题。