3

我研究有关知识网络中链接预测的论文。作者通常报告“Hits@k”。我想知道如何计算 hits@k 以及它对模型和结果意味着什么?

4

1 回答 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 回答