Dal testo al lavoro da sogno: creare un suggeritore di lavoro basato sulla PNL su Talent.com con Amazon SageMaker | Servizi Web di Amazon

Dal testo al lavoro da sogno: creare un suggeritore di lavoro basato sulla PNL su Talent.com con Amazon SageMaker | Servizi Web di Amazon

Questo post è stato scritto in collaborazione da Anatoly Khomenko, Machine Learning Engineer, e Abdenour Bezzouh, Chief Technology Officer di Talent.com.

Fondata nel 2011, talent.com è una delle maggiori fonti di occupazione a livello mondiale. L'azienda combina annunci di lavoro retribuiti dei propri clienti con annunci di lavoro pubblici in un'unica piattaforma ricercabile. Con oltre 30 milioni di lavori elencati in più di 75 paesi, Talent.com offre lavori in molte lingue, settori e canali di distribuzione. Il risultato è una piattaforma che abbina milioni di persone in cerca di lavoro con i posti di lavoro disponibili.

La missione di Talent.com è centralizzare tutti i lavori disponibili sul Web per aiutare chi cerca lavoro a trovare la soluzione migliore fornendo loro la migliore esperienza di ricerca. Il suo focus è sulla pertinenza, perché l'ordine dei lavori consigliati è di vitale importanza per mostrare i lavori più pertinenti agli interessi degli utenti. Le prestazioni dell'algoritmo di corrispondenza di Talent.com sono fondamentali per il successo dell'azienda e contribuiscono in modo determinante all'esperienza degli utenti. È difficile prevedere quali lavori siano pertinenti per una persona in cerca di lavoro in base alla quantità limitata di informazioni fornite, solitamente contenute in poche parole chiave e in una posizione.

Data questa missione, Talent.com e AWS hanno unito le forze per creare un motore di raccomandazione di lavoro utilizzando tecniche all'avanguardia di elaborazione del linguaggio naturale (PNL) e formazione di modelli di deep learning con Amazon Sage Maker per fornire un'esperienza impareggiabile a chi cerca lavoro. Questo post mostra il nostro approccio congiunto alla progettazione di un sistema di raccomandazione di lavoro, inclusa l'ingegneria delle funzionalità, la progettazione dell'architettura del modello di deep learning, l'ottimizzazione degli iperparametri e la valutazione del modello che garantisce l'affidabilità e l'efficacia della nostra soluzione sia per le persone in cerca di lavoro che per i datori di lavoro. Il sistema è sviluppato da un team di scienziati dedicati all'apprendimento automatico applicato (ML), ingegneri ML ed esperti in materia in collaborazione tra AWS e Talent.com.

Il sistema di raccomandazione ha portato a un aumento dell'8.6% della percentuale di clic (CTR) nei test A/B online rispetto a una precedente soluzione basata su XGBoost, aiutando a connettere milioni di utenti di Talent.com a lavori migliori.

Panoramica della soluzione

Una panoramica del sistema è illustrata nella figura seguente. Il sistema accetta la query di ricerca di un utente come input e restituisce un elenco classificato di lavori in ordine di pertinenza. La pertinenza al lavoro viene misurata dalla probabilità di clic (la probabilità che una persona in cerca di lavoro faccia clic su un lavoro per ottenere ulteriori informazioni).

Dal testo al lavoro da sogno: creare un suggerimento di lavoro basato sulla PNL su Talent.com con Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Il sistema comprende quattro componenti principali:

  • Architettura modello – Il nucleo di questo motore di raccomandazione di lavoro è un modello Triple Tower Pointwise basato sul deep learning, che include un codificatore di query che codifica le query di ricerca dell'utente, un codificatore di documenti che codifica le descrizioni del lavoro e un codificatore di interazione che elabora il lavoro dell'utente passato funzionalità di interazione. Gli output delle tre torri vengono concatenati e fatti passare attraverso una testa di classificazione per prevedere le probabilità di clic del lavoro. Addestrando questo modello sulle query di ricerca, sulle specifiche del lavoro e sui dati storici sull'interazione degli utenti da Talent.com, questo sistema fornisce consigli di lavoro personalizzati e altamente pertinenti a chi cerca lavoro.
  • Ingegneria delle funzionalità – Eseguiamo due serie di ingegneria delle caratteristiche per estrarre informazioni preziose dai dati di input e inserirle nelle torri corrispondenti nel modello. I due set sono l'ingegneria delle funzionalità standard e gli incorporamenti Sentence-BERT (SBERT) ottimizzati. Utilizziamo le funzionalità progettate standard come input nel codificatore di interazione e inseriamo l'incorporamento derivato da SBERT nel codificatore di query e nel codificatore di documenti.
  • Ottimizzazione e messa a punto del modello – Utilizziamo metodologie di formazione avanzate per addestrare, testare e implementare il sistema con SageMaker. Ciò include la formazione DDP (Distributed Data Parallel) di SageMaker, l'ottimizzazione automatica dei modelli di SageMaker (AMT), la pianificazione della velocità di apprendimento e l'arresto anticipato per migliorare le prestazioni del modello e la velocità di formazione. L'utilizzo del framework di formazione DDP ha contribuito ad accelerare la formazione del nostro modello fino a circa otto volte più velocemente.
  • Valutazione del modello – Effettuiamo valutazioni sia offline che online. Valutiamo le prestazioni del modello con l'area sotto la curva (AUC) e la precisione media media a K (mAP@K) nella valutazione offline. Durante i test A/B online, valutiamo i miglioramenti del CTR.

