AccueilIA et Apprentissage automatiqueCorrespondance CV-Poste — Similarité d'Embeddings en Direct

🧑‍💼 Correspondance CV-Poste — Similarité d'Embeddings en Direct

Observez des CV et des descriptions de poste être intégrés dans un espace vectoriel commun et appariés par similarité cosinus, avec une liste restreinte classée en direct qui se met à jour lorsque vous ajustez la pondération entre compétences et expérience.

IA et Apprentissage automatique3DModéré60 FPS
ai-hr-candidate-matching ↗ Ouvrir séparément

À propos de la Correspondance CV-Poste

Les systèmes de suivi des candidatures reposaient autrefois presque entièrement sur la correspondance par mots-clés — un CV qui n'avait jamais tapé exactement la phrase « gestion de projet » aurait été filtré même s'il décrivait la gestion de trois lancements transversaux. L'appariement par embeddings corrige cela en convertissant à la fois les CV et les offres d'emploi en vecteurs numériques dans un espace commun, puis en classant les candidats selon la proximité entre la direction de leur vecteur et celle de l'offre, plutôt que par chevauchement littéral de chaînes de caractères. La même technique — encoder les deux côtés dans une géométrie commune, puis mesurer l'angle entre eux — sous-tend la recherche sémantique moderne, les systèmes de recommandation et la génération augmentée par récupération, pas seulement les logiciels de recrutement.

Cette simulation construit une version petite et entièrement transparente de ce pipeline plutôt qu'une démo boîte noire. Une taxonomie fixe de huit catégories de compétences plus les années d'expérience définit un vecteur à neuf dimensions pour seize candidats et pour l'offre d'emploi que vous sélectionnez. Déplacer le curseur compétences contre expérience remet ces dimensions à l'échelle et recalcule la véritable similarité cosinus entre chaque candidat et l'offre, reclassant instantanément la liste restreinte. Une véritable analyse en composantes principales — calculée en direct via itération de puissance sur la matrice de covariance, et non une mise en page 2D toute faite — projette l'espace à neuf dimensions sur le nuage de points que vous voyez, si bien que le graphique lui-même se réorganise visiblement à mesure que la pondération ou l'offre change.

🔍 Ce que ça montre

Seize vecteurs de candidats et un vecteur d'exigences de poste partagent un espace d'embedding à 9 dimensions (8 compétences + expérience). Une projection PCA en direct les place sur un nuage de points 2D, la similarité cosinus avec le poste détermine leur couleur et la force de la ligne de connexion, et la liste restreinte classée se réorganise en temps réel lorsque vous déplacez le curseur de pondération ou changez de poste.

🎛 Comment l'utiliser

Choisissez une offre d'emploi dans le menu déroulant, déplacez le curseur compétences contre expérience pour voir la liste restreinte et le nuage de points se réorganiser, ajustez la taille de la liste restreinte, et cliquez sur un point du graphique (ou une ligne de la liste) pour inspecter le radar de compétences de ce candidat face aux exigences du poste.

💡 Le saviez-vous ?

Les vrais outils de recrutement basés sur des embeddings ont un historique documenté d'amplification des biais ancrés dans les données de recrutement historiques — Amazon a célèbrement abandonné en 2018 un modèle interne de présélection de CV après avoir découvert qu'il avait appris à déclasser les CV mentionnant des collèges féminins. Des vecteurs transparents et auditables comme ceux de cette simulation constituent l'un des remèdes proposés.

Questions Fréquentes

Qu'est-ce qu'un embedding, et pourquoi représenter les CV et les offres d'emploi sous forme de vecteurs ?

Un embedding est un vecteur numérique qui place un élément dans un espace de coordonnées commun de sorte que des éléments similaires se retrouvent proches les uns des autres. Dans cette simulation, chaque CV et chaque offre d'emploi est représenté par un petit vecteur interprétable par un humain : un nombre par compétence (niveau de maîtrise de 0 à 1) plus un nombre pour les années d'expérience. Les systèmes de production réels utilisent généralement des vecteurs denses de quelques centaines à quelques milliers de dimensions produits par un modèle de langage, mais l'idée sous-jacente est identique — transformer du texte non structuré en un point dans l'espace afin que la distance et l'angle entre les points deviennent des signaux mathématiquement significatifs.

Pourquoi la similarité cosinus plutôt que la distance euclidienne ?

La similarité cosinus mesure l'angle entre deux vecteurs indépendamment de leur longueur : cos θ = (A·B)/(|A||B|). Cela compte ici parce qu'un candidat avec un niveau élevé partout et un candidat avec le même profil réduit proportionnellement (noté un cran plus bas sur chaque compétence) devraient toujours être considérés comme une correspondance directionnelle tout aussi bonne pour un poste — la distance euclidienne pénaliserait le second candidat simplement pour avoir une magnitude plus petite, alors que la similarité cosinus indique correctement qu'ils pointent dans la même direction. C'est le choix standard pour les embeddings de CV et de documents dans les vrais systèmes de suivi des candidatures et de recherche.

