Dal testo al lavoro dei sogni Costruire un consigliere di lavoro basato su NLP su Talent.com con Amazon SageMaker

Dal testo al lavoro dei sogni Costruisci un consulente lavorativo basato su NLP su Talent.com con Amazon SageMaker

Questo post è co-autore Anatoly Khomenko, Ingegnere di Machine Learning, e Abdenour Bezzouh, Chief Technology Officer presso Talent.com.

Fondata nel 2011, Talent.com è una delle più grandi fonti di impiego al mondo. L’azienda combina annunci di lavoro a pagamento dai propri clienti con annunci di lavoro pubblici in una singola piattaforma consultabile. Con oltre 30 milioni di offerte di lavoro elencate in più di 75 paesi, Talent.com offre lavori in molte lingue, settori e canali di distribuzione. Il risultato è una piattaforma che mette in contatto milioni di persone in cerca di lavoro con le opportunità disponibili.

La missione di Talent.com è centralizzare tutti i lavori disponibili sul web per aiutare le persone in cerca di lavoro a trovare la migliore opportunità, fornendo loro la migliore esperienza di ricerca. Il focus è sulla rilevanza, poiché l’ordine dei lavori consigliati è di vitale importanza per mostrare i lavori più pertinenti agli interessi degli utenti. Le prestazioni dell’algoritmo di abbinamento di Talent.com sono fondamentali per il successo dell’azienda e un importante contributo all’esperienza degli utenti. È una sfida prevedere quali lavori possano essere pertinenti per una persona in cerca di lavoro, sulla base delle limitate informazioni fornite, solitamente costituite da poche parole chiave e una località.

Data questa missione, Talent.com e AWS hanno unito le forze per creare un motore di raccomandazione di lavori utilizzando tecniche di elaborazione del linguaggio naturale (NLP) all’avanguardia e addestramento di modelli di deep learning con Amazon SageMaker per offrire un’esperienza senza eguali agli utenti in cerca di lavoro. Questo post illustra il nostro approccio congiunto alla progettazione di un sistema di raccomandazione dei lavori, incluso l’ingegneria delle caratteristiche, la progettazione dell’architettura del modello di deep learning, l’ottimizzazione degli iperparametri e la valutazione del modello che assicura l’affidabilità ed 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 dell’apprendimento automatico (ML), ingegneri di ML e esperti di materia in collaborazione tra AWS e Talent.com.

Il sistema di raccomandazione ha aumentato del 8,6% il tasso di click (CTR) nei test A/B online rispetto a una soluzione precedente basata su XGBoost, aiutando a connettere milioni di utenti di Talent.com a lavori migliori.

Panoramica della soluzione

Un’illustrazione della panoramica del sistema è mostrata nella seguente figura. Il sistema prende come input la ricerca dell’utente e restituisce una lista ordinata di lavori in base alla pertinenza. La pertinenza del lavoro è misurata dalla probabilità di click (la probabilità che una persona in cerca di lavoro clicchi su un lavoro per ottenere ulteriori informazioni).

