Du texte au travail de rêve : créer un outil de recommandation d'emploi basé sur la PNL sur Talent.com avec Amazon SageMaker | Services Web Amazon

Du texte au travail de rêve : créer un outil de recommandation d'emploi basé sur la PNL sur Talent.com avec Amazon SageMaker | Services Web Amazon

Cet article est co-écrit par Anatoly Khomenko, ingénieur en machine learning, et Abdenour Bezzouh, directeur technologique chez Talent.com.

Fondée en 2011, talent.com est l’une des plus grandes sources d’emplois au monde. L'entreprise combine les offres d'emploi payantes de ses clients avec les offres d'emploi publiques sur une seule plateforme de recherche. Avec plus de 30 millions d'emplois répertoriés dans plus de 75 pays, Talent.com propose des emplois dans de nombreuses langues, secteurs et canaux de distribution. Le résultat est une plateforme qui met en relation des millions de demandeurs d’emploi avec les emplois disponibles.

La mission de Talent.com est de centraliser tous les emplois disponibles sur le Web pour aider les demandeurs d'emploi à trouver leur meilleure adéquation tout en leur offrant la meilleure expérience de recherche. L’accent est mis sur la pertinence, car l’ordre des tâches recommandées est d’une importance vitale pour montrer les tâches les plus pertinentes par rapport aux intérêts des utilisateurs. Les performances de l’algorithme de correspondance de Talent.com sont primordiales pour le succès de l’entreprise et contribuent grandement à l’expérience de leurs utilisateurs. Il est difficile de prédire quels emplois sont pertinents pour un demandeur d'emploi sur la base de la quantité limitée d'informations fournies, généralement contenues dans quelques mots-clés et un emplacement.

Compte tenu de cette mission, Talent.com et AWS ont uni leurs forces pour créer un moteur de recommandation d'emploi utilisant des techniques de pointe de traitement du langage naturel (NLP) et de formation de modèles d'apprentissage profond avec Amazon Sage Maker offrir une expérience inégalée aux demandeurs d’emploi. Cet article présente notre approche commune pour la conception d'un système de recommandation d'emploi, comprenant l'ingénierie des fonctionnalités, la conception d'une architecture de modèle d'apprentissage en profondeur, l'optimisation des hyperparamètres et l'évaluation du modèle qui garantit la fiabilité et l'efficacité de notre solution pour les demandeurs d'emploi et les employeurs. Le système est développé par une équipe de scientifiques dédiés à l'apprentissage automatique appliqué (ML), d'ingénieurs ML et d'experts en la matière en collaboration entre AWS et Talent.com.

Le système de recommandation a entraîné une augmentation de 8.6 % du taux de clics (CTR) dans les tests A/B en ligne par rapport à une précédente solution basée sur XGBoost, aidant ainsi à connecter des millions d'utilisateurs de Talent.com à de meilleurs emplois.

Présentation de la solution

Un aperçu du système est illustré dans la figure suivante. Le système prend la requête de recherche d’un utilisateur en entrée et génère une liste d’emplois classés par ordre de pertinence. La pertinence d'un emploi est mesurée par la probabilité de clic (la probabilité qu'un demandeur d'emploi clique sur un emploi pour plus d'informations).

