Evaluating Recommendation Systems [25]将准确率分成3类:①预测评分的准确率 ②预测usage的准确率 ③排序的准确率
—— Sorry,公式就不贴出了,可以Google之
①预测评分的准确率
②预测usage的准确率
“usage”的含义其实比字面上的要抽象。可以把它想成二分类(0-1分类)问题:一个物品用户用(1)还是不用(0)?一个邮件是spam(1)或者不是(0)。通常将数量少的一类标为1,多的一类标为0。二分类中最常见的两个指标是Recall(又叫True Positive Rate)和Precision。它们的侧重点不同:Recall衡量有多少1类的被正确区分出来了;Precision则衡量预测是1类的物品里有多少真的是1。对于同一个的算法,往往不同的参数设置会产生不同的Precision和Recall:spam分类问题中的shreshold,top-N推荐里的推荐列表长度N。因此往往根据应用具体选择使用Recall 或者Recall。但若要比较一般情况下两个algorithm的performance,或者不知道该选precision还是recall时,可以使用F-score,又叫F-measure。
其实还有一个指标叫False Positive Rate(FPR)——衡量预测是0类的物品里有多少真的是0,通常与Recall成对使用。若把不同参数下的Recall和FPR画出来,我们得到ROC曲线。同Precision和Recall一样,由于Recall和FPR侧重不同的方面,因此根据具体的应用来选择使用哪个。若要像F-score那样一般化地比较两个算法的优劣,可以计算两条ROC曲线下的面积(AUC),AUC的一个重要统计性质是:AUC equals the probability of a classifier ranking a randomly chosen positive sample higher than a randomly chosen negative one。但值得注意的是:AUC求的是一个分类器的期望(平均)performance,一个AUC小的分类器在特定参数下,performance可能反而比AUC大的好。Wiki上也指出AUC近来受到了质疑。
③排序的准确率
[25]称其为Utility-based ranking。排序的目标不是预测用户会给物品打多少分,也不是选出用户会use的物品。而是要将物品按照用户的喜好从大到小排序。这样的ranking假设一个推荐列表的utility是由其中每个individual item的utility叠加的。最常见的做法是:每个item的utility随着它在推荐列表的位置递减(排名越靠后,utility越小)。根据递减的程度,有两种指标R-Score和NDCG(Normalized Cumulative Discounted Gain)。其中R-Score假设用户只会看推荐列表中前几个items,因此它按位置指数递减一个item的utility。而NDCG则假设用户会看推荐列表的大部分内容,因此按位置以log形式递减一个item的utility。NDCG被广泛地应用于搜索引擎中,衡量检索内容的相关行[26]。更novel的有Yahoo! Learning to Rank Challenge使用的ERR。它的基本假设则是“用户在浏览相关的内容后更趋向于不再继续浏览”。
[25] Evaluating Recommendation Systems
[26] Yahoo! Learning to Rank Challenge Overview