Il sistema include quattro componenti principali:

  • Architettura del modello – Il nucleo di questo motore di raccomandazione di lavori è un modello di deep learning basato sulla tecnologia Triple Tower Pointwise, che include un codificatore di query che codifica le ricerche degli utenti, un codificatore di documenti che codifica le descrizioni dei lavori e un codificatore di interazione che elabora le caratteristiche delle interazioni passate tra utenti e lavori. Le uscite delle tre torri vengono concatenate e passate attraverso una testa di classificazione per prevedere le probabilità di click sul lavoro. Addestrando questo modello su ricerche, dettagli dei lavori e dati di interazione storica degli utenti da Talent.com, questo sistema fornisce raccomandazioni di lavoro personalizzate e altamente pertinenti alle persone in cerca di lavoro.
  • Ingegneria delle caratteristiche – Effettuiamo due set di ingegnerizzazione delle caratteristiche per estrarre informazioni preziose dai dati in input e alimentarle nelle torri corrispondenti del modello. I due set sono l’ingegnerizzazione standard delle caratteristiche e i embeddings Sentence-BERT (SBERT) ottimizzati. Utilizziamo le caratteristiche ingegnerizzate standard come input nel codificatore di interazioni e alimentiamo l’embedding derivato dal SBERT nel codificatore di query e nel codificatore di documenti.
  • Ottimizzazione e taratura del modello – Utilizziamo metodologie avanzate di addestramento per addestrare, testare e implementare il sistema con SageMaker. Ciò include l’addestramento distribuito in parallelo di SageMaker (DDP), l’ottimizzazione automatica del modello di SageMaker (AMT), la pianificazione del tasso di apprendimento e l’arresto anticipato per migliorare le prestazioni del modello e la velocità di addestramento. L’utilizzo del framework di addestramento DDP ha permesso di accelerare l’addestramento del modello di circa otto volte.
  • Valutazione del modello – Effettuiamo una valutazione sia offline che online. Valutiamo le prestazioni del modello utilizzando l’Area Under the Curve (AUC) e la Mean Average Precision at K (mAP@K) nella valutazione offline. Durante i test A/B online, valutiamo il miglioramento del CTR.

Nelle sezioni seguenti, presentiamo i dettagli di queste quattro componenti.

Progettazione dell’architettura del modello di deep learning

Abbiamo progettato un modello Triple Tower Deep Pointwise (TTDP) utilizzando un’architettura di deep learning a tre torri e l’approccio di modellazione delle coppie con un criterio puntualistico. L’architettura a tre torri fornisce tre reti neurali profonde parallele, ognuna delle quali elabora un insieme di caratteristiche in modo indipendente. Questo pattern di progettazione permette al modello di apprendere rappresentazioni distinte da diverse fonti di informazione. Dopo aver ottenuto le rappresentazioni da tutte e tre le torri, vengono concatenate e inviate a una testa di classificazione per effettuare la previsione finale (0-1) sulla probabilità di clic (una configurazione di modellazione puntualistica).

Le tre torri sono denominate in base alle informazioni che elaborano: il codificatore di query elabora la query di ricerca dell’utente, il codificatore di documento elabora i contenuti documentali del lavoro candidato, inclusi il titolo del lavoro e il nome dell’azienda, e il codificatore di interazione utilizza le caratteristiche rilevanti estratte dalle interazioni e dalla storia passate degli utenti (approfondito nella sezione successiva).

Ognuna di queste torri svolge un ruolo cruciale nell’apprendere come consigliare lavori:

  • Codificatore di query – Il codificatore di query riceve gli embedding SBERT derivati dalla query di ricerca del lavoro dell’utente. Miglioriamo gli embedding attraverso un modello SBERT che abbiamo ottimizzato. Questo codificatore elabora e comprende l’intento di ricerca del lavoro dell’utente, inclusi dettagli e sfumature catturate dai nostri embedding specifici per il dominio.
  • Codificatore di documento – Il codificatore di documento elabora le informazioni di ogni elenco di lavoro. In particolare, elabora gli embedding SBERT del testo concatenato dal titolo del lavoro e dall’azienda. L’intuizione è che gli utenti saranno più interessati ai lavori candidati più rilevanti per la query di ricerca. Mappando i lavori e le query di ricerca nello stesso spazio vettoriale (definito da SBERT), il modello può imparare a prevedere la probabilità dei potenziali lavori che un cercatore di lavoro cliccherà.
  • Codificatore di interazione – Il codificatore di interazione gestisce le interazioni passate dell’utente con gli elenchi di lavoro. Le caratteristiche vengono prodotte tramite una fase standard di ingegneria delle caratteristiche, che include il calcolo di metriche di popolarità per ruoli lavorativi e aziende, l’instaurazione di punteggi di similarità di contesto e l’estrazione di parametri di interazione da engagement precedenti degli utenti. Processa anche le entità nominate identificate nel titolo del lavoro e nelle query di ricerca con un modello NER (Named Entity Recognition) pre-addestrato.

