gpt4 book ai didi

scala - Spark MLlib - 如何验证隐式反馈协作过滤器

转载 作者:行者123 更新时间:2023-12-02 03:03:25 25 4
gpt4 key购买 nike

我正在使用 Scala 对其进行编程,但语言在这里并不重要。

在这种情况下,隐式反馈协作过滤器 (ALS.trainImplicit) 的输入是产品的 View :

  • Rating("user1", "product1", 21.0)//表示user1浏览过产品详情1 21次
  • 评分("user2", "product1", 4.0)
  • 评分("user3", "product2", 7.0)

但输出 (MatrixFactorizationModel.recommendProductsForUsers) 是这样的:

  • 评分("user1", "product1", 0.78)
  • 评分("user2", "product1", 0.63)

输出中的值 0.78 和 0.64 看起来像是在 0 和 1 之间归一化的值,但输入中的值是 21、4、7 等。

我认为在这种情况下,计算输入和输出之间的 MSE(均方误差)没有任何意义,因为我们在使用具有显式反馈的协作过滤器时可以这样做。

那么,问题是,如何在使用隐式反馈时验证协作过滤器?

最佳答案

隐式反馈验证的重要 KPI 例如准确度、覆盖范围等等。这实际上取决于用例(您想展示多少产品?您要提供多少产品?)和您想要实现的目标。

当我构建隐式反馈 ALS 模型时,我总是计算这 2 个 KPI。具有非常高准确度的模型往往涵盖较少数量的可用产品。始终计算覆盖率并据此做出决定。

仔细看看这篇文章: https://stats.stackexchange.com/questions/226825/what-metric-should-i-use-for-assessing-implicit-matrix-factorization-recommender

和这个 Spark 库: https://github.com/jongwook/spark-ranking-metrics

关于scala - Spark MLlib - 如何验证隐式反馈协作过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44421931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com