AUC & GAUC
这两种指标常用于衡量模型性能的好坏。
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。