直接评估推荐序列的离线指标

上一篇中的离线评测方法和指标,更多地将推荐模型视为点击率预估的预测模型,这类指标衡量的更接近预测值与真实值的偏差;但是预测结果是一个排序列表,比如矩阵分解得到的排序列表,就不具有类似点击率这样的物理意义,直接评估推荐序列更为合适。
混淆矩阵
image.png
image.png

P-R曲线

PR曲线是以Precision和Recall这两个变量作出的曲线,Precision(精确率/查准率)为纵轴,Recall(召回率/查全率)为横轴。
PR曲线的绘制:将一个分类器的分类结果按照置信度(比如得分)从高到低排序,选定多个阈值(比如0.7/0.6/0.5/0.4…),选定一个阈值后可以计算出该阈值下的P和R,依次为坐标即可绘制出一条PR曲线
博客中摘取的图左,但是下图有一些问题:

  1. 曲线应该过(0,0)点,因为当所有样本都被预测为负样本的时候,TP=0,此时Recall=Precision=0;
  2. 曲线不会过(1,0)点,因为当所有点被预测为正样本时,FN=0,recall=1,但是TP,FP>0,只有当FP很大,即负样本很大是,曲线才会接近(1,0)点。

正常情况下的曲线应该如图右:
image.pngimage.png

ROC曲线

ROC曲线是以FPR为x轴,TPR为y轴。FPR指实际负样本中被错误预测为正样本的概率,TPR指实际正样本中被预测正确的概率。ROC曲线中的四个点:
点(0,1),即FPR=0, TPR=1,这意味着FN=0,并且FP=0。这是完美的分类器,它将所有的样本都正确分类。
点(1,0),即FPR=1,TPR=0,即TP=TN=0,表示全部误分类。
点(0,0),即FPR=TPR=0,即FP=TP=0,可以发现该分类器预测所有的样本都为负样本(negative)。
点(1,1),即FN=TN=0,分类器实际上预测所有的样本都为正样本。
经过以上的分析,ROC曲线越接近左上角,该分类器的性能越好。
ROC曲线的绘制和PR曲线类似,可以通过移动截断点来计算对应的TPR和FPR。
以上两种曲线的对比:
image.png
当改变正负样本,比如增加负样本的比例,当固定一个threshold来计算TPR和FPR的时候,虽然负样本增加了也就是FPR的分母虽然变大了,但是这个时候超过threshold的负样本量也会随之增加,也就是分子FP也会随之增加,所以总体FPR变化不大,即ROC曲线的变化不会很大,但是由于FP增加了,Precision=TP/(TP+FP)变化会比FPR更明显。通过截取博客中的图可以看到,a和c图的roc曲线变化不大,但是对应的pr曲线差异明显。如果希望更多地看到模型在特定数据集上的表现,P-R曲线则能够更直观地反映其性能:
image.png

AUC(Area Under Curve)

roc曲线或者pr曲线下的面积,在roc曲线和pr曲线中,如果曲线a将另一个曲线b完全包围,则说明分类器a的性能好于b。确率、召回率等指标,都需要设定一个阈值去判别是属于正类还是负类,例如预测分大于等于0.5判别为正类,小于0.5判别为负类。如何设定这个阈值,是个问题。而AUC这个指标则不需要设阈值。
AUC的计算,AUC计算的是从预测集的样本中随机抽取一对正负样本对(P,N),正样本的得分score>负样本score的概率
image.png

平均精度均值(mAP)

平均精度(Average Precision,AP)是只取正样本处的precision@N进行平均;
平均精度均值(mean Average Precision,mAP)是将测试集中每个用户的AP值再次取平均

合理选择评估指标

在离线实验中,要通过多角度来评估模型,但是不宜选择过多指标,专门优化某个指标,更重要的是快速定位问题,判断可行性。