Как рассчитывается 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 - ознакомьтесь с документацией здесь.