AUC

最近我们在尝试深度学习模型,离线的auc已经高于基线,上线后ctr表现也优于基线,但是基于线上实际反馈的打点日志,深度学习的模型的auc要明显低于基线。但以前的模型迭代auc是可以和线上ctr对应的。

这个问题比较奇怪,一般情况下,因为线上样本存在bias补充:模型训练一般是经过采样的,但是真实的线上环境样本并不会进行采样,所以就会导致样本存在bias),将新模型同时去测试基线流量和实验流量时,实验流量的auc会略高于基线流量。

可以这样理解,新的模型的增量是带来了一些新的好样本,但是如果直接去评估基线的数据,由于推荐或排序的数据是动态反馈的,这部分的好样本就没有了,auc会偏低。但我们的实验情况恰恰是相反的。

分析gauc指标

补充:gauc指的是group auc,可以将单个用户看成一个群体,也可以对用户进行分群,统计每个群体内的auc指标

第一反应是auc这个指标失真了,由于排序是个性化的,不同用户之间的排序结果不可比,不同用户的负样本的得分可能比正样本高,导致全局AUC指标失真

举个例子:假设有两个用户A和B,每个用户都有10个商品,10个商品中有5个是正样本,我们分别用A+,A-,B+,B-来表示两个用户的正样本和负样本。也就是说,20个商品中有10个是正样本。假设模型预测的结果大小排序依次为A+,A-,B+,B-。如果把两个用户的结果混起来看,AUC并不是很高,因为有5个正样本排在了后面,但是分开看的话,每个用户的正样本都排在了负样本之前,AUC应该是1。显然,分开看更容易体现模型的效果,这样消除了用户本身的差异(补充:这段描述其实也是AUC和GAUC的区别,GAUC相对来讲能够能加准确的说明模型的效果,关于AUC和GAUC可以参考:最浅显易懂的图解AUC和GAUC)。

考虑到用户的每个样本之间的差异,一般将样本权重加到auc系数上去,这样计算更为合理。前面这种情况发生的前提是:两个用户的排序预测结果相互干扰,也就是分数越相对集中,正负样本在不同用户之间差异越大,导致线上的排序效果看似降低,但每个用户的auc计算不受干扰,各项线上指标并未降低。

我们采用了阿里提出来的gauc定义:

补充:其中为权重,一般可以设为每个用户view的次数,或click的次数,而且一般计算时,会过滤掉单个用户全是正样本或负样本的情况

再统计后的指标如下:

图片

我们发现了gauc后,diff变小了,但是还是基线高,说明gauc和ctr也不一致。

用户分数分布

图片

可以看到,auc分布中,实验无点击的曝光用户数量增加,在auc[0,0.1]区间基线auc较差。考虑到用户auc为0的用户数量,曝光并不多,例如113(基线)为0.4%,139(实验)为(1.2%),曝光增加1.565%,说明除了曝光,在有用户行为的样本中用户更愿意曝光。

补充:0.4%、1.2%为有曝光无点击的用户占比

接下来把这种样本去掉,考虑有点击行为的用户

图片

我们看到,用户在[0.6,1](补充:其实[0.5,0.6]这个区间也比较接近)这个区间,实验对比基线用户auc预测更贴近真实label分布。我们认为在用户auc=0的用户中图墙占比更多,实验比基线略高。从有行为反馈的用户中,auc在高分段实验更有优势。

用户auc的计算说明

图片

上图中,我们选取了5个用户,他们在基线和实验的单用户auc是接近的,但是在两两用户的样本组合后,实验和基线的auc差别很大。说明实验和基线的模型分数分布差距很大,单独看gauc也不能说明问题。

抽样观察每个用户一个浏览路径下的商品预测分数,我们发现基线和实验的斜率是不一样的,也就是更容易发生上面说明的情况。

图片

我们发现基线的模型,在分数预估上两级分化明显。

结论

由于基线是大规模离散模型,特征以0和1为主,会导致个性化命中和不命中的score分数diff很大,而深度模型是基于embedding做的,在计算个性化上,分数变化会更均匀,导致更多相近的难以区分的样本出现在样本集里,导致二者的样本分布发生剧烈变化。导致auc不可比,gauc只能参考。

在模型发生剧烈变化时,会带来很多意想不到的问题,深入分析后能对模型和数据有更好的认识。

QA

Q:什么是“auc分布”和“单用户auc”,一个模型只有一个auc,auc是评估整个模型的,所以也没有所谓的的单用户auc吧?

A:单用户auc是指针对这个用户的展现点击计算的auc,可以了解一下gauc

Q:意思是深度学习模型选出的样本是更相似的(预估难度更高),而基线模型经常选出差异度很大的样本(更容易预估准),而离线预估两个模型都是同一个样本集进行所以有对比性,线上ABTest模型给的样本集不一样所以auc没有对比性?

A:这个解释应该更合理,abtest时,新模型召回的广告ctr更高,模型对这些广告的区分难度增大

Q:正常来说,一个用户没有点击行为的话,相当于只有负样本,没有正样本,针对这种用户是没法计算gauc的吧。

A:猜测,可能就是以0.5代替了

Q:统计gauc时,为什么会有一组除去纯曝光的值?做了什么?为什么呢

A:不是去掉所有曝光,是去掉所有「只有曝光但无点击的用户」。去掉的是这一类用户。

QA:新模型下低auc用户实际ctr明显高于base模型的低auc用户,说明新模型对这部分用户更偏向于选择高质量的ad曝光。我理解可能是新模型在自己pctr高分段样本中的AUC可能暂时比不过base模型在自己的高分段样本中的AUC,但新模型的打分确实更有能力挑选出质量更高的ad。在线上系统中,实际AUC的值我感觉里面不可控因素太多了,特别是在模型迭代初期,可能会有很多让人混淆的现象出现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值