Как рассчитывается hit@k и что это означает в контексте прогнозирования ссылок в базах знаний

Я изучаю статьи по прогнозированию ссылок в сетях знаний. Авторы обычно сообщают "Hits@k". Интересно, как рассчитать хиты @ k и что это значит для модели и результатов?

1 ответ

Решение

Вкратце, это подсчет количества положительных троек, занимающих первые n позиций по сравнению с множеством синтетических отрицаний.

В следующем примере представьте, что набор тестов включает только два наземных истинных положительных результата:

Jack   born_in   Italy
Jack   friend_with   Thomas

Предположим, каждая такая положительная тройка (обозначенная * ниже) сравнивается с четырьмя синтетическими отрицаниями каждая.

Теперь присвойте оценку каждому положительному результату и его синтетическому отрицанию, используя вашу предварительно обученную модель встраивания. Затем отсортируйте тройки в порядке убывания. В приведенном ниже примере первая тройка занимает 2-е место, а другая тройка занимает первое место (по сравнению с их соответствующими синтетическими отрицаниями):

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

Затем подсчитайте, сколько положительных результатов происходит в первой или тройке первых позиций, и разделите на количество троек в тестовом наборе (который в этом примере включает 2 тройки):

Hits@3= 2/2 = 1.0
Hits@1= 1/2 = 0.5

AmpliGraph имеет API для вычисления Hits@n - ознакомьтесь с документацией здесь.

Другие вопросы по тегам