Du texte au travail de rêve : créer un outil de recommandation d'emploi basé sur la PNL sur Talent.com avec Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Le système comprend quatre composants principaux :

  • Architecture du modèle – Le cœur de ce moteur de recommandation d'emploi est un modèle Triple Tower Pointwise basé sur l'apprentissage profond, qui comprend un encodeur de requêtes qui encode les requêtes de recherche des utilisateurs, un encodeur de documents qui encode les descriptions de poste et un encodeur d'interaction qui traite le travail utilisateur passé. fonctionnalités d’interaction. Les sorties des trois tours sont concaténées et transmises via une tête de classification pour prédire les probabilités de clic du travail. En entraînant ce modèle sur les requêtes de recherche, les spécificités du poste et les données historiques d'interaction des utilisateurs de Talent.com, ce système fournit des recommandations d'emploi personnalisées et très pertinentes aux demandeurs d'emploi.
  • Ingénierie des fonctionnalités – Nous effectuons deux ensembles d’ingénierie de fonctionnalités pour extraire des informations précieuses des données d’entrée et les introduire dans les tours correspondantes du modèle. Les deux ensembles sont une ingénierie de fonctionnalités standard et des intégrations Sentence-BERT (SBERT) affinées. Nous utilisons les fonctionnalités d'ingénierie standard comme entrée dans l'encodeur d'interaction et introduisons l'intégration dérivée du SBERT dans l'encodeur de requêtes et l'encodeur de documents.
  • Optimisation et réglage du modèle – Nous utilisons des méthodologies de formation avancées pour former, tester et déployer le système avec SageMaker. Cela inclut la formation SageMaker Distributed Data Parallel (DDP), le réglage automatique du modèle SageMaker (AMT), la planification du taux d'apprentissage et l'arrêt anticipé pour améliorer les performances du modèle et la vitesse de formation. L'utilisation du cadre de formation DDP a permis d'accélérer la formation de notre modèle jusqu'à environ huit fois plus rapide.
  • Évaluation du modèle – Nous effectuons des évaluations hors ligne et en ligne. Nous évaluons les performances du modèle avec l'aire sous la courbe (AUC) et la précision moyenne moyenne à K (mAP@K) en évaluation hors ligne. Lors des tests A/B en ligne, nous évaluons les améliorations du CTR.

Dans les sections suivantes, nous présentons les détails de ces quatre composantes.

Conception d'architecture de modèle d'apprentissage profond

Nous concevons un modèle Triple Tower Deep Pointwise (TTDP) en utilisant une architecture d'apprentissage profond à triple tour et l'approche de modélisation par paires ponctuelles. L'architecture à trois tours fournit trois réseaux neuronaux profonds parallèles, chaque tour traitant un ensemble de fonctionnalités de manière indépendante. Ce modèle de conception permet au modèle d'apprendre des représentations distinctes à partir de différentes sources d'informations. Une fois les représentations des trois tours obtenues, elles sont concaténées et passées par une tête de classification pour effectuer la prédiction finale (0-1) sur la probabilité de clic (une configuration de modélisation ponctuelle).

Les trois tours sont nommées en fonction des informations qu'elles traitent : l'encodeur de requêtes traite la requête de recherche de l'utilisateur, l'encodeur de documents traite le contenu documentaire du poste du candidat, y compris le titre du poste et le nom de l'entreprise, et l'encodeur d'interaction utilise les fonctionnalités pertinentes extraites des interactions passées des utilisateurs. et l’histoire (discutée plus en détail dans la section suivante).

Chacune de ces tours joue un rôle crucial dans l’apprentissage de la recommandation d’emplois :

  • Encodeur de requête – L’encodeur de requête prend en compte les intégrations SBERT dérivées de la requête de recherche d’emploi de l’utilisateur. Nous améliorons les intégrations grâce à un modèle SBERT que nous avons affiné. Cet encodeur traite et comprend l'intention de recherche d'emploi de l'utilisateur, y compris les détails et les nuances capturés par nos intégrations spécifiques au domaine.
  • Encodeur de documents – L'encodeur de documents traite les informations de chaque offre d'emploi. Plus précisément, il prend les intégrations SBERT du texte concaténé du titre du poste et de l'entreprise. L’intuition est que les utilisateurs seront plus intéressés par les offres d’emploi plus pertinentes par rapport à la requête de recherche. En mappant les emplois et les requêtes de recherche sur le même espace vectoriel (défini par SBERT), le modèle peut apprendre à prédire la probabilité des emplois potentiels sur lesquels un demandeur d'emploi cliquera.
  • Encodeur d'interaction – L’encodeur d’interaction traite les interactions passées de l’utilisateur avec les offres d’emploi. Les fonctionnalités sont produites via une étape standard d'ingénierie des fonctionnalités, qui comprend le calcul des mesures de popularité pour les postes et les entreprises, l'établissement de scores de similarité de contexte et l'extraction des paramètres d'interaction des engagements précédents des utilisateurs. Il traite également les entités nommées identifiées dans l'intitulé du poste et les requêtes de recherche avec un modèle de reconnaissance d'entités nommées (NER) pré-entraîné.

