-->

深度学习推荐系统实战_33_25_评估指标我们可以用哪些指标来衡量模型的好坏

你好,我是王哲。

今天我们来学习推荐模型的评估指标。

那上节课我们讲了五种评估方法,清楚了,他们都是怎么把样本分割为训练集和测试集的。

但是指分割样本是远远不够的,为了比较模型效果的好坏,还得用一些指标进行衡量。

就像我们工作中经常说我的模型提高了一个点的效果。

那这所谓的一个点指的是什么呢?它其实说的就是我们的模型在一些经典的推荐指标上提升了百分之一的效果。

那这节课我就带你捋一捋这些经典的推荐评估指标。

那我按照指标计算的难易程度和评估的全面性,把推荐系统的评估指标分成了低阶评估指标和高阶评估指标两大类。

那对于低阶评估指标来说,准确率、准确率与召回率、推数损失均方根误差这四个指标在推荐模型评估中最常用推算起来也最容易。

所以我们就先来学习一下这几个低阶评估指标的具体含素。

首先是准确率啊,它是指分类正确的样本占总样本个数的比例。

那公式就是n correct除以n total.那其中n correct指的是正确分类的样本个数,n total是样本的因数。

那准确率是分类任务中非常直观的评价指标,也很容易解释它的含义。

但它也存在在明显显的确素。

就是说同同类别样本本例非常不均,均的时候占比大的类别总是会成为影响准确率的最主要因素。

比如说副样本占百分之九九十九,那分类器把所有样本都预测为副样本,也可以获得百分之九十九的准确率。

那在之前的课程中,我们经常把推荐问题看作是一个点击率预估型的分类问题。

那在这个时候,我们就可以用准确率来衡量推荐模型的好坏了。

但在实际的推荐场景中,我们经常会生成一个推荐列表,而不是所谓的分类,正不正确来衡量最终的效果。

那我们应该怎么评估一个推荐列表的效果呢?那这时候我们就会利用到精确率和召回率这两个指标。

我这里所说的精确率指的是分类正确的正样本个数,占分类器判定为正样本的样本个数的比例。

召回率指的是分类正确的正样本个数,占真正的正样本个数的比例。

那这两个概念听起来会有点绕,那我再重复一遍,呃,精确率指的就是分类正确的正样本个数,占分类器判定为正样本个数的比例。

那召回率指的是分类正确的正样本个数,占真正的正样本个数的比例。

那一般来说推荐列表里没有一个确定的阈值,可以把预测结果直接判定为正样本或者负样本,而是采用top n排序结果的精确率和召回率来衡量排序模型的性能。

啊,具体操作就是认为模型排序的前n个结果就是模型判定的正样本,然后分别计算精确率和召回率。

事实上,精确率和召回率是矛盾统一的一对指标,这是什么意思呢?那它就是说为了提高精确率模型,需要尽量在更有把握的时候把样本预测为正样本。

但这个时候我们总是会因为过于保守而漏掉,很多没有把握的遮样本,导致召回率降低。

那有没有一个指标能够综合的反映精确率和召回率的高低呢?那其实是有的,这就是f one score.那f one score的定义是精确率和召回率的调和平均值。

具体的定义你可以看一下文稿中的公式。

F one score的值越高,就证明模型在精确率和召回率的整体表现上越好。

接着我们再来说一说对数损失这个评估指标。

那首先在一个二分类问题中,对数损失函数的定义是文稿中的公式。

三、在这个公式中,YI是输入实例XI的真实类别。

Pi是预测输入实例,XI是正样本的概率,那n是样本总数。

而面对多分类问题的时候,对数损失函数定义就变成了公式四的样子。

那如果你仔细看公式,就会发现,二、分类和多分类模型的lock loss,其实就是我们之前讲过的逻辑回归和soft max模型的损失函数。

而大量深度学习模型的输出层,正是逻辑回归或者soft max.因此,采用lock loss作为评估指标,能够非常直观的反映模型损失函数的变化。

所以在训练模型的过程中,我们在每一轮训练中都会输出lock loss来观察模型的收敛状况。

