AUC Optimization

AUC是一种常见的评价指标,可以用来评估排序的质量,在工业界的应用非常广泛。

最近,跟一些业界的朋友聊天,他们都很关心能不能在训练模型的时候直接优化AUC,其实在学术界是有不少相关的研究的,所以在这里整理一下。

首先,AUC是如下的形式:

即在预测结果中,正类样本的预测值高于负类样本的预测值的比例。

但是呢,AUC本身是不连续不可导的,所以难以直接优化,主要原因是因为这一项:

所以,想要优化AUC,就要用一个连续可导的替代函数来将这一项替换掉。即,换成如下的形式:

其实采用替代损失函数是很常见的操作,最普通的,比如说,分类任务的accuracy,其实是0/1 loss,但0/1 loss很难直接优化,所以会采用其他的,比如hing loss作为替代。

那优化AUC常用的替代损失函数有哪些呢,比如说下面这些:

但是呢,我们也不能随便替换,因为需要证明替代损失函数的一致性。所谓的一致性,就是说优化该替代损失函数的期望风险是否收敛到贝叶斯风险。只有满足一致性,我们才可以替换。高老师的这篇文章On the Consistency of AUC Pairwise Optimization就证明了哪些替代损失函数是满足一致性的。

通过替换不同的损失函数,可以得到不同的目标式,从而进行求解。关于怎么求解AUC的文章也有很多,比如说:

One-pass AUC optimizationAn adaptive gradient method for online auc maximizationMBA: Mini-Batch AUC Optimization是采用PSL(Pairwise Square Loss)作为替代损失函数。

Online AUC maximization和Confidence weighted bipartite ranking是采用PHL(Pairwise Hinge Loss)作为替代损失函数。

此外,在TFlearn中,也实现了AUC优化,这是官方doc,它是根据这篇文章Optimizing Classifier Performance via an Approximation to the Wilcoxon-Mann-Whitney Statistic

发布于 2019-07-18

文章被以下专栏收录