推荐算法的指标

推荐算法的指标

三种指标:accuracy@k MAP MRR

Top-k准确率计算预测结果中概率最大的前K个结果包含正确标签的占比

举例:存在一个有序数组Array = [0.1, 0.05, 0.1, 0.2, 0.35, 0.01, 0.03, 0.05, 0.01, 0.1 ],标签为3的为正例,最大概率0.35对应的标签为4,因此按Top-1={4}则预测失败;Top-2={3,4}则预测正确。

MRR-推荐算法评价指标

平均倒数排名(Mean Reciprocal Rank, MRR)是一个国际上通用的对搜索算法进行评价的机制。

描述:在结果列表中,第一个结果匹配,分数为1,第二个匹配分数为0.5,第n个匹配分数为1/n,如果没有匹配的句子分数为0。最终的分数为所有得分之和,再求平均。

该指标反应的是我们找到的这些item是否摆在用户更明显的位置,强调位置关系,顺序性。

就是在一个item中,位置越靠前,分数越大;越靠后,分数越小;如果没有匹配上,则分数为0.

mAPMean Average Precision,平均精确率的平均)--目标检测中的评价指标,

精确率Precision(查准率):预测正确的百分比。
召回率Recall(查全率):前K个预测中找到80%的正例。

交并比IoUIntersection over union)是两个边界之间的重叠,使用它来度量预测边界和ground truth(实际对象边界)的重叠程度。

mAP是什么:多标签图像分类任务中图片的标签不止一个,因此评价不能用普通单标签图像分类的标准,即mean accuracy,该任务采用的是和信息检索中类似的方法—mAP(mean Average Precision)。

计算过程:

1、保存所有样本的confidence score:首先用训练好的模型得到所有测试样本的confidence score
2、对confidence score进行排序
3、计算precision和recall:这里用到Top-k的概念,选定的样本越多(k越趋近与样本数),recall会越来越高,precision会越来越低。
4、计算AP:参考PASCAL VOC CHALLENGE的计算方法。首先设定一组阈值如[0, 0.1, 0.2, …, 1],然后对于recall大于每一个阈值(比如recall>0.3),都会得到一个对应的最大precision,这样就会计算出11个precision。AP即为这11个precision的平均值。这种方法叫做11-point interpolated average precision。

PASCAL VOC CHALLENGE经过变化后,更换了计算方法。新的计算方法假设这N个样本中有M个正例,那么就会得到M个recall值(1/M,2/M,…,M/M),对于每个recall值 r ,可以计算出对应的(r'>r)的最大precision,然后对这M个precision值取平均值,即为最后的AP值。

AP衡量的是学出来的模型在给定类别上的好坏,而mAP衡量的是学出的模型在所有类别上的好坏,得到AP后mAP的计算就变得很简单了,就是取所有AP的平均值。

BPR算法:

BPR即Bayesian Personalized Ranking,中文名称为贝叶斯个性化排序,是当下推荐系统中常用的一种推荐算法。BPR主要采用用户的隐式反馈(如点击、收藏等),通过对问题进行贝叶斯分析得到的最大后验概率来对item进行排序,进而产生推荐。

BPR算法的基本思想是利用最大化后验概率来确定所有item的正确个性化排序。

NDCG指标,Normalized Discounted Cumulative Gain(归一化折损累计增益),NDCG用来评估排序结果

G-CG-DCG-NDCG是一个递进的过程:
1、Gain: 表示一个列表中所有item的相关性分数。
2、Cumulative Gain: 表示对K个item的Gain进行累加。CG只是单纯累加相关性,不考虑位置信息。
3、Discounted Cumulative Gain: 考虑排序顺序的因素,使得排名靠前的item增益更高,对排名靠后的item进行折损。DCG的思想是:list中item的顺序很重要,不同位置的贡献不同,一般来说,排在前面的item影响更大,排在后面的item影响较小。相对CG来说,DCG使排在前面的item增加其影响,排在后面的item减弱其影响。
4、NDCG(Normalized DCG): 归一化折损累计增益。在NDCG之前,先了解一些IDGC(ideal DCG)--理想的DCG,IDCG的依据是:是根据rel(i)降序排列,即排列到最好状态。算出最好排列的DCG,就是IDCG。IDCG=最好排列的DCG。NDGC使用DCG/IDCG来表示,这样的话,NDCG就是一个相对值,那么不同query之间就可以通过NDCG值进行比较评估。

posted @   菜鸟C_5022  阅读(675)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示