涉县住房和城乡规划建设局网站,网页网站怎么做,网页制作培训上海,域名注册商哪个好在搜索和推荐任务中#xff0c;系统常返回一个item列表。如何衡量这个返回的列表是否优秀呢#xff1f; 例如#xff0c;当我们检索【推荐排序】#xff0c;网页返回了与推荐排序相关的链接列表。列表可能会是[A,B,C,G,D,E,F],也可能是[C,F,A,E,D]#xff0c;现在问题来了…在搜索和推荐任务中系统常返回一个item列表。如何衡量这个返回的列表是否优秀呢 例如当我们检索【推荐排序】网页返回了与推荐排序相关的链接列表。列表可能会是[A,B,C,G,D,E,F],也可能是[C,F,A,E,D]现在问题来了当系统返回这些列表时怎么评价哪个列表更好 这就引出了这篇文章要介绍的两个评价指标——NDCG和MAP这两个指标都是用来评估排序结果的。
1. NDCG
NDCG的全称是Normalized Discounted Cumulative Gain(归一化折损累计增益学习NDCG最好按照G-CG-DCG-NDCG这个顺序来学习。 Gain表示一个列表中所有item的相关性分数。rel(i)表示item(i)相关性得分。 Gainrel(i)Gain rel(i)Gainrel(i) Cumulative Gain表示对K个item的Gain进行累加。 CGk∑i1krel(i)CG_k \sum_{i1}^krel(i)CGk∑i1krel(i) CG只是单纯累加相关性不考虑位置信息。 如果返回一个list_1 [A,B,C,D,E]那list_1的CG为0.50.90.30.60.12.4 如果返回一个list_2[D,A,E,C,B]那list_2的CG为0.60.50.10.30.92.4 所以顺序不影响CG得分。如果我们想评估不同顺序的影响就需要使用另一个指标DCG来评估。 Discounted Cumulative Gain: 考虑排序顺序的因素使得排名靠前的item增益更高对排名靠后的item进行折损。 CG与顺序无关而DCG评估了顺序的影响。DCG的思想是list中item的顺序很重要不同位置的贡献不同一般来说排在前面的item影响更大排在后面的item影响较小。例如一个返回的网页肯定是排在前面的item会有更多人点击。所以相对CG来说DCG使排在前面的item增加其影响排在后面的item减弱其影响。 DCGk∑i1krel(i)log2(i1)DCG_k \sum_{i 1}^k\frac{rel(i)}{log_2(i1)}DCGk∑i1klog2(i1)rel(i) 怎么实现这个思想呢DCG在CG的基础上给每个item的相关性比上log2(i1)i越大log2(i1)的值越大相当于给每个item的相关性打个折扣item越靠后折扣越大。 还是上面那个例子 list_1[A,B,C,D,E], 其对应计算如下 irel(i)log(i1)rel(i)/log(i1)1A0.510.52B0.91.590.573C0.320.154D0.62.320.265E0.12.590.04list_1的 DCG_1 0.50.570.150.260.041.52 list_2[D,A,E,C,B]其对应计算如下 irel(i)log(i1)rel(i)/log(i1)1D0.610.62A0.51.590.313E0.120.054C0.32.320.135B0.92.590.35list_2的 DCG_2 0.60.310.050.130.351.44 DCG_1 DCG_2, 所以在这个例子里list_1优于list_2。 到这里我们可以知道使用DCG方法就可以对不同的list进行评估那为什么后面还有一个NDCG呢 NDCG(Normalized DCG): 归一化折损累计增益 在NDCG之前先了解一些IDGC(ideal DCG)–理想的DCGIDCG的依据是是根据rel(i)降序排列即排列到最好状态。算出最好排列的DCG就是IDCG。 IDCG最好排列的DCG 对于上述的例子按照rel(i)进行降序排列的最好状态为list_best[B,D,A,C,E] irel(i)log(i1)rel(i)/log(i1)1B0.910.92D0.61.590.383A0.520.254C0.32.320.135E0.12.590.04IDCG list_best的DCG_best 0.90.380.250.130.041.7 (理所当然IDCGDCG_1和DCG_2) 因为不同query的搜索结果有多有少所以不同query的DCG值就没有办法来做对比。所以提出NDCG。 NDCGDCGIDCGNDCG \frac{DCG}{IDCG}NDCGIDCGDCG 所以NDGC使用DCG/IDCG来表示这样的话NDCG就是一个相对值那么不同query之间就可以通过NDCG值进行比较评估。
2. MAP
要学习MAP指标首先要了解Precision这个指标即精确度。在推荐系统场景下我们可以定义正样本为相关的商品因此Precision就代表了推荐的 n 个商品中有多少个商品是相关的。而Recall就代表了数据库中一共有 m个相关商品推荐系统选出了多少个相关商品。
例如下面的理财产品推荐场景用户在未来购买了四款产品而一个推荐系统在当前推荐了三款产品用户只购买了一款产品。那么此时推荐系统的Recall为 1/4 Precision为 1/3。 值得注意的是由于屏幕大小限制推荐系统只能展示前 N 个商品因此一般推荐系统中的Precision计算会采用Cutoff形式进行计算。如下图所示尽管我们的推荐系统可以推荐 m个商品但是在Cutoff-Precision的计算过程中只会考虑前 k 个商品的Precision。 根据上面的概念我们就可以定义Average Precision。从公式中可以看出APN可以直观理解为枚举Precisionk之后取平均值。
第k个item的precision是指前k个推荐的item里被用户pick的item有几个
在推荐系统场景下使用AP最大的好处在于AP不仅仅考虑了商品推荐的准确率还考虑了推荐顺序上的差异。考虑下面这样一个表格从整体来考虑的话三种推荐方案都只推荐了一个相关商品但是第一种推荐方案明显是更好的而AP指标可以体现这种差异。 介绍了APN指标我们就可以定义MAPN指标了。其实MAPN指标就是将所有用户 UUU 的APN指标进行平均。 总的来说MAP指标同时考虑了预测精准度和相对顺序从而避免了传统Precision指标无法刻画推荐商品相对位置差异的弊端。因此。在很多推荐系统场景下MAP指标是一个非常值得尝试的推荐系统评估指标。
参考1知乎Satellite 参考2知乎震灵