AUC,具体计算方法这里不列了,这里主要说一下对AUC的一些理解,公式参见机器学习常见面试题目

为什么AUC这么受欢迎呢?

首先是它反应的是模型的排序能力,它不关心具体的打分Score的绝对值,只关心排序的相对顺序,比如AUC是0.75,我们说随机的选一个正样本和一个负样本,模型打分正样本高于负样本的概率是0.75。

另外,他对采样不敏感,在样本分布不变的情况下,正样本占比10%和占比50%计算的AUC结果差异不大,怎么解释呢?还是前面的例子,随机拿一个正样本,模型预估为score1,因为是随机采样,小于score1的负样本和大于score1的负样本比例不会变化,反之也是。

所以AUC反应的是模型预估样本的排序关系,正负样本的gap越大,AUC越大,如果正负样本完全分开,且特征充分,那么理论上AUC能达到1.0,但是这也仅仅是理想情况,那么我们为什正常线上AUC只有0.7呢?是因为在线上特征集合完全一致,但label不同的数据,学术上称作Bayes Error Rate。为什么要做很多特征工程的事情,就是因为我们想通过在这些数据集合中找到一些特征能够区分开这些样本。

现在有个问题,点击和转化/购买两个行为,一般谁的AUC更高?在AUC相同的情况下,那个的线上表现更好?

首先正常情况下点击的AUC比转化/购买的AUC低,原因是点击的成本更低,或者说决策成本更低,决策路径更短,看懂了稍微有点兴趣就会点击,可能是因为标题中一个词很吸引人或者刚好听朋友说过相关。但是购买/转化正好相反,需要付出的成本更大,决策路径更长,所以更能反应用户的真实兴趣。用前面的话说就是GAP更大,所以AUC更高。

但是相同AUC,点击会比转化/购买表现更好,首先点击的数据量更充足,模型训练更充分。另外转化/购买受场外印象因素较多,比如别人的建议,自己的预算,网上评测等,这些都是没有办法表示在模型中的。所以决策链路长,就会导致中间信息丢失的多,而线上可能更线上AUC表现越不好。

那么如果一个AUC高的模型上到线上反而表现不如老的AUC低的怎么办,首先第一个防止特征穿越,比如我们用请求时间序列类特征,或者用户的当日点击数之类,可以对比新老模型特征,一般问题出在特征上的可能性最大。

另外线上我们排序的时候,首先会出现一些训练样本中没有见过的新样本。另外线上预估只考虑当前用户的召回list中的顺序问题,而训练的时候我们是整个训练样本的顺序,所以会出现点击率很高的可能给任何用户预估都会score很高,但是有部分用户可能不喜欢甚至讨厌,对于这种情况阿里论文中曾经设计过一个group AUC,意思是只考虑每个用户的排序AUC的均值,公式如下。
G A U C = ∑ i = 1 n w i ⋅ A U C i ∑ i = 1 n w i = ∑ i = 1 n i m p r e s s i o n i ⋅ A U C i ∑ i = 1 n i m p r e s s i o n i GAUC = \frac{\sum_{i=1}^n w_i \cdot AUC_i}{\sum_{i=1}^n w_i} = \frac{\sum_{i=1}^n impression_i \cdot AUC_i}{\sum_{i=1}^n impression_i} GAUC=i=1nwii=1nwiAUCi=i=1nimpressionii=1nimpressioniAUCi
其中 i m p r e s s i o n i impression_i impressioni 表示第 i 个用户的展示次数, A U C i AUC_i AUCi 表示第i个用户的 AUC,有时候也称作 u A U C uAUC uAUC

参考:

  1. 机器学习中的评估指标