Nejlepší odpověď
RankNet, LambdaRank a LambdaMART jsou tím, čemu říkáme Naučit se hodnotit algoritmy.
Co je Learning to Rank?
Learning to Rank (LTR) je třída technik, které platí pod dohledem strojové učení (ML) k řešení problémů s hodnocením . Hlavní rozdíl mezi LTR a tradičním ML pod dohledem je tento:
- Tradiční ML řeší problém predikce (klasifikace nebo regrese) v jedné instanci najednou. Např. pokud provádíte detekci spamu v e-mailu, podíváte se na všechny funkce spojené s tímto e-mailem a klasifikujete jej jako spam nebo ne. Cílem tradičního ML je přijít s třídou (spam nebo no-spam) nebo jediným číselným skóre pro danou instanci.
- LTR řeší problém se zařazením na seznam položek. Cílem LTR je přijít s optimálním uspořádáním těchto položek. LTR jako takové se moc nestará o přesné skóre, které každá položka získá, ale více se stará o relativní řazení mezi všemi položkami.
Nejběžnější aplikací LTR je vyhledávač hodnocení, ale je to užitečné všude, kde potřebujete vytvořit seřazený seznam položek.
Údaje o tréninku pro model LTR se skládají ze seznamu položek a skóre „základní pravdy“ pro každou z těchto položek . U hodnocení vyhledávačů se to promítne do seznamu výsledků dotazu a hodnocení relevance pro každý z těchto výsledků vzhledem k dotazu. Nejběžnějším způsobem, který používají hlavní vyhledávače ke generování těchto hodnocení relevance, je požádat lidské hodnotitele, aby hodnotili výsledky pro sadu dotazů. V případě, že vás zajímá, podrobně jsem napsal o systémech hodnocení lidí zde: Odpověď Nikhila Dandekara na Jak Google měří kvalitu jejich výsledků vyhledávání?
Pro více technické vysvětlení Learning to Rank podívejte se na tento příspěvek od Microsoft Research: Krátký úvod do učení se hodnocení
Co je RankNet, LambdaRank a LambdaMART ?
RankNet, LambdaRank a LambdaMART jsou všechny algoritmy LTR vyvinuté Chrisem Burgesem a jeho kolegy z Microsoft Research. Jako první byl vyvinut RankNet, následovaný LambdaRank a poté LambdaMART.
Ve všech třech technikách je hodnocení transformován do problému párové klasifikace nebo regrese . To znamená, že se podíváte na dvojice položek najednou, přijdete s optimálním uspořádáním pro tuto dvojici položek a pak ji použijte k vymýšlení konečné hodnocení všech výsledků.
Zde jsou některé podrobnosti na vysoké úrovni pro každý z algoritmů:
RankNet http://research.microsoft.com/en-us/um/people/cburges/papers/ICML\_ranking.pdf
RankNet byl původně vyvinut pomocí neuronové sítě, ale základní model se může lišit a není omezen pouze na neurální sítě. Cílem nákladové funkce pro RankNet je minimalizovat počet inverzí v hodnocení. Zde inverze znamená nesprávné pořadí mezi dvojicí výsledků, tj. Když v žebříčku zařadíme výsledek s nižším hodnocením nad výsledek s vyšším hodnocením. RankNet optimalizuje nákladovou funkci pomocí Stochastic Gradient Descent.
LambdaRank http://research.microsoft.com/pubs/68133/lambdarank.pdf
Burgess et. al. zjistili, že během tréninkového procesu RankNet nepotřebujete náklady, potřebujete pouze přechody (\ lambda) nákladů s ohledem na skóre modelu. Tyto přechody si můžete představit jako malé šipky připojené ke každému dokumentu v seřazeném seznamu , označující směr, kterým bychom se chtěli tyto dokumenty pohnout.
Dále zjistili, že změna přechodů změnou změny NDCG nalezený při výměně každé dvojice dokumentů přinesl dobré výsledky. Základní myšlenkou LambdaRank je použít tuto novou funkci nákladů pro školení RankNet. Na experimentálních souborech dat ukazuje vylepšení rychlosti i přesnosti oproti původnímu RankNetu.
LambdaMART http://research.microsoft.com/pubs/102750/LambdaMART\_Final.pdf
LambdaMART kombinuje LambdaRank a MART (více stromů aditivní regrese). Zatímco MART používá pro rozhodovací úkoly gradientní rozhodovací stromy, La mbdaMART používá pro řešení úlohy hodnocení rozhodovací stromy podporované gradientem pomocí nákladové funkce odvozené od LambdaRank.Na experimentálních souborech dat ukázal LambdaMART lepší výsledky než LambdaRank a původní RankNet.
Pokud vás zajímá, Chris Burges má jediný dokument, který podrobně popisuje vývoj od RankNet k LambdaRank k LambdaMART: Od RankNet po LambdaRank po LambdaMART: Přehled
Odpověď
Naučit se hodnotit je třída problémů spojených s obnovením plné objednávky množiny z ní je částečné pořadí, které lze popsat několika způsoby:
- Hodnocení všech datových bodů
- Dvojice bodů, kde určujeme, který bod má být hodnoceno výše
Lze to považovat za regresní problém – předpovídat skóre pro vektor prvku. Nebo jako klasifikační problém, kde musíme předpovědět, který bod z nich bude zařazen výše Tyto přístupy se nazývají bodové a párové a prozatím jsou to nejvíce prozkoumávané a robustní metody.