Posted

Recherche sémantique : la nouvelle tendance de la technologie de recherche de CV

La promesse de cette technologie est très séduisante. Plus besoin d’être un expert en création de requêtes booléennes complexes et obscures : vous pouvez désormais simplement écrire grossièrement ce que vous voulez dire et faire en sorte que l’ordinateur détermine ce que vous voulez vraiment rechercher. Cela permet non seulement d’économiser beaucoup de temps et d’efforts, mais résout également la perspective peu enviable pour un recruteur de devoir apprendre une syntaxe de requête booléenne compliquée et un ensemble complexe de stratégies de recherche et d’astuces.

La promesse procurée par les technologies de recherche sémantique consiste en une recherche plus facile, plus rapide et plus précise, le tout gratuitement. Trop beau pour être vrai ? Dans certains cas, les promesses sont plutôt du « vent » diffusé par les services marketing des sociétés tech’. Mais il existe une catégorie de technologies qui, correctement appliquées, peuvent apporter des améliorations significatives à l’expérience de recherche, tant en termes de facilité de génération de requêtes que de facilité d’apprentissage et de formation.

Cet article, rédigé par Steve Finch, CTO de DaXtra, cherche à séparer le bon grain de l’ivraie concernant le cluster de technologies regroupant la recherche sémantique.

Bref historique de la recherche de candidats

Depuis que les ordinateurs ont été utilisés pour traiter les données de centaines de milliers de candidats, le problème de trouver des candidats précis sur la base de leurs compétences, connaissances et expérience a été une préoccupation majeure.

Recherche codée

Les premières tentatives pour résoudre ce problème impliquaient de coder les candidats avec leurs compétences et leur expérience. La plupart des systèmes de gestion du recrutement de première génération permettaient aux recruteurs de coder leurs candidats à partir d’une liste de compétences stockée dans le système. Sa facilité d’utilisation n’empêchait pas d’en faire un outil de recherche très puissant. Le principal problème rencontré est que le codage manuel des candidats est très rarement bien fait.

Les raisons à cela ne sont pas difficiles à trouver :

1 – Manque de temps : les recruteurs ont rarement le temps de coder les candidats.

2 – Manque d’expertise et de cohérence : même lorsqu’ils codent des candidats, les recruteurs ont tendance à le faire de manière incomplète et incohérente. Il est naturel de se concentrer sur les compétences particulières pour lesquelles vous recrutez le candidat, par exemple, et d’ignorer (ou même de ne pas voir) les compétences non pertinentes pour le recrutement en question. Il est également difficile de trouver le bon code de compétence dans une liste en comptant des milliers. L’inexpérience dans cette tâche digne d’un data-bibliothécaire qualifié entraîne de nombreuses erreurs de codage et la saisie de codes dupliqués ou inappropriés dans les bibliothèques de compétences.

3 – Manque de maintenance des listes de codes : les listes de compétences doivent être maintenues et développées à mesure que les compétences des candidats changent. Si cela n’est pas fait régulièrement, alors soit les nouvelles compétences pertinentes pour l’entreprise n’ont pas de code (et ne peuvent donc pas être codées ou recherchées), soit il devient difficile de gérer efficacement l’ajout de codes multiples pour des compétences identiques (ou associées). Le plus souvent, sans maintenance active, une combinaison des deux se produit, certaines compétences très pertinentes étant omises, et de nombreuses entrées dupliquées polluent la liste, rendant plus difficile la recherche de candidats pertinents.

4 – Manque de récompense : les recruteurs sont très rarement récompensés pour le codage des candidats, si bien qu’ils ont naturellement tendance à consacrer le minimum d’efforts pour effectuer cette tâche.

Conséquence de tout cela : un grand ensemble de candidats très peu codés se traduit par un processus de recherche inefficace et le fait de passer à côté de nombreux candidats pertinents. Il est également difficile voire impossible de trouver des candidats avec des compétences ne figurant pas dans la bibliothèque de compétences.

Cela ne veut pas dire que lorsqu’elle est bien faite, la recherche codée n’est pas un outil très utile pour le système CRM. Mais d’après notre expérience en traitant avec des centaines d’agences, le codage est très rarement fait correctement.

Recherche en texte intégral (Full Text Search) / Recherche Booléenne

L’inconvénient de la recherche codée est que les codes doivent être créés et associés aux candidats par les recruteurs. Aucune autre technologie ne présente un tel inconvénient. Les systèmes de recherche en texte intégral permettent aux utilisateurs de créer des requêtes complexes, en recherchant essentiellement des mots dans les CV qui se trouvent réellement dans le texte que les candidats ont écrit eux-mêmes. Puisque les ordinateurs peuvent indexer automatiquement le texte du CV sans aucune action des recruteurs, l’avantage est que le texte est disponible pour la recherche chaque fois que le CV d’un candidat est chargé dans le CRM.

