Le problĂšme : classer, pas classifier
Ranking â classification
Le matcher (cours Stack IA) retrouve N candidats pour une ligne de commande et doit dĂ©signer le bon en tĂȘte. Ce n'est pas « ce candidat est-il correct ? » (classification, un candidat Ă la fois) mais « dans quel ORDRE prĂ©senter ces candidats ? » â le learning-to-rank (LTR). La diffĂ©rence est fondamentale : ce qui compte n'est pas la probabilitĂ© absolue de chaque candidat, c'est leur ordre relatif. Un modĂšle qui donne 0.6 au bon et 0.5 aux mauvais gagne, mĂȘme si 0.6 « semble » peu.
La métrique reine : le rang du bon candidat
On n'Ă©value pas un ranker Ă l'accuracy mais Ă oĂč il place la vĂ©ritĂ© :
- match@1 : le bon candidat est-il en position 1 ? (la métrique produit : c'est ce que l'utilisateur voit) ;
- MRR (Mean Reciprocal Rank) : moyenne de 1/rang â rĂ©compense « 2e » presque autant que « 1er », punit « 8e » ;
- NDCG : la version pondérée quand il y a plusieurs bons candidats à des degrés divers.
Le cours matching l'a dĂ©jĂ croisĂ©e sous le nom match@1 â c'est LA cible.
Le dataset qui dort dans ta base
Voici le point qui relie tout : le matcher, Ă chaque deep match, enregistre dĂ©jĂ un snapshot dans product_match_feedback â pour chaque candidat considĂ©rĂ©, ses 5 sous-scores (score_id, score_brand, score_text, score_category, score_spec), les scores agrĂ©gĂ©s (business_score, semantic_score, final_score), son rang, et surtout was_selected (le candidat retenu) + was_overridden_by_user (l'humain a corrigĂ©). Autrement dit :
features (X) = les 5 sous-scores + business/semantic de chaque candidat
label (y) = ce candidat était-il le bon ? (was_selected, corrigé par l'humain)
groupe = la ligne de commande (les candidats d'une mĂȘme requĂȘte se classent ENTRE eux)
C'est un dataset de learning-to-rank complet, Ă©tiquetĂ© par les humains, qui grossit tout seul. Aujourd'hui, l'ordre est dĂ©cidĂ© par des poids rĂ©glĂ©s Ă la main (id 0.40, text 0.35âŠ) + un rerank Cohere. La question de ce cours : peut-on apprendre ces poids â voire une fonction non linĂ©aire â Ă partir du feedback rĂ©el ?
La différence fondamentale entre ranking et classification :