AUC & GAUC
Swift Lv6

这两种指标常用于衡量模型性能的好坏。

AUC

AUC用于表达模型区分正负样本的能力,即正样本大于负样本的概率。

假设有 $M$ 个正样本,$N$ 个负样本,将模型对他们的预测概率从小到大排序,$rank_i$ 表示第 $i$ 个正样本的排序序号,那么比它还小的负样本个数为 $rank_i - i$,则AUC计算公式如下:

注意点

如果有多个正样本得分相等,那么正样本数保持不变,每一个相等auc的正样本的rank就取它们的平均值。具体示例见:AUC的两种计算方式

GAUC

AUC反应了模型整体的排序能力,但在搜广推领域,例如CTR是以用户维度,衡量单个用户对广告的点击预测。用户之间差异大,比如网赚用户点击率高,高价值人群点击率低。

因此,阿里团队提出了新指标GAUC:

$n$ 表示用户数,$w_i$ 可以是该用户的展现数或者点击数,$AUC_i$ 表示模型在该用户上的AUC表现。

示例

有甲和乙两个用户,共有5个样本,其中+表示正样本,-表示负样本,我们把5个样本按照模型A预测的score从小到大排序,得到 甲-,甲+,乙-,甲+,乙+;那假如有另一个模型B,把这5个样本根据score从小到大排序后,得到 甲-,甲+,甲+,乙-,乙+

模型 样本1 样本2 样本3 样本4 样本5 AUC
模型A 甲- 甲+ 乙- 甲+ 乙+ $\frac{1+2+2}{2*3} = 0.833$
模型B 甲- 甲+ 甲+ 乙- 乙+ $\frac{1+1+2}{2*3} = 0.667$

单看AUC,模型A的表现优于模型B。但是从实际情况来看:

  • 对于用户甲,模型A的$AUC_{甲}=\frac{1+1}{2}=1, AUC_{乙}=\frac{1}{1}=1$
  • 对于用户甲,模型B的$AUC_{甲}=\frac{1+1}{2}=1, AUC_{乙}=\frac{1}{1}=1$

所以从实际情况来看,模型B的效果和模型A应该是一样好的,这和实际的auc的结果矛盾。

每个用户的广告列表是个性化的,不同用户的排序结果不好直接比较,这可能导致全局auc并不能反映真实情况,应采用GAUC。


参考

Powered by Hexo & Theme Keep
Unique Visitor Page View