En utilisant la recherche en texte intégral, les recruteurs peuvent créer des requêtes qui, en théorie, leur permet de trouver les candidats de leur choix parmi ceux qui écrivent certains mots dans leur CV. Cependant, bien qu’il s’agisse d’un outil très puissant, il est notoirement difficile d’apprendre la syntaxe booléenne complexe nécessaire pour créer des requêtes précises. Même lorsque cela a été appris, les requêtes qui sont à la fois précises et complètes nécessitent beaucoup de temps et d’expérience pour être correctement effectuées. En effet, la création de requêtes booléennes est plus un art qu’une science. Ces requêtes ont tendance à sélectionner un grand nombre de candidats – dont la plupart ne sont pas pertinents pour la tâche à accomplir et doivent être laborieusement filtrés – ou à ne sélectionner que très peu de candidats, passant à côté de nombreux candidats pertinents.

Certains des problèmes de la recherche en texte intégral sont :

1 – Synonymes. Plusieurs façons de dire la même chose : pour rédiger une bonne requête, vous devez connaître toutes les façons dont les candidats expriment leurs compétences et pas seulement la façon dont vous, ou le texte de l’annonce, pourriez les exprimer. Un candidat écrirait-il .NET ou dotnet? VMware ou VM-ware ? “Développeur logiciels” ou Programmeur ? Il faut du temps et de l’expérience pour apprendre toutes les différentes manières d’écrire les compétences ou les intitulés de poste.

2 – Homonymes. Parfois, un seul mot peut avoir plusieurs significations selon le contexte d’occurrence. Par exemple, le mot Java peut être une île en Indonésie, un type de café ou un langage de programmation. MD peut avoir une multitude de significations – managing director, medical doctor ou même faire référence à l’État américain du Maryland – selon son contexte. Tout cela signifie que lors de l’élaboration de requêtes, les recruteurs peuvent trouver inopinément de nombreux résultats non pertinents sélectionnés parce que les mots sont utilisés avec des significations imprévues.

3 – Concepts difficiles à exprimer. Certains concepts sont très difficiles à exprimer dans un système de recherche de texte intégral. Par exemple, avoir une expérience dans la finance peut devoir être étendu à une requête exigeant que le candidat ait travaillé dans l’une des centaines ou des milliers d’institutions financières. S’ils ne le font pas, comme c’est souvent le cas, choisissez d’écrire quelque chose comme « j’ai de l’expérience en finance ».

4 – Concepts impossibles à exprimer. Plus compliqué encore, essayer d’exprimer un concept comme « au moins deux ans d’expérience en X ». De tels concepts sont impossibles à encoder avec précision dans les requêtes booléennes à moins que ces informations ne soient explicitement encodées dans le CV, ce qui, le moins que l’on puisse dire, est très rare !

Ces difficultés ne sont pas insurmontables. Un recruteur qualifié et expérimenté peut créer des requêtes qui sélectionnent un grand nombre de résultats pertinents. Il saura ce qu’il ou elle ne peut pas encoder dans les requêtes booléennes et devra donc être vérifié manuellement. Cependant, atteindre un tel niveau de compétence requiert beaucoup de temps et d’expérience, et les recruteurs n’ont souvent ni le temps ni l’envie d’apprendre à exceller dans cette tâche. Il faut donc quelque chose de plus simple.

Récupération classée / Ranked Retrieval

Une variante de la recherche en texte intégral est la recherche en langage naturel. Elle est similaire à la recherche en texte intégral, mais plutôt que de nécessiter l’apprentissage de la syntaxe de requête booléenne complexe, un ordinateur analyse une requête en texte brut qu’un utilisateur écrit dans une zone de requête et tente de construire une requête automatiquement.

Comme cela est très difficile à bien faire, l’ordinateur se trompera généralement en sélectionnant trop de résultats, mais tentera de les classer par ordre de pertinence par rapport à la requête. Pour ce faire, il prête attention au contexte dans lequel les termes apparaissent dans les documents, au nombre de fois qu’ils apparaissent et à la rareté d’un terme – les termes rares étant plus informatifs que les communs – toutes choses étant égales par ailleurs.

Les systèmes de récupération classée (Ranked Retrival) existent depuis de nombreuses années. Ils forment la base des moteurs de recherche internet bien connus comme Bing et Google, et sont intégrés dans tous les systèmes CRM de recrutement modernes.

Bien que ces systèmes n’obligent pas les utilisateurs à apprendre la syntaxe booléenne complexe des systèmes de recherche en texte intégral, ils sacrifient une partie de la puissance fournie par les requêtes booléennes. Par conséquent, les candidats pertinents peuvent être écartés soit en n’étant pas sélectionnés du tout, soit en étant si loin dans la liste des candidats retenus qu’ils ne sont pas examinés.

