Qual é a explicação intuitiva de Aprender a classificar e algoritmos como RankNet, LambdaRank e LambdaMART? Em que tipos de dados / variáveis ​​essas técnicas podem ser usadas? Quais são seus pontos fortes e limitações?

Melhor resposta

RankNet, LambdaRank e LambdaMART são todos o que chamamos de Aprendendo a classificar algoritmos.

O que é aprender a classificar?

Aprender a classificar (LTR) é uma classe de técnicas que se aplicam supervisionadas aprendizado de máquina (ML) para resolver problemas de classificação . A principal diferença entre LTR e ML supervisionado tradicional é esta:

  • ML tradicional resolve um problema de previsão (classificação ou regressão) em uma única instância por vez. Por exemplo. se você estiver fazendo a detecção de spam em um e-mail, verá todos os recursos associados a esse e-mail e o classificará como spam ou não. O objetivo do ML tradicional é chegar a uma classe (spam ou não spam) ou uma pontuação numérica única para essa instância.
  • LTR resolve um problema de classificação em uma lista de itens. O objetivo do LTR é chegar a um ordenamento ideal desses itens. Como tal, o LTR não se preocupa muito com a pontuação exata que cada item obtém, mas se preocupa mais com a ordem relativa entre todos os itens.

A aplicação mais comum do LTR é o mecanismo de pesquisa classificação, mas é útil em qualquer lugar em que você precise produzir uma lista classificada de itens.

Os dados de treinamento para um modelo LTR consistem em uma lista de itens e uma pontuação de “verdade do solo” para cada um desses itens . Para a classificação do mecanismo de pesquisa, isso se traduz em uma lista de resultados para uma consulta e uma classificação de relevância para cada um desses resultados em relação à consulta. A forma mais comum usada pelos principais mecanismos de pesquisa para gerar essas classificações de relevância é pedir a avaliadores humanos que classifiquem os resultados de um conjunto de consultas. Caso você esteja interessado, escrevi em detalhes sobre sistemas de classificação humana aqui: a resposta de Nikhil Dandekar para Como o Google mede a qualidade de seus resultados de pesquisa?

Para uma explicação mais técnica sobre como aprender a classificar verifique este artigo da Microsoft Research: Uma breve introdução para aprender a classificar

O que é RankNet, LambdaRank e LambdaMART ?

RankNet, LambdaRank e LambdaMART são todos algoritmos LTR desenvolvidos por Chris Burges e seus colegas da Microsoft Research. RankNet foi o primeiro a ser desenvolvido, seguido por LambdaRank e LambdaMART.

Em todas as três técnicas, a classificação é transformado em um problema de classificação ou regressão de pares . Isso significa que você olha pares de itens de uma vez, chega à ordem ideal para esse par de itens e em seguida, use-o para chegar a a classificação final de todos os resultados.

Aqui estão alguns detalhes de alto nível para cada um dos algoritmos:

RankNet http://research.microsoft.com/en-us/um/people/cburges/papers/ICML\_ranking.pdf

O RankNet foi originalmente desenvolvido usando redes neurais, mas o modelo subjacente pode ser diferente e não está restrito apenas a redes neurais. A função de custo para RankNet visa minimizar o número de inversões na classificação. Aqui, uma inversão significa uma ordem incorreta entre um par de resultados, ou seja, quando classificamos um resultado de classificação inferior acima de um resultado de classificação superior em uma lista de classificação. RankNet otimiza a função de custo usando Stochastic Gradient Descent.

LambdaRank http://research.microsoft.com/pubs/68133/lambdarank.pdf

Burgess et. al. descobriram que durante o procedimento de treinamento RankNet, você não precisa dos custos, só precisa dos gradientes (\ lambda) do custo em relação à pontuação do modelo. Você pode pensar nesses gradientes como pequenas setas anexadas a cada documento na lista de classificação , indicando a direção que gostaríamos que esses documentos movessem.

Além disso, eles descobriram que escalar os gradientes pela mudança em NDCG encontrado ao trocar cada par de documentos deu bons resultados. A ideia central do LambdaRank é usar essa nova função de custo para treinar um RankNet. Em conjuntos de dados experimentais, isso mostra melhorias de velocidade e precisão em relação ao RankNet original.

LambdaMART http://research.microsoft.com/pubs/102750/LambdaMART\_Final.pdf

LambdaMART combina LambdaRank e MART (Multiple Additive Regression Trees). Enquanto MART usa árvores de decisão com aumento de gradiente para tarefas de previsão, La mbdaMART usa árvores de decisão com gradiente aumentado usando uma função de custo derivada do LambdaRank para resolver uma tarefa de classificação.Em conjuntos de dados experimentais, LambdaMART mostrou resultados melhores do que LambdaRank e o RankNet original.

Se você estiver interessado, Chris Burges tem um único artigo que detalha a evolução de RankNet para LambdaRank para LambdaMART aqui: De RankNet a LambdaRank a LambdaMART: uma visão geral

Resposta

Aprender a classificar é uma classe de problemas relacionados com a restauração da ordem completa de um conjunto a partir de sua ordem parcial, que pode ser descrito de várias maneiras:

  • Avaliações para todos os pontos de dados
  • Pares de pontos, onde especificamos qual ponto deve ser classificação mais alta

Isso pode ser visto como um problema de regressão – prever a pontuação para um vetor de característica. Ou como um problema de classificação, onde precisamos prever qual ponto dos dois terá classificação mais alta . Essas abordagens são chamadas de pontos e pares, e são os métodos mais pesquisados e robustos por enquanto.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *