Comment Jobcase utilise Amazon Redshift ML pour recommander du contenu de recherche d'emploi à grande échelle

Nœud source: 995072

Cet article est co-écrit avec Clay Martin et Ajay Joshi de Jobcase en tant qu'auteurs principaux.

Dossier d'emploi est une communauté en ligne dédiée à l'autonomisation et à la défense des travailleurs du monde entier. Nous sommes la troisième plus grande destination pour la recherche d'emploi aux États-Unis et connectons quotidiennement des millions de Jobcasers à des opportunités d'emploi, des entreprises et d'autres ressources pertinentes. La recommandation est au cœur de tout ce que nous faisons.

Dans cet article, les data scientists de Jobcase expliquent comment Amazon Redshift ML nous a aidés à générer des milliards de recommandations de recherche d'emploi en un temps record et avec une pertinence améliorée.

Le défi : adapter les recommandations d'emploi

Chez Jobcase, nous avons utilisé Redshift d'Amazon comme notre entrepôt de données principal pendant 8 ans. Au fil des ans, nous avons accumulé une quantité importante de données historiques sur les interactions entre les demandeurs d'emploi et le contenu de l'emploi, qui sont stockées dans des tables compressées hautement optimisées.

Notre système de recommandation applique des modèles d'apprentissage automatique (ML) à ces grands ensembles de données, ce qui pose un problème familier : les données et les modèles ML ne sont pas colocalisés sur les mêmes clusters de calcul, ce qui implique le déplacement de grandes quantités de données sur les réseaux. Dans de nombreux cas, au moment de l'inférence par lots, les données doivent être transférées hors d'un entrepôt de données et éventuellement ramenées dans celui-ci, ce qui peut être un processus long, coûteux et parfois sujet aux erreurs. Cela nécessite également des ressources d'ingénierie des données pour mettre en place des pipelines de données, et devient souvent un goulot d'étranglement pour les scientifiques des données pour effectuer des expérimentations rapides et générer de la valeur commerciale. Jusqu'à présent, ce problème de colocalisation des données/modèles s'est avéré être un obstacle majeur à l'application du ML aux recommandations par lots à grande échelle.

Comment Amazon Redshift ML a aidé à résoudre ce défi

Amazon Redshift ML, propulsé par Pilote automatique Amazon SageMaker, permet aux analystes de données et aux développeurs de bases de données de créer, former et appliquer facilement des modèles ML à l'aide de commandes SQL familières dans les entrepôts de données Amazon Redshift.

Amazon Redshift ML s'est avéré être une excellente solution à certains de ces problèmes chez Jobcase. Grâce à la capacité d'inférence locale dans la base de données d'Amazon Redshift ML, nous effectuons désormais l'inférence de modèle sur des milliards d'enregistrements en quelques minutes, directement dans notre entrepôt de données Amazon Redshift. Dans cet article, nous parlons de notre parcours vers Amazon Redshift ML, de nos précédentes tentatives d'utilisation du ML pour les recommandations et de la direction que nous prenons à partir de là.

Ce que nous essayons de résoudre

La recherche d'emploi est un domaine unique et stimulant pour la conception et la mise en œuvre d'un système de recommandation. Il y a des variables extraordinaires à considérer. Par exemple, de nombreuses offres d'emploi ne durent que des jours ou des semaines et doivent se situer dans un délai raisonnable pour les demandeurs d'emploi. Certains emplois exigent des compétences que seul un sous-ensemble de nos membres possède. Ces contraintes ne s'appliquent pas nécessairement, par exemple, aux recommandations de films. En revanche, les préférences professionnelles sont relativement stables ; si un membre est intéressé par des emplois de chauffeur de camion lundi, il y a de fortes chances qu'il soit toujours intéressé mardi.

Le système de recommandation Jobcase est responsable de la génération de contenu de recherche d'emploi pour plus de 10 millions de Jobcasers actifs par jour. En moyenne, chaque jour, nous avons environ 20 à 30 millions d'offres d'emploi uniques dans le pool éligible pour les recommandations. Le système fonctionne pendant la nuit et génère des prédictions en mode batch, et devrait être terminé tôt le matin. Ces recommandations sont utilisées tout au long de la journée pour dialoguer avec les membres de Jobcase via divers canaux de communication tels que les e-mails, les SMS et les notifications push.

Notre système de recommandation

Chaque canal de communication a ses propres particularités et contraintes de délivrabilité. Pour gérer ces contraintes, notre système de recommandation est divisé en plusieurs étapes et phases, où l'étape finale est utilisée pour affiner le modèle pour un canal particulier. Toutes ces données d'interaction multicanal avec les demandeurs d'emploi résident dans notre cluster Amazon Redshift.

Dans la première phase, nous appliquons des techniques d'apprentissage non supervisé pour réduire l'ensemble d'éléments candidats par membre. Nous calculons les scores de similarité élément-élément à partir des historiques d'engagement des membres et utilisons ces scores pour générer les N éléments les plus similaires par utilisateur. Cette phase de filtrage collaboratif pose un important compromis de conception : filtrez trop d'éléments candidats pertinents et l'engagement des membres diminue ; filtrer trop peu, et l'inférence en aval reste irréalisable sur le plan informatique.

La deuxième phase est une phase d'apprentissage supervisé spécifique au canal. Il utilise le score de similarité de la première phase ainsi que d'autres mesures prédites en tant que fonctionnalités et attributs, et tente de prédire directement l'engagement des membres pour ce canal. Dans cet exemple, supposons que l'e-mail est le canal et que l'engagement des membres est capturé par la variable dépendante email click-through rate (CTR) = email clicks/email sends.

Ici, nous incluons également des fonctionnalités de demandeur d'emploi, telles que le niveau d'études, les préférences de trajet, l'emplacement, etc., ainsi que des fonctionnalités de contenu d'article ou d'emploi, telles que la macro historique spécifique au canal ou les taux d'engagement locaux. Générer des prédictions pour plus de 10 millions de demandeurs d'emploi associés à 200 à 300 éléments par membre nécessite 2 à 3 milliards de prédictions pour un seul canal.

Simplification du ML depuis Amazon Redshift sans aucun déplacement de données

Jusqu'à présent, notre problème de colocation de données/modèles était difficile à résoudre du point de vue des coûts et des performances. C'est là qu'Amazon Redshift ML a joué un rôle déterminant dans l'amélioration significative du système de recommandation en permettant des milliards de prédictions de modèles non linéaires en quelques minutes seulement.

Avant Amazon Redshift ML, nous devions écrire des pipelines de données personnalisés pour extraire les données de l'entrepôt de données vers Service de stockage simple Amazon (Amazon S3), puis aux instances d'inférence ML, et enfin redirigez les prédictions vers l'entrepôt de données pour consommation. Cela a ajouté des délais et des coûts supplémentaires. Historiquement, il a été difficile d'améliorer cette phase, et nous avons dû nous appuyer sur des modèles linéaires relativement simples, optimisés via des tests A/B et codés en dur dans des instructions SQL.

Avec Amazon Redshift ML, nous avons pu intégrer des classes de modèles de pointe avec des capacités d'inférence locale dans la base de données directement dans notre entrepôt de données. Par conséquent, le pouvoir expressif des modèles que nous pouvions adapter a considérablement augmenté. Le diagramme d'architecture suivant montre comment nous avons simplifié notre pipeline de données avec Amazon Redshift ML.

Notre success story avec Amazon Redshift ML

Nous avons déjà tenté de déplacer une ou les deux phases de notre système hors d'Amazon Redshift. Pour améliorer notre phase de filtrage collaboratif, nous avons essayé d'utiliser des bibliothèques open-source sur Cloud de calcul élastique Amazon (Amazon EC2) qui implémentent des algorithmes de factorisation matricielle et des techniques inspirées du traitement du langage naturel (NLP) telles que les vecteurs globaux (GloVe), qui sont des représentations de mots distribuées. Aucune de ces solutions n'a généré suffisamment d'amélioration en termes d'engagement des membres pour justifier la complexité accrue du pipeline de données, les retards opérationnels et les dépenses opérationnelles. Les pipelines visant à améliorer la notation supervisée des éléments utilisateur rencontraient des difficultés similaires.

Lorsque Amazon Redshift ML est sorti en mode aperçu en décembre 2020, nous avons créé un petit cluster Amazon Redshift pour tester ses capacités par rapport à nos cas d'utilisation. Nous avons été immédiatement frappés par le fait qu'Amazon Redshift ML rend le montage un XGBoost modèle ou réseau de neurones à anticipation aussi simple que d'écrire une requête SQL. Quand Amazon Redshift ML est devenu GA fin mai 2021, nous l'avons mis en production en une journée, et déployé un modèle de production en une semaine. Voici un exemple de modèle que nous avons formé et prédit avec Amazon Redshift ML.

Voici le code de formation :

CREATE MODEL
f_ml_predict_email_content1_ctr
FROM (SELECT * FROM
Email_content1_click_history)
TARGET is_click
FUNCTION f_ml_predict_email_content1_ctr
PROBLEM_TYPE REGRESSION
OBJECTIVE 'MSE';

Voici le code de prédiction :

UPDATE email_content1_new_data
SET ctr_score = f_ml_predict_email_content1_ctr( feature1
,feature2, . . .
,feature_n)

Nous avons maintenant plusieurs modèles en production, chacun effectuant des milliards de prédictions dans Amazon Redshift. Voici quelques-uns des principaux avantages que nous avons obtenus avec Amazon Redshift ML :

  • Exécuter des prédictions de modèle à grande échelle, en réalisant des milliards de prédictions en quelques minutes, ce que nous ne pouvions pas réaliser avant la mise en œuvre d'Amazon Redshift ML
  • Réduction significative du cycle de développement du modèle en éliminant les pipelines de données
  • Réduction significative des cycles de test de modèles en testant des cohortes plus grandes, ce qui a permis d'atteindre rapidement la signification statistique souhaitée
  • Réduction des coûts grâce à l'utilisation de la capacité d'inférence locale dans la base de données d'Amazon Redshift ML, qui a permis de réduire les coûts sur les infrastructures ML externes et les coûts de calcul
  • Amélioration de 5 à 10 % des taux d'engagement des membres sur plusieurs types de modèles d'e-mail différents, ce qui entraîne une augmentation des revenus

Conclusion

Dans cet article, nous avons décrit comment Amazon Redshift ML a aidé Jobcase à faire correspondre efficacement des millions d'emplois à plus de 10 millions de membres actifs de Jobcase au quotidien.

Si vous êtes un utilisateur d'Amazon Redshift, Amazon Redshift ML offre une valeur ajoutée immédiate et significative, avec une inférence locale dans la base de données sans frais supplémentaires. Il donne aux scientifiques des données la possibilité d'expérimenter rapidement sans dépendances d'ingénierie des données. Amazon Redshift ML prend actuellement en charge les types de modèles de régression et de classification, mais est toujours capable d'atteindre un bon équilibre entre vitesse, précision, complexité et coût.


À propos des auteurs

Argile Martin est Data Scientist chez Jobcase Inc. Il conçoit des systèmes de recommandation pour connecter les membres de Jobcase au contenu d'emploi le plus pertinent.

Ajay Joshi est ingénieur logiciel senior chez Jobcase Inc. Ajay prend en charge l'infrastructure d'analyse de données et d'apprentissage automatique de Jobcase et les aide à concevoir et à maintenir des entrepôts de données alimentés par Amazon Redshift, Amazon SageMaker et d'autres services AWS.

Manash Deb est architecte principal de solutions spécialisées dans l'analytique chez AWS. Il a travaillé sur la création de solutions de bout en bout axées sur les données dans différentes technologies de base de données et d'entreposage de données pendant plus de 15 ans. Il aime apprendre de nouvelles technologies et résoudre, automatiser et simplifier les problèmes des clients avec des solutions de données cloud faciles à utiliser sur AWS.

Débu Panda, chef de produit principal chez AWS, est un leader du secteur des technologies d'analyse, de plate-forme d'application et de base de données, et possède plus de 25 ans d'expérience dans le monde informatique.

Source : https://aws.amazon.com/blogs/big-data/how-jobcase-is-using-amazon-redshift-ml-to-recommend-job-search-content-at-scale/

Horodatage:

Plus de AWS