链接预测是用来预测三元组(h,r,t)中缺失实体h,t或r的任务,对于每一个缺失的实体,模型将被要求用所有的知识图谱中的实体作为候选项进行计算,并进行排名,而不是单纯给出一个最优的预测结果。
在测试阶段,对于每个待测试三元组,用知识图谱中的除去h与t之外的其他实体作为候选项来替换头实体或尾实体,并且按大小顺序给出这些实体的评分函数。
使用了两种评测方法。
正确的实体评分函数的平均排名(mean rank),
正确的实体排名在前10的比例,即十命中率(hit@10)
1.先说Mean rank 原文链接:https://blog.csdn.net/coolerzz/article/details/81704756
首先 对于每个 testing triple,以预测tail entity为例,我们将(h,r,t)中的t用知识图谱中的每个实体来代替,然后通过fr(h,t)函数来计算分数,这样我们可以得到一系列的分数,之后按照 升序将这些分数排列。
然后,我们需要知道的是f函数值是越小越好,那么在上个排列中,排的越前越好。
现在重点来了,我们去看每个 testing triple中正确答案也就是真实的t到底能在上述序列中排多少位,比如说t1排100,t2排200,t3排60.......,之后对这些排名求平均,Mean rank就得到了。
2.Hit@10
还是按照上述进行f函数值排列,然后去看每个testing triple正确答案是否排在序列的前十,如果在的话就计数+1
最终 排在前十的个数/总个数 就是Hit@10
实际上,一个被人为构建的负例三元组有可能是存在于知识图谱中的这不应该被视作负例。
上述的评测方法可能低估了这些三元组对于评测结果的影响。
因此,在候选进行排名之前,先将这些三元组过滤掉,然后再进行评测。
最后将初始的评测方法称为“原始”:raw
将之后过滤的评测方法称为“过滤”:flit 。
而在刘知远的《知识图谱与深度学习》中提出
关系预测使用平均排名和 一命中率 评估指标。即看是否能直接找到正确的关系。