learn.chetana.fr

Le problĂšme : classer, pas classifier

12 min readAdvanced

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 ?

đŸ§© Quiz1/3

La différence fondamentale entre ranking et classification :

🃏 Flashcards1/4