Recherche sémantique

Les lacunes des technologies de recherche existantes nous laissent envisager une meilleure façon de rechercher. Et dans ce domaine fertile est apparu un ensemble de technologies pouvant être décrites de manière générale et informelle comme des « technologies de recherche sémantique ». Ces dernières prétendent combler certaines des lacunes détaillées ci-dessus dans la recherche en texte intégral et la recherche codée. Le but étant de faciliter l’écriture de requêtes plus puissantes ne sélectionnant que les candidats pertinents que vous souhaitez voir.

Selon le dictionnaire, sémantique signifie “qui concerne le sens, la signification”. La définition du sens est un domaine très vaste, faisant l’objet d’études de philosophes de Socrate à nos jours. Comme on pouvait s’y attendre, nous sommes à un point où les technologies de recherche sémantique résolvent le problème de l’identification de ce que nous entendons vraiment en général. Il existe cependant de nombreuses technologies distinctes qui peuvent nous aider à nous rapprocher un peu plus de ce que nous voulons de manière plus précise, plus rapide et avec moins d’apprentissage requis.

1 – Correction de termes. Lorsque je saisis mal un mot dans une requête dans Google, il semble parfois que Google sache ce que je veux voir plus que moi ! Google peut le faire car il sait, à partir de ses registres et index, ce que les gens recherchent le plus fréquemment. S’il trouve des termes de recherche contenant des termes rares ou absents de leurs dictionnaires, Google peut alors appliquer des algorithmes devinant assez précisément le(s) mot(s) voulu(s) à partir des mots mal saisis. Des algorithmes similaires sont utilisés dans les systèmes de correction orthographique des traitements de texte, et améliorent véritablement l’expérience de recherche. Inversement, lorsque les documents sont indexés, ils peuvent également être analysés pour les erreurs d’orthographe et de tokenisation. Ensuite, les corrections appropriées y sont apportées au fur et à mesure de leur indexation.

2 – Expansion de termes. Également appelé extension de requête. C’est là que les synonymes et les termes étroitement liés d’un thésaurus sont ajoutés aux termes explicitement mentionnés dans la requête afin que les candidats partageant la même chose d’une manière légèrement différente de la requête d’origine soient également retenus. Par exemple, “Chief Financial Officer,” “CFO” et “Financial Director,”peuvent tous être des termes étroitement liés. Habituellement, créer une requête pour l’un de ces éléments ne retient pas les autres. Mais dans une recherche sémantique les variantes seraient ajoutées à la requête, généralement automatiquement, de sorte que toutes les variantes soient retenues. Malgré un fonctionnement correct, nous avons constaté que cela entraînait souvent une diminution de la précision des résultats renvoyés. L’une des raisons à cela est l’ambiguïté du langage (voir désambiguïsation de termes ci-dessous) où les mêmes tokens peuvent signifier des choses complètement différentes. Par exemple, MD peut généralement signifier “managing director” au Royaume-Uni, mais aux États-Unis il est beaucoup plus probable qu’il s’agisse d’un “medical doctor” ou bien de l’État du Maryland. Si vous avez Director comme synonyme de Adobe Director, ne soyez pas surpris si vos requêtes pour les développeurs web commencent à sélectionner beaucoup de managers. Il existe des moyens d’optimiser l’expansion des termes, mais cela repose généralement sur une analyse linguistique et statistique approfondie de vos données, pour voir, par exemple, quels termes de votre ensemble de données sont généralement corrélés à “MD”.

3 – Techniques de regroupement / corrélation de termes. Ces techniques incluent l’application d’algorithmes vectoriels statistiques complexes pour identifier automatiquement les termes corrélés. Ces techniques portent des noms tels que « Analyse sémantique latente », « Analyse bayésienne », « Décomposition de valeurs singulières » et de nombreux noms similaires. Bien que les détails des algorithmes varient considérablement, l’idée est toujours d’identifier les termes ayant tendance à apparaître ensemble et d’utiliser ces informations pour créer des requêtes statistiques qui, espérons-le, se comportent comme une meilleure version de l’expansion des termes. Le problème avec cette approche est que même si elle fonctionne plutôt bien, elle peut souvent déduire des corrélations fausses diminuant la précision des résultats. Il est souvent impossible de savoir pourquoi un certain candidat a été retenu et pas un autre, en raison de la complexité de ces algorithmes.

