[英]Spark MLlib - How to validate implicit feedback collaborative filter
我用Scala编程,但这里的语言并不重要。
在这种情况下,隐式反馈协同过滤器(ALS.trainImplicit)的输入是产品的视图:
但输出(MatrixFactorizationModel.recommendProductsForUsers)如下:
输出中的值0.78和0.64看起来像是在0和1之间标准化的值,但输入中的值是21,4,7等。
我不认为在这种情况下计算输入和输出之间的MSE(均方误差)是有意义的,因为我们在使用具有显式反馈的协同过滤器时可以这样做。
那么,问题是,如何在使用隐式反馈时验证协同过滤器?
隐式反馈验证的重要KPI是例如准确性,覆盖率和许多其他。 这取决于用例(您想展示多少产品?您提供多少产品?)以及您想要实现的目标。
当我构建隐式反馈ALS模型时,我总是计算这个2 KPI。 具有非常好的准确性的模型倾向于覆盖少量可用的产品。 Alsways计算覆盖范围并从那里决定。
仔细看看这篇文章: 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.