Paramètres d'affichage

Choisissez un thème pour personnaliser l'apparence du site.
graphique moteur de recheche

Étude de la performance du moteur de recherche en situation réelle

Nous proposons une évaluation de la pertinence des résultats du moteur qui reflète au mieux de nos moyens la qualité du moteur du point de vue de l’utilisateur. Cette méthode nous aidera aussi à mieux évaluer l’effet d’une modification du moteur en terme de dégradation ou amélioration globale de la pertinence.

Lire l'article qui présente le moteur de recherche.
 

Introduction

La raison d’être du moteur de recherche est d’aider les utilisateurs de trouver des métiers, formations ou compétences parmi de nombreux éléments. Son succès est une conséquence de la pertinence des réponses : la mesure dans laquelle elles répondent aux attentes des utilisateurs. Nous devons la définir et l’évaluer car c’est une condition nécessaire pour que le moteur soit utile et adopté par Diagoriente et d’autres services. Nous proposons ici une évaluation basée sur les requêtes récoltées depuis août, limitée à la recherche d’appellations métiers.

Jusqu’à maintenant, la seule méthode que nous avions d’évaluer la qualité du moteur était d’entrer nous-même des requêtes imaginées et d’évaluer subjectivement la pertinence des réponses. Notre évaluation résultante avait peu de chances d’être représentatives de celles des utilisateurs.

Elle ne nous permettait pas non plus d’évaluer le bénéfice d’une modification du moteur. Nous recevions régulièrement des retours de partenaires ou de membres de l’équipe de la forme : « Quand on envoie une requête A, les réponses ne sont pas bonnes. Peut-être qu’en changeant X ça fonctionnerait mieux. » Toute modification s’accompagne du risque de dégrader la pertinence des réponses pour une grande partie des requêtes, même si elle l’améliore pour une ou quelques requêtes. Pour savoir si une modification améliore ou détériore la pertinence des réponses du moteur, il faut la comparer avant et après la modification sur un ensemble de requêtes.

Depuis août 2024, nous conservons les recherches faites par les utilisateurs du moteur de recherche via Diagoriente Plateforme et Immersion Facilitée. Elles nous permettent de construire une méthode d’analyse sur les requêtes effectuées par les utilisateurs en conditions réelles. Nous détaillons ici les étapes suivantes :

  1. construire un échantillon de requête,
  2. les annoter,
  3. évaluer leur pertinence du point de vue de l’utilisateur,
  4. construire une méthode de calcul pour comparer globalement deux versions du moteur de recherche,
  5. évaluer l’adéquation entre les réponses du moteur et le marché du travail.

Les résultats en bref

Nous constituons un échantillon de 64 requêtes parmi les plus fréquentes enregistrées au cours du mois de juin et leur attribuons une catégorie : 

  • « mots incomplets », 
  • « mots complets », 
  • « spécifique », contient une information de tâche et de domaine,
  • « niveau de diplôme », les requêtes comme « bac pro » ou « but » sont fréquentes.

Nous attribuons aux résultats une annotation de pertinence à 4 niveaux, qui reflètent une relation avec la requête :

  • « aussi spécifique », 
  • « plus spécifique », 
  • d’« intersection non-vide »,
  • « non pertinente ». 

Le moteur de recherche renvoie des réponses pertinentes (aussi spécifiques ou plus spécifiques) à la plupart des requêtes spécifiques ou constituées de mots complets. Les requêtes constituées de mots incomplets reçoivent peu de réponses pertinentes et méritent de réfléchir à un traitement spécifique, peut-être différent de l’approche sémantique. Nous avons exclu pour l’instant de l’analyse les requêtes qui consistent en des niveaux de diplômes qui nécessitent une méthode de traitement différente.
 

Méthode

Un notebook qui contient le code utilisé pour l’analyse est disponible sur le dépôt GitLab du moteur : https://gitlab.com/diagoriente/projet-oplc/ms-recherche-referentiel/-/blob/notebooks/development/notebooks/exploration/8.01_frequent_queryes_analysis.ipynb?ref_type=heads

1. Construire un échantillon de requêtes

Notre échantillon est le résultat d’une sélection manuelle des requêtes en provenance de Diagoriente Plateforme, visant des appellations métiers et enregistrées au cours du mois de septembre 2024. Il est composé des :

  • 20 requêtes les plus fréquentes d’au moins 3 caractères,
  • 20 requêtes les plus fréquentes suivantes constituées uniquement d’un ou plusieurs mots complets,
  • 24 requêtes les plus fréquentes suivantes contenant une information de tâche et de domaine, par exemple « boulanger » mais pas « assistant ».

