LTR(Learning To Rank)学习排序是一种监督学习(SupervisedLearning)的排序方法,现已经广泛应用于信息索引,内容推荐,自然语言处理等多个领域。以推荐系统为例,推荐一般使用多个子策略,但哪个策略更好?每个策略选出多少候选集?每个候选集呈现的顺序如何排序?这些问题只能根据经验进行选择,随着策略越来越多,上述问题对推荐效果的影响会越来越大。于是乎,人们很自然的想到了用机器学习(Machine Learning)了解决上述问题,至此LTR就出世和大家见面了。发展到现在,LTR已经形成较为成熟的理论基础,并且可以解决数据稀疏、过拟合等多种问题,在实际应用中取得较好的效果。
做过LTR的人都知道AUC是机器学习中非常重要的评估指标,AUC的提升会带来线上点击率的提升,其值越高越好,最大值为1。那么AUC到底是个什么东东呢?为什么AUC的提升就一定会带来点击率的提升?本文就带大家一起了解下AUC的概念及其与线上点击率的关联。
一、AUC概念与计算方法
AUC是Area Under Curve的缩写,实际就是曲线下的面积。那么这条曲线是什么呢?AUC又要怎么求呢?别急,听我细细道来。
说了这么多,大家可能还不是很明白,到底AUC怎么计算呢?举个例子如下:
下表中有如下6条记录:
这里我们无法预知同为用户点击过的A和D两条记录到底谁的得分更应该高一些,也无法预知其余四条未点击的记录谁的得分应该更低一些。但是根据AUC的概念,A和D的得分应该高于其余四条记录中的任意一条。下面开始计算AUC的流程:
![](https://image.jiqizhixin.com/uploads/editor/06bb21aa-8037-4199-85ef-bc95ba6b72f0/3.png)
![](https://image.jiqizhixin.com/uploads/editor/9674bce9-1a71-4c05-8c30-683e8df85d55/4.png)
二、小样,穿个马甲就不认识你了?!
看过网上介绍AUC的同学一定都知道下面四个概念:
True negative(TN),称为真阴,表明实际是负样本预测成负样本的样本数 False positive(FP),称为假阳,表明实际是负样本预测成正样本的样本数 False negative(FN),称为假阴,表明实际是正样本预测成负样本的样本数 True positive(TP),称为真阳,表明实际是正样本预测成正样本的样本数
大家可能看的有点头晕,下面在用更通俗的语言描述下:
TN,预测是负样本,预测对了 FP,预测是正样本,预测错了 FN,预测是负样本,预测错了 TP,预测是正样本,预测对了
前文已经说了AUC实际是曲线下的面积,那么这条曲线是什么呢?有了上述概念我们就可以画出这条曲线了,其横坐标是False Positive Rate(假阳率,FPR),纵坐标是True Positive Rate(真阳率,TPR),那这两个指标怎么算呢?公式如下:
到现在为止,基本画AUC曲线所需要了解的概念都描述了,大家晕了吗?反正我是晕了,这和上一节介绍的计算AUC的方法是一样的吗?
答案直接而有坚定:是!!!
那么该如何理解呢?说到这里就不得不提阀值的概念。对于某个二分类分类器来说,涉及最多的阀值就是0.5了,对于每一次预测大于0.5的认为是正样本,小于0.5的认为是负样本。那么AUC曲线中阀值是多少呢?这里的阈值很多,我们可以把下述曲线理解成一个个小长方形,每一个长方形对应于每一个阀值。下面描述如何选取阀值与画出这些小长方形。
![](https://image.jiqizhixin.com/uploads/editor/266ef11c-59b3-4c66-a92f-9ada16633c7a/7.png)
![](https://image.jiqizhixin.com/uploads/editor/0eece87f-2ba2-406f-8b79-a4f73cd08f2a/8.png)
![](https://image.jiqizhixin.com/uploads/editor/8dc8e8d7-523c-4842-9f48-9f74b15e5fcc/9.png)
![](https://image.jiqizhixin.com/uploads/editor/f4b6cd44-0c69-4c1e-9f52-a97ee92d536d/10.png)
![](https://image.jiqizhixin.com/uploads/editor/6baa06ac-ec71-42cf-87fe-a30f4a2f0bf0/11.png)
![](https://image.jiqizhixin.com/uploads/editor/fad85cbf-03d9-45d2-9035-f8aacab628a9/12.png)
![](https://image.jiqizhixin.com/uploads/editor/a980ced1-29fd-42e3-9bfd-6d0870883051/13.png)
![](https://image.jiqizhixin.com/uploads/editor/c2990bc6-5fc5-4533-891a-2ca83c80ff32/14.png)
![](https://image.jiqizhixin.com/uploads/editor/ff192de1-b352-4fb6-afa9-6ec944b6ab2b/15.png)
![](https://image.jiqizhixin.com/uploads/editor/755909b5-dc7e-4fbc-809c-ec508c52bcef/16.png)
![](https://image.jiqizhixin.com/uploads/editor/a1ef7902-b729-40b8-905c-a9c69233a394/17.png)
![](https://image.jiqizhixin.com/uploads/editor/5a534852-65fc-487d-a165-6686a7594404/18.png)
![](https://image.jiqizhixin.com/uploads/editor/1c36691f-0718-45f6-951c-b0a7f64a9381/19.png)
![](https://image.jiqizhixin.com/uploads/editor/abf529ff-451b-43e9-878b-bd15d5e97a85/20.png)
![](https://image.jiqizhixin.com/uploads/editor/0bd8efa9-c5ab-459e-8e8c-34eb826db2d8/21.png)
![](https://image.jiqizhixin.com/uploads/editor/7573f1e4-6a75-484b-ac44-5f23e14e0af7/22.png)
![](https://image.jiqizhixin.com/uploads/editor/f26fa90d-0beb-427a-a1b8-33dca97e93f2/23.png)
![](https://image.jiqizhixin.com/uploads/editor/23713f2b-1d3f-4ebe-977c-84d02795a2cb/24.png)
对正负样本预测分数进行升序排列,依次选取正样本的分数作为阀值,最后得到的结果与上述表达式一致。
至此,我们已经详细描述了如何计算AUC,最后补上AUC的一般判断标准
0.5~0.7:效果较低
0.7~0.9:效果不错,可用于上线
0.9~1.0:效果超级好,但是一般情形下很难达到
三、AUC与线上点击率的关联
晚上加班回家洗完澡,打开**头条,翻到推荐页面,映入眼帘的几条推荐内容都是我特别感兴趣的,好了不往下面翻了,把当前页面的看完再说;翻着翻着,没啥意思了,再看看时间不早了,算了睡吧明天还要早起呢。不看了睡觉吧 zzz。
通过上述可以看出大家对于推荐栏靠前的内容更容易点击,当然不排除有些人喜欢先翻个几下子在看的,如果这样那么LTR可能反而会降低客户体验,所以LTR优化时我们是不考虑这部分用户。LTR就是对于某一个特定用户,根据模型对召回的不同item的预测分数进行降序排列,如果AUC足够高,则根据预测分数进行排序的结果与用户真实兴趣排序的结果相符,这也是为什么我们要提高AUC的原因。将用户感兴趣的item优先展示,可以提高用户的点击数同时降低入屏但是不点击的数目,从而提高点击率,产生较好的用户体验。
四、AUC真的好吗?
通过上面我们可以看出,AUC正比于线上点击率。现在市面上各种app都在追求用户流量,高质量的推荐内容可以获得更好的用户体验从而获得更多的用户流量。所以线下训练模型是一般追求AUC的提升,但AUC高就一定好吗,请看下面两组数据对比:
第一组:
根据之前介绍的AUC计算方式可以得到这一组数据的AUC为
根据之前介绍的AUC计算方式可以得到这一组数据的AUC为
真的吗?
真的是这样吗?
对于第一组数据,表中分别包含甲乙两个用户,对于这两个用户而言,预测分数大小关系完全符合用户点击行为与否,故模型在这两个用户上已不需要优化。对于第二组数据,丁用户各条记录的预测分数大小关系不完全符合用户点击行为(有点击行为的E预测分数低于无点击行为的F),故第二组数据对应的模型还需要优化。对比之前AUC,第二组的模型优于第一组,这里矛盾到底在哪里呢?分析如下:
上面说明了AUC作为LTR的指标的局限性,那么该如何选取呢。还是以表1为例,单独看甲乙两个用户,用户甲的AUC是1,用户乙的AUC也是1,则总体AUC肯定是1。这里阿里巴巴提出了GAUC的概念,g是group的缩写,顾名思义就是分组AUC,分组的依据是用户名,根据不同的用户名分组得到不同用户的AUC,然后在加权平均得到最终的GAUC。这样就避免了不同用户之间的比较,消除了用户间差异。
![](https://image.jiqizhixin.com/uploads/editor/c266a3b2-3af1-46e7-bb75-75660b3090f3/30.png)
![](https://image.jiqizhixin.com/uploads/editor/fe6badba-db2b-498d-a896-91e064f51387/31.png)
![](https://image.jiqizhixin.com/uploads/editor/7701f5a6-0a88-408f-96ed-da81a84b6c39/32.png)
![](https://image.jiqizhixin.com/uploads/editor/3edc8b97-afb7-4fc8-89f5-b5c95517ee37/33.png)
![](https://image.jiqizhixin.com/uploads/editor/5898c509-f5c1-4774-a30e-89a256ce3b09/34.png)
![](https://image.jiqizhixin.com/uploads/editor/12d2f759-96e4-4c45-b39e-4e392e5296f2/35.png)
可以看出总体点击率是不同用户的根据展示数进行加权得到的,所以不同用户根据展示数加权得到GAUC是合理的。
总结
本文首先介绍了AUC的基本概念和计算方法,同时对比了两种计算AUC的方法,其不过是最终表达式的两种展现形式。接着描述了AUC与线上点击率的关联。最后补充了AUC的不足同时引出了GAUC,用以消除用户间的差异,同时提出了一种新的计算GAUC的方法。
关于作者
徐祥:达观数据智能推荐算法工程师,负责达观数据智能推荐算法中模型的优化,对策略召回的结果进行重排序。对特征工程,模型优化有深入研究。