那刚才我们讲了准确率精确率、召回率、lock、 loks都是针对分类模型指令的指标。

那分类模型就是说预测某个样本属于哪个类别的模型,最典型的就是点击率预估模型。

那除了这类分类模型以外,还有回归模型,它是用来预测一个连续值的。

比如预测某个用户对某个电影会打多少分?这就是一个回归模型。

那我们对于回归模型有什么合适的评估指标呢?那最常用的回归评估指标就是均方根误差。

它的公式是求预测值跟真实之间差值的均方根。

那具体的公式你可以看一下文稿,加深一下记忆。

那总的来说,我们刚才说的这几个评估指标,虽然在推荐系统中最常用计算起来也很简单,但它的反应的结果还不够精确和全面。

比如说精确率和召回率可以反映模型在top n个排序结果上的表现。

但我们要知道,在真正的推荐问题中,n的值是变化的。

因为用户可以通过不断的翻页下滑来拉取更多的推荐结果,这就需要有更高阶的评估指标来衡量模型在不同数量推荐结果上的综合性能。

所以接下来就讲几个非常流行虽非常精威的高阶评估指标。

那在高阶评估指标的部分,我会给你讲PR曲线ROC曲线平均精度均值,这三个最常用的评估指标。

那首先我要说的是p二曲线,这里的p就是我们之前学过的精确率,precision二指的是召回率recall.那刚才我们说了,为了综合评价一个推荐模型的好坏,不仅要看模型在一个套盆下的精确率和召回率,还要看模型在不同n取值下的表现,甚至最好能绘制出一条n从一到大n准确率和召回率变化的曲线。

那这条曲线就是PR曲线。

那PR曲线的横轴是召回率,纵轴是精确率。

那对于一个推荐模型来说,它的PR曲线上的一个点代表的是在某一个阈值下模型,把大于这个阈值的结果判定为正样本,把小于这个阈值的结果判定为负样本的时候,整体结果对应的召回率和精确率。

那整条PR曲线就是通过从高到低移动正样本阈值而生成的那我们一起来看文稿中的示意图。

它画了两个测试模型模型a和模型b的对比曲线。

那其中实线代表模型a的PR曲线,虚线代表模型b的PR曲线。

从图中我们可以看到,在召回率接近零的时候,模型a的精确率是零点九。

模型b的精确率是一,那这说明模型b预测的得分前几位的样本全部是真正的正样本。

而模型a即使是得分最高的几个样本,也存在预测错误的情况。

然而,随着召回率的增加,两个模型的精确率整体上都有所下降,特别是当召回率在零点六附近的时候,模型a的精确率反而超过了模型。

B这就充分说明了只用一个点的精确率和召回率,是不能全面衡量模型性能的。

只有通过PR曲线的整体表现,才能对模型进行更全面的评估。

那虽然PR曲线能够全面的衡量模型的性能,但它总归是一条曲线,而不是一个数字。

我们很难用它来直接判断模型的好坏。

那有没有一个指标能用来衡量PR曲线的优劣呢?那当然是有的,这个指标就是AUC也叫做曲线下面积。

那顾名思义,AOC指的是PR曲线下的面积大小,因此计算AOC值只需要沿着PR曲线的横轴做积分,AOC越大,就证明推荐模型的性能越好好了。

那接着我们再来看第二个高阶指标,ROC曲线,它也是一个非常常用而且权威的衡量模型,综合性能的指标。

那ROC曲线的全称是the receiver operating characteristics曲线,那中文叫做受试者工作特性曲线。

那我诞生于军事领域,后来在医学领域域用的非常多。

那受试者工作特性曲线这个名字也是从医学领域来的那ROC曲线的横坐标是false posirate FPRR那叫做假阳性率。

纵坐标true, ue positive ate ate PRR真阳性率。

那这两个名字读上去就非常的拗口,那我们还是通过他们的定义来医学领理解。

一。

那FPR的定义是FP除以NTPR的定义是TP除以p那在这个公式中,p指的是真实的正样本数量,n是真实的负样本数量。

