TopK
TopK 指标衡量在模型打分的样本中,前 K 个结果里有多少是正样本。这是一个二值指标:
$$Top\text{-}K = \begin{cases} 1, & \text{如果前 } K \text{ 个结果中至少有一个相关项} \\ 0, & \text{否则} \end{cases}$$
优点是计算简单直观,缺点是没有考虑排序质量。
累积增益(CG)
累积增益是对 TopK 的改进,它考虑了相关性得分(如电影的一星到五星评分)的总和:
$$CG@K = \sum_{i=1}^{K} rel_i$$
其中 $rel_i$ 是第 $i$ 个结果的相关性得分。需要注意的是,CG 只能反映召回结果的整体质量,而不能反映排序的准确性。高 CG 值表明召回结果不错,但并不意味着算法的排序能力好。
折损累积增益(DCG)
DCG 通过在累加时引入基于位置的折扣,改进了 CG 的计算方式:
$$DCG@K = \sum_{i=1}^{K} \frac{rel_i}{\log_2(i+1)}$$
这个指标解决了排序优劣比较的问题,因为它对排在后面的结果施加了更大的惩罚。常用于搜索引擎和推荐系统的评估。
归一化折损累积增益(NDCG)
NDCG 是在 DCG 基础上,通过理想排序结果进行归一化的指标:
$$NDCG@K = \frac{DCG@K}{IDCG@K}$$
NDCG 在召回阶段被广泛使用,因为它既考虑了相关性得分,又考虑了排序位置,同时通过归一化使得不同查询之间的结果可以比较。取值范围在[0,1]之间,越接近1表示排序越接近理想情况。
命中率(HR)
命中率衡量的是 TopK 中正样本占整体正样本的比例:
$$HR@K = \frac{\sum_{i=1}^k{I(label=1)}}{\sum_{i=1}^nI(label=1)}$$
例如,如果总共有 500 个样本,在 Top 200 中召回了 400 个正样本,则 HIT@200 = 0.8。这个指标在工业界应用广泛,因为计算简单且易于理解。
平均互惠命中排序(ARHR)
ARHR 是命中率的加权版本,用于衡量物料被推荐的强度:
$$ARHR@K = \frac{\sum_{i=1}^k\frac{I(label=1)}{position_i}}{\sum_{i=1}^nI(label=1)}$$
其中 $position_i$ 是第 $i$ 个物料的排序位置。相比HR,它更关注正样本出现的位置。
平均精度(AP)
AP 将精确率视为召回率的函数,通过对 Precision 在 Recall 上进行积分,得到 Precision 的期望均值:
$$AP = \int_0^1 p(r) dr$$
全类平均精度(MAP)
MAP 是将 AP 推广到多个查询场景的指标:
$$MAP = \frac{\sum_{q=1}^Q AP(q)}{Q}$$
MAP在信息检索领域使用广泛,特别适合评估搜索引擎的性能。
半衰期效用指标(HL)
半衰期效用指标假设用户浏览商品的概率随着商品在推荐列表中的排序呈指数递减。这个指标衡量的是推荐系统对用户的实用性,通过比较用户真实评分和系统默认评分之间的差值来计算。
互惠排序(RR)
RR 计算的是第一个正确答案的排名的倒数:
$$RR = \frac{1}{\text{rank}_{\text{first}}}$$
平均互惠排序(MRR)
MRR 是多个查询的 RR 的均值,是国际上通用的搜索算法评估指标:
$$MRR = \frac{1}{Q} \sum_{i=1}^{Q} \frac{1}{\text{rank}_i}$$
特别适用于只关心第一个正确结果位置的场景,如问答系统或搜索引擎。