Bedste svar
RankNet, LambdaRank og LambdaMART er alle, hvad vi kalder At lære at rangordne algoritmer.
Hvad er at lære at rang?
At lære at rang (LTR) er en klasse af teknikker, der gælder overvåget maskinindlæring (ML) til at løse rankingproblemer . Hovedforskellen mellem LTR og traditionel overvåget ML er denne:
- Traditionel ML løser et forudsigelsesproblem (klassificering eller regression) på en enkelt forekomst ad gangen. For eksempel. hvis du laver spamdetektering via e-mail, vil du se på alle de funktioner, der er knyttet til den e-mail, og klassificere den som spam eller ej. Målet med traditionel ML er at komme med en klasse (spam eller no-spam) eller en enkelt numerisk score for den forekomst.
- LTR løser et rangproblem på en liste over emner. Målet med LTR er at komme med optimal bestilling af disse varer. Som sådan er LTR ligeglad med den nøjagtige score, som hver vare får, men er mere opmærksom på den relative rækkefølge blandt alle varerne.
Den mest almindelige anvendelse af LTR er søgemaskine ranking, men det er nyttigt overalt, hvor du har brug for at fremstille en rangeret liste over emner.
Træningsdataene for en LTR-model består af en liste over emner og en “jordens sandhed” -score for hvert af disse emner . For rangering af søgemaskiner oversættes dette til en liste med resultater for en forespørgsel og en relevansvurdering for hvert af disse resultater med hensyn til forespørgslen. Den mest almindelige måde, som store søgemaskiner bruger til at generere disse relevansvurderinger, er at bede menneskelige vurderere om at bedømme resultaterne for et sæt forespørgsler. Hvis du er interesseret, har jeg skrevet detaljeret om menneskelige klassificeringssystemer her: Nikhil Dandekars svar på Hvordan måler Google kvaliteten af deres søgeresultater?
For en mere teknisk forklaring på at lære at rangere tjek dette papir fra Microsoft Research: En kort introduktion til at lære at rangere
Hvad er RankNet, LambdaRank og LambdaMART ?
RankNet, LambdaRank og LambdaMART er alle LTR-algoritmer udviklet af Chris Burges og hans kolleger hos Microsoft Research. RankNet var den første, der blev udviklet, efterfulgt af LambdaRank og derefter LambdaMART.
I alle tre teknikker er rangering forvandlet til et parvis klassificering eller regression problem. Det betyder, at du ser på par af emner ad gangen, kommer med den optimale rækkefølge for det par emner, og brug den derefter til at komme med den endelige rangordning for alle resultater.
Her er nogle detaljer på højt niveau for hver af algoritmerne:
RankNet http://research.microsoft.com/en-us/um/people/cburges/papers/ICML\_ranking.pdf
RankNet blev oprindeligt udviklet ved hjælp af neurale net, men den underliggende model kan være anderledes og er ikke begrænset til kun neurale net. Omkostningsfunktionen til RankNet sigter mod at minimere antallet af inversioner i rangordning. Her betyder en inversion en forkert rækkefølge blandt et par resultater, dvs. når vi rangerer et lavere vurderet resultat over et højere vurderet resultat på en rangliste. RankNet optimerer omkostningsfunktionen ved hjælp af Stochastic Gradient Descent.
LambdaRank http://research.microsoft.com/pubs/68133/lambdarank.pdf
Burgess et. al. fandt ud af, at du under RankNet-træningsproceduren ikke har brug for omkostningerne, kun har brug for gradienterne (\ lambda) i forhold til model score. Du kan tænke på disse gradienter som små pile knyttet til hvert dokument på den rangerede liste , hvilket angiver den retning, vi gerne vil have, at disse dokumenter skal bevæge sig.
Yderligere fandt de, at skalering af gradienterne ved ændringen i NDCG fundet ved at bytte hvert par af dokumenter gav gode resultater. LambdaRanks kerneidee er at bruge denne nye omkostningsfunktion til træning af et RankNet. På eksperimentelle datasæt er dette viser både hastigheds- og nøjagtighedsforbedringer i forhold til det originale RankNet.
LambdaMART http://research.microsoft.com/pubs/102750/LambdaMART\_Final.pdf
LambdaMART kombinerer LambdaRank og MART (Multiple Additive Regression Trees). Mens MART bruger gradient-boostede beslutningstræer til forudsigelsesopgaver, La mbdaMART bruger gradientforstærkede beslutningstræer ved hjælp af en omkostningsfunktion afledt af LambdaRank til løsning af en rankingopgave.På eksperimentelle datasæt har LambdaMART vist bedre resultater end LambdaRank og det originale RankNet.
Hvis du er interesseret, har Chris Burges et enkelt papir, der beskriver udviklingen fra RankNet til LambdaRank til LambdaMART her: Fra RankNet til LambdaRank til LambdaMART: En oversigt
Svar
At lære at rangere er en klasse af problemer forbundet med at gendanne den fulde ordre af et sæt fra det er en delvis rækkefølge, der kan beskrives på flere måder:
- Bedømmelser for alle datapunkter
- Parpar, hvor vi specificerer hvilket punkt der skal være rangeret højere
Dette kan ses som et regressionsproblem – forudsig scoren for en funktionsvektor. Eller som et klassificeringsproblem, hvor vi skal forudsige, hvilket punkt af de to der bliver placeret højere Disse tilgange kaldes punktvis og parvis, og de er de mest efterforskede og robuste metoder indtil videre.