[Metric] [mAP@K] 推荐系统offline evaluation

想咨询一下关于mAP@k这个offline推荐系统metric的一些细节。

如果我们设计一个Netflix推荐系统,我所想到的online metric是用户在每个recommendation的session里所观看的时长。时长越长,那么证明我们的推荐系统越有效。除此之外,我们还可以记录用户在推荐列表里的点击数和观看的视频数。

在offline metric,因为这是一个要么看要么不看的场景,不同于网页搜索排序,我想到的metric是mAP@K 和mAR@K (mean average Precison/Recall)。但是我对于具体的计算公式有一点疑问。

在以下这篇blog里,当我们相加了在每个position的precision乘以relevance这个boolean之后,AP的值是要除以the number of all positive ground truth。这个postive ground truth我们应该怎么获得呢?在另外一些博文里我发现不是除以the number of all positive ground truth, 而是推荐list里postive的值。

举个例子,我么给用户A推送了5个电影,第一个电影用户点击了,第二个没有,第三个点击了,第四个没有,第五个点击了。那么precision(1)= 1/1, precision(2) = 1/2, precision(3) = 2/3, precision(4) = 2/4, precision(5) = 3/5。那么乘以相应的relevance boolean, 加起来就是 11 + 01/2 + 12/3 + 02/4 + 1*3/5。但是我们怎么知道the number of all positive ground truth呢?希望汪老师指教,谢谢。

https://towardsdatascience.com/breaking-down-mean-average-precision-map-ae462f623a52

我不了解mean average precision/recall的概念,我可以之后读一下这篇blog再和大家一起讨论。offline metric对online a/b testing metric的近似一直是工业界的一个热门问题,结合不同场景,有很多不同的尝试近似方法,课上讲的top K accuracy是最简单的一种metric,这些metric都是人为给出的定义,没有太多理论依据。