专栏首页小小挖掘机推荐系统遇上深度学习(十六)--详解推荐系统中的常用评测指标

推荐系统遇上深度学习(十六)--详解推荐系统中的常用评测指标

最近阅读论文的过程中,发现推荐系统中的评价指标真的是五花八门,今天我们就来系统的总结一下,这些指标有的适用于二分类问题,有的适用于对推荐列表topk的评价。

1、精确率、召回率、F1值

我们首先来看一下混淆矩阵,对于二分类问题,真实的样本标签有两类,我们学习器预测的类别有两类,那么根据二者的类别组合可以划分为四组,如下表所示:

上表即为混淆矩阵,其中,行表示预测的label值,列表示真实label值。TP,FP,FN,TN分别表示如下意思:

TP(true positive):表示样本的真实类别为正,最后预测得到的结果也为正; FP(false positive):表示样本的真实类别为负,最后预测得到的结果却为正; FN(false negative):表示样本的真实类别为正,最后预测得到的结果却为负; TN(true negative):表示样本的真实类别为负,最后预测得到的结果也为负.

可以看到,TP和TN是我们预测准确的样本,而FP和FN为我们预测错误的样本。

基于混淆矩阵,我们可以得到如下的评测指标:

准确率

准确率表示的是分类正确的样本数占样本总数的比例,假设我们预测了10条样本,有8条的预测正确,那么准确率即为80%。

用混淆矩阵计算的话,准确率可以表示为:

精确率/召回率

精确率表示预测结果中,预测为正样本的样本中,正确预测为正样本的概率; 召回率表示在原始样本的正样本中,最后被正确预测为正样本的概率;

二者用混淆矩阵计算如下:

F1值

为了折中精确率和召回率的结果,我们又引入了F-1 Score,计算公式如下:

2、AUC

AUC定义为ROC曲线下方的面积:

ROC曲线的横轴为“假正例率”(True Positive Rate,TPR),又称为“假阳率”;纵轴为“真正例率”(False Positive Rate,FPR),又称为“真阳率”,

假阳率,简单通俗来理解就是预测为正样本但是预测错了的可能性,显然,我们不希望该指标太高。

真阳率,则是代表预测为正样本但是预测对了的可能性,当然,我们希望真阳率越高越好。

下图就是我们绘制的一张ROC曲线图,曲线下方的面积即为AUC的值:

AUC还有另一种解释,就是测试任意给一个正类样本和一个负类样本,正类样本的score有多大的概率大于负类样本的score。

3、Hit Ratio(HR)

在top-K推荐中,HR是一种常用的衡量召回率的指标,其计算公式如下:

分母是所有的测试集合,分子式每个用户top-K推荐列表中属于测试集合的个数的总和。举个简单的例子,三个用户在测试集中的商品个数分别是10,12,8,模型得到的top-10推荐列表中,分别有6个,5个,4个在测试集中,那么此时HR的值是 (6+5+4)/(10+12+8) = 0.5。

4、Mean Average Precision(MAP)

在了解MAP(Mean Average Precision)之前,先来看一下AP(Average Precision), 即为平均准确率。

对于AP可以用这种方式理解: 假使当我们使用google搜索某个关键词,返回了10个结果。当然最好的情况是这10个结果都是我们想要的相关信息。但是假如只有部分是相关的,比如5个,那么这5个结果如果被显示的比较靠前也是一个相对不错的结果。但是如果这个5个相关信息从第6个返回结果才开始出现,那么这种情况便是比较差的。这便是AP所反映的指标,与recall的概念有些类似,不过是“顺序敏感的recall”。

比如对于用户 u, 我们给他推荐一些物品,那么 u 的平均准确率定义为:

用一个例子来解释AP的计算过程:

因此该user的AP为(1 + 0.66 + 0.5) / 3 = 0.72

那么对于MAP(Mean Average Precision),就很容易知道即为所有用户 u 的AP再取均值(mean)而已。那么计算公式如下:

5、Normalized Discounted Cummulative Gain(NDCG)

对于NDCG,我们需要一步步揭开其神秘的面纱,先从CG说起: CG 我们先从CG(Cummulative Gain)说起, 直接翻译的话叫做“累计增益”。 在推荐系统中,CG即将每个推荐结果相关性(relevance)的分值累加后作为整个推荐列表(list)的得分。即

这里, rel-i 表示处于位置 i 的推荐结果的相关性,k 表示所要考察的推荐列表的大小。

DCG CG的一个缺点是没有考虑每个推荐结果处于不同位置对整个推荐效果的影响,例如我们总是希望相关性高的结果应排在前面。显然,如果相关性低的结果排在靠前的位置会严重影响用户体验, 所以在CG的基础上引入位置影响因素,即DCG(Discounted Cummulative Gain), “Discounted”有打折,折扣的意思,这里指的是对于排名靠后推荐结果的推荐效果进行“打折处理”:

从上面的式子可以得到两个结论: 1)推荐结果的相关性越大,DCG越大。 2)相关性好的排在推荐列表的前面的话,推荐效果越好,DCG越大。

NDCG DCG仍然有其局限之处,即不同的推荐列表之间,很难进行横向的评估。而我们评估一个推荐系统,不可能仅使用一个用户的推荐列表及相应结果进行评估, 而是对整个测试集中的用户及其推荐列表结果进行评估。 那么不同用户的推荐列表的评估分数就需要进行归一化,也即NDCG(Normalized Discounted Cummulative Gain)。

在介绍NDCG之前,还需要了解一个概念:IDCG. IDCG, 即Ideal DCG, 指推荐系统为某一用户返回的最好推荐结果列表, 即假设返回结果按照相关性排序, 最相关的结果放在最前面, 此序列的DCG为IDCG。因此DCG的值介于 (0,IDCG] ,故NDCG的值介于(0,1],那么用户u的NDCG@K定义为:

因此,平均NDCG计算为:

NDCG的完整案例 看了上面的介绍,是不是感觉还是一头雾水,不要紧张,我们通过一个案例来具体介绍一下。

假设在Baidu搜索到一个词,得到5个结果。我们对这些结果进行3个等级的分区,对应的分值分别是3、2、1,等级越高,表示相关性越高。假设这5个结果的分值分别是3、1、2、3、2。

因此CG的计算结果为3+1+2+3+2 = 11。DCG的值为6.69,具体见下表:

理想状况下,我们的IDCG排序结果的相关性应该是3,3,2,2,1,因此IDCG为7.14(具体过程不再给出),因此NDCG结果为6.69/7.14 = 0.94。

6、Mean Reciprocal Rank (MRR)

MRR计算公式如下:

其中|Q|是用户的个数,ranki是对于第i个用户,推荐列表中第一个在ground-truth结果中的item所在的排列位置。

举个例子,有三个用户,推荐列表中正例的最小rank值分别为3,2,1,那么MRR=(1 + 0.5 + 0.33) / 3 = 0.61

7、ILS

ILS是衡量推荐列表多样性的指标,计算公式如下:

如果S(bi,bj)计算的是i和j两个物品的相似性,如果推荐列表中物品越不相似,ILS越小,那么推荐结果的多样性越好。

8、代码实践

本文实践了部分上面提到的评价指标,git地址为:https://github.com/princewen/tensorflow_practice/tree/master/recommendation/Basic-Evaluation-metrics

参考目录为:

参考文献

1、https://blog.csdn.net/simple_the_best/article/details/52296608 2、https://blog.csdn.net/u010670689/article/details/73196054 3、https://www.cnblogs.com/wzyj/p/8976185.html 4、https://blog.csdn.net/u014313009/article/details/38944687

推荐阅读:

推荐系统遇上深度学习系列:

推荐系统遇上深度学习(一)--FM模型理论和实践

推荐系统遇上深度学习(二)--FFM模型理论和实践

推荐系统遇上深度学习(三)--DeepFM模型理论和实践

推荐系统遇上深度学习(四)--多值离散特征的embedding解决方案

推荐系统遇上深度学习(五)--Deep&Cross Network模型理论和实践

推荐系统遇上深度学习(六)--PNN模型理论和实践

推荐系统遇上深度学习(七)--NFM模型理论和实践

推荐系统遇上深度学习(八)--AFM模型理论和实践

推荐系统遇上深度学习(九)--评价指标AUC原理及实践

推荐系统遇上深度学习(十)--GBDT+LR融合方案实战

推荐系统遇上深度学习(十一)--神经协同过滤NCF原理及实战

推荐系统遇上深度学习(十二)--推荐系统中的EE问题及基本Bandit算法

推荐系统遇上深度学习(十三)--linUCB方法浅析及实现

推荐系统遇上深度学习(十四)--强化学习与推荐系统的强强联合!

推荐系统遇上深度学习(十五)--强化学习在京东推荐中的探索

本文分享自微信公众号 - 小小挖掘机(wAIsjwj)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-06-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • RS Meet DL(75)-考虑CPM的评估方法csAUC

    在点击率预估中,AUC是最常用的评估指标,这一指标衡量的是任取一个正例和负例,正例的得分高于负例的概率。那么点击率预估中,正例和负例分别是什么呢?很显然,正例就...

    石晓文
  • RS Meet DL(65)-负采样点击率修正的那些事

    本来想写蚂蚁金服运用强化学习做推荐的文章《Generative Adversarial User Model for Reinforcement Learnin...

    石晓文
  • 【白话机器学习】算法理论+实战之LightGBM算法

    如果想从事数据挖掘或者机器学习的工作,掌握常用的机器学习算法是非常有必要的,在这简单的先捋一捋, 常见的机器学习算法:

    石晓文
  • 机器学习-从高频号码中预测出快递送餐与广告骚扰

    由头 1、笔者最近在做机器学习嘛,上次发了一篇文章,这周发现有大问题,此次算是对上篇的补充与说明。 2、算法基本完成,在进行收尾的工作,今天共享给大家思路,涉及...

    企鹅号小编
  • GitLab 初次搭建使用教程

    在命令行执行 ssh-keygen 然后一直回车3次就好了,它会在上述位置生成 .ssh 文件夹。

    wsuo
  • 想监管加密货币?看法各异的G20诸国能达成共识吗

    区块链大本营
  • 用JavaScript 代码来做,图片切换效果!

    用原生的JS写动画效果的确是个很令人纠结的事情,倒不如直接用jQuery来写,亦或找一些jQuery插件。能力达不到的时候,为了工作进度,只能采取心有不甘的手段...

    企鹅号小编
  • 还不会使用PyTorch框架进行深度学习的小伙伴,看过来

    今年初,Facebook 推出了 PyTorch 1.0,该框架集成了谷歌云、AWS 和 Azure 机器学习。学习本教程之前,你需要很熟悉 Scikit-le...

    机器之心
  • 沃尔玛、永辉等多家零售商宣布接收暂歇业员工;携程发布合作伙伴同袍计划;快商通:无偿提供“新型肺炎咨询机器人”|ITDaily

    沃尔玛宣布,在特殊时期,欢迎社会暂时歇业员工来沃尔玛“上班”。沃尔玛称,不管是个人还是企业,均可以到就近的沃尔玛大卖场、沃尔玛社区门店、山姆会员商店咨询,所有人...

    用户6543014
  • web目录扫描工具dirbuster使用详解

    斑马

扫码关注云+社区

领取腾讯云代金券