推荐评价指标之AUC

时间:2021-07-08 20:37:01

定义

AUC的英文名称为Area under the ROC curve,即为ROC曲线下的面积。ROC曲线一般被用来评价某种分类器的分类效果。Steffen Rendle在他的经典文章BPR1中就利用AUC来评价BPR算法的预测效果。

公式

在BPR文章的评价方法中,作者使用了留一法(Leave one out)评价方法:即对每个用户,从他的评分记录中随机抽取一个评分记录放入测试集,剩下的评分记录作为训练集。然后基于训练集学习到模型,并在测试集上进行评价。评价指标平均AUC(针对所有用户的均值)公式为:
AUC=1|U|u1|E(u)|(i,j)E(u)δ(x^ui>x^uj)
其中对于每个用户的评价Pair(评价组)为:
E(u):={(i,j)|(u,i)Stest(u,j)(StestStrain)}
对于留一方法而言,每个用户的评价组数为1乘以既不在训练集又不在测试集中的产品个数。 δ(b) 是一个指示函数,当 b 为真时函数值为1否则为0。当某算法预测的 x^ui 大于 x^uj 时,记为1,否则为0。
显然更高的AUC表示更好的预测质量,随机猜测方法的AUC为0.5,最理想的预测方法的AUC为1。

应用举例

假设我们要测试某种推荐方法在一个用户商品交易记录上的推荐质量,评测指标使用AUC。

用户ID 商品ID
1 2
1 3
1 4
2 1
2 2
2 5

首先将其划分为训练集和测试集
训练集

用户ID 商品ID
1 2
1 3
2 1
2 2

测试集

用户ID 商品ID
1 4
2 5

预测的时候我们是基于训练集中的4条记录预测剩余6条记录中用户与商品发生交互作用的可能性。若某预测方法 S 得到剩余6条记录产生的分数值分别为 x^1,1=0.4 , x^1,4=0.6 , x^1,5=0.7 , x^2,3=0.4 , x^2,4=0.6 , x^2,5=0.7 ,那么有:
对于用户1:
δ(x^1,4>x^1,1)=1
δ(x^1,4<x^1,5)=0
对于用户2:
δ(x^2,5>x^2,3)=1
δ(x^2,5>x^2,4)=1
则预测算法 S 的AUC值为
AUC(S)=1+0+1+14=0.75


  1. Rendle S, Freudenthaler C, Gantner Z, et al. BPR: Bayesian personalized ranking from implicit feedback[C]//Proceedings of the twenty-fifth conference on uncertainty in artificial intelligence. AUAI Press, 2009: 452-461.