简易说人工智能(三) 细数《美团机器学习实战》里的错误 2:解释NDCG

一、书中第10页的错误1
在这里插入图片描述
二、什么是NDCG

美团的小伙伴应该有是金融领域背景,词典翻译出来的四个词两个用了经济学相关的词。如果作者对这个算法的真正本意有了解,恐怕也不会这么翻译。

首先,读者要知道NDCG是用来评估一个推荐算法的推荐结果的优劣的。就像《美团机器学习实战》第一章的内容,评估指标。用这个指标来计算你的算法的到底有多好。如果这个算法的用处和目的不明确,请先回去读上篇文章中提到的日本人的那本书。

三、先弄明白CG(cumulative gain)

对一个名词,例如篮球进行搜索之后,我们得到一个结果列表:A、B、C、D。

这四个词都与“篮球”相关,那么如何评估整个搜索结果的质量呢?

后台一定用很多词计算了与“篮球”的相关度,之后得到了相关度最好的四个词,由低到高排序得到的。

这里先用一个最简单的方法,将相关度最好的四个词的相关度叠加,就是整个搜索算法的相关度结果。也就是CG算法,翻译可叫"积累增益"。有些晦涩,其实的确有些词还是意会下最好。

公式:
在这里插入图片描述
其中:
p代表推荐得到的结果中共p个元素;
rel其实就是relation,相关性的缩写;i表示p中的第i个元素;

大家到这里能理解吧?

四、CG的问题与DCG

直接用CG算法对这样的推荐结果做评估其实有点问题,例如:如果令一个算法的推荐结果是:A、C、D、B。那么这两个算法的CG评估结果是不是一样的?

但是A、B、C、D四个词本身与“篮球”的相关度应该是又大小之分的。因此就有了一个改进措施。给排列顺序增加权重,让排名越靠前的结果越能影响最后的结果。增加的方法只要能体现出排在前面的权重更大即可,只是这个公式选择了酱紫做:

第i个位置权重是 1/log2(i+1),那么第i个结果产生的效益就是 reli * 1/log2(i+1),所以:
在这里插入图片描述
注意不要被推导吓到,其实自己最讨厌这样的变形,不就是把第一个元素计算值拿出来了,让人还以为做了很大的简化一样。

但是有人会说美团原书的公式是:
在这里插入图片描述
我的解释是,DCG的重点目的在于造一个能体现排在前面的元素的有一个更大权重的结果,所以用哪个公式都行(这是记忆公式的一种简单方法,具体选择该参数更深的妙处,可以查询相关的资料)。

学习人工智能的公式一定要记住一点,公式只是设计出来嫩满足某种计算要求的算法,你完全可以用1/n来表示权重,只是他们选的公式在计算边界值时比你的1/n更合理而已

所以我们现在有了公式DCG(Discounted Cumulative Gain),进行了折减(Discounted )的CG算法。解决了最初的问题。

五、DCG仍需要优化

先看NDCG,Normalized Discounted cumulative gain。Normalized,正常化,数学领域叫归一化的DCG。

1、为何要对数据进行归一化?

我们上面不同算法计算的结果,可能有不同数目与“篮球”类似的返回值。那么不同算法的DCG结果相差会很大。具有多个返回结果的算法当然比只有一个犯规结果的算法占优势。

所以需要把这种由于算法数目导致的差异消除,就是对DCG进行归一化。

2、归一化方法

归一化一般都是用数据除以自身所在的最大数值范围,例如:将一个取值在[0,100]的数组归一化,方法便是将该数组所有元素都除以100。归一化到[0,1]区间。那么取值在[0,500]的数组归一化便是除以500。

这样变化后,两组数据处于同一量纲,就可以做对比了。

那DCG算法的最大取值该是多少呢?

答案是:idealization DCG,理想化DCG,其实理想的就是最大的。
在这里插入图片描述
该公式与DCG形式完全一样,只是relk的取值略有差别。

|REL| 表示,将结果按照相关性从大到小的顺序排序,也就是按照最优的方式对结果进行排序。

看例子:假设一个算法最终得到5个搜索结果,其相关性分数分别是 3、2、3、0、1、2。结果进行排序后应该为3、3、2、2、1、0。

即排序前:rel序列为3、2、3、0、1、2;
排序后rel序列为3、3、2、2、1、0。

3、分别计算DCG与IDCG

DCG计算:
搜索结果
DCG=(2**3-1)
DCG = 3+1.26+1.5+0+0.38+0.71 = 6.86

安装reli对搜索结果进行排序
IDCG计算:
在这里插入图片描述
IDCG = 3+1.89+1.5+0.86+0.77+0.35 = 8.37

六、求解NDCG

这里只写一句话:
NDCG = DCG/IDCG
NDCG@6 = 6.86/8.37 = 81.96%
之后不同的搜索结果就可以采用自己的NDCG进行对比了。

写到这里,可以去看美团原书中的计算错误了,请读者自己先去查看,下篇博文看答案!

七、结束语

麻烦转告美团的该书第十页作者,NDCG如果非要用中文说,或许可以叫“归一化折损累计增益”,你的翻译真的拉低了作品的水平。

参考:
搜索评价指标——NDCG
理解NDCG

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值