【问题标题】:How can I evaluate the implicit feedback ALS algorithm for recommendations in Apache Spark?如何评估 Apache Spark 中推荐的隐式反馈 ALS 算法?
【发布时间】:2018-03-09 19:16:45
【问题描述】:

您如何评估 Apache Spark 的隐式反馈协同过滤算法,因为 隐式“评级” 可以从零变化到任何值,因此简单的 MSE 或RMSE没有多大意义?

【问题讨论】:

    标签: apache-spark apache-spark-mllib


    【解决方案1】:

    要回答这个问题,您需要回到 Yifan Hu、Yehuda Koren 和 Chris Volinsky 定义什么是隐式反馈和 ALS 算法 Collaborative Filtering for Implicit Feedback Datasets 的原始论文。

    什么是隐式反馈?

    在没有明确评分的情况下,推荐系统可以从更丰富的隐式反馈中推断出用户偏好,通过观察用户行为间接反映意见。

    隐式反馈可以包括购买历史、浏览历史、搜索模式,甚至鼠标移动。

    此处是否适用相同的评估技术?如RMSE、MSE。

    重要的是要意识到我们没有关于哪些项目不喜欢的可靠反馈。没有点击或购买可能与多种原因有关。我们也无法跟踪用户对我们的建议的反应。

    因此,基于精度的指标(例如 RMSE 和 MSE)不是很合适,因为它们需要知道用户不喜欢哪些项目才有意义。 p>

    但是,购买或点击某件商品表明对它感兴趣。我不会说喜欢,因为点击或购买可能具有不同的含义,具体取决于推荐者的上下文。

    所以在这种情况下制定适用于召回的措施。所以在这种情况下,引入了几个指标,最重要的是平均百分比排名(MPR),也称为百分比排名。

    MPR 值越低越好。随机预测的 MPR 的期望值为 50%,因此 MPR > 50% 表示算法并不比随机更好。

    当然,这不是评估具有隐式评分的推荐系统的唯一方法,但它是实践中最常用的方法。

    有关此指标的更多信息,我建议您阅读上述论文。

    好的,现在我们知道要使用什么了,但是 Apache Spark 呢?

    Apache Spark 仍然没有为此指标提供开箱即用的实现,但希望不会持续太久。有一个 PR 等待验证 https://github.com/apache/spark/pull/16618 涉及为 spark-ml 添加 RankingEvaluator

    不过,实现并不复杂。有兴趣早点获取的可以参考代码here

    我希望这能回答你的问题。

    【讨论】:

    • mllib 据我所知已经有一些排名指标,对吧?您链接的 PR 已过时关闭。
    • 确实如此。但它不包括 MPR 和 MRR。而且由于 mllib 处于维护模式。关于添加它们的 PR 被拒绝了。
    • 我不确定我是否理解你的问题@Aldysyahdeini
    • 嗨 eliasah,如果 >50% 的值定义算法并不比随机更好,我们如何安全地假设。如果我错了,请纠正我,但这真的取决于我的推荐列表的分布类型,对吗?我知道这是一个预期值,但我仍然不确定
    • 一方面,@Aldysyahdeini 考虑到正态分布,是的,适用的规则。对于其他类型的分发,应审查此限制。另一方面,当人们通常创建随机预测时,该过程遵循高斯过程。您是否出于某种原因对偏斜的随机预测感兴趣?否则,我希望我为您清除了这一点。
    【解决方案2】:

    评估它的一种方法是将数据拆分为训练集和测试集,并有时间限制。这样,您可以使用训练集训练模型,然后运行预测并对照测试集检查预测。

    现在,您可以使用 Precision、Recall、F1... 指标进行评估。

    【讨论】:

    • 这是一种非常通用的方法,实际上并不能解决隐式评分的问题。
    • @eliasah 与您的答案没有太大不同,您只是详细说明了它。
    • 我的回答背后的主要思想是基于精度的指标不适用。然而,您建议的第一个评估指标是精度。我不想听起来很粗鲁,但那有什么不同呢? :-)
    • 我说的是Precision/Recall,不是Precision MSE,RMSE,所以完全有效。
    猜你喜欢
    • 2017-07-09
    • 1970-01-01
    • 2015-05-21
    • 2016-03-31
    • 2019-12-24
    • 2014-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多