【推荐系统】常用评价指标NDCG、HR、Recall、MRR解析
文章目录
- 【推荐系统】常用评价指标NDCG、HR、Recall、MRR解析
- 1. 准备工作
- 2. 计算这些指标 (@5)
- 2.1 Accuracy(准确率)
- 2.2 Recall(召回率、查全率)
- 2.3 Precision(精确率、查准率)
- 2.4 F1 score(精确率与召回率的调和均值)
- 2.5 HR (命中率(Hits Ratio))
- 2.6 MRR (平均倒数排名(Mean Reciprocal Rank))
- 2.7 NDCG(归一化折损累计增益(Normalized Discounted Cumulative Gain))
- 2.7.1 CG (累计增益 Cumulative Gain)
- 2.7.2 DCG(折损累计增益 Discounted cumulative gain)
- 2.7.3 NDCG (归一化折损累计增益 Normalized Discounted Cumulative Gain)
- 2.7.4 当针对用户接下来要访问的单个物品时,NDCG定义如下
- 2.8 MAP(平均精度均值(Mean Average Precision))
- 参考
1. 准备工作
本文将探讨 Accuracy、Recall、Precision、HR、F1 score、MAP、MRR、NDCG 等指标。
-
混淆矩阵需要用到。
- 简单记忆:
- 阳性(Positive)代表了预测为真,阴性(Negative)代表了预测为假;
- True代表真实值与预测值匹配,False代表真实值与预测值不匹配。
- 简单记忆:
-
这里以@5为例,计算这些指标。
-
给出预测的、真实的用户将要交互的物品,下面进行计算。
- 真实的:[A, B, C, D, E]
- 预测的:[A, C, B, E, F]
2. 计算这些指标 (@5)
——————————————————————————————————
这里假设总样本为6个(A, B, C, D, E, F),则
- TP = 4(ABCE)
- TN = 0
- FP = 1(F)
- FN = 1(D)
2.1 Accuracy(准确率)
- 含义
- 预测正确的样本在所有样本中的比例。
- 在样本不平衡的情况下,不能作为很好的指标来衡量结果。
- 公式
- 计算:
- ACC = (4 + 0) / 6 = 0.67
2.2 Recall(召回率、查全率)
- 含义:
- 预测正确的正样本在所有正样本中所占的比例,即表示有多少比例的用户-物品交互记录包含在最终的预测列表中。
- 关注于用户感兴趣的物品(TP + FN 其实就是用户感兴趣的物品)
- 公式
- 计算
- Recall = 4 / (4 + 1) = 0.8
2.3 Precision(精确率、查准率)
- 含义
- 在全部预测为正的结果中,被预测正确的正样本所占的比例。
- 关注于要推荐的物品(TP + FP 其实就是要推荐的物品)
- 公式
- 计算
- Precision = 4 / (4 + 1) = 0.8
2.4 F1 score(精确率与召回率的调和均值)
召回率和精确率是一对矛盾的指标,当召回率高的时候,精确率一般很低;精确率高时,召回率一般很低。
-
因此便有了:精确率与召回率的调和均值 F1 score。
-
公式
-
计算
- F1 = 2 (0.8 * 0.8) / (0.8 + 0.8) = 0.8
2.5 HR (命中率(Hits Ratio))
- 含义
- 预测结果列表中预测正确的样本占所有样本的比例,即用户想要的项目有没有推荐到,强调预测的“准确性”。
- 其实是针对于用户下一阶段只交互一个物品。
- 公式
- N,表示用户总数量。
- hits(i),表示第 i 个用户要访问的物品是否在推荐列表中,是则为1,否则为0。
- 计算
- HR = 4 / 5 = 0.8 (要访问的有5个,成功预测了4个,因此为0.8)
- 针对 A 的话,HR = 1
- 针对 D 的话,HR = 0
2.6 MRR (平均倒数排名(Mean Reciprocal Rank))
- 含义
- 平均结果中的排序倒数,表示待推荐的项目是否放在了用户更显眼的位置,强调“顺序性”。
- 也是针对于用户下一时刻只交互一个物品。(这里以)
- 公式
- N,表示用户的总数。
- pi,表示第 i 个用户的真实访问值在推荐列表的位置,若推荐列表不存在该值,则pi->∞。
- 计算
- 针对 A 的话,MRR = 1 / 1 = 1.0
- 针对 B 的话,MRR = 1 / 3 = 0.33
2.7 NDCG(归一化折损累计增益(Normalized Discounted Cumulative Gain))
推荐系统通常为某用户返回一个 item 列表,假设列表长度为 K,这时可以用 NDCG@K 评价该排序列表与用户真实交互列表的差距。
2.7.1 CG (累计增益 Cumulative Gain)
考虑一个长度为K的列表,
r
e
l
i
rel_i
reli 代表 i 位置物品的相关度。(在推荐系统里就是0、1)
- 这个评价指标有一个问题,推荐的物品聚集在列表的尾部和头部得分一样,这不合适。
2.7.2 DCG(折损累计增益 Discounted cumulative gain)
DCG提出:如果有效结果在列表中排的较低的话,应该对列表的评分惩罚,惩罚和有效结果的排位有关。所以就加了衰减因子:
- 后一个公式广泛在工业界用。当得分是 0 / 1,即 r e l i ∈ { 0 , 1 } r e l_{i} \in\{0,1\} reli∈{0,1} 时,二者是等价的。
2.7.3 NDCG (归一化折损累计增益 Normalized Discounted Cumulative Gain)
DCG没有考虑到推荐列表和每个检索中真正有效结果(test items list)的个数,所以最后引入NDCG,就是标准化后的DCG。
- 其中 IDCG 是指 ideal DCG,即完美结果下的DCG。
2.7.4 当针对用户接下来要访问的单个物品时,NDCG定义如下
- 含义
- 表示归一化加入位置信息度量计算的前 p 个位置累计得到的效益。
- 公式
- N,表示用户的总数。
- pi,表示第 i 个用户的真实访问值在推荐列表的位置,若推荐列表不存在该值,则pi->∞。
2.8 MAP(平均精度均值(Mean Average Precision))
- Average Precision(AP):平均精确率,在召回率从0到1逐步提高的同时也要保证准确率比较高,AP值尽可能的大。
- 含义
- 用多个来衡量性能,多个类别AP的平均值。
- 公式
参考
【1】https://blog.csdn.net/qq_51392112/article/details/129169738
【2】https://blog.csdn.net/qq_41750911/article/details/124082415