我们曾经有这样的疑惑,那就是训练样本,AUC得到提升。当将新模型放到线上后,却发现实际效果却没有老模型好,这时候很多人就开始疑惑了。 在机器学习算法中,很多情况我们都是把auc当成最常用的一个评价指标,而auc反映整体样本间的排序能力,但是有时候auc这个指标可能并不能完全说明问题,有可能auc并不能真正反映模型的好坏,以CTR预估算法(推荐算法一般把这个作为一个很重要的指标)为例,把用户点击的样本当作正样本,没有点击的样本当作负样本,把这个任务当成一个二分类进行处理,最后模型输出的是样本是否被点击的概率。 举个很简单的例子,假如有两个用户,分别是甲和乙,一共有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并不能反映真实情况。 因为auc反映的是整体样本间的一个排序能力,而在计算广告领域,我们实际要衡量的是不同用户对不同广告之间的排序能力, 实际更关注的是同一个用户对不同广告间的排序能力,为此,参考了阿里妈妈团队之前有使用的group auc的评价指标 group auc实际是计算每个用户的auc,然后加权平均,最后得到group auc,这样就能减少不同用户间的排序
广告推荐算法(group auc)评价指标及Spark实现代码
最新推荐文章于 2023-01-10 16:53:15 发布
文章讨论了在广告推荐系统中,传统AUC指标可能无法准确反映模型性能的问题,并引入了Group AUC作为更合适的评价标准。Group AUC关注同一用户对不同广告的排序能力,通过加权平均每个用户的AUC来计算。当发现AUC提升但实际效果下降时,Group AUC成为重要的参考指标。文中还提供了基于Spark的快速计算GAUC的Python代码实现。
摘要由CSDN通过智能技术生成