Chaque requête reçoit l’une des catégories suivantes  :

  • « mots incomplets » si la requête contient un ou plusieurs mots incomplets,
  • « mots complets » si la requête ne contient que des mots complets,
  • « spécifique » si la requête est constituée de mots complets et fait référence à une tâche et un domaine d’activité,
  • « niveau de diplôme » si la requête fait référence à un niveau de diplôme comme « bac pro », « licence », etc.

Pour chaque requête, un ensemble de résultat est sélectionné en vue de l’annotation :

  • les 10 premiers résultats du moteur de recherche dans son état actuel,
  • 4 résultats choisis pour appartenir à des niveaux de pertinence variés.

Les 4 résultats choisis ont été sélectionnés à l’aide du LLM de Mistral (mistral-large-2). Nous avons demandé au LLM de générer 4 résultats de pertinence variée pour chaque requête (voir prompt en annexe). Nous avons récupéré l’appellation métier la plus similaire à chaque résultat généré en le passant au moteur de recherche actuel et en prenant le premier résultat.

2. Annoter les réponses

Chaque résultat est annoté avec un niveau de pertinence parmi 4 possibilités, ci-dessous par pertinence décroissante :

3 : Le résultat est aussi spécifique que la requête, par exemple « mise en rayon » et « Employé / Employée en approvisionnement de rayon ».
2 : Le résultat est plus spécifique que la requête, par exemple « assistant » et « assistant administratif ».
1 : La requête et le résultat ont des caractéristiques communes, par exemple « aide-soignant » et « auxiliaire de vie ».
0 : La requête et le résultat n’ont rien en commun.

3. Évaluer la pertinence du point de vue des utilisateurs

Nous évaluons la pertinence des résultats du point de vue de l’utilisateur en étudiant la pertinence des 10 premières réponses du moteur. En particulier, nous calculons le pourcentage de requêtes de chaque catégorie qui reçoivent parmi leurs 10 premiers résultats au moins N réponses de pertinence P, pour chaque N et P.

4. Construire une méthode de calcul pour comparer globalement deux versions du moteur de recherche

Pour justifier nos décisions de modifications futures, nous proposons une méthode pour comparer deux versions du moteur de recherche sur la base des scores NDCG qu’ils obtiennent pour chaque requête. Ce score donne une valeur entre 0 et 1. Elle augmente quand le moteur de recherche renvoie les résultats les plus pertinents en premier. Elle vaut 1 quand le classement est idéal (tous les résultats avec les notes de pertinences plus élevés arrivent d’abord, puis les suivants, etc).

Ceci nous permettra de compter le nombre de requêtes pour lesquelles le score augmente ou diminue entre les deux versions.

Le score est calculé en considérant uniquement les 10 premiers résultats (NDCG@10). Comme il s’agit d’un quotient entre un score obtenu par le classement donné par le moteur et un classement idéal, les dix premiers résultats du moteur sont utilisés pour le calcul du numérateur et les dix résultats avec la plus haute pertinence sont utilisés pour le calcul du dénominateur.

5. Évaluer l’adéquation entre les réponses du moteur et le marché du travail.

Nous évaluons la cohérence entre les réponses du moteur et le marché du travail en étudiant l’écart maximum de nombre d’offres d’emploi pour deux résultats d’un même niveau de pertinence en réponse à une requête.
 

Résultats

Pertinence des réponses du point de vue des utilisateurs

La figure ci-dessous donne le pourcentage de requête recevant au moins le nombre en abscisse de réponses d’un niveau de pertinence donné, pour chaque catégorie de requête et niveau de pertinence.

quatre graphiques selon la pertinance

La plupart des requêtes spécifiques reçoivent au moins une réponse aussi spécifique. Ce sont quasiment les seules à en recevoir.

  • 70 % reçoivent au moins une réponse aussi spécifique,
  • 10 % des requêtes formées de mots complets reçoivent des réponses aussi spécifiques,
  • Aucune autre requête ne reçoit de réponse aussi spécifique.

La plupart des requêtes spécifiques ou constituées de mots complets reçoivent des résultats plus spécifiques que la requête :

  • 100 % des requêtes spécifiques reçoivent au moins 1 réponse plus spécifique et 65 % reçoivent au moins 5 réponses plus spécifiques.
  • 90 % des requêtes formées de mots complets reçoivent au moins 2 réponses et 50 % reçoivent au moins 9 réponses plus spécifiques,
  • 40 % des mots incomplets ont au moins 3 réponses plus spécifiques,

