source:为什么搜索与推荐场景用AUC评价模型好坏? (qq.com)
1.auc值与模型预测值的大小无关, 只关注排序效果, 所以特别适合排序业务
2.auc值一个通俗易懂的解释: 例如0.7的AUC可以理解为, 给定一个正样本和一个负样本,在70%的情况下,模型对正样本的打分高于对负样本的打分。
3.AUC对均匀正负样本采样不敏感
比如在点击率预估中,处于计算资源的考虑,有时候会对负样本做负采样,但由于采样完后并不影响正负样本的顺序分布。
即假设采样是随机的,采样完成后,给定一条正样本,模型预测为score1,由于采样随机,则大于score1的负样本和小于score1的负样本的比例不会发生变化。
但如果采样不是均匀的,比如采用word2vec的negative sample,其负样本更偏向于从热门样本中采样,则会发现auc值发生剧烈变化。
4.通过CTR模型和转化率预测模型的对比, 分析AUC值本身有何意义
我们在实际业务中,常常会发现点击率模型的auc要低于购买转化率模型的auc。正如前文所提,AUC代表模型预估样本之间的排序关系,即正负样本之间预测的gap越大,auc越大。
通常,点击行为的成本要低于购买行为,从业务上理解,点击率模型中正负样本的差别要小于购买力模型,即购买转化模型的正样本通常更容易被预测准。
5.歧义样本的存在导致AUC值有理论上限
歧义样本的存在(即特征集合完全一致,但label却不同)导致AUC有上限, 一般不能达到1.
因此,当我们拿到样本数据时,第一步应该看看有多少样本是特征重复,但label不同,这部分的比率越大,代表其“必须犯的错误”越多。学术上称它们为Bayes Error Rate,也可以从不可优化的角度去理解。
我们花了大量精力做的特征工程,很大程度上在缓解这个问题。当增加一个特征时,观察下此时减少样本中的BER,可作为特征构建的一个参考指标。
6.AUC与线上业务指标的宏观关系
AUC毕竟是线下离线评估指标,与线上真实业务指标有差别。线下线上数据差别越小, 或线下训练集数据越充分, 则AUC的参考性越高。
比如上文提到的点击率模型和购买转化率模型,虽然购买转化率模型的AUC会高于点击率模型,但往往都是点击率模型更容易做,线上效果更好。
购买决策比点击决策过程长、成本重,且用户购买决策受很多场外因素影响,比如预算不够、在别的平台找到更便宜的了、知乎上看了评测觉得不好等等原因,这部分信息无法收集到,导致最终样本包含的信息缺少较大,模型的离线AUC与线上业务指标差异变大。
总结起来,样本数据包含的信息越接近线上,则离线指标与线上指标gap越小。而决策链路越长,信息丢失就越多,则更难做到线下线上一致。
7.AUC提升和业务指标不一致
好在实际的工作中,常常是模型迭代的auc比较,即新模型比老模型auc高,代表新模型对正负样本的排序能力比老模型好。理论上,这个时候上线abtest,应该能看到ctr之类的线上指标增长。
实际上经常会发生不一致,首先,我们得排除一些低级错误:
1. 排除bug,线上线下模型predict的结果要符合预期。
2. 谨防样本穿越。比如样本中有时间序类的特征,但train、test的数据切分没有考虑时间因子,则容易造成穿越。
更多细节请看参考[5]和[3]
8.AUC计算逻辑不足与改进
AUC计算是基于模型对全集样本的的排序能力,而真实线上场景,往往只考虑一个用户一个session下的排序关系。这里的gap往往导致一些问题。正如参考[3]中的举例的几个case,比较典型。主要包括两点:
- 线上会出现新样本,在线下没有见过,造成AUC不足。这部分更多是采用online learning的方式去缓解,AUC本身可改进的不多。
- 线上的排序发生在一个用户的session下,而线下计算全集AUC,即把user1点击的正样本排序高于user2未点击的负样本是没有实际意义的,但线下auc计算的时候考虑了它。
阿里在论文:Deep Interest Network for Click-Through Rate Prediction中提出了group auc来处理上述问题。
即以user为group,再以user的impression为权重, 对AUC做加权平均。私以为,只是对用户做group还不够,应该是基于session去做group。
最后,AUC这个问题是在模型优化到一定程度才需要考虑的。大部分情况下,如果模型的auc有大幅提升,线上效果一般是一致的。如果不一致,请先从产品形态去思考有没有坑。
参考文献
[1]如何理解机器学习和统计中的AUC?
https://www.zhihu.com/question/39840928
[2] 多高的AUC才算高:
https://zhuanlan.zhihu.com/p/24217322
[3] 线下AUC提升为什么不能带来线上效果提升?--测试和评估的一些真相:
https://zhuanlan.zhihu.com/p/35459467
[4] 精确率、召回率、F1 值、ROC、AUC 各自的优缺点是什么?
https://www.zhihu.com/question/30643044
[5] 如何解决离线auc和线上点击率不一致的问题?
https://www.zhihu.com/question/305823078/answer/552640544