AUC & GAUC

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

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 rankii,则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×Ni 正样本集合 ranki2M(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=1nwii=1nwiAUCi=i=1n impression ii=1n impression iAUCi

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 231+2+2=0.833
模型B 甲- 甲+ 甲+ 乙- 乙+ 1 + 1 + 2 2 ∗ 3 = 0.667 \frac{1+1+2}{2*3} = 0.667 231+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。


参考

  • AUC 和 gauc ks

你可能感兴趣的:(搜广推,AUC,GAUC)