4 – Désambiguïsation de termes. Le mot “Director” peut signifier un senior manager ou le nom d’un progiciel ou d’un spécialiste de la réalisation de films. Le “BA” peut être un diplôme, un code de compagnie aérienne, un business analyste, etc. Faire correspondre le sens d’un mot alors que nous en entendons un autre diminue la précision de notre sélection de candidats, et inversement déterminer le sens que nous entendons réellement augmente la précision globale de notre sélection de candidats. Le fait que de nombreux termes soient intrinsèquement ambigus est l’un des principaux problèmes de confusion lors de l’application des techniques d’expansion des termes.

5 – Inférence et sélection de termes. Une autre technologie déployée un certain temps dans des systèmes de recherche est l’inférence et la sélection de termes. C’est là que les termes liés à la requête sont affichés ou suggérés à l’utilisateur, soit lors de la construction de sa requête, soit après l’exécution de la requête et l’analyse des résultats. Dans Google, par exemple, lorsque vous tapez votre requête, Google tente de deviner ce que vous recherchez et suggère plusieurs termes connexes, ou des requêtes entières, qui pourraient vous être utiles dans votre recherche. Il s’agit davantage d’une application des techniques d’extension / regroupement de termes ci-dessus. Mais cela peut permettre aux utilisateurs de sélectionner ou de désélectionner des termes supplémentaires lors de la construction de la requête, ce qui l’accélère. Certaines technologies permettent aux utilisateurs de parcourir les résultats retenus en regroupant les termes après l’exécution de la requête, plutôt que pendant le processus de construction de la requête.

6 – Validation contextuelle. Normalement, lorsque nous mettons dans une requête une compétence ou un intitulé de poste, nous souhaitons que les candidats sélectionnés aient ladite compétence ou cet intitulé de poste (ou les compétences ou titres associés). Souvent, cependant, ce n’est pas le cas si nous nous appuyons, comme le font la plupart des systèmes de recherche, sur une simple correspondance entre les termes de la requête et les termes du texte du CV. Par exemple, une recherche sur “directeur financier” sélectionnera probablement beaucoup plus de personnes “sous la responsabilité d’un directeur financier” que les directeurs financiers eux-mêmes. La même logique s’applique à l’exclusion de l’examen des intitulés de poste des référents, des mots dans les adresses des candidats, etc. On peut s’attendre à ce que l’analyse des CV à l’aide d’un parseur pour identifier avec précision les termes utilisés par le candidat pour faire référence à ses compétences, et quels termes se réfèrent simplement à un contexte accidentel, peut augmenter la précision de la sélection.

7 – Analyse linguistique (parsing de CV). En élargissant l’idée de la recherche contextuelle, si nous avons un parseur précis à notre disposition nous pouvons faire un usage intensif des informations qu’il identifie à partir de chaque CV. Par exemple, certains parseurs identifieront les compétences clés de chaque candidat et attribueront à chacun un score ou une estimation de l’étendue de l’expérience. Cette information est un excellent moyen pour être en mesure d’identifier les candidats ayant non seulement une compétence particulière, mais aussi une expérience récente et / ou étendue de l’utilisation de la compétence. Les informations sémantiques très détaillées extraites par les parseurs modernes prennent en charge des algorithmes de recherche beaucoup plus puissants que la seule recherche de texte générale.

8 – Classement. L’une des méthodes les plus puissantes d’exploitation des informations sémantiques concerne l’ordre dans lequel les résultats sont présentés à l’utilisateur. En général, la question de savoir si un candidat est pertinent pour une requête est rarement une décision tout ou rien, mais certains candidats sont plutôt plus adaptés à un poste que d’autres. Toutes les technologies ci-dessus peuvent être combinées dans des algorithmes de classement sophistiqués qui visent à présenter les candidats les plus pertinents en haut de la liste des candidats retenus, tout en retenant autant de candidats potentiellement pertinents que possible pour que le recruteur véritablement dédié filtre manuellement.

La principale chose à retenir de cette analyse est qu’il existe un certain nombre de types de technologies disponibles capables d’améliorer l’expérience de recherche de l’utilisateur. Ces types de technologies ne sont pas parfaits et, mal appliquées, certaines approches (en particulier l’expansion des termes) peuvent nuire à l’expérience de recherche autant qu’elles peuvent aider. Mais si ces technologies sont correctement combinées dans un système de recherche unique, vous pouvez obtenir des outils de recherche qui facilitent le processus de création de requêtes et de navigation dans les ensembles de résultats pour trouver les meilleures correspondances pour votre requête. Rien de tout cela, cependant, ne constitue le must en matière de recherche. Bien que ces technologies soient une aide à la recherche, elles fabriquent encore en catimini des requêtes booléennes complexes, et la technologie sous-jacente des systèmes de recherche, à savoir l’index inversé, n’a pas changé de principe depuis 40 ans.

– Par Steve Finch, CTO, DaXtra Technologies

Leave a Reply

Your email address will not be published. Required fields are marked *