Les mots incomplets reçoivent souvent de nombreux résultats non pertinents, plus rarement des résultats avec une pertinence marginale (= 1) ou plus spécifiques.

  • 80 % des mots incomplets reçoivent au moins 7 résultats non pertinents,
  • 20 % des mots incomplets reçoivent au moins 3 résultats non pertinents,
  • 40 % des mots incomplets reçoivent au moins 3 résultats plus spécifiques.

Les requêtes « mots complets » qui reçoivent des résultats aussi spécifiques sont :

  • requête « formateur », réponse « Formateur / Formatrice »,
  • requête « secrétaire », réponses « Secrétaire ».

Adéquation entre les réponses du moteur et le marché du travail

La figure ci-dessous montre la distribution des écarts maximum entre les nombres d’offres d’emplois associés à deux résultats d’un même niveau de pertinence pour une requête. On observe des écarts supérieurs à 10 000 pour tous les degrés de pertinence.

graphique de pertinence avec le marché du travail

Discussion / Conclusion

Nous constituons l’échantillon de requêtes à partir des requêtes les plus fréquemment reçues pour que notre analyse reflète au mieux l’expérience de la plupart des utilisateurs. Un échantillon constitué des requêtes les plus fréquentes manquerait toutefois de requêtes importantes. Les interfaces web par lesquelles les utilisateurs accèdent au moteur envoient de nombreuses requêtes alors que l’utilisateur n’a pas fini d’écrire pour lui proposer des résultats en cours de frappe. Les requêtes les plus fréquentes contiennent un grand nombre de mots incomplets (par exemple « a », « ass », etc.) ou très génériques (par exemple « agent », « assistante »). Les requêtes plus spécifiques (par exemple « aide soignant », « boulanger ») sont moins fréquentes mais sont importantes à analyser aussi.

Les requêtes spécifiques ou constituées de mots complets reçoivent la plupart du temps des réponses pertinentes. Cette conclusion positive est néanmoins atténuée par le fait qu’un très petit nombre de réponses ont été annotés pour chaque requête. Il est possible qu’il existe des réponses plus pertinentes que celles que nous avons annotées pour une partie des requêtes. Si c’est le cas, nous risquons de surévaluer la pertinence des réponses du moteur, notamment dans le calcul du score NDCG.

Ce sont les mots incomplets qui sont les moins bien traités par le moteur.

Une proportion importante des requêtes ont parmi leur 10 premières réponses de grande différences entre le nombre maximum et minimum d’offres d’emplois pour un même niveau de pertinence. Ceci suggère qu’on peut trouver des réponse d’un même niveau de pertinence peu représentées dans le marché du travail en même temps que des réponses très représentées.

Nous observons de grands écarts entre les nombres d’offres d’emplois associés à des réponses de même niveau de pertinence parmi les 10 premiers résultats du moteur. Ceci suggère l’apparition conjointe dans les résultats de métiers très représentés et de métiers peu représentés dans le marché du travail. Ces résultats peuvent aussi nous laisser croire que le moteur peut proposer des résultats de métiers pertinents mais très peu représentés alors que d’autres métiers aussi pertinents et d’avantage représentés existent peut-être dans la base.

 


Annexes

Prompt utilisé pour la génération de résultats choisis :

Aide moi à trouver des exemples de résultats que renverrait un moteur de recherche de métiers étant donné des requêtes d’utilisateurs.

Je vais t’envoyer des requêtes d’utilisateurs. Pour chacune, donne 4 appellations métiers en suivant ces 4 catégories de pertinences :

  • un métier aussi spécifique que la requête mais pas plus spécifique.
  • un métier plus spécifique que la requête (par exemple “agent” et “agent de sécurité” ou "petite enfance" et "auxiliaire de puériculture")
  • un métier ni aussi spécifique ni plus spécifique que la requête mais qui forme une intersection non vide avec la requête
  • un métier complètement distinct de la requête.

Les réponses doivent forcément être des appellations métiers. Si ta réponse n’est pas une appellation métier, remplace ta réponse par une chaîne de caractères vide.

Répond au format csv. Les colonnes sont: "requête", "résultat", "pertinence". Entoure systématiquement les champs qui contiennent du texte de guillemets.

Pour chaque réponse, vérifie si elle est équivalente à la requête. Si c’est le cas, note 3 dans la colonne "pertinence". Sinon, vérifie si elle est plus spécifique que la requête. Si c’est le cas, note 2 dans cette colonne. Sinon, vérifie si elle forme une intersection non vide avec la requête. Si c’est le cas, note 1 dans cette colonne. Sinon, note 0 dans cette colonne.

Voici les requêtes :

Références