Ogni torre genera un output indipendente in modo parallelo. Questi output vengono quindi concatenati insieme. Il vettore di caratteristiche combinato viene poi utilizzato per prevedere la probabilità di clic di un elenco di lavoro per una query dell’utente. L’architettura a tre torri fornisce flessibilità nella cattura di relazioni complesse tra input o caratteristiche differenti, consentendo al modello di sfruttare i punti di forza di ogni torre mentre apprende rappresentazioni più espressive per il compito assegnato.

Le probabilità di clic previste dei lavori candidati vengono ordinati in ordine decrescente, generando raccomandazioni di lavoro personalizzate. Attraverso questo processo, ci assicuriamo che ogni informazione – che si tratti dell’intento di ricerca dell’utente, dei dettagli dell’elenco di lavoro o delle interazioni passate – sia pienamente catturata da una torre specifica ad essa dedicata. Le complesse relazioni tra di esse sono anche catturate tramite la combinazione degli output delle torri.

Ingegneria delle caratteristiche

Eseguiamo due insiemi di processi di ingegneria delle caratteristiche per estrarre informazioni preziose dai dati grezzi e inserirle nelle torri corrispondenti nel modello: l’ingegneria delle caratteristiche standard e gli embedding SBERT ottimizzati.

Ingegneria delle caratteristiche standard

Il nostro processo di preparazione dei dati inizia con l’ingegneria delle caratteristiche standard. In generale, definiamo quattro tipi di caratteristiche:

  • Popolarità – Calcoliamo i punteggi di popolarità a livello di singolo lavoro, livello di occupazione e livello di azienda. Questo fornisce una misura di quanto attraente possa essere un determinato lavoro o azienda.
  • Similarità testuale – Per capire la relazione contestuale tra diversi elementi testuali, calcoliamo i punteggi di similarità, inclusa la similarità tra stringhe tra la query di ricerca e il titolo del lavoro. Questo ci aiuta a valutare la rilevanza di un’offerta di lavoro rispetto alla ricerca di un cercatore di lavoro o alla sua storia delle candidature.
  • Interazione – Inoltre, estraiamo caratteristiche di interazione dalle interazioni precedenti degli utenti con gli elenchi di lavoro. Un esempio importante è la similarità di embedding tra titoli di lavoro cliccati in passato e titoli di lavoro candidati. Questa misura ci aiuta a comprendere la similarità tra i lavori precedenti a cui un utente ha mostrato interesse e le opportunità di lavoro future. Ciò migliora la precisione del nostro motore di raccomandazione dei lavori.
  • Profilo – Infine, estraiamo informazioni definite dall’utente relative agli interessi lavorativi dal profilo dell’utente e le confrontiamo con i nuovi candidati di lavoro. Questo ci aiuta a capire se un candidato lavorativo corrisponde agli interessi di un utente.

Un passaggio cruciale nella nostra preparazione dei dati è l’applicazione di un modello NER pre-addestrato. Implementando un modello NER, siamo in grado di identificare ed etichettare le entità nominate nei titoli di lavoro e nelle query di ricerca. Ciò ci consente di calcolare punteggi di similarità tra queste entità identificate, fornendo una misura più focalizzata e consapevole del contesto della relazione. Questa metodologia riduce il rumore nei nostri dati e ci fornisce un metodo più sfumato, sensibile al contesto, per confrontare i lavori.

Embeddings SBERT ottimizzati

Per migliorare la rilevanza e l’accuratezza del nostro sistema di raccomandazione di lavoro, utilizziamo la potenza di SBERT, un potente modello basato su trasformatori noto per la sua competenza nel catturare significati semantici e contesti dai testi. Tuttavia, le embeddings generiche come SBERT, sebbene efficaci, potrebbero non catturare appieno le sfumature uniche e i termini tecnici propri di un dominio specifico come il nostro, che ruota attorno all’occupazione e alla ricerca di lavoro. Per superare questo problema, ottimizzia

