1. 理解NDCG的核心价值
在推荐系统和搜索引擎的评估体系中,NDCG(Normalized Discounted Cumulative Gain)是一个绕不开的黄金指标。我第一次接触这个概念是在优化电商推荐列表时,当时团队发现点击率提升但实际成交反而下降,传统指标无法解释这个现象。直到引入NDCG,才真正捕捉到列表排序质量对用户决策的深层影响。
NDCG的精妙之处在于它同时考虑了三个关键维度:
- 相关性分级(Gain):不同于二元的点击/未点击,它允许我们定义多级相关性(如:购买=3分,加购=2分,点击=1分)
- 位置衰减(Discounted):用户注意力随列表位置下降而衰减,第5位的结果重要性可能只有第1位的1/log(5)
- 标准化(Normalized):通过与理想排序对比消除不同查询间的分数波动
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. NDCG的数学拆解与实例演算
2.1 基础概念分解
假设我们有个电影推荐场景,用户搜索"科幻电影",系统返回以下结果及实际用户反馈:
| 位置 | 电影标题 | 用户行为 | 人工标注相关性(0-3) |
|---|---|---|---|
| 1 | 星际穿越 | 购买蓝光 | 3 |
| 2 | 火星救援 | 观看完整 | 2 |
| 3 | 变形金刚5 | 跳过 | 0 |
| 4 | 地心引力 | 观看片段 | 1 |
| 5 | 星球大战外传 | 加入片单 | 2 |
计算步骤:
-
累计增益CG:
CG@3 = 3 + 2 + 0 = 5 -
折损累计增益DCG:
使用对数衰减因子:1/log2(i+1)
DCG@3 = 3/log2(2) + 2/log2(3) + 0/log2(4) ≈ 3 + 1.26 + 0 = 4.26 -
理想排序IDCG:
按相关性降序排列:[3,2,2,1,0]
IDCG@