Tp指的是p个正样本中被分类器预测为正样本的个数。

Fp指的是n个负样本中被分类器预测为负样本的个数。

但我估你看这个定义啊,可能还是不好理解,这个ROC曲线是怎么得到的。

没关系,我们真正去画一条ROC曲线,你就明白了。

那和PR曲线一样,ROC曲线也是通过不断移动模型正样本的阈值而生成的那假设测试集中一共有二十个样本,那模型的输出就像文稿中图表展示的那样,表中第一列是样本号,class是样本的真正的标签,score是模型输出的,样本为正的概率那样。

本按照预测概率从高到低排序。

在输出最终的正负立之前,我们需要指定一个阈值,并且设定当前预测的概率大于这个阈值的样本会被判为正例。

小于这个阈值会被判为负立。

比如说我们指定零点九为阈值,那只有第一个样本会被判定为正利,其他全部都是负利。

这里的阈值也叫做截断点。

接下来我们要做的就是动态的调整阶断点从最高的得分开始,实际上是从正无穷开始,那对应着ROC曲线的零点逐渐调整到最低分。

那每一个阶段点都会对应着一个FPR和TPR的值。

那在ROC图上绘制出每个阶段点对应的位置,在连接每个点之后就能得到最终的ROC曲线了。

那么ROC曲线上的点具体应该怎么确定呢?那我们来看几个例子,那当截算点选择为正无穷的时候,模型会把全部的样本预测为负力。

那FP和TP必然都为零,FP二和TP二也都为零。

因此曲线的第一个点就是零零。

当把阶段点调整为零点九的时候,模型预测一号样本为正样本,并且这个样本也确实是正样本。

因此在二十个样本中,TP等于一所有正例的数量p等于十的时候,TPR就等于十分之一。

那我们还可以看到这个例子里是没有预测错的正样本。

也就是说FP等于零,那负样本总数是十的时候,FPR就等于零,除以十等于零。

那对应着ROC图上的点就是零零点一。

那其实还有一种更直观的绘制ROC曲线的方法。

那首先我们根据样本标签统计出正负样本的数量,假设正样本的数量为p负,样本数量为n.然后我们把横轴的刻度间隔设置为n分之一,纵轴的刻度间隔设置为p分之一。

那接着我们再根据模型输出的预测概率,对样本从高到低排序,最后依次遍历样本,同时从零点开始绘制ROC曲线。

每遇到一个正样本,就沿纵轴方向绘制一个刻度间隔的曲线。

每遇到一个负样本,就沿横轴方向绘制一个刻度间隔的曲线,直到遍历完所有的样本曲线最终停在一一这个点上,整个ROC曲线的绘制就完成了。

那在绘制完ROC曲线后,我们也可以像PR曲线一样计算出ROC曲线的AUC.那AUC越高,推荐模型的效果就越好。

最后我们再来看一看平均精度均值MAP这个高阶指标。

它除了在推荐系统中,比次常用在信息检索领域也很常用。

那MIP其实是对平均均值的再次平均。

因此在计算MAP前,我们需要先学习什么是平均精度。

Ap那假设推荐系统对某一个用户测试集的排序结果是一零零一一一,其中一代表正样本零代表负样本。

接下来我们就按照之前学过的方法计算,这个序列中每个位置上的precision i的n你可以自己先试着计算一下,也可以直接看我文稿中计算好的结果。

那计算平均均值AP的时候,我们只取正样本处的precition进行平均。

那根据得到的表格里的AP就等于一除以一加二除以四,加三除以五加四除以六,然后再进行平均除以四等于零点六九一七。

那接下来我们再来看看什么是MAP.那如果推荐系统对测试集中的每个用户都进行样本排序,那每个用户都会计算出一个AP值。

那在对所有用户的AP值进行平均就得到了MAP.也就是说,MAP是对精确度平均的平均。

那这里就要注意了MAP的计算方法和PR曲线。

Roc曲线的计算方法是完全不同的,因为MAP需要对每个用户的样本进行分用户排序,而PR曲线和ROC曲线均是对全量测试样本进行排序,这一点在实际操作中是需要注意的。

好了,到这里这节课的七个评估指标我们就都讲完了。

如果你是第一次接触他们,可能现在已经有点茫然了。

那事实上除了这些评估指标啊,我们还有很多其他的推荐系统评估指标。

比如说有归一化折扣,累计收益NDCG、覆盖率coverge、多样性diverorsity等等。

那面对这么多评估指指,你肯定想问我们应该怎么选择?他们们很可惜,这次又是一个开放性的问题,评估指标的选择同样没有标准答案。

但我还是会把一些经验性的知识总结出来,希望能够帮助到你。

比如说在对推荐模型的离线评估中,大家默认的权威的评估指标是ROC曲线的AUC.那在AUC评估的时候,它用的是整体样本的ROC曲线。

所以我们往往需要补充分析MAP,或者对ROC曲线进行一些改进。

我们可以先绘制分用户的ROC,在进行用户AUC的平均。

再比如说在评估CTR模型效果的时候,我们首先可以采用准确率来进行初步的衡均。

当我们可能会发现,不管什么模型,准确率都在百分之五十以上。

那仔细查看数据,我们就能发现,由于现在电商点击率、视频点击率等等的推荐模型,往往它的点击率都在百分之一到百分之十之间,也就是说百分之九十以上都是负样本。

因此准确率这个指标就不能够准确的反映模型的效果了。

这个时候我们就要加入精确率和召回率指标进行更精确的衡量。

我们可以采用precision id二十和recall add二十这两个评估指标,但进一步它终究只能衡量前二十个结果的精确率和召回率。

所以如果我们想看到更全面的指标,可以多看看precition ID五十、record五十,甚至add一百这样的指标,甚至逐渐过渡到绘制整条的PR曲线。

那总的来说,评估指标的选择不是唯一的,而是一个动态深入跟你评测的深度密切相关的过程。

而且在真正的离线实验中,虽此我们要通过不同角度来评估模型,但也没必要陷入完美主义和实验室思维的误区。

选择过多的评估指标评估模型,更没有必要为了专门优化某个指标来浪费过多的时间。

离线评估的目的在于快速定位问题,排除不可行的思路,为线上评估找到靠谱的候选者。

因此,我们根据业务场景,选择两到四个有代表性的离线指标,进行高效率的离线实验,才是离线评估正确的打开方式。

好了,今天的内容讲完了,我们一起来做个总结。

那这节课我们重点介绍了离线评估中使用的评估指标,我把它们分成两部分,简单直接的低阶评估指标,还有复杂全面的高阶评估指标。

那低阶评估指标主要包括了准确率精确率、召回率和均方跟误差。

那准确率是指分类正确的样本占总样本个数的比例,精确率指的是分类正确的正样本个数占分类器判定为正样本的样本个数的比例。

召回率是分类正确的正样本个数,占真正的正样本个数的比例。

而均方根误差的定义是预测值跟真实值之间差值的均方根。

那第一阶评估指标在推荐系统中最常用计算起来也很简单,但他们反映的结果不够精确。

相比之下,高阶评估指标对推荐结果的评估综合性更强。

那高阶指标包括PR曲线ROC曲线平均精度均值,PR曲线的横坐标是召回率,纵坐标是精确率。

Roc曲线的横坐标是假阳性率,纵坐标是真阳性率。

Pr曲线和ROC曲线的绘制都不容易,我希望你能多看几遍。

我在课程中讲的例子巩固一下,最后是平均精度均值MAP.这个指标是对每个用户的精确率均值做再次的平均。

最后为了方便你的记忆和对比,我也把所有指标的概念都总结在了文稿的表格里,你可以去再回顾一下。

好了,最后是一道思考题。

那对于我们今天学到的PR曲线和ROC曲线,你觉得它们的优缺点分别是什么呢?在正负样本分布极不均衡的情况下,你觉得哪个曲线的表现会更稳定、更权威一点?那期待在留言区看到你对这节课的思考,我们下节课见。