Метрики для оцінки алгоритмів ранжування


15

Мені цікаво переглянути декілька різних показників алгоритмів ранжування - на сторінці вікіпедії «Навчання до ранжування» є декілька, зокрема:

• середня середня точність (MAP);

• DCG та NDCG;

• Precision @ n, NDCG @ n, де "@n" позначає, що показники оцінюються лише на n n документах;

• середній зворотний ранг;

• тау Кендалла

• Спірмен Ро

• Очікуваний взаємний ранг

• pfound Яндекса

але мені незрозуміло, які переваги / недоліки кожного або коли ви можете вибрати один над іншим (або що це означатиме, якщо один алгоритм перевершив інший в NDGC, але був гірший при оцінці за допомогою MAP).

Чи можна десь поїхати, щоб дізнатися більше про ці питання?

Відповіді:


28

Я фактично шукаю ту саму відповідь, однак я повинен мати можливість хоча б частково відповісти на ваше запитання.

Усі згадані вами показники мають різні риси, і, на жаль, той, який ви повинні вибрати, залежить від того, що ви насправді хочете виміряти. Ось деякі речі, про які варто пам’ятати:

  • Р- метрика Спірмена карає помилки вгорі списку з такою ж вагою, як і невідповідність внизу, тому в більшості випадків це не той показник, який слід використовувати для оцінки рейтингу
  • DCG і NDCG є одним з небагатьох показників , які враховують функцію недвійковий утиліт, так що ви можете описати , як корисно це запис і не є чи це корисним.
  • DCG & NDCG мають фіксовану вагу для позицій, тому документ у певній позиції завжди має однаковий виграш та знижку незалежно від документів, наведених вище.
  • Зазвичай ви віддаєте перевагу NDCG над DCG , оскільки це нормалізує значення за кількістю відповідних документів
  • MAP повинен бути класичним і "перехід" на цю проблему, і, здається, це стандарт у цій галузі.
  • (N) DCG завжди слід обчислювати для фіксованої кількості записів (@k), оскільки він має довгий хвіст (безліч невідповідних записів в кінці рейтингу сильно змінює показник). Це не стосується MAP .
  • Середній реципрочний ранг позначає лише позицію першого відповідного документа, тож якщо вам важливо якомога більше релевантних документів, щоб вони опинилися в списку, то це не повинно бути вашим вибором
  • Tau Kendall обробляє лише функцію бінарної утиліти, її також слід обчислити @k (подібно до NDCG )

Цінні ресурси:

  • Лекція Віктора Лавренка на YouTube - це лише посилання на епізод MAP проти NDCG, але вся лекція включає набагато більше (включаючи Тау Кендалла). Ви обов'язково повинні це перевірити, чудова лекція!
  • ERR папір

Не можу розмістити більше посилань, через свіжий акаунт :) Якщо у когось є ще якісь зауваження чи ідеї, я був би радий також почути їх!


Я думаю, тепер у вас є достатньо балів, щоб оновити цю відповідь, якщо у вас більше посилань.
Yash Kumar Atri

5

У багатьох випадках, коли ви застосовуєте алгоритми ранжування (наприклад, пошук Google, рекомендація щодо продукту Amazon), ви отримуєте сотні та тисячі результатів. Користувач хоче лише спостерігати вгорі ~ 20 або близько того. Тож решта абсолютно не має значення.

k

Якщо це стосується вашої програми, то це має прямий вплив на показник:

  1. kk
  2. 2k

kk

Точність класифікації топ-k для ранжирування

По суті правди, визначити замовлення може бути важко. І якщо ви виділяєте лише відповідне / невідповідне, то ви насправді є випадком класифікації!

Точність n-топ - це показник для класифікації. Див. Що таке визначення точності Top-n? .

top-k accuracy=how often was at least one relevant element within the top-k of a ranking query?ranking queries

k

kk[5,20]

k

Точність @ k

Precision@k=number of relevant items within the top-kk[0,1], higher is better

Що це вам говорить:

  • якщо він високий -> Багато з того, що ви показуєте користувачеві, стосується їх
  • якщо вона низька -> Ви витрачаєте час користувачів. Багато з того, що ви їм показуєте, не стосується їх

Нагадаємо @ k

Recall@k=number of relevant items within the top-ktotal number of relevant items[0,1], higher is better

Що це означає:

  • Якщо він високий: ти показуєш, що маєш! Ви даєте їм усі відповідні предмети.
  • Якщо він низький: Порівняно із загальною кількістю відповідних елементів, k невеликий / відповідні елементи у верхній частині k малі. У зв'язку з цим, нагадування @ k одне може бути не настільки значущим. Якщо він поєднується з високою точністю @ k, то збільшення k може мати сенс.

3

Нещодавно мені довелося вибрати метрику для оцінювання багаторівневих алгоритмів ранжирування і перейшов до цієї теми, що було дуже корисно. Ось кілька доповнень до відповіді stpk, які були корисними для вибору.

  • MAP може бути адаптований до задач, що мають багато міток, ціною наближення
  • MAP не потрібно обчислювати при k, але багатозначна версія може бути не адаптована, коли негативний клас є переважаючим
  • MAP і (N) DCG можуть бути переписані як середньозважене середнє значення рейтингових значень релевантності

Деталі

Зосередимося на середній точності (AP), оскільки середня точність (MAP) - це лише середнє значення AP за кількома запитами. AP належним чином визначається на бінарних даних як область під кривою точності відкликання, яку можна переписати як середнє значення точок на кожному позитивному елементі. (див . статтю у Вікіпедії на MAP ) Можливе наближення - визначити його як середнє значення точок на кожномупункт. На жаль, ми втрачаємо приємну властивість того, що негативні приклади, розміщені в кінці списку, не впливають на значення AP. (Це особливо сумно, коли мова йде про оцінку пошукової системи, що має набагато більше негативних прикладів, ніж позитивних прикладів. Можливе вирішення питання - підгрупувати негативні приклади ціною інших недоліків, наприклад запити з більш позитивними елементами стануть однаковими важко для запитів з кількома позитивними прикладами.)

З іншого боку, це наближення має приємну властивість, що воно добре узагальнює багатозначний випадок. Дійсно, у двійковому випадку точність у положенні k також може бути інтерпретована як середня відповідність перед позицією k, де релевантність позитивного прикладу дорівнює 1, а релевантність негативного прикладу - 0. Це визначення поширюється цілком природно на випадок, коли існує більше двох різних рівнів релевантності. У цьому випадку AP також можна визначити як середнє значення середніх значень на кожній позиції.

k

wkAP=1Klog(Kk)

K

wkDCG=1log(k+1)

З цих двох виразів можна зробити висновок, що - AP зважує документи від 1 до 0. - DCG зважує документи незалежно від загальної кількості документів.

В обох випадках, якщо є набагато більше неактуальних прикладів, ніж відповідні приклади, загальна вага позитиву може бути незначною. Що стосується AP, вирішення завдання полягає в підпробовуванні негативних зразків, але я не впевнений, як вибрати пропорцію субпрограмування, а також чи зробити це залежним від запиту чи від кількості позитивних документів. Для DCG ми можемо скоротити його на k, але виникають такі ж запитання.

Я був би радий дізнатися більше про це, якби хтось тут працював над цією темою.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.