DCG的简单介绍

DCG,即衡量搜索引擎质量指标(Discounted Cumulative Gain),它是一个衡量搜索引擎算法的指标。
搜素引擎一般采用PI(per item)的方式进行评测,简单地说就是逐条对搜索结果进行分等级的打分。假设我们现在在Google上搜索一个词,然后得到5个结果。我们对这些结果进行3个等级的区分:Good(好)、Fair(一般)、Bad(差),然后赋予他们分值分别为3、2、1,假定通过逐条打分后,得到这5个结果的分值分别为3、2 、1 、3、 2。

CG

首先,DCG算法是从CG(Cumulative Gain)这个概念发展出来的。
CG算法不考虑在搜素结果页面的位置,它只是简单的将搜索结果的等级对应的分数加起来。
CG数学公式:

在这里插入图片描述

其中p代表搜索结果list中一共有p个结果。
代上上文的例子就是:
CGp= 3+2+1+3+2=11.

DCG

DCG与CG相比考虑了搜索结果位置对搜索引擎评分的影响。比如说在搜索结果里面,第一个和最后一个结果的评分都是GOOD,但是最后一个结果被看到的可能性就非常小。所以,他对整个搜索引擎的贡献也是不一样的。
DCG统计方法的基础:
1.在搜索结果页面,越相关的结果排在越前面越好
2.在PI标注时,等级高的结果比等级低的结果好。
DCG的数学公式:

在这里插入图片描述

可以看到,从第二个开始,搜索结果对于整个页面的贡献等于原本评分除以log2i,其中i表示该结果的位置。为什么要用以2为底的对数函数?这个并没有明确的科学依据,大概是根据大量的用户点击与其所点宝贝的位置信息,模拟出一条衰减的曲线。
带上上文的例子:
DCG=DCG=3+(1+1.26+1.5+0.86)=7.62
DCG的公式另外一种表达式是:

在这里插入图片描述

NDCG

因为不同搜索模型给出的结果有多有少,所以DCG值就没有办法来做对比。于是引申出来NDCG的概念。
数学公式:

在这里插入图片描述

其中IDCG(ideal DCG),就是理想的DCG。DCG如何计算?首先要拿到搜索的结果,人工对这些结果进行排序,排到最好的状态后,算出这个排列下的DCG,就是IDCG。
以上文例子,理想的排序应该是3 、3 、2 、2 、1,那么IDCG=3+3+1.26+1+0.43=8.69
、2 、2 、1,那么IDCG=3+3+1.26+1+0.43=8.69
nDCG=DCG/IDCG=7.62/8.69=0.88,从nDCG这个值可以看出目前算法存在的优化空间。

本文参考百度百科。
文档

你可能感兴趣的:(推荐算法,DCG)