AUC理解

AUC有几种理解?AUC的两种计算方式?

一个是ROC曲线的面积
另外一个是统计意义。从统计学角度理解,AUC等于随机挑选一个正样本和负样本时,模型对正样本的预测分数大于负样本的预测分数的概率。

统计学里的AUC

假设数据集一共有M个正样本,N个负样本,预测值也就是M+N个。我们将所有样本按照预测值进行从小到大排序,并排序编号由1到M+N。
对于正样本概率最大的,假设排序编号为 rank1,比它概率小的负样本个数= rank1-M(仔细体会一下);
对于正样本概率第二大的,假设排序编号为 rank2 ,比它概率小的负样本个数= rank2-(M-1) ;
以此类推…
对于正样本概率最小的,假设排序编号为 RankM,比它概率小的负样本个数= rankM-1 。
那么在所有情况下,正样本打分大于负样本的个数= rank1+rank2+……+rankM-(1+2+……+M)

好,我们直接给出AUC的计算公式。
在这里插入图片描述
ranki表示正样本 的排序编号, M*N表示随机从正负样本各取一个的所有情况数。

AUC的优点和缺点(八股文)

优点:
AUC衡量的是一种排序能力,因此特别适合排序类业务;
AUC对正负样本均衡并不敏感,在样本不均衡的情况下,也可以做出合理的评估。
其他指标比如precision,recall,F1,根据区分正负样本阈值的变化会有不同的结果,而AUC不需要手动设定阈值,是一种整体上的衡量方法。

缺点
忽略了预测的概率值和模型的拟合程度;
AUC反映了太过笼统的信息。无法反映召回率、精确率等在实际业务中经常关心的指标;
它没有给出模型误差的空间分布信息,AUC只关注正负样本之间的排序,并不关心正样本内部,或者负样本内部的排序,这样我们也无法衡量样本对于好坏客户的好坏程度的刻画能力;
参考:AUC的缺陷详细说明

搜索场景里的AUC

1 AUC的什么特性让它如此受欢迎?AUC的排序特性?

对比accuracy、precision等指标,AUC指标本身和模型预测score绝对值无关,只关注排序效果,因此特别适合排序业务。

为何与模型预测score值无关为何是很好的特性呢?假设你采用precision、F1等指标,而模型预测的score是个概率值,就必须选择一个阈值来决定哪些样本预测是1哪些是0,不同的阈值选择,precision的值会不同,而AUC可以直接使用score本身,参考的是相对顺序,更加好用。

对均匀正负样本采样不敏感

正由于AUC对分值本身不敏感,故常见的正负样本采样,并不会导致auc的变化。比如在点击率预估中,处于计算资源的考虑,有时候会对负样本做负采样,但由于采样完后并不影响正负样本的顺序分布。
但如果采样不是均匀的,比如采用word2vec的negative sample,其负样本更偏向于从热门样本中采样,则会发现auc值发生剧烈变化。

2 AUC的值和什么有关,多高是高?

我们在实际业务中,常常会发现点击率模型的auc要低于购买转化率模型的auc。正如前文所提,AUC代表模型预估样本之间的排序关系,即正负样本之间预测的gap越大,auc越大。
在以往的工作经验中,下单的NN模型,auc能在0.9左右 (每日1亿级别的样本)。另外一些小业务中的点击auc约0.7-0.8(每日约一千万样本)。
通常,点击行为的成本要低于购买行为,从业务上理解,点击率模型中正负样本的差别要小于购买力模型,即购买转化模型的正样本通常更容易被预测准。

参考:【多高的AUC才算高?】为我们揭示了理论maxAUC与真实AUC的区别
AUC值本身的理论上限

假设我们拥有一个无比强大的模型,可以准确预测每一条样本的概率,那么该模型的AUC是否为1呢?现实常常很残酷,样本数据中本身就会存在大量的歧义样本,即特征集合完全一致,但label却不同。因此就算拥有如此强大的模型,也不能让AUC为1.
因此,当我们拿到样本数据时,第一步应该看看有多少样本是特征重复,但label不同,这部分的比率越大,代表其“必须犯的错误”越多。学术上称它们为Bayes Error Rate,也可以从不可优化的角度去理解。
我们花了大量精力做的特征工程,很大程度上在缓解这个问题。当增加一个特征时,观察下时候减少样本中的BER,可作为特征构建的一个参考指标。

3 AUC提高了是否代表线上指标会提高?

1)线上的数据分布和线下的样本分布不对等
AUC毕竟是线下离线评估指标,与线上真实业务指标有差别。差别越小则AUC的参考性越高。比如上文提到的点击率模型和购买转化率模型,虽然购买转化率模型的AUC会高于点击率模型,但往往都是点击率模型更容易做,线上效果更好。
2 购买决策比点击决策过程长、成本重,且用户购买决策受很多场外因素影响,比如预算不够、在别的平台找到更便宜的了、知乎上看了评测觉得不好等等原因,这部分信息无法收集到,导致最终样本包含的信息缺少较大,模型的离线AUC与线上业务指标差异变大。
总结起来,样本数据包含的信息越接近线上,则离线指标与线上指标gap越小。而决策链路越长,信息丢失就越多,则更难做到线下线上一致。

2) 线上和线下的评估目标并不对等

线下的AUC、PR、loss、OE等等一堆指标,评估的是 CTR(user*–ad*) 是否够准确,也即每条样本是否拟合准确。
线上真实环境下,关心的是ctr、cpm、cvr等实际收益,所以评估的是 CTR(user–ad*) 是否够准确,也即user1选哪个ad*,最后ctr更高。
解决这个问题,关键是线下能评估 CTR(user–ad*),也即消去user带来的差异。建议引入GAUC:

线上效果,只跟relevance 有关,position因素是排除的。
线下的其实是混杂了position因素的。所以,线上和线下评估不对等。

如何解决AUC提升和业务指标不一致的问题
好在实际的工作中,常常是模型迭代的auc比较,即新模型比老模型auc高,代表新模型对正负样本的排序能力比老模型好。理论上,这个时候上线abtest,应该能看到ctr之类的线上指标增长。
实际上经常会发生不一致,首先,我们得排除一些低级错误:

排除bug,线上线下模型predict的结果要符合预期。
谨防样本穿越。比如样本中有时间序类的特征,但train、test的数据切分没有考虑时间因子,则容易造成穿越。

参考:
如何解决离线auc和线上点击率不一致的问题?
线下AUC提升为什么不能带来线上效果提升?–测试和评估的一些真相

4 有没有更好的指标替代AUC?

AUC计算是基于模型对全集样本的的排序能力,而真实线上场景,往往只考虑一个用户一个session下的排序关系。这里的gap往往导致一些问题。

线下AUC提升为什么不能带来线上效果提升?–测试和评估的一些真相
主要包括两点:
1 线上会出现新样本,在线下没有见过,造成AUC不足。这部分更多是采用online learning的方式去缓解,AUC本身可改进的不多。
2 线上的排序发生在一个用户的session下,而线下计算全集AUC,即把user1点击的正样本排序高于user2未点击的负样本是没有实际意义的,但线下auc计算的时候考虑了它。

阿里在论文:Deep Interest Network for Click-Through Rate Prediction中提出了group auc来处理上述问题。公式如下:
在这里插入图片描述
即以user为group,在对user的impression做加权平均。私以为,只是对用户做group还不够,应该是基于session去做group。

最后,AUC这个问题是在模型优化到一定程度才需要考虑的。大部分情况下,如果模型的auc有大幅提升,线上效果一般是一致的。如果不一致,请先从产品形态去思考有没有坑。

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值