Que change réellement, mathématiquement, le curseur de pondération compétences contre expérience ?

Chaque vecteur de candidat et de poste est remis à l'échelle avant que la similarité ne soit calculée : les huit dimensions de compétences sont multipliées par le poids des compétences w, et la dimension d'expérience est multipliée par (1 − w). Comme la similarité cosinus dépend des proportions relatives entre les dimensions, et non de leur taille absolue, changer w fait réellement pivoter chaque vecteur dans l'espace — un candidat fort en compétences mais faible en expérience obtient un meilleur score à mesure que w tend vers 1, et un généraliste chevronné avec une profondeur de compétences modeste remonte dans la liste à mesure que w tend vers 0. Le reclassement que vous observez est une conséquence directe et réelle de cette remise à l'échelle, pas une animation scriptée.

Comment la position 2D dans le nuage de points est-elle calculée à partir d'un vecteur à neuf dimensions ?

La simulation exécute une véritable analyse en composantes principales (PCA) sur l'ensemble actuel de vecteurs pondérés. Elle centre tous les points sur leur moyenne, construit la matrice de covariance des dimensions remises à l'échelle, et trouve les deux premiers vecteurs propres par itération de puissance avec déflation — la même méthode itérative utilisée en production pour approximer la PCA lorsqu'une décomposition en valeurs propres complète est inutile. Chaque point est ensuite projeté sur ces deux directions, ce qui explique pourquoi déplacer le curseur de pondération ne se contente pas de reclasser la liste restreinte mais réorganise aussi visiblement le nuage de points : les axes de variance maximale se déplacent à mesure que la pondération change.

Quelles limitations réelles de taxonomie des compétences un petit modèle construit à la main comme celui-ci présente-t-il ?

Cette simulation réduit chaque CV à huit catégories de compétences et un seul nombre d'expérience, ce qui est une simplification pédagogique utile mais une véritable simplification excessive du contenu réel d'un CV. Les systèmes de production font face à des problèmes plus difficiles que ce modèle contourne entièrement : la correspondance de synonymes et d'abréviations (« JS » contre « JavaScript » contre « ECMAScript »), la récence et la décroissance des compétences (une compétence listée mais non utilisée depuis huit ans devrait compter moins), les signaux d'ancienneté enfouis dans les intitulés de poste et les réalisations plutôt que dans des évaluations explicites, et le fait que deux personnes peuvent décrire la même compétence sous-jacente avec un vocabulaire complètement différent. Les vrais modèles d'embeddings sont entraînés spécifiquement pour être robustes à ce décalage de vocabulaire.

Pourquoi changer d'offre d'emploi bouleverse-t-il autant le classement ?

Chaque offre prédéfinie dans cette simulation porte son propre vecteur de compétences requises et sa propre valeur d'expérience requise, donc changer d'offre déplace le point auquel chaque candidat est comparé — le point de l'offre lui-même se déplace dans l'espace des embeddings. Un candidat qui était la meilleure correspondance pour une exigence « Data Scientist » (fort en Données et ML, SQL) peut se retrouver au milieu du peloton pour une exigence « Product Manager » (fort en Produit/UX, Leadership, Communication) parce que l'angle de son vecteur avec le nouveau vecteur de poste est simplement moins aligné, même si les compétences propres du candidat n'ont jamais changé.

Quels biais et pièges affectent les embeddings réels de correspondance de CV que cette simulation ne peut pas montrer ?

Il a été démontré que les outils de recrutement réels basés sur des embeddings encodent et amplifient les biais présents dans leurs données d'entraînement — par exemple en déclassant systématiquement les CV mentionnant des collèges féminins, certains noms, ou des interruptions de carrière non traditionnelles, parce que le modèle a appris ces corrélations à partir de schémas de recrutement historiques plutôt qu'à partir d'un véritable signal de compétence. Les vecteurs de compétences construits à la main et transparents de cette simulation ne peuvent pas reproduire ce mode de défaillance, ce qui est exactement le but recherché : les systèmes réels ont besoin d'audits d'équité explicites, de nettoyage des attributs protégés, et d'un examen humain précisément parce que leurs embeddings sont opaques d'une manière que ce modèle jouet à huit dimensions n'est délibérément pas.

⚙ Sous le capot

Seize candidats et une offre d'emploi sont représentés comme des vecteurs pondérés à 9 dimensions (8 compétences + expérience) ; une véritable similarité cosinus classe la liste restreinte et une PCA par itération de puissance en direct projette les mêmes vecteurs pondérés sur le nuage de points 2D, de sorte que les deux vues se recalculent ensemble à chaque changement de pondération ou de poste.

Canvas TextureCosine SimilarityPCA ProjectionEmbeddingsHR Tech

3D · Moteur Three.js / texture canvas · Cible 60 FPS · fonctionne entièrement côté client, sans installation

Qu'avez-vous trouvé ?

Ajouter des étapes de reproduction (facultatif)