NDCG(归一化折损累积增益)是一种用于评估搜索引擎排名或推荐系统质量的指标,它通过衡量结果的顺序与其实际相关性是否匹配。 与简单的精确率或召回率等指标(将所有相关项目同等对待)不同,NDCG 同时考虑了项目的相关性和它们在排名列表中的位置。 这使得它特别适用于实际场景,在这些场景中,排名靠前的结果对用户满意度有更大的影响。 例如,一个将最相关的结果放在第一位的搜索引擎比一个将其埋在第二页的搜索引擎更有价值,即使两者总体上返回相同的一组相关项目。
要计算 NDCG,首先要计算 DCG(折损累积增益),它将结果的相关性分数相加,同时对较低的位置应用对数折扣。 这种折扣反映了用户不太可能注意到或点击列表中更靠下的项目的想法。 例如,如果搜索返回相关性分数为 [3, 2, 3, 0, 1](在 3 为高度相关的等级上)的结果,则 DCG 计算为 3 + (2 / log2(2)) + (3 / log2(3)) + … 。 然后通过除以理想 DCG (IDCG) 来对结果进行归一化,理想 DCG 是如果所有项目都按相关性完美排序的最大可能 DCG。 这种归一化将分数缩放到 0(最差)和 1(最佳)之间,从而可以跨不同的查询或数据集进行比较。 例如,如果先前分数的理想顺序是 [3, 3, 2, 1, 0],则 IDCG 将高于实际 DCG,并且该比率给出了 NDCG。
NDCG 被广泛使用,因为它与用户行为一致:人们期望最好的结果在前,并且顶部的单个高度相关的项目可能超过几个较低的中等相关的项目。 它也很灵活,支持分级相关性判断(例如,“高度相关”与“有点相关”),而不是将相关性视为二进制。 这对于产品搜索等细致的任务至关重要,在这些任务中,用户可能更喜欢完全匹配而不是部分正确的匹配。 虽然 NDCG 需要仔细的相关性标记,但其简单性和位置敏感性的平衡使其成为基准搜索算法、优化排名模型以及 A/B 测试生产系统改进的首选指标。