我研究有关知识网络中链接预测的论文。作者通常报告“Hits@k”。我想知道如何计算 hits@k 以及它对模型和结果意味着什么?
问问题
3426 次
1 回答
7
简而言之,它是在一堆合成负数中排名前 n 位的正数三元组的数量。
在下面的示例中,假设测试集仅包含两个真实的正面:
Jack born_in Italy
Jack friend_with Thomas
让我们假设这样的正三元组(下面用 * 标识)分别针对四个合成负数进行排名。
现在,使用您的预训练嵌入模型为每个正例及其合成负例分配一个分数。然后,按降序对三元组进行排序。在下面的示例中,第一个三元组排名第二,其他三元组排名第一(相对于它们各自的合成否定):
s p o score rank
Jack born_in Ireland 0.789 1
Jack born_in Italy 0.753 2 *
Jack born_in Germany 0.695 3
Jack born_in China 0.456 4
Jack born_in Thomas 0.234 5
s p o score rank
Jack friend_with Thomas 0.901 1 *
Jack friend_with China 0.345 2
Jack friend_with Italy 0.293 3
Jack friend_with Ireland 0.201 4
Jack friend_with Germany 0.156 5
然后,计算前 1 或前 3 位置出现的阳性数,然后除以测试集中三元组的数量(在本例中包括 2 个三元组):
Hits@3= 2/2 = 1.0
Hits@1= 1/2 = 0.5
AmpliGraph有一个计算 Hits@n 的 API -在此处查看文档。
于 2020-01-02T14:13:48.070 回答