hist@k 是如何计算的以及它在知识库中链接预测的上下文中意味着什么

Sil*_*ame 8 entity operations-research knowledge-graph entity-linking

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

小智 17

简而言之,它是针对一堆合成负数,有多少个正三元组排在前 n 个位置的计数。

在下面的示例中,假设测试集仅包含两个真实的正值:

Jack   born_in   Italy
Jack   friend_with   Thomas
Run Code Online (Sandbox Code Playgroud)

让我们假设这样的正三元组(下面用 * 标识)分别针对四个合成负数进行排名。

现在,使用预先训练的嵌入模型为每个正值及其合成负值分配一个分数。然后,将三元组按降序排序。在下面的示例中,第一个三元组排名第二,其他三元组排名第一(相对于它们各自的合成负数):

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
Run Code Online (Sandbox Code Playgroud)

然后,计算在 top-1 或 top-3 位置中出现的正数,并除以测试集中的三元组数量(在本例中包括 2 个三元组):

Hits@3= 2/2 = 1.0
Hits@1= 1/2 = 0.5
Run Code Online (Sandbox Code Playgroud)

AmpliGraph有一个用于计算 Hits@n 的 API -请查看此处的文档