Per ulteriori informazioni su questa architettura, consultare Introduzione alla libreria di dati distribuiti paralleli di SageMaker.

Con SMDDP, siamo riusciti a ridurre sensibilmente il tempo di addestramento per il nostro modello TTDP, rendendolo otto volte più veloce. Tempi di addestramento più veloci significano che possiamo iterare e migliorare i nostri modelli più rapidamente, portando a migliori raccomandazioni di lavoro per i nostri utenti in un tempo più breve. Questo miglioramento di efficienza è strumentale per mantenere la competitività del nostro motore di raccomandazione di lavoro in un mercato del lavoro in continua evoluzione.

Puoi adattare il tuo script di addestramento con il SMDDP con soli 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 client registra smddp come backend per PyTorch.

import smdistributed.dataparallel.torch.torch_smddpimport torch.distributed as distdist.init_process_group(backend='smddp')

Dopo aver ottenuto uno script funzionante di PyTorch adattato per utilizzare la libreria di dati distribuiti paralleli, puoi avviare un lavoro di addestramento distribuito utilizzando il SageMaker Python SDK.

Valutazione delle prestazioni del modello

Nella valutazione delle prestazioni di un sistema di raccomandazione, è fondamentale scegliere metriche che si allineino strettamente agli obiettivi aziendali e forniscono una chiara comprensione dell’efficacia del modello. Nel nostro caso, utilizziamo l’AUC per valutare le prestazioni di previsione dei clic del lavoro del nostro modello TTDP e il mAP@K per valutare la qualità dell’elenco dei lavori classificati finali.

L’AUC si riferisce all’area sotto la curva caratteristica di funzionamento 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 nella restituzione dei primi K elementi rilevanti per una determinata query o utente. Varia da 0 a 1, con 1 che indica un ordinamento ottimale e 0 che indica la precisione minima possibile al valore K fornito. Valutiamo l’AUC, mAP@1 e mAP@3. Insieme, queste metriche 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 cima (mAP@K).

Sulla base della nostra valutazione offline, il modello TTDP ha superato il modello di base, il modello di produzione esistente basato su XGBoost, del 16,65% per l’AUC, del 20% per il mAP@1 e dell’11,82% per il mAP@3.

Inoltre, abbiamo progettato un test A/B online per valutare il sistema proposto e abbiamo eseguito il test su una percentuale della popolazione di email degli Stati Uniti per 6 settimane. In totale, sono stati inviati circa 22 milioni di email utilizzando il lavoro raccomandato dal nuovo sistema. L’aumento dei clic rispetto al modello di produzione precedente è stato del 8,6%. Talent.com sta gradualmente aumentando la percentuale per implementare il nuovo sistema su tutta la popolazione e i canali.

Conclusione

Creare un sistema di raccomandazione dei lavori è un’impresa complessa. Ogni cercatore 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 dei lavori basata su deep learning end-to-end che classifica gli elenchi di lavori da raccomandare agli utenti. Il team di Talent.com ha apprezzato molto la collaborazione con il team di AWS durante tutto il processo di risoluzione di questo problema. Questo segna una tappa significativa nel percorso di trasformazione di Talent.com, poiché il team sfrutta il potere del deep learning per potenziare la propria attività.

Questo progetto è stato ottimizzato utilizzando SBERT per generare embed di testo. Al momento della scrittura, AWS ha introdotto Amazon Titan Embeddings come parte dei loro modelli fondamentali (FMs) offerti attraverso Amazon Bedrock, che è un servizio completamente gestito che offre una selezione di modelli fondamentali ad alte prestazioni delle principali aziende di intelligenza artificiale. Incoraggiamo i lettori a esplorare le tecniche di apprendimento automatico presentate in questo post del blog e sfruttare le capacità fornite da AWS, come SMDDP, utilizzando i modelli fondamentali di AWS Bedrock per creare le proprie funzionalità di ricerca.

Riferimenti