Chaque tour génère une sortie indépendante en parallèle, qui sont ensuite toutes concaténées. Ce vecteur de caractéristiques combiné est ensuite transmis pour prédire la probabilité de clic d'une offre d'emploi pour une requête d'utilisateur. L'architecture à trois tours offre une flexibilité dans la capture de relations complexes entre différentes entrées ou fonctionnalités, permettant au modèle de tirer parti des atouts de chaque tour tout en apprenant des représentations plus expressives pour la tâche donnée.

Les probabilités de clic prévues pour les emplois des candidats sont classées de haut en bas, générant ainsi des recommandations d'emploi personnalisées. Grâce à ce processus, nous garantissons que chaque élément d'information, qu'il s'agisse de l'intention de recherche de l'utilisateur, des détails de l'offre d'emploi ou des interactions passées, est entièrement capturé par une tour spécifique qui lui est dédiée. Les relations complexes entre eux sont également capturées grâce à la combinaison des sorties de la tour.

Ingénierie des fonctionnalités

Nous effectuons deux ensembles de processus d'ingénierie de fonctionnalités pour extraire des informations précieuses des données brutes et les introduire dans les tours correspondantes du modèle : l'ingénierie de fonctionnalités standard et les intégrations SBERT affinées.

Ingénierie des fonctionnalités standard

Notre processus de préparation des données commence par l'ingénierie des fonctionnalités standard. Globalement, nous définissons quatre types de fonctionnalités :

  • Popularité – Nous calculons les scores de popularité au niveau de l’emploi individuel, au niveau de la profession et au niveau de l’entreprise. Cela fournit une mesure de l’attractivité d’un emploi ou d’une entreprise particulière.
  • Similitude textuelle – Pour comprendre la relation contextuelle entre différents éléments textuels, nous calculons des scores de similarité, y compris la similarité des chaînes entre la requête de recherche et le titre du poste. Cela nous aide à évaluer la pertinence d’une offre d’emploi par rapport à l’historique de recherche ou de candidature d’un demandeur d’emploi.
  • Interaction – De plus, nous extrayons les fonctionnalités d’interaction des engagements passés des utilisateurs avec les offres d’emploi. Un excellent exemple de ceci est la similarité intégrée entre les titres de poste cliqués précédemment et les titres de poste des candidats. Cette mesure nous aide à comprendre la similitude entre les emplois précédents pour lesquels un utilisateur a manifesté son intérêt et les opportunités d'emploi à venir. Cela améliore la précision de notre moteur de recommandation d’emploi.
  • Profil – Enfin, nous extrayons du profil utilisateur les informations sur les intérêts d’emploi définis par l’utilisateur et les comparons avec les nouveaux candidats. Cela nous aide à comprendre si un candidat correspond à l’intérêt d’un utilisateur.

Une étape cruciale dans notre préparation de données est l'application d'un modèle NER pré-entraîné. En mettant en œuvre un modèle NER, nous pouvons identifier et étiqueter les entités nommées dans les titres de poste et les requêtes de recherche. Par conséquent, cela nous permet de calculer des scores de similarité entre ces entités identifiées, fournissant ainsi une mesure de parenté plus ciblée et plus contextuelle. Cette méthodologie réduit le bruit dans nos données et nous offre une méthode plus nuancée et contextuelle de comparaison des emplois.

Intégrations SBERT affinées

Pour améliorer la pertinence et la précision de notre système de recommandation d'emploi, nous utilisons la puissance de SBERT, un puissant modèle basé sur un transformateur, connu pour sa capacité à capturer les significations et les contextes sémantiques du texte. Cependant, les intégrations génériques comme SBERT, bien qu'efficaces, peuvent ne pas capturer pleinement les nuances et les terminologies uniques inhérentes à un domaine spécifique tel que le nôtre, centré sur l'emploi et la recherche d'emploi. Pour surmonter cela, nous affinons les intégrations SBERT à l'aide de nos données spécifiques au domaine. Ce processus de réglage fin optimise le modèle pour mieux comprendre et traiter le langage, le jargon et le contexte spécifiques à l'industrie, rendant les intégrations plus reflétantes de notre domaine spécifique. En conséquence, les intégrations raffinées offrent des performances améliorées dans la capture d'informations à la fois sémantiques et contextuelles au sein de notre sphère, conduisant à des recommandations d'emploi plus précises et plus significatives pour nos utilisateurs.

La figure suivante illustre l'étape de réglage fin du SBERT.

Du texte au travail de rêve : créer un outil de recommandation d'emploi basé sur la PNL sur Talent.com avec Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Nous affinons les intégrations SBERT en utilisant Perte de triplet avec une métrique de distance cosinus qui apprend l'intégration de texte où les textes d'ancrage et positifs ont une similarité cosinus plus élevée que les textes d'ancrage et négatifs. Nous utilisons les requêtes de recherche des utilisateurs comme textes d’ancrage. Nous combinons les titres de poste et les noms d’employeurs comme entrées dans les textes positifs et négatifs. Les textes positifs sont extraits des offres d'emploi sur lesquelles l'utilisateur correspondant a cliqué, tandis que les textes négatifs sont extraits des offres d'emploi sur lesquelles l'utilisateur n'a pas cliqué. Voici un exemple de mise en œuvre de la procédure de réglage fin :

import math
from datetime import datetime from torch.utils.data import DataLoader
from sentence_transformers import (SentenceTransformer, SentencesDataset, LoggingHandler, losses)
from sentence_transformers.readers import InputExample model_name = 'all-mpnet-base-v2'
train_batch_size = 16
num_epochs = 1
model_save_path = (f'output/{model_name}_'+ datetime.now().strftime("%Y-%m-%d_%H-%M-%S")) ### load pre-trained SBERT model
model = SentenceTransformer(model_name, device="cuda") ### construct training dataset of triplet texts,
### stored in three lists (achors, positives, negatives)
train_examples =[]
for anchor, positive, negative in zip(achors, positives, negatives): train_examples.append(InputExample(texts=(anchor, positive, negative))) train_dataset = SentencesDataset(train_examples, model)
train_dataloader = DataLoader(train_dataset, shuffle=True, batch_size=train_batch_size) ### use TripletLoss with cosine distance metric and margin=0.5
distance_metric=losses.TripletDistanceMetric.COSINE
train_loss = losses.TripletLoss(model=model, distance_metric=distance_metric, triplet_margin=0.5) ### 10% of train data for warm-up
warmup_steps = math.ceil(len(train_dataloader) * num_epochs * 0.1) # Train the model
model.fit(train_objectives=[(train_dataloader, train_loss)], epochs=num_epochs, warmup_steps=warmup_steps, output_path=model_save_path)

Formation de modèles avec SageMaker Distributed Data Parallel

Nous utilisons SageMaker Distributed Data Parallel (SMDDP), une fonctionnalité de la plate-forme SageMaker ML construite sur PyTorch DDP. Il fournit un environnement optimisé pour exécuter des tâches de formation PyTorch DDP sur la plateforme SageMaker. Il est conçu pour accélérer considérablement la formation des modèles d’apprentissage en profondeur. Pour ce faire, il divise un grand ensemble de données en morceaux plus petits et les distribue sur plusieurs GPU. Le modèle est répliqué sur chaque GPU. Chaque GPU traite les données qui lui sont attribuées indépendamment, et les résultats sont rassemblés et synchronisés sur tous les GPU. DDP s'occupe de la communication par gradient pour maintenir les répliques de modèles synchronisées et les chevauche avec des calculs de gradient pour accélérer la formation. SMDDP utilise un algorithme AllReduce optimisé pour minimiser la communication entre les GPU, réduisant ainsi le temps de synchronisation et améliorant la vitesse globale de formation. L'algorithme s'adapte aux différentes conditions du réseau, ce qui le rend très efficace pour les environnements sur site et basés sur le cloud. Dans l'architecture SMDDP (comme le montre la figure suivante), la formation distribuée est également mise à l'échelle à l'aide d'un cluster de nombreux nœuds. Cela signifie non seulement plusieurs GPU dans une instance informatique, mais également de nombreuses instances avec plusieurs GPU, ce qui accélère encore la formation.

Du texte au travail de rêve : créer un outil de recommandation d'emploi basé sur la PNL sur Talent.com avec Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Pour plus d'informations sur cette architecture, reportez-vous à Introduction à la bibliothèque parallèle de données distribuées de SageMaker.

Avec SMDDP, nous avons pu réduire considérablement le temps de formation de notre modèle TTDP, le rendant huit fois plus rapide. Des temps de formation plus rapides signifient que nous pouvons itérer et améliorer nos modèles plus rapidement, ce qui conduit à de meilleures recommandations de tâches pour nos utilisateurs dans un laps de temps plus court. Ce gain d'efficacité est déterminant pour maintenir la compétitivité de notre moteur de recommandation d'emploi dans un marché du travail en évolution rapide.

Vous pouvez adapter votre script de formation avec le SMDDP avec seulement trois lignes de code, comme indiqué dans le bloc de code suivant. En utilisant PyTorch comme exemple, la seule chose que vous devez faire est d'importer le client PyTorch de la bibliothèque SMDDP (smdistributed.dataparallel.torch.torch_smddp). Le client s'inscrit smddp comme backend pour PyTorch.

import smdistributed.dataparallel.torch.torch_smddp
import torch.distributed as dist dist.init_process_group(backend='smddp')

Une fois que vous disposez d'un script PyTorch fonctionnel adapté pour utiliser la bibliothèque parallèle de données distribuées, vous pouvez lancer une tâche de formation distribuée à l'aide du SDK SageMaker Python.

Évaluation des performances du modèle

Lors de l’évaluation des performances d’un système de recommandation, il est crucial de choisir des mesures qui s’alignent étroitement sur les objectifs commerciaux et fournissent une compréhension claire de l’efficacité du modèle. Dans notre cas, nous utilisons l'AUC pour évaluer les performances de prédiction des clics sur les emplois de notre modèle TTDP et le mAP@K pour évaluer la qualité de la liste finale des emplois classés.

L'AUC fait référence à l'aire située sous la courbe des caractéristiques de fonctionnement du récepteur (ROC). Il représente la probabilité qu’un exemple positif choisi au hasard soit mieux classé qu’un exemple négatif choisi au hasard. Il va de 0 à 1, où 1 indique un classificateur idéal et 0.5 représente une supposition aléatoire. mAP@K est une métrique couramment utilisée pour évaluer la qualité des systèmes de recherche d'informations, tels que notre moteur de recommandation d'emplois. Il mesure la précision moyenne de la récupération des K principaux éléments pertinents pour une requête ou un utilisateur donné. Il va de 0 à 1, 1 indiquant un classement optimal et 0 indiquant la précision la plus faible possible pour la valeur K donnée. Nous évaluons l'AUC, mAP@1 et mAP@3. Collectivement, ces mesures nous permettent d'évaluer la capacité du modèle à distinguer les classes positives et négatives (AUC) et son succès à classer les éléments les plus pertinents en haut (mAP@K).

D'après notre évaluation hors ligne, le modèle TTDP a surpassé le modèle de base (le modèle de production existant basé sur XGBoost) de 16.65 % pour l'AUC, de 20 % pour mAP@1 et de 11.82 % pour mAP@3.

Du texte au travail de rêve : créer un outil de recommandation d'emploi basé sur la PNL sur Talent.com avec Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

De plus, nous avons conçu un test A/B en ligne pour évaluer le système proposé et avons exécuté le test sur un pourcentage de la population de messagerie américaine pendant 6 semaines. Au total, environ 22 millions d'e-mails ont été envoyés en utilisant le travail recommandé par le nouveau système. L'augmentation du nombre de clics qui en a résulté par rapport au modèle de production précédent était de 8.6 %. Talent.com augmente progressivement le pourcentage de déploiement du nouveau système auprès de l'ensemble de sa population et de ses chaînes.

Conclusion

Créer un système de recommandation d'emploi est une entreprise complexe. Chaque demandeur d’emploi a des besoins, des préférences et des expériences professionnelles uniques qui ne peuvent être déduites d’une courte requête de recherche. Dans cet article, Talent.com a collaboré avec AWS pour développer une solution de recommandation d'emplois de bout en bout basée sur le deep learning qui classe les listes d'emplois à recommander aux utilisateurs. L'équipe Talent.com a vraiment apprécié collaborer avec l'équipe AWS tout au long du processus de résolution de ce problème. Il s’agit d’une étape importante dans le parcours de transformation de Talent.com, car l’équipe profite de la puissance du deep learning pour renforcer son activité.

Ce projet a été affiné à l'aide de SBERT pour générer des intégrations de texte. Au moment de la rédaction de cet article, AWS a introduit Intégrations Amazon Titan dans le cadre de leurs modèles fondamentaux (FM) proposés via Socle amazonien, qui est un service entièrement géré proposant une sélection de modèles fondamentaux très performants provenant de grandes sociétés d'IA. Nous encourageons les lecteurs à explorer les techniques d'apprentissage automatique présentées dans cet article de blog et à tirer parti des capacités fournies par AWS, telles que SMDDP, tout en utilisant les modèles fondamentaux d'AWS Bedrock pour créer leurs propres fonctionnalités de recherche.

Bibliographie


À propos des auteurs

Du texte au travail de rêve : créer un outil de recommandation d'emploi basé sur la PNL sur Talent.com avec Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Recherche verticale. Aï. Yi Xiang est Applied Scientist II au Amazon Machine Learning Solutions Lab, où elle aide les clients AWS de différents secteurs à accélérer leur adoption de l'IA et du cloud.

Du texte au travail de rêve : créer un outil de recommandation d'emploi basé sur la PNL sur Talent.com avec Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Tong Wang est Senior Applied Scientist au Amazon Machine Learning Solutions Lab, où il aide les clients AWS de différents secteurs à accélérer leur adoption de l'IA et du cloud.

Dimitri BespalovDimitri Bespalov est Senior Applied Scientist au Amazon Machine Learning Solutions Lab, où il aide les clients AWS de différents secteurs à accélérer leur adoption de l'IA et du cloud.

Du texte au travail de rêve : créer un outil de recommandation d'emploi basé sur la PNL sur Talent.com avec Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Anatoli Khomenko est un ingénieur senior en apprentissage automatique chez Talent.com avec une passion pour le traitement du langage naturel qui permet de faire correspondre les bonnes personnes aux bons emplois.

Du texte au travail de rêve : créer un outil de recommandation d'emploi basé sur la PNL sur Talent.com avec Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Abdenour Bezzouh est un cadre avec plus de 25 ans d'expérience dans la création et la fourniture de solutions technologiques adaptées à des millions de clients. Abdenour a occupé le poste de Chief Technology Officer (CTO) chez talent.com lorsque l'équipe AWS a conçu et exécuté cette solution particulière pour talent.com.

Du texte au travail de rêve : créer un outil de recommandation d'emploi basé sur la PNL sur Talent.com avec Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Dale Jacques est stratège senior en IA au sein du Generative AI Innovation Center, où il aide les clients AWS à traduire leurs problèmes commerciaux en solutions d'IA.

Yanjun QiYanjun Qi est Senior Applied Science Manager au Amazon Machine Learning Solution Lab. Elle innove et applique l'apprentissage automatique pour aider les clients d'AWS à accélérer leur adoption de l'IA et du cloud.

Horodatage:

Plus de Apprentissage automatique AWS