参考https://en.wikipedia.org/wiki/Discounted_cumulative_gain
ndcg是评价排序质量的一种指标。公式描述如下。理解ndcg最好先从cg和dcg出发。
cg描述的是累计收益,比如6个排序后的文档D1,D2,D3,D4,D5,D6. 他们的相关性打分分别是3,2,3,0,1,2。因此他们的cg是3+2+3+0+1+2=11.cg和排序的顺序无关。
但是dcg考虑越相关的结果排序越靠前,因此引入log。
最终计算理想情况下最大dcg,即可得到ndcg。
理想的排序顺序是3,3,2,2,1,0。因此IDCG=7.141
理解ndcg:
用户搜索一个query,得到一个结果列表。为了评价这个列表的好坏。我们希望
1.越好的搜索结果排名越靠前
2.搜索结果和query相关
通过cg是每条结果质量的指标,越相关的结果cg越大。通过dcg使排名靠前的结果权重变大。因此以ndcg为优化目标,保证搜索质量。