Machine Learning sur des CVs

Publié le 08/04/2017 | Jérémy Grèze
Machine Learning sur des CVs

Comment faire parler la data des candidats ? C'est le défi que m'a lancé Mohamed pour le meetup La Claque: présenter à des recruteurs comment en tant que data analyst je travaillerais sur des données RH et du monde du recrutement.

Pour rendre cela concret, il m'a envoyé 368 CVs de candidats qui postulaient pour une offre d'emploi, à analyser, accompagné d'un petit "have fun, on se voit le 5 avril". 😉

Aperçu des 368 CVs

J'ai commencé par convertir les fichiers (majoritairement des PDF et des DOCX) à l'aide de la librairie Apache Tika (explications ici). Puis j'ai chargé l'ensemble dans le logiciel Dataiku DSS.

La première étape d'un projet data science, c'est l'analyse et la compréhension des données. J'ai parcouru les CVs, et rapidement compris que les candidats postulaient pour une poste de commercial (même si on trouve des candidats un peu hors sujet). Aussi, environ 10% des candidats postulaient via l'application Kudoz et avaient un CV très normalisé.

J'ai commencé à construire le jeu de données. Chaque ligne est un candidat, chaque colonne est une variable que je vais utiliser dans l'analyse. Dans un premier temps, cela me permet de mieux explorer mes données, et ensuite je pourrai appliquer des algorithmes de Machine Learning avec ces variables.

J'ai rapidement pu construire les variables suivantes:

J'ai aussi gardé l'ensemble des mots du CV, en appliquant des transformations de text mining: suppression des mots vides (ou stop words), réduction à la racine d'un mot (ou stemming), comptage de la fréquence des mots par CV.

Aperçu de la préparation des données dans DSS
Construction des variables dans DSS.

Bien entendu, j'aurais pu construire davantage de variables. De bonne suggestions ont été données lors du meetup. On pourrait essayer d'extraire les dates pour trouver le nombre d'années d'éducation ou d'expérience professionnelle, ou travailler autour de la description des expériences. Les candidats commerciaux renseignent souvent des quotas qu'ils ont rempli ou le volume d'affaire, on pourrait tenter d'extraire ces informations.

Quelques résultats de l'analyse ont été présentés (cf slides). Par exemple, la plupart des CVs comprennent entre 200 et 400 mots, et 40% des candidats auraient un niveau master.

Carte de répartition des candidats.
Répartition des candidats en France en fonction du code postal extrait.

Après les premières analyses et la construction des variables, je suis allé plus loin en appliquant des algorithmes de Machine Learning sur les données. Le but étant de trouver des corrélations et résultats qu'on ne peut pas voir « à l’œil nu ».

En appliquant un modèle de clustering (Machine Learning non-supervisé), on demande à l'algorithme de regrouper les candidats en fonction de leur similarité. L'avantage par rapport à une segmentation classique est qu'on ne définit pas les critères discriminants à l'avance, l'algorithme se charge de trouver lesquels sont pertinents. L’inconvénient, c'est qu'il est parfois difficile d'interpréter les résultats.

Un résultat a permis d'identifier 3 groupes (plus 1 groupe « aberrant »). On aurait un groupe qui a été qualifié de « bobo », un groupe majoritaire qui utilise des mots plus généralistes, un groupe qui comporte plus d'ingénieurs, et 3 personnes qui ont confondu lettre de motivation et CV.

Résultat du clustering.

En appliquant un modèle prédictif (Machine Learning supervisé), on laisse l'algorithme apprendre les corrélations qui permettent d'expliquer une variable cible, pour ensuite prédire cette variable cible sur un autre jeu de données (exemple: les futurs candidats).

Je n'avais ici pas de variable intéressante à prédire (comme par exemple: est-ce que le candidat s'est vu proposé un entretien ?). J'ai tenté un modèle prédictif sur la longueur d'un CV. Les résultats ont été décevants puisque l'algorithme a sur-appris sur des cas particuliers, notamment sur le département de résidence des candidats.

En conclusion, pour mener des projets data science sur des CVs et sur le recrutement, on a besoin de volume afin de gommer les cas particuliers.

Également, l'objectif business de ces études doit être défini à l'avance. Les use cases peuvent être multiples: faire des filtres sur les CVs avant de proposer un entretien, prévenir les « départs anticipés » dans les entreprises, proposer des mutations internes dans les grands groupes en fonction des parcours des collaborateurs, etc.

On a bien entendu débattu de l'importante d'associer différents profils à ces projets (des RHs pour la connaissance du métier, et des data scientists pour les compétences en data science), et de garder un cadre éthique. Les algorithmes apprendront ce qu'on lui donnera à manger, donc oui il peut apprendre des comportements discriminants.

Je remercie Mohamed de m'avoir invité à leur meetup et proposé ce défi ! Bien entendu, je me suis engagé à préserver l'anonymité sur les données et CVs. J'espère que ce meetup a été éducatif et a ouvert des yeux sur les possibilités de la data.