在知识图谱(KG)或时序知识图谱(TKG)的链接预测任务中,MRR(Mean Reciprocal Rank) 和 Hits@k 是两种常用的评估指标。它们用于衡量模型预测的正确事实在候选答案中的排名质量。以下是它们的计算过程详解:
1. MRR(Mean Reciprocal Rank)
MRR 是正确事实的排名的倒数的平均值。它反映了模型将正确事实排在靠前位置的能力。
计算过程:
-
对每个查询计算 Reciprocal Rank(RR):
-
对于一个查询(如 ((s, r, ?, t))),模型会生成一组候选答案,并按照预测分数对它们进行排序。
-
找到正确事实的排名 (rank)(即正确实体 (o) 在排序列表中的位置)。
-
计算 Reciprocal Rank:
- 如果正确事实排名第一,(RR = 1);
- 如果排名第二,(RR = 0.5);
- 以此类推。
-
-
对所有查询的 RR 取平均:
- 假设有 (N) 个查询,每个查询的 Reciprocal Rank 为 (RR_i),则 MRR 计算公式为:
例子:
假设有以下 3 个查询及其正确事实的排名:
- 查询 1:正确事实排名第 2 → (RR_1 = 1/2= 0.5)
- 查询 2:正确事实排名第 1 → (RR_2 = 1/1 = 1.0)
- 查询 3:正确事实排名第 5 → (RR_3 = 1/5= 0.2)
则 MRR 为:
[
MRR = {0.5 + 1.0 + 0.2}/{3} = 0.5667
]
2. Hits@k
Hits@k 表示正确事实的排名在前 (k) 位的比例。它反映了模型将正确事实排在前 (k) 位的能力。
计算过程:
-
对每个查询检查正确事实是否在前 (k) 位:
- 对于一个查询,模型生成一组候选答案并排序。
- 如果正确事实的排名 rank < k,则记为 1;否则记为 0。
-
对所有查询的结果取平均:
- 假设有 (N) 个查询,其中 (M) 个查询的正确事实排名在前 (k) 位,则 Hits@k 计算公式为:
- 假设有 (N) 个查询,其中 (M) 个查询的正确事实排名在前 (k) 位,则 Hits@k 计算公式为:
例子:
假设有以下 5 个查询及其正确事实的排名:
- 查询 1:正确事实排名第 2
- 查询 2:正确事实排名第 1
- 查询 3:正确事实排名第 5
- 查询 4:正确事实排名第 3
- 查询 5:正确事实排名第 10
计算 Hits@3:
- 查询 1:排名 2 ≤ 3 → 1
- 查询 2:排名 1 ≤ 3 → 1
- 查询 3:排名 5 > 3 → 0
- 查询 4:排名 3 ≤ 3 → 1
- 查询 5:排名 10 > 3 → 0
则 Hits@3 为:
3. MRR 和 Hits@k 的区别
- MRR:
- 关注正确事实的具体排名,排名越靠前,贡献越大。
- 对排名变化更敏感,适合衡量模型的整体排序质量。
- Hits@k:
- 只关注正确事实是否在前 (k) 位,不关心具体排名。
- 更适合衡量模型在实际应用中的实用性(例如,是否能在前 10 个结果中返回正确答案)。
4. 过滤设置对 MRR 和 Hits@k 的影响
在计算 MRR 和 Hits@k 时,通常会使用过滤设置(Filtered Setting):
- 过滤掉已经存在于图谱中的候选答案,确保评估的公平性。
- 这样,正确事实的排名不会受到已有事实的干扰,评估结果更能反映模型的真实性能。
总结:
- MRR:计算正确事实排名的倒数的平均值,反映模型将正确事实排在靠前位置的能力。
- Hits@k:计算正确事实排名在前 (k) 位的比例,反映模型在前 (k) 位返回正确答案的能力。
- 两者都依赖于过滤设置,以确保评估的公平性和合理性。