Nelle sezioni seguenti presentiamo i dettagli di questi quattro componenti.

Progettazione dell'architettura del modello di deep learning

Progettiamo un modello Triple Tower Deep Pointwise (TTDP) utilizzando un'architettura di deep learning a tripla torre e l'approccio di modellazione a coppie puntuali. L'architettura a tripla torre fornisce tre reti neurali profonde parallele, in cui ciascuna torre elabora una serie di funzionalità in modo indipendente. Questo modello di progettazione consente al modello di apprendere rappresentazioni distinte da diverse fonti di informazione. Dopo aver ottenuto le rappresentazioni di tutte e tre le torri, queste vengono concatenate e fatte passare attraverso un'unità di classificazione per effettuare la previsione finale (0–1) sulla probabilità di clic (una configurazione di modellazione puntuale).

Le tre torri prendono il nome in base alle informazioni che elaborano: il codificatore di query elabora la query di ricerca dell'utente, il codificatore di documenti elabora i contenuti documentali del lavoro del candidato, inclusi il titolo professionale e il nome dell'azienda, e il codificatore di interazione utilizza funzionalità pertinenti estratte dalle interazioni precedenti dell'utente. e storia (discusso più approfonditamente nella sezione successiva).

Ognuna di queste torri svolge un ruolo cruciale nell'imparare a consigliare lavori:

  • Interroga il codificatore – Il codificatore di query accetta gli incorporamenti SBERT derivati ​​dalla query di ricerca di lavoro dell'utente. Miglioriamo gli incorporamenti attraverso un modello SBERT che abbiamo messo a punto. Questo codificatore elabora e comprende l'intento di ricerca di lavoro dell'utente, inclusi i dettagli e le sfumature catturati dai nostri incorporamenti specifici del dominio.
  • Codificatore di documenti – Il codificatore di documenti elabora le informazioni di ciascun elenco di lavori. Nello specifico, prende gli incorporamenti SBERT del testo concatenato dal titolo professionale e dall'azienda. L’intuizione è che gli utenti saranno più interessati ai lavori candidati più pertinenti alla query di ricerca. Mappando i lavori e le query di ricerca sullo stesso spazio vettoriale (definito da SBERT), il modello può imparare a prevedere la probabilità dei potenziali lavori su cui farà clic una persona in cerca di lavoro.
  • Codificatore di interazione – Il codificatore di interazione si occupa delle interazioni passate dell'utente con le offerte di lavoro. Le funzionalità vengono prodotte tramite una fase standard di progettazione delle funzionalità, che include il calcolo delle metriche di popolarità per ruoli lavorativi e aziende, la definizione di punteggi di somiglianza del contesto e l'estrazione di parametri di interazione dai precedenti coinvolgimenti degli utenti. Elabora inoltre le entità denominate identificate nel titolo professionale e nelle query di ricerca con un modello di riconoscimento delle entità denominate (NER) preaddestrato.

Ogni torre genera un'uscita indipendente in parallelo, le quali vengono poi tutte concatenate tra loro. Questo vettore di funzionalità combinato viene quindi passato per prevedere la probabilità di clic di un annuncio di lavoro per una query dell'utente. L'architettura a tripla torre offre flessibilità nel catturare relazioni complesse tra diversi input o caratteristiche, consentendo al modello di sfruttare i punti di forza di ciascuna torre e allo stesso tempo di apprendere rappresentazioni più espressive per il compito assegnato.

