这两种指标常用于衡量模型性能的好坏。
AUC
AUC用于表达模型区分正负样本的能力,即正样本大于负样本的概率。
假设有 M M M 个正样本, N N N 个负样本,将模型对他们的预测概率从小到大排序, r a n k i rank_i ranki 表示第 i i i 个正样本的排序序号,那么比它还小的负样本个数为 r a n k i − i rank_i - i ranki−i,则AUC计算公式如下:
A U C = ∑ i ∈ 正样本集合 rank i − M ( 1 + M ) 2 M × N AUC=\frac{\sum_{i \in \text { 正样本集合 }} \operatorname{rank}_i-\frac{M(1+M)}{2}}{M \times N} AUC=M×N∑i∈ 正样本集合 ranki−2M(1+M)
GAUC
AUC反应了模型整体的排序能力,但在搜广推领域,例如CTR是以用户维度,衡量单个用户对广告的点击预测。用户之间差异大,比如网赚用户点击率高,高价值人群点击率低。
因此,阿里团队提出了新指标GAUC:
G A U C = ∑ i = 1 n w i ∗ A U C i ∑ i = 1 n w i = ∑ i = 1 n impression i ∗ A U C i ∑ i = 1 n impression i \mathrm{GAUC}=\frac{\sum_{i=1}^n w_i * \mathrm{AUC}_i}{\sum_{i=1}^n w_i}=\frac{\sum_{i=1}^n \text { impression }_i * \mathrm{AUC}_i}{\sum_{i=1}^n \text { impression }_i} GAUC=∑i=1nwi∑i=1nwi∗AUCi=∑i=1n impression i∑i=1n impression i∗AUCi
n n n 表示用户数, w i w_i wi 可以是该用户的展现数或者点击数, A U C i AUC_i AUCi 表示模型在该用户上的AUC表现。
示例
有甲和乙两个用户,共有5个样本,其中+表示正样本,-表示负样本,我们把5个样本按照模型A预测的score从小到大排序,得到 甲-,甲+,乙-,甲+,乙+, 那假如有另一个模型B,把这5个样本根据score从小到大排序后,得到 甲-,甲+,甲+,乙-,乙+
模型 | 样本1 | 样本2 | 样本3 | 样本4 | 样本5 | AUC |
---|---|---|---|---|---|---|
模型A | 甲- | 甲+ | 乙- | 甲+ | 乙+ | 1 + 2 + 2 2 ∗ 3 = 0.833 \frac{1+2+2}{2*3} = 0.833 2∗31+2+2=0.833 |
模型B | 甲- | 甲+ | 甲+ | 乙- | 乙+ | 1 + 1 + 2 2 ∗ 3 = 0.667 \frac{1+1+2}{2*3} = 0.667 2∗31+1+2=0.667 |
单看AUC,模型A的表现优于模型B。但是从实际情况来看:
- 对于用户甲,模型A的 A U C 甲 = 1 + 1 2 = 1 , A U C 乙 = 1 1 = 1 AUC_{甲}=\frac{1+1}{2}=1, AUC_{乙}=\frac{1}{1}=1 AUC甲=21+1=1,AUC乙=11=1
- 对于用户甲,模型B的 A U C 甲 = 1 + 1 2 = 1 , A U C 乙 = 1 1 = 1 AUC_{甲}=\frac{1+1}{2}=1, AUC_{乙}=\frac{1}{1}=1 AUC甲=21+1=1,AUC乙=11=1
所以从实际情况来看,模型B的效果和模型A应该是一样好的,这和实际的auc的结果矛盾。
每个用户的广告列表是个性化的,不同用户的排序结果不好直接比较,这可能导致全局auc并不能反映真实情况,应采用GAUC。