Del texto al trabajo soñado: creación de un recomendador de empleo basado en PNL en Talent.com con Amazon SageMaker | Servicios web de Amazon

Del texto al trabajo soñado: creación de un recomendador de empleo basado en PNL en Talent.com con Amazon SageMaker | Servicios web de Amazon

Los coautores de esta publicación son Anatoly Khomenko, ingeniero de aprendizaje automático, y Abdenour Bezzouh, director de tecnología de Talent.com.

Fundada en 2011, talento.com es una de las mayores fuentes de empleo del mundo. La empresa combina ofertas de trabajo remuneradas de sus clientes con ofertas de trabajo públicas en una única plataforma de búsqueda. Con más de 30 millones de empleos listados en más de 75 países, Talent.com ofrece empleos en muchos idiomas, industrias y canales de distribución. El resultado es una plataforma que conecta a millones de solicitantes de empleo con puestos de trabajo disponibles.

La misión de Talent.com es centralizar todos los empleos disponibles en la web para ayudar a quienes buscan empleo a encontrar la mejor opción y al mismo tiempo brindarles la mejor experiencia de búsqueda. Se centra en la relevancia, porque el orden de los trabajos recomendados es de vital importancia para mostrar los trabajos más pertinentes a los intereses de los usuarios. El rendimiento del algoritmo de coincidencia de Talent.com es fundamental para el éxito del negocio y un factor clave para la experiencia de sus usuarios. Es un desafío predecir qué trabajos son pertinentes para un solicitante de empleo basándose en la cantidad limitada de información proporcionada, generalmente contenida en unas pocas palabras clave y una ubicación.

Dada esta misión, Talent.com y AWS unieron fuerzas para crear un motor de recomendación de empleo utilizando procesamiento de lenguaje natural (NLP) de última generación y técnicas de capacitación de modelos de aprendizaje profundo con Amazon SageMaker para proporcionar una experiencia inigualable a quienes buscan empleo. Esta publicación muestra nuestro enfoque conjunto para diseñar un sistema de recomendación de empleo, que incluye ingeniería de funciones, diseño de arquitectura de modelo de aprendizaje profundo, optimización de hiperparámetros y evaluación de modelo que garantiza la confiabilidad y efectividad de nuestra solución tanto para quienes buscan empleo como para los empleadores. El sistema es desarrollado por un equipo de científicos dedicados al aprendizaje automático (ML), ingenieros de ML y expertos en la materia en colaboración entre AWS y Talent.com.

El sistema de recomendación ha impulsado un aumento del 8.6 % en la tasa de clics (CTR) en las pruebas A/B en línea en comparación con una solución anterior basada en XGBoost, ayudando a conectar a millones de usuarios de Talent.com con mejores trabajos.

Resumen de la solución

En la siguiente figura se ilustra una descripción general del sistema. El sistema toma la consulta de búsqueda de un usuario como entrada y genera una lista clasificada de trabajos en orden de pertinencia. La pertinencia laboral se mide por la probabilidad de hacer clic (la probabilidad de que un solicitante de empleo haga clic en un trabajo para obtener más información).

Del texto al trabajo soñado: creación de un recomendador de empleo basado en PNL en Talent.com con Amazon SageMaker | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

El sistema incluye cuatro componentes principales:

  • Arquitectura modelo – El núcleo de este motor de recomendación de trabajos es un modelo Triple Tower Pointwise basado en aprendizaje profundo, que incluye un codificador de consultas que codifica las consultas de búsqueda de los usuarios, un codificador de documentos que codifica las descripciones de los trabajos y un codificador de interacción que procesa el trabajo del usuario anterior. características de interacción. Las salidas de las tres torres se concatenan y pasan a través de un cabezal de clasificación para predecir las probabilidades de clic del trabajo. Al entrenar este modelo en consultas de búsqueda, especificaciones laborales y datos históricos de interacción del usuario de Talent.com, este sistema proporciona recomendaciones laborales personalizadas y muy relevantes a quienes buscan empleo.
  • Ingeniería de características – Realizamos dos conjuntos de ingeniería de características para extraer información valiosa de los datos de entrada e introducirla en las torres correspondientes del modelo. Los dos conjuntos son ingeniería de funciones estándar e incrustaciones de Sentence-BERT (SBERT) ajustadas. Usamos las características de ingeniería estándar como entrada en el codificador de interacción y alimentamos la incrustación derivada de SBERT en el codificador de consultas y el codificador de documentos.
  • Optimización y ajuste del modelo. – Utilizamos metodologías de capacitación avanzadas para entrenar, probar e implementar el sistema con SageMaker. Esto incluye capacitación en paralelo de datos distribuidos (DDP) de SageMaker, ajuste automático de modelos (AMT) de SageMaker, programación de la tasa de aprendizaje y detención temprana para mejorar el rendimiento del modelo y la velocidad de capacitación. El uso del marco de capacitación DDP ayudó a acelerar la capacitación de nuestro modelo aproximadamente ocho veces más rápido.
  • Evaluación modelo – Realizamos evaluaciones tanto fuera de línea como en línea. Evaluamos el rendimiento del modelo con Área bajo la curva (AUC) y Precisión promedio media en K (mAP@K) en evaluación fuera de línea. Durante las pruebas A/B en línea, evaluamos las mejoras de CTR.