Le probabilità di clic previste per i lavori candidati vengono classificate dal più alto al più basso, generando consigli di lavoro personalizzati. Attraverso questo processo, garantiamo che ogni informazione, che si tratti dell'intento di ricerca dell'utente, dei dettagli dell'elenco di lavori o delle interazioni passate, venga completamente acquisita da una torre specifica ad essa dedicata. Le complesse relazioni tra loro vengono catturate anche attraverso la combinazione delle uscite della torre.

Ingegneria delle funzionalità

Eseguiamo due serie di processi di ingegneria delle caratteristiche per estrarre informazioni preziose dai dati grezzi e inserirle nelle torri corrispondenti nel modello: ingegneria delle caratteristiche standard e incorporamenti SBERT ottimizzati.

Ingegneria delle funzionalità standard

Il nostro processo di preparazione dei dati inizia con la progettazione delle funzionalità standard. Nel complesso, definiamo quattro tipi di funzionalità:

  • Popolarità – Calcoliamo i punteggi di popolarità a livello di lavoro individuale, livello di occupazione e livello aziendale. Ciò fornisce una metrica di quanto potrebbe essere attraente un particolare lavoro o azienda.
  • Somiglianza testuale – Per comprendere la relazione contestuale tra diversi elementi testuali, calcoliamo i punteggi di somiglianza, inclusa la somiglianza delle stringhe tra la query di ricerca e il titolo professionale. Questo ci aiuta a valutare la pertinenza di un'offerta di lavoro rispetto alla cronologia delle ricerche o delle candidature di una persona in cerca di lavoro.
  • Interazione – Inoltre, estraiamo funzionalità di interazione dai precedenti impegni degli utenti con annunci di lavoro. Un ottimo esempio di ciò è la somiglianza tra i titoli di lavoro cliccati in passato e i titoli di lavoro dei candidati. Questa misura ci aiuta a comprendere la somiglianza tra i lavori precedenti per cui un utente ha mostrato interesse e le opportunità di lavoro imminenti. Ciò migliora la precisione del nostro motore di raccomandazione di lavoro.
  • Profilo – Infine, estraiamo le informazioni sugli interessi lavorativi definiti dall'utente dal profilo utente e le confrontiamo con i nuovi candidati al lavoro. Questo ci aiuta a capire se un candidato per un lavoro corrisponde agli interessi di un utente.

Un passaggio cruciale nella preparazione dei dati è l'applicazione di un modello NER pre-addestrato. Implementando un modello NER, possiamo identificare ed etichettare le entità denominate all'interno dei titoli di lavoro e delle query di ricerca. Di conseguenza, questo ci consente di calcolare i punteggi di somiglianza tra queste entità identificate, fornendo una misura di correlazione più mirata e consapevole del contesto. Questa metodologia riduce il rumore nei nostri dati e ci fornisce un metodo più sfumato e sensibile al contesto per confrontare i lavori.

Incorporamenti SBERT ottimizzati

Per migliorare la pertinenza e l'accuratezza del nostro sistema di raccomandazioni di lavoro, utilizziamo la potenza di SBERT, un potente modello basato su trasformatore, noto per la sua competenza nell'acquisizione di significati semantici e contesti dal testo. Tuttavia, incorporamenti generici come SBERT, sebbene efficaci, potrebbero non catturare completamente le sfumature e le terminologie uniche inerenti a un dominio specifico come il nostro, incentrato sull’occupazione e sulle ricerche di lavoro. Per superare questo problema, perfezioniamo gli incorporamenti SBERT utilizzando i nostri dati specifici del dominio. Questo processo di perfezionamento ottimizza il modello per comprendere ed elaborare meglio il linguaggio, il gergo e il contesto specifici del settore, rendendo gli incorporamenti più riflettenti del nostro dominio specifico. Di conseguenza, gli incorporamenti raffinati offrono prestazioni migliorate nell’acquisizione di informazioni sia semantiche che contestuali all’interno della nostra sfera, portando a raccomandazioni di lavoro più accurate e significative per i nostri utenti.

La figura seguente illustra la fase di messa a punto SBERT.

Dal testo al lavoro da sogno: creare un suggerimento di lavoro basato sulla PNL su Talent.com con Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Perfezioniamo gli incorporamenti SBERT utilizzando Perdita di triplette con una metrica della distanza coseno che apprende l'incorporamento del testo dove i testi di ancoraggio e positivi hanno una somiglianza coseno maggiore rispetto ai testi di ancoraggio e negativi. Utilizziamo le query di ricerca degli utenti come testi di ancoraggio. Combiniamo titoli di lavoro e nomi di datori di lavoro come input per i testi positivi e negativi. I testi positivi vengono campionati dalle offerte di lavoro su cui l'utente corrispondente ha cliccato, mentre i testi negativi sono campionati dalle offerte di lavoro su cui l'utente non ha cliccato. Di seguito è riportato un esempio di implementazione della procedura di fine tuning:

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)

Formazione sui modelli con SageMaker Distributed Data Parallel

Utilizziamo SageMaker Distributed Data Parallel (SMDDP), una funzionalità della piattaforma SageMaker ML basata su PyTorch DDP. Fornisce un ambiente ottimizzato per l'esecuzione di processi di formazione PyTorch DDP sulla piattaforma SageMaker. È progettato per accelerare notevolmente l'addestramento del modello di deep learning. Ciò avviene suddividendo un set di dati di grandi dimensioni in blocchi più piccoli e distribuendoli su più GPU. Il modello viene replicato su ogni GPU. Ciascuna GPU elabora i dati assegnati in modo indipendente e i risultati vengono raccolti e sincronizzati su tutte le GPU. DDP si occupa della comunicazione del gradiente per mantenere sincronizzate le repliche del modello e le sovrappone ai calcoli del gradiente per accelerare l'addestramento. SMDDP utilizza un algoritmo AllReduce ottimizzato per ridurre al minimo la comunicazione tra GPU, riducendo i tempi di sincronizzazione e migliorando la velocità di allenamento complessiva. L'algoritmo si adatta alle diverse condizioni di rete, rendendolo altamente efficiente sia per ambienti locali che basati su cloud. Nell'architettura SMDDP (come mostrato nella figura seguente), anche l'addestramento distribuito viene scalato utilizzando un cluster di molti nodi. Ciò significa non solo più GPU in un'istanza di elaborazione, ma molte istanze con più GPU, il che accelera ulteriormente l'addestramento.

Dal testo al lavoro da sogno: creare un suggerimento di lavoro basato sulla PNL su Talent.com con Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Per ulteriori informazioni su questa architettura, fare riferimento a Introduzione alla libreria parallela di dati distribuiti di SageMaker.

Con SMDDP siamo riusciti a ridurre sostanzialmente i tempi di addestramento del nostro modello TTDP, rendendolo otto volte più veloce. Tempi di formazione più rapidi ci consentono di iterare e migliorare i nostri modelli più rapidamente, portando a migliori consigli di lavoro per i nostri utenti in un lasso di tempo più breve. Questo aumento di efficienza è determinante per mantenere la competitività del nostro motore di raccomandazione di lavoro in un mercato del lavoro in rapida evoluzione.

Puoi adattare il tuo script di training con SMDDP con solo tre righe di codice, come mostrato nel seguente blocco di codice. Utilizzando PyTorch come esempio, l'unica cosa che devi fare è importare il client PyTorch della libreria SMDDP (smdistributed.dataparallel.torch.torch_smddp). Il cliente si registra smddp come backend per PyTorch.

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

Dopo aver ottenuto uno script PyTorch funzionante adattato per utilizzare la libreria parallela dei dati distribuiti, puoi farlo avviare un lavoro di formazione distribuito utilizzando SageMaker Python SDK.

Valutazione delle prestazioni del modello

Quando si valutano le prestazioni di un sistema di raccomandazioni, è fondamentale scegliere metriche che siano strettamente allineate agli obiettivi aziendali e forniscano una chiara comprensione dell'efficacia del modello. Nel nostro caso, utilizziamo l'AUC per valutare le prestazioni di previsione dei clic sulle offerte di lavoro del nostro modello TTDP e il mAP@K per valutare la qualità dell'elenco finale delle offerte di lavoro classificate.

L'AUC si riferisce all'area sotto la curva delle caratteristiche operative del ricevitore (ROC). Rappresenta la probabilità che un esempio positivo scelto a caso venga classificato più in alto rispetto a un esempio negativo scelto a caso. Varia da 0 a 1, dove 1 indica un classificatore ideale e 0.5 rappresenta un'ipotesi casuale. mAP@K è una metrica comunemente utilizzata per valutare la qualità dei sistemi di recupero delle informazioni, come il nostro motore di raccomandazione di lavoro. Misura la precisione media nel recupero dei primi K elementi rilevanti per una determinata query o utente. Varia da 0 a 1, dove 1 indica la classificazione ottimale e 0 indica la precisione più bassa possibile per il valore K specificato. Valutiamo AUC, mAP@1 e mAP@3. Collettivamente, questi parametri ci consentono di valutare la capacità del modello di distinguere tra classi positive e negative (AUC) e il suo successo nel classificare gli elementi più rilevanti in alto (mAP@K).

Sulla base della nostra valutazione offline, il modello TTDP ha sovraperformato il modello di base, ovvero il modello di produzione esistente basato su XGBoost, del 16.65% per AUC, del 20% per mAP@1 e dell'11.82% per mAP@3.

Dal testo al lavoro da sogno: creare un suggerimento di lavoro basato sulla PNL su Talent.com con Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Inoltre, abbiamo progettato un test A/B online per valutare il sistema proposto ed eseguito il test su una percentuale della popolazione email statunitense per 6 settimane. In totale, sono state inviate circa 22 milioni di email utilizzando il lavoro consigliato dal nuovo sistema. Il conseguente aumento dei clic rispetto al modello di produzione precedente è stato dell'8.6%. Talent.com sta gradualmente aumentando la percentuale di implementazione del nuovo sistema a tutta la popolazione e ai canali.

Conclusione

Creare un sistema di raccomandazione del lavoro è un’impresa complessa. Ogni persona in cerca di lavoro ha esigenze, preferenze ed esperienze professionali uniche che non possono essere dedotte da una breve query di ricerca. In questo post, Talent.com ha collaborato con AWS per sviluppare una soluzione di raccomandazione di lavori basata sul deep learning end-to-end che classifica gli elenchi di lavori da consigliare agli utenti. Il team di Talent.com ha davvero apprezzato la collaborazione con il team AWS durante tutto il processo di risoluzione di questo problema. Ciò segna una pietra miliare significativa nel percorso di trasformazione di Talent.com, poiché il team sfrutta la potenza del deep learning per potenziare la propria attività.

Questo progetto è stato messo a punto utilizzando SBERT per generare incorporamenti di testo. Al momento in cui scrivo, AWS ha introdotto Incorporamenti di Amazon Titan come parte dei loro modelli fondamentali (FM) offerti attraverso Roccia Amazzonica, che è un servizio completamente gestito che fornisce una selezione di modelli fondamentali ad alte prestazioni di aziende leader nel settore dell'intelligenza artificiale. Incoraggiamo i lettori a esplorare le tecniche di machine learning presentate in questo post del blog e a sfruttare le funzionalità fornite da AWS, come SMDDP, utilizzando al tempo stesso i modelli fondamentali di AWS Bedrock per creare le proprie funzionalità di ricerca.

Riferimenti


Circa gli autori

Dal testo al lavoro da sogno: creare un suggerimento di lavoro basato sulla PNL su Talent.com con Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai. Yi Xiang è Applied Scientist II presso l'Amazon Machine Learning Solutions Lab, dove aiuta i clienti AWS di diversi settori ad accelerare l'adozione dell'intelligenza artificiale e del cloud.

Dal testo al lavoro da sogno: creare un suggerimento di lavoro basato sulla PNL su Talent.com con Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Ton Wang è un Senior Applied Scientist presso l'Amazon Machine Learning Solutions Lab, dove aiuta i clienti AWS in diversi settori ad accelerare l'adozione di IA e cloud.

Dmitry BespalovDmitry Bespalov è un Senior Applied Scientist presso l'Amazon Machine Learning Solutions Lab, dove aiuta i clienti AWS in diversi settori ad accelerare l'adozione di IA e cloud.

Dal testo al lavoro da sogno: creare un suggerimento di lavoro basato sulla PNL su Talent.com con Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Anatolij Khomenko è un ingegnere senior di machine learning presso Talent.com con una passione per l'elaborazione del linguaggio naturale che abbina brave persone a buoni lavori.

Dal testo al lavoro da sogno: creare un suggerimento di lavoro basato sulla PNL su Talent.com con Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Abdenour Bezzouh è un dirigente con oltre 25 anni di esperienza nella creazione e fornitura di soluzioni tecnologiche scalabili a milioni di clienti. Abdenour ha ricoperto la carica di Chief Technology Officer (CTO) presso talent.com quando il team AWS ha progettato ed eseguito questa particolare soluzione talent.com.

Dal testo al lavoro da sogno: creare un suggerimento di lavoro basato sulla PNL su Talent.com con Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Dale Jacques è Senior AI Strategist presso il Generative AI Innovation Center, dove aiuta i clienti AWS a tradurre i problemi aziendali in soluzioni AI.

Yanjun QiYanjun Qi è Senior Applied Science Manager presso l'Amazon Machine Learning Solution Lab. Innova e applica l'apprendimento automatico per aiutare i clienti AWS ad accelerare l'adozione dell'intelligenza artificiale e del cloud.

Timestamp:

Di più da Apprendimento automatico di AWS