¿Cuál es la explicación intuitiva de Learning to Rank y algoritmos como RankNet, LambdaRank y LambdaMART? ¿En qué tipos de datos / variables se pueden usar estas técnicas? ¿Cuáles son sus puntos fuertes y limitaciones?

RankNet, LambdaRank y LambdaMART son todos lo que llamamos algoritmos de Aprendizaje para clasificar.

¿Qué es aprender a clasificar?

Aprender a clasificar (LTR) es una clase de técnicas que aplican el aprendizaje automático supervisado (ML) para resolver problemas de clasificación . La principal diferencia entre LTR y ML supervisado tradicional es esta:

  • ML tradicional resuelve un problema de predicción (clasificación o regresión) en una sola instancia a la vez. Por ejemplo, si está haciendo detección de spam en el correo electrónico, verá todas las características asociadas con ese correo electrónico y lo clasificará como spam o no. El objetivo del ML tradicional es crear una clase (spam o no spam) o una puntuación numérica única para esa instancia.
  • LTR resuelve un problema de clasificación en una lista de elementos. El objetivo de LTR es llegar a un ordenamiento óptimo de esos artículos. Como tal, LTR no se preocupa mucho por el puntaje exacto que obtiene cada elemento, pero se preocupa más por el orden relativo entre todos los elementos.

La aplicación más común de LTR es la clasificación de motores de búsqueda, pero es útil en cualquier lugar donde necesite producir una lista clasificada de elementos.

Los datos de entrenamiento para un modelo LTR consisten en una lista de ítems y un puntaje de “verdad fundamental” para cada uno de esos ítems. Para el ranking del motor de búsqueda, esto se traduce en una lista de resultados para una consulta y una calificación de relevancia para cada uno de esos resultados con respecto a la consulta. La forma más común utilizada por los principales motores de búsqueda para generar estas clasificaciones de relevancia es pedir a los evaluadores humanos que califiquen los resultados para un conjunto de consultas. En caso de que esté interesado, he escrito en detalle sobre los sistemas de calificación humana aquí: la respuesta de Nikhil Dandekar a ¿Cómo mide Google la calidad de sus resultados de búsqueda?

Para obtener una explicación más técnica de Learning to Rank, consulte este documento de Microsoft Research: una breve introducción a Learning to Rank

¿Qué es RankNet, LambdaRank y LambdaMART ?

RankNet, LambdaRank y LambdaMART son algoritmos LTR desarrollados por Chris Burges y sus colegas de Microsoft Research. RankNet fue el primero en ser desarrollado, seguido por LambdaRank y luego LambdaMART.

En las tres técnicas, la clasificación se transforma en una clasificación por pares o un problema de regresión . Eso significa que observa pares de elementos a la vez, obtiene el orden óptimo para ese par de elementos y luego lo utiliza para llegar a la clasificación final de todos los resultados.

Aquí hay algunos detalles de alto nivel para cada uno de los algoritmos:

RankNet [1]

RankNet se desarrolló originalmente utilizando redes neuronales, pero el modelo subyacente puede ser diferente y no está limitado a solo redes neuronales. La función de costo para RankNet tiene como objetivo minimizar el número de inversiones en la clasificación. Aquí una inversión significa un orden incorrecto entre un par de resultados, es decir, cuando clasificamos un resultado con una calificación más baja por encima de un resultado con una calificación más alta en una lista clasificada. RankNet optimiza la función de costo utilizando el Descenso de gradiente estocástico.

LambdaRank [2]

Burgess et. Alabama. descubrió que durante el procedimiento de capacitación de RankNet, no necesita los costos, solo necesita los gradientes ([matemáticas] \ lambda [/ matemáticas] [matemáticas]) [/ matemáticas] del costo con respecto al puntaje del modelo. Puede pensar en estos gradientes como pequeñas flechas adjuntas a cada documento en la lista clasificada, indicando la dirección en que nos gustaría que se muevan esos documentos.

Además, descubrieron que escalar los gradientes por el cambio en NDCG encontrado al intercambiar cada par de documentos dio buenos resultados. La idea central de LambdaRank es utilizar esta nueva función de costos para entrenar a un RankNet. En conjuntos de datos experimentales, esto muestra mejoras de velocidad y precisión sobre el RankNet original.

LambdaMART [3]

LambdaMART combina LambdaRank y MART (árboles de regresión de aditivos múltiples). Mientras que MART usa árboles de decisión con gradiente incrementado para las tareas de predicción, LambdaMART usa árboles de decisión con gradiente incrementado usando una función de costo derivada de LambdaRank para resolver una tarea de clasificación. En conjuntos de datos experimentales, LambdaMART ha mostrado mejores resultados que LambdaRank y el RankNet original.

Si está interesado, Chris Burges tiene un solo documento que detalla la evolución de RankNet a LambdaRank a LambdaMART aquí: De RankNet a LambdaRank a LambdaMART: una descripción general

Notas al pie

[1] Página en microsoft.com

[2] Página en microsoft.com

[3] Página en microsoft.com

(Desde el teléfono)

Si está aprendiendo sobre el aprendizaje de Chris Burges para clasificar con funciones de costo no uniformes, entonces la esencia es:

1) introducir penalización por pares (orden correcto vs. orden incorrecto de dos resultados adyacentes)

2) suavizar esta penalización (log (1 + exp (x))), y

3) optimice la función resultante no convexa (en realidad, por partes convexas) aproximando iterativamente su gradiente a través de árboles potenciados.

Aprender a clasificar es una clase de problemas relacionados con la restauración del orden completo de un conjunto a partir de su orden parcial, que se puede describir de varias maneras:

  • Calificaciones para todos los puntos de datos
  • Pares de puntos, donde especificamos qué punto debe clasificarse más alto

Esto podría verse como un problema de regresión: predice la puntuación para un vector de características. O como un problema de clasificación, donde necesitamos predecir qué punto de los dos se clasificará más alto. Estos enfoques se denominan puntiagudos y por pares, y son los métodos más investigados y robustos por ahora.

More Interesting

¿Podría alguien en el futuro hacer un chip de inteligencia artificial de computadora que mejore el atractivo?

¿El desarrollo de una interfaz cerebro-computadora causaría que la humanidad evolucione en seres sin voz física o incluso sin brazos y piernas?

¿Cuál se realizará antes, computadora cuántica o fusión controlada?

Si pudiera borrar un archivo (y todas las copias), ¿cuál sería?

¿Cómo construirías un sistema de descubrimiento de drogas usando el aprendizaje automático?

¿Quién influye más en los estudiantes técnicos, Bill Gates o Steve Jobs?

¿Cuáles son los enfoques actuales para resolver problemas completos de NP?

¿Fuzzy Logic tiene algún uso significativo en el mundo de hoy cuando estamos liderando el mundo del aprendizaje automático y la inteligencia artificial?

Si existe una IA que opera en un espectro de frecuencia diferente al de nuestras mentes biológicas, ¿hay alguna manera de cerrar esta brecha?

¿Se puede utilizar el procesamiento del lenguaje natural para resumir información útil de trabajos de investigación?

¿En qué deportes (tenis, voleibol, golf) es más difícil entrenar a un robot para ser bueno?

¿Cómo podría ser útil el aprendizaje automático en el campo del diseño y la verificación?

¿Se pueden aprender estructuras de datos sin practicar la programación? No tengo tiempo para practicar programación, pero quiero fortalecer mi comprensión de los conceptos de DS. Además, ¿qué temas de matemáticas son necesarios para aprender esto?

¿Qué tan grande es un yottabyte, una unidad de medida como un gigabyte? ¿Hay suficientes datos en el mundo para almacenar en un yottabyte?

¿Qué problemas ayuda la IA y el aprendizaje automático en la neurociencia?