En las siguientes secciones presentamos los detalles de estos cuatro componentes.

Diseño de arquitectura de modelo de aprendizaje profundo.

Diseñamos un modelo Triple Tower Deep Pointwise (TTDP) utilizando una arquitectura de aprendizaje profundo de triple torre y el enfoque de modelado de pares puntuales. La arquitectura de triple torre proporciona tres redes neuronales profundas paralelas, y cada torre procesa un conjunto de funciones de forma independiente. Este patrón de diseño permite que el modelo aprenda distintas representaciones de diferentes fuentes de información. Una vez obtenidas las representaciones de las tres torres, se concatenan y se pasan a través de un cabezal de clasificación para realizar la predicción final (0–1) sobre la probabilidad de clic (una configuración de modelado puntual).

Las tres torres reciben nombres según la información que procesan: el codificador de consultas procesa la consulta de búsqueda del usuario, el codificador de documentos procesa el contenido documental del puesto candidato, incluido el título del puesto y el nombre de la empresa, y el codificador de interacción utiliza características relevantes extraídas de interacciones pasadas del usuario. e historia (que se analiza más en la siguiente sección).

Cada una de estas torres juega un papel crucial a la hora de aprender a recomendar trabajos:

  • Codificador de consultas – El codificador de consultas toma las incorporaciones SBERT derivadas de la consulta de búsqueda de empleo del usuario. Mejoramos las incrustaciones a través de un modelo SBERT que ajustamos. Este codificador procesa y comprende la intención de búsqueda de empleo del usuario, incluidos los detalles y matices capturados por nuestras incorporaciones específicas de dominio.
  • Codificador de documentos – El codificador de documentos procesa la información de cada oferta de trabajo. Específicamente, toma las incrustaciones SBERT del texto concatenado del puesto de trabajo y la empresa. La intuición es que los usuarios estarán más interesados ​​en los puestos candidatos que sean más relevantes para la consulta de búsqueda. Al asignar los trabajos y las consultas de búsqueda al mismo espacio vectorial (definido por SBERT), el modelo puede aprender a predecir la probabilidad de los trabajos potenciales en los que hará clic un solicitante de empleo.
  • Codificador de interacción – El codificador de interacciones se ocupa de las interacciones pasadas del usuario con las ofertas de trabajo. Las funciones se producen a través de un paso de ingeniería de funciones estándar, que incluye el cálculo de métricas de popularidad para roles laborales y empresas, el establecimiento de puntuaciones de similitud de contexto y la extracción de parámetros de interacción de interacciones anteriores de los usuarios. También procesa las entidades nombradas identificadas en el título del trabajo y las consultas de búsqueda con un modelo de reconocimiento de entidades nombradas (NER) previamente entrenado.

Cada torre genera una salida independiente en paralelo, las cuales luego se concatenan. Luego, este vector de características combinado se pasa para predecir la probabilidad de hacer clic en una lista de trabajos para una consulta de usuario. La arquitectura de triple torre proporciona flexibilidad para capturar relaciones complejas entre diferentes entradas o características, lo que permite que el modelo aproveche las fortalezas de cada torre mientras aprende representaciones más expresivas para la tarea dada.

Las probabilidades de clic previstas para los trabajos candidatos se clasifican de mayor a menor, generando recomendaciones de trabajo personalizadas. A través de este proceso, nos aseguramos de que cada pieza de información (ya sea la intención de búsqueda del usuario, detalles de la lista de empleo o interacciones pasadas) sea capturada completamente por una torre específica dedicada a ella. Las complejas relaciones entre ellos también se capturan mediante la combinación de las salidas de la torre.

Ingeniería de características

Realizamos dos conjuntos de procesos de ingeniería de características para extraer información valiosa de los datos sin procesar y enviarla a las torres correspondientes en el modelo: ingeniería de características estándar e incorporaciones SBERT ajustadas.

Ingeniería de características estándar

Nuestro proceso de preparación de datos comienza con la ingeniería de funciones estándar. En general, definimos cuatro tipos de características:

  • Popularidad – Calculamos puntuaciones de popularidad a nivel de trabajo individual, nivel de ocupación y nivel de empresa. Esto proporciona una métrica de cuán atractivo podría ser un trabajo o una empresa en particular.
  • Similitud textual – Para comprender la relación contextual entre diferentes elementos textuales, calculamos puntuaciones de similitud, incluida la similitud de cadenas entre la consulta de búsqueda y el título del trabajo. Esto nos ayuda a evaluar la relevancia de una oferta de trabajo para el historial de búsqueda o solicitud de un solicitante de empleo.
  • Interacción – Además, extraemos funciones de interacción de interacciones anteriores de los usuarios con ofertas de trabajo. Un excelente ejemplo de esto es la similitud incrustada entre los títulos de trabajo en los que se hizo clic anteriormente y los títulos de trabajo de los candidatos. Esta medida nos ayuda a comprender la similitud entre trabajos anteriores en los que un usuario ha mostrado interés y las próximas oportunidades laborales. Esto mejora la precisión de nuestro motor de recomendación de empleo.
  • Mi Perfil – Por último, extraemos información de intereses laborales definida por el usuario del perfil del usuario y la comparamos con nuevos candidatos a puestos de trabajo. Esto nos ayuda a comprender si un candidato a un puesto coincide con los intereses de un usuario.

Un paso crucial en nuestra preparación de datos es la aplicación de un modelo NER previamente entrenado. Al implementar un modelo NER, podemos identificar y etiquetar entidades nombradas dentro de títulos de trabajo y consultas de búsqueda. En consecuencia, esto nos permite calcular puntuaciones de similitud entre estas entidades identificadas, proporcionando una medida de relación más centrada y consciente del contexto. Esta metodología reduce el ruido en nuestros datos y nos brinda un método más matizado y sensible al contexto para comparar trabajos.

Incorporaciones SBERT afinadas

Para mejorar la relevancia y precisión de nuestro sistema de recomendación laboral, utilizamos el poder de SBERT, un poderoso modelo basado en transformador, conocido por su habilidad para capturar significados semánticos y contextos del texto. Sin embargo, las incorporaciones genéricas como SBERT, aunque efectivas, pueden no capturar completamente los matices y terminologías únicas inherentes a un dominio específico como el nuestro, que se centra en el empleo y la búsqueda de empleo. Para superar esto, ajustamos las incorporaciones de SBERT utilizando nuestros datos específicos de dominio. Este proceso de ajuste optimiza el modelo para comprender y procesar mejor el lenguaje, la jerga y el contexto específicos de la industria, lo que hace que las incorporaciones reflejen mejor nuestro dominio específico. Como resultado, las incorporaciones refinadas ofrecen un rendimiento mejorado en la captura de información tanto semántica como contextual dentro de nuestra esfera, lo que genera recomendaciones laborales más precisas y significativas para nuestros usuarios.

La siguiente figura ilustra el paso de ajuste fino de SBERT.

Del texto al trabajo soñado: creación de un recomendador de empleo basado en PNL en Talent.com con Amazon SageMaker | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

Ajustamos las incrustaciones de SBERT usando TripletePérdida con una métrica de distancia de coseno que aprende la incrustación de texto donde los textos ancla y positivos tienen una mayor similitud de coseno que los textos ancla y negativos. Utilizamos las consultas de búsqueda de los usuarios como textos de anclaje. Combinamos títulos de trabajo y nombres de empleadores como entradas para los textos positivos y negativos. Los textos positivos se toman de ofertas de trabajo en las que el usuario correspondiente hizo clic, mientras que los textos negativos se toman de ofertas de trabajo en las que el usuario no hizo clic. A continuación se muestra un ejemplo de implementación del procedimiento de ajuste fino:

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)

Entrenamiento de modelos con SageMaker Distributed Data Parallel

Usamos SageMaker Distributed Data Parallel (SMDDP), una característica de la plataforma SageMaker ML que está construida sobre PyTorch DDP. Proporciona un entorno optimizado para ejecutar trabajos de capacitación de PyTorch DDP en la plataforma SageMaker. Está diseñado para acelerar significativamente el entrenamiento de modelos de aprendizaje profundo. Lo logra dividiendo un gran conjunto de datos en partes más pequeñas y distribuyéndolas en múltiples GPU. El modelo se replica en cada GPU. Cada GPU procesa sus datos asignados de forma independiente y los resultados se recopilan y sincronizan en todas las GPU. DDP se encarga de la comunicación de gradiente para mantener sincronizadas las réplicas del modelo y las superpone con cálculos de gradiente para acelerar el entrenamiento. SMDDP utiliza un algoritmo AllReduce optimizado para minimizar la comunicación entre GPU, reduciendo el tiempo de sincronización y mejorando la velocidad general de entrenamiento. El algoritmo se adapta a diferentes condiciones de la red, lo que lo hace altamente eficiente tanto para entornos locales como basados ​​en la nube. En la arquitectura SMDDP (como se muestra en la siguiente figura), el entrenamiento distribuido también se escala utilizando un grupo de muchos nodos. Esto significa no solo múltiples GPU en una instancia informática, sino muchas instancias con múltiples GPU, lo que acelera aún más el entrenamiento.

Del texto al trabajo soñado: creación de un recomendador de empleo basado en PNL en Talent.com con Amazon SageMaker | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

Para obtener más información sobre esta arquitectura, consulte Introducción a la biblioteca paralela de datos distribuidos de SageMaker.

Con SMDDP, hemos podido reducir sustancialmente el tiempo de entrenamiento de nuestro modelo TTDP, haciéndolo ocho veces más rápido. Tiempos de capacitación más rápidos significan que podemos iterar y mejorar nuestros modelos más rápidamente, lo que genera mejores recomendaciones de trabajo para nuestros usuarios en un período de tiempo más corto. Esta ganancia de eficiencia es fundamental para mantener la competitividad de nuestro motor de recomendación laboral en un mercado laboral en rápida evolución.

Puede adaptar su guión de capacitación con el SMDDP con solo tres líneas de código, como se muestra en el siguiente bloque de código. Usando PyTorch como ejemplo, lo único que debe hacer es importar el cliente PyTorch de la biblioteca SMDDP (smdistributed.dataparallel.torch.torch_smddp). El cliente se registra smddp como backend para PyTorch.

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

Una vez que tenga un script PyTorch funcional y adaptado para utilizar la biblioteca paralela de datos distribuidos, puede lanzar un trabajo de capacitación distribuido usando el SDK de SageMaker Python.

Evaluación del rendimiento del modelo

Al evaluar el desempeño de un sistema de recomendación, es crucial elegir métricas que se alineen estrechamente con los objetivos comerciales y brinden una comprensión clara de la efectividad del modelo. En nuestro caso, utilizamos AUC para evaluar el rendimiento de predicción de clics en trabajos de nuestro modelo TTDP y mAP@K para evaluar la calidad de la lista de trabajos clasificados final.

El AUC se refiere al área bajo la curva característica operativa del receptor (ROC). Representa la probabilidad de que un ejemplo positivo elegido al azar tenga una clasificación más alta que un ejemplo negativo elegido al azar. Varía de 0 a 1, donde 1 indica un clasificador ideal y 0.5 representa una suposición aleatoria. mAP@K es una métrica comúnmente utilizada para evaluar la calidad de los sistemas de recuperación de información, como nuestro motor de recomendación de empleo. Mide la precisión promedio de recuperar los K elementos más relevantes para una consulta o usuario determinado. Varía de 0 a 1, donde 1 indica una clasificación óptima y 0 indica la precisión más baja posible en el valor K dado. Evaluamos el AUC, mAP@1 y mAP@3. En conjunto, estas métricas nos permiten medir la capacidad del modelo para distinguir entre clases positivas y negativas (AUC) y su éxito en clasificar los elementos más relevantes en la parte superior (mAP@K).

Según nuestra evaluación fuera de línea, el modelo TTDP superó al modelo de referencia (el modelo de producción existente basado en XGBoost) en un 16.65 % para AUC, un 20 % para mAP@1 y un 11.82 % para mAP@3.

Del texto al trabajo soñado: creación de un recomendador de empleo basado en PNL en Talent.com con Amazon SageMaker | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

Además, diseñamos una prueba A/B en línea para evaluar el sistema propuesto y ejecutamos la prueba en un porcentaje de la población de correo electrónico de EE. UU. durante 6 semanas. En total, se enviaron aproximadamente 22 millones de correos electrónicos utilizando el trabajo recomendado por el nuevo sistema. El aumento resultante en clics en comparación con el modelo de producción anterior fue del 8.6%. Talent.com está aumentando gradualmente el porcentaje para implementar el nuevo sistema en toda su población y canales.

Conclusión

Crear un sistema de recomendación de empleo es una tarea compleja. Cada solicitante de empleo tiene necesidades, preferencias y experiencias profesionales únicas que no se pueden deducir de una breve consulta de búsqueda. En esta publicación, Talent.com colaboró ​​con AWS para desarrollar una solución integral de recomendación de empleos basada en aprendizaje profundo que clasifica listas de trabajos para recomendar a los usuarios. El equipo de Talent.com realmente disfrutó colaborando con el equipo de AWS durante todo el proceso de resolución de este problema. Esto marca un hito importante en el viaje transformador de Talent.com, ya que el equipo aprovecha el poder del aprendizaje profundo para potenciar su negocio.

Este proyecto se perfeccionó utilizando SBERT para generar incrustaciones de texto. Al momento de escribir este artículo, AWS presentó Incrustaciones de Amazon Titan como parte de sus modelos fundamentales (FM) ofrecidos a través de lecho rocoso del amazonas, que es un servicio totalmente gestionado que proporciona una selección de modelos fundamentales de alto rendimiento de empresas líderes en IA. Alentamos a los lectores a explorar las técnicas de aprendizaje automático presentadas en esta publicación de blog y aprovechar las capacidades proporcionadas por AWS, como SMDDP, mientras utilizan los modelos fundamentales de AWS Bedrock para crear sus propias funcionalidades de búsqueda.

Referencias


Sobre los autores

Del texto al trabajo soñado: creación de un recomendador de empleo basado en PNL en Talent.com con Amazon SageMaker | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai. Yi Xiang es científica aplicada II en el laboratorio de soluciones de aprendizaje automático de Amazon, donde ayuda a los clientes de AWS de diferentes industrias a acelerar su adopción de la IA y la nube.

Del texto al trabajo soñado: creación de un recomendador de empleo basado en PNL en Talent.com con Amazon SageMaker | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.Ton Wang es científico aplicado sénior en el laboratorio de soluciones de aprendizaje automático de Amazon, donde ayuda a los clientes de AWS de diferentes industrias a acelerar su adopción de la inteligencia artificial y la nube.

Dmitri BespalovDmitri Bespalov es científico aplicado sénior en el laboratorio de soluciones de aprendizaje automático de Amazon, donde ayuda a los clientes de AWS de diferentes industrias a acelerar su adopción de la inteligencia artificial y la nube.

Del texto al trabajo soñado: creación de un recomendador de empleo basado en PNL en Talent.com con Amazon SageMaker | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.Anatoli Jomenko es ingeniero sénior de aprendizaje automático en Talent.com y le apasiona el procesamiento del lenguaje natural que une a buenas personas con buenos trabajos.

Del texto al trabajo soñado: creación de un recomendador de empleo basado en PNL en Talent.com con Amazon SageMaker | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.Abdenour Bezzouh es un ejecutivo con más de 25 años de experiencia en la creación y entrega de soluciones tecnológicas que escalan a millones de clientes. Abdenour ocupó el cargo de Director de Tecnología (CTO) en talento.com cuando el equipo de AWS diseñó y ejecutó esta solución particular para talento.com.

Del texto al trabajo soñado: creación de un recomendador de empleo basado en PNL en Talent.com con Amazon SageMaker | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.Dale Jacques Es estratega senior de IA en el Centro de innovación de IA generativa, donde ayuda a los clientes de AWS a traducir los problemas comerciales en soluciones de IA.

yanjun qiyanjun qi es gerente sénior de ciencias aplicadas en Amazon Machine Learning Solution Lab. Ella innova y aplica el aprendizaje automático para ayudar a los clientes de AWS a acelerar su adopción de la inteligencia artificial y la nube.

Sello de tiempo:

Mas de Aprendizaje automático de AWS