Entraîner : de la régression logistique au LambdaMART
Les trois familles de LTR (choisir par la simplicité)
- Pointwise : traiter chaque candidat indépendamment (« bon/pas bon »), classer par le score prédit. C'est une simple régression logistique (cours ML !) — la baseline : si elle bat les poids manuels, c'est déjà une victoire ;
- Pairwise : apprendre « A doit passer avant B » sur les paires d'un même groupe (RankNet, RankSVM) — colle mieux à la nature du problème ;
- Listwise : optimiser directement la métrique de ranking sur toute la liste (LambdaMART — du gradient boosting LTR, l'état de l'art tabulaire, dispo dans LightGBM/XGBoost avec l'objectif
rank).
La démarche de production : pointwise d'abord (baseline interprétable), et ne passer au listwise que si le gain le justifie — exactement l'escalade « régression → boosting » du cours ML.
Le TP : apprendre les poids sur des candidats simulés
On simule des groupes de candidats avec leurs 5 sous-scores, un « vrai » poids caché, et on vérifie qu'une régression retrouve les poids et améliore le match@1 face à des poids naïfs :
Les réglages qui comptent
- normaliser les features par groupe aide souvent (les scores d'une requête facile et d'une dure ne sont pas à la même échelle) ;
- régularisation contre le sur-ajustement (peu de groupes = fort risque, cours ML) ;
- pour LambdaMART :
n_estimators,learning_rate, et l'objectif de ranking (lambdarank) avec la métrique cible (ndcg/map) ; - early stopping sur un match@1 de validation — on optimise la vraie métrique, pas une proxy.
L'approche pointwise du LTR, c'est concrètement…