AUC
在机器学习算法中,很多情况我们都是把auc当成最常用的一个评价指标,而auc反映整体样本间的排序能力,但是有时候auc这个指标可能并不能完全说明问题,有可能auc并不能真正反映模型的好坏。
AUC反映整体样本间的排序能力,表示正样本得分比负样本得分高的概率,对样本不区分用户地计算整体样本的AUC。
线下AUC提升为什么不能带来线上效果提升? https://zhuanlan.zhihu.com/p/58152702
AUC计算的时候,不仅会涉及同一个用户的不同item,也会涉及不同用户的不同item,而线上排序系统每次排序只针对同一个用户的不同item进行打分。
GAUC
GAUC实现了用户级别的AUC计算,在单个用户AUC的基础上,按照点击次数或展示次数进行加权平均,消除了用户偏差对模型的影响,更准确的描述了模型的表现效果:
Ref:https://zhuanlan.zhihu.com/p/88708071
其中权重w既可以是展示次数(impression)也可以是点击次数(clicks)。n是用户数量。
举个很简单的例子,假如有两个用户,分别是甲和乙,一共有5个样本,其中+表示正样本,-表示负样本,我们把5个样本按照模型A预测的score从小到大排序,得到 甲-,甲+,乙-,甲+,乙+. 那么实际的auc应该是 (1+2+2)/(32)=0.833, 那假如有另一个模型B,把这5个样本根据score从小到大排序后,得到 甲-,甲+,甲+,乙-,乙+, 那么该模型预测的auc是(1+1+2)/(32)=0.667.
那么根据auc的表现来看,模型A的表现优于模型B,但是从实际情况来看,对于用户甲,模型B把其所有的负样本的打分都比正样本低,故,对于用户甲,模型B的auc是1, 同理对于用户乙,模型B的auc也应该是1,同样,对于用户甲和乙,模型A的auc也是1,所以从实际情况来看,模型B的效果和模型A应该是一样好的,这和实际的auc的结果矛盾。
可能auc这个指标失真了,因为用户广告之间的排序是个性化的,不同用户的排序结果不太好比较,这可能导致全局auc并不能反映真实情况。Ref:https://blog.csdn.net/hnu2012/article/details/87892368
为什么没有用GAUC替代AUC:
GAUC(实现了用户级别的AUC计算),
AUC(反映整体样本间的排序能力,而线上排序系统每次排序只针对同一个用户的不同item进行打分)
由于评估目标的差异,可能导致线下AUC提升了,但是线上CTR没有提升,
我不太理解,按理来讲GAUC 应该好于AUC,为啥不用GAUC? 或则说 GAUC 有啥缺点?
GAUC是单用户的sample求auc以后再平均,但是单用户行为没有那么多的时候,会抖动,大部分公司还是用AUC比较多