过滤设置(Filtered Setting)的目的是为了确保模型评估的公平性和合理性。以下详细解释为什么要进行这样的过滤:
1. 避免模型因预测正确事实而受到惩罚
- 问题:在知识图谱(KG)或时序知识图谱(TKG)的链接预测任务中,模型需要为查询(如 ((s, r, ?, t)))生成候选答案。如果候选答案中包含了已经存在于图谱中的正确事实,模型可能会将这些正确事实的排名降低,仅仅因为它们已经存在。
- 例子:
- 假设图谱中已经存在四元组 ((s_1, r_1, o_1, t_1))。
- 对于查询 ((s_1, r_1, ?, t_1)),模型生成的候选答案可能包括 ((s_1, r_1, o_1, t_1)) 和 ((s_1, r_1, o_2, t_1))。
- 如果模型将 ((s_1, r_1, o_1, t_1)) 排名较低(因为它已经存在),这会导致模型性能被低估。
- 解决方法:通过过滤,将已经存在的正确事实从候选集中移除,避免模型因此受到不公平的惩罚。
2. 评估模型预测新事实的能力
- 目标:链接预测任务的核心是评估模型预测缺失或未知事实的能力,而不是记忆已有事实的能力。
- 问题:如果不进行过滤,模型可能会因为“记住”了图谱中已有的正确事实而获得高分,但这并不能反映模型真正的泛化能力。
- 例子:
- 假设图谱中有 ((s_1, r_1, o_1, t_1)) 和 ((s_2, r_2, o_2, t_2))。
- 对于查询 ((s_1, r_1, ?, t_1)),模型可能会“记住” ((s_1, r_1, o_1, t_1)) 是正确的,并将其排名第一。
- 但这并不能证明模型能够预测新的、未知的事实。
- 解决方法:通过过滤,确保评估的重点是模型对缺失事实的预测能力。
3. 提高评估的合理性
- 问题:在真实场景中,知识图谱通常是不完整的,模型的任务是补全缺失的事实,而不是重复已有的知识。
- 例子:
- 假设图谱中有 ((s_1, r_1, o_1, t_1)),但缺失了 ((s_1, r_1, o_2, t_1))。
- 模型的任务是预测 ((s_1, r_1, o_2, t_1)) 是正确的,而不是重复 ((s_1, r_1, o_1, t_1))。
- 解决方法:通过过滤,确保评估过程更贴近实际任务需求,即补全缺失的事实。
4. 避免评估结果的偏差
- 问题:如果不进行过滤,评估结果可能会受到已有事实的干扰,导致模型性能被高估或低估。
- 例子:
- 假设图谱中有 100 个四元组,其中 90 个是已知的,10 个是缺失的。
- 如果不进行过滤,模型可能会因为“记住”了 90 个已知事实而获得高分,但这并不能反映它对缺失事实的预测能力。
- 解决方法:通过过滤,确保评估结果更准确地反映模型的真实性能。
总结:
过滤设置的目的是:
- 避免模型因预测正确事实而受到不公平的惩罚。
- 确保评估的重点是模型预测新事实的能力。
- 使评估过程更贴近实际任务需求。
- 避免评估结果受到已有事实的干扰。
通过过滤,评估结果更能反映模型的泛化能力和实际应用价值。