NDCG(归一化折损累计增益)

乍一看这个名字有点唬人,其实就是只纸老虎,看完本文肯定有所收获。

NDCG可作为推荐系统中top-k推荐的评测指标,顾名思义top-k推荐就是一次给用户推荐k个物品(长度为k的列表[1,2,3, ……,k]),那怎么去评价这个推荐列表的好坏呢?让我们按G-CG-DCG-IDCG-NDCG的顺序一步一步来看。

1. Gain:表示物品的相关性分数,符号为rel_{i},推荐系统中表示推荐给用户的列表中的第i个物品,用户是否喜欢(喜欢为1,不喜欢为0)。

2. Cumulative Gain(CG):对列表中的所有物品i的收益进行累加,符号表示为CG = \sum_{i=1}^{k}rel_{i}。这个很好理解,就是推荐给用户的列表中用户喜欢的物品的总数量,这只有数量上的意义,但其实序列中各物品排列的顺序顺序的不同,对用户的偏好也是存在影响的,所以就有了接下来的指标。

3.Discounted  Cumulative Gain(DCG):DCG考虑了位置因素,为每一个rel_{i}都添加了一个折损值,公式如下所示。注意DCG只是简单的累加,只能用于同等长度的序列之间的比较,毕竟列表越长不一定越好是不是。

        DCG = \sum_{i=1}^{k}\frac{rel_{i}}{log_{2}(i+1))}

可见物品在列表中位置越靠前,折损值越小;越靠后,折损值越大。

4. IDCG:DCG的一种特例,物品i在列表中按rel_{i}从大到小排列即DCG最大的情况。

5. NDCG(归一化折损累计增益):用IDCG对DCG做归一化,可用于不同长度序列之间的比较。同等长度序列之间比较,也可以实现去量纲。

       NDCG = \frac{DCG}{IDCG}

猜你喜欢

转载自blog.csdn.net/qq_42018521/article/details/129467973