背景
当前主流的推荐系统主要包括召回(recall,也称match)、排序(ranking)、重排(rerank)等三大模块。召回负责从海量候选集中根据user和item特征筛选出用户感兴趣的item。 当前召回现状如下:
- 由于①用户兴趣多元化,用户对热门、个人偏好等均有需求,②图文视频等内容多元化等原因,召回大多为多路的形式。因此各路召回之间有交叉、互补等情况。
- 召回的内容为排序和重排的输入,因此召回结果的好坏决定着最终推荐结果的天花板。
- 召回位置靠前,最终效果与排序关系甚密。当前的召回大多通过hr等指标来评估,却很难实现线下线上测评数据一致,甚至出现线下测评优秀的召回,上线之后却收益甚微甚至为负的情况。
由于以上原因,召回的评估系统较难建立。为了有助于召回算法的优化,识别模型的偏差方差,发现热门推荐和尾部个性化推荐,对齐召回和排序目标,此文总结当前常用的算法评估方式,供召回调参使用。
概述
召回指标主要分为2部分:
-
单路召回效果。
-
单路召回对剩余整体的影响。
正文
1.1 Recall、Precision、F1 @N
召回最简单的3路指标,分别为Recall(用户全部点击中有多少item被召回了),Precision(召回的item中有多少被用户点击了),由于两项与N有极大关系,因此有一个调和指标F1。R(u)为给用户u的推荐列表,T(u)为用户在测试集中点击列表,#hits为用户点击的item总数。 @N表示该项指标与召回个数相关,如Recall随着N的增大而增大,极端情况下N=item全集数量,此时Recall=1最大为1。而Precision随着N增大而减小,极端情况下当用户只有1个感兴趣,且该路召回第一个就是该item,Precision=1/N,那么再增大N,该值会越来越小。通常N取10,50。在实际推荐系统中可能取到100,200,多个召回队列N如何配比属于超参,且是一个巨大的搜索空间,暂没有好办法调试。
1.2 NS-Recall、NS-Precision @N
NS-Recall和NS-Precision为负采样的召回和准确率,主要针对TOP-N这类召回设计,参考论文[1]。 NS-Recall和NS-precision都需要对测试集负采样。主要用于衡量相对于随机,该算发能否发现用户兴趣。 具体方式如下:
|T|为测试集item总个数。 这里与普通Recall,Precision有什么相似和不同之处呢?召回的计算相同之处为分子都是,分母都是|T|,不同之处为普通Recall的R=|user| * N,即为每个用户在全部集合里匹配出N条item,但用户习惯不同,点击个数成幂律分布,大部分用户点击很少,但却对每个用户都推出了N条,此处相当于多引入了一个变量(用户的点击分布),使得不同时期的recall不可比较。NS-Recall的R=|T| * N,即为每个用户点过的项匹配出N个item,该值对每一个算法在不同时期都是稳定的。 Precision与NS-Precision的差异比较大。二者分子含义同上文Recall。分母也不同。Precision分母是召回个数即|user| * N,计算结果表示召回的item中有多少是用户感兴趣的。NS-Precision分母是整个点击+负采样集合,计算结果表示在整个候选集中,召回item中有多少是用户感兴趣的。同样避免了引入更多的变量,即用户点击的个数。
1.3 HR, ARHR @N
HR(Hit Rate)和ARHR(Average Reciprocal Hit-Rank 和位置信息相关)参考论文[2]。 #hits为测试集点击item数量,#user为用户数量,为在推荐列表经排序后的位置。ARHR度量了一个item被推荐的强烈程度,可以衡量ranking对该算法是否友好。
1.4 MAP @K
1.5 ECS
ECS参考论文[3]。ECS(effective catalog size)的计算需要将所有item按照曝光或点击频率降序排列,i为排序后的位置,为出现的概率(即#/#),且满足。ECS度量了item的曝光次数期望,取值在[1, N], N=内容数, 值越大,推荐越偏向长尾,值越小,推荐越偏热门。当最流行的只有一个vid时,, ECS=1;当所有vid曝光数一样时, ECS=N。
1.6 熵
为类别i在召回集中出现的概率,熵衡量了该召回的类别多样性,值越大,推荐item的列表类别越“混乱”。该值可以检验该召回是否集中在几个热门类别。
1.7 KL散度
与上类似,为类别i在召回集中出现的概率。为类别i在另一集中出现的概率,KL散度可以衡量算法召回的结果与该集合类别分布是否一致。 当的集合为训练集时,可以衡量预测集是否和训练集类目分布一致。 当的集合为测试集时,可以衡量预测集是否和测试集类目分布一致。 在实际应用中,经常发现某些模型类算法推荐过于泛华,热门推荐突出。KL散度可以说明某个召回算法是否集中在某几个热门类。
1.8 长尾判断
推荐系统中,长尾效应十分明显,上述指标易受到头部数据的干扰, 且大部分召回对尾部的学习不如头部数据好,因此可以增加单独的长尾指标,参考论文[2]。 如图(图来自论文[2]),1%的item占据了20%的流量,可以去掉这1%,仅保留剩下的99%,用Recall,Precision等评估。
可直接判断尾部80%的视频的推荐情况。
引用:
[1]Performance of Recommender Algorithms on Top-N Recommendation Tasks
[2]Sparse Linear Methods for Top-N Recommender Systems
[3]The Netflix Recommender System- Algorithms, Business Value, and Innovation