Fra tekst til drømmejobb: Bygg en NLP-basert jobbanbefaler på Talent.com med Amazon SageMaker | Amazon Web Services

Fra tekst til drømmejobb: Bygg en NLP-basert jobbanbefaler på Talent.com med Amazon SageMaker | Amazon Web Services

Dette innlegget er medforfatter av Anatoly Khomenko, Machine Learning Engineer, og Abdenour Bezzouh, Chief Technology Officer hos Talent.com.

Grunnlagt i 2011, Talent.com er en av verdens største kilder til sysselsetting. Selskapet kombinerer betalte stillingsannonser fra sine kunder med offentlige stillingsannonser til en enkelt søkbar plattform. Med over 30 millioner jobber oppført i mer enn 75 land, betjener Talent.com jobber på tvers av mange språk, bransjer og distribusjonskanaler. Resultatet er en plattform som matcher millioner av jobbsøkere med ledige jobber.

Talent.coms oppgave er å sentralisere alle jobber som er tilgjengelige på nettet for å hjelpe jobbsøkere med å finne den beste matchen samtidig som de får den beste søkeopplevelsen. Fokuset er på relevans, fordi rekkefølgen på de anbefalte jobbene er avgjørende for å vise jobbene som er mest relevante for brukernes interesser. Ytelsen til Talent.coms matchende algoritme er avgjørende for suksessen til virksomheten og en viktig bidragsyter til brukernes opplevelse. Det er utfordrende å forutsi hvilke jobber som er relevante for en jobbsøker basert på den begrensede mengden informasjon som tilbys, som vanligvis består av noen få nøkkelord og et sted.

Gitt dette oppdraget, gikk Talent.com og AWS sammen for å lage en jobbanbefalingsmotor ved bruk av toppmoderne naturlig språkbehandling (NLP) og opplæringsteknikker for dyplæringsmodeller med Amazon SageMaker å gi en uovertruffen opplevelse for jobbsøkere. Dette innlegget viser vår felles tilnærming til å designe et jobbanbefalingssystem, inkludert funksjonsteknikk, design av dyplæringsmodellarkitektur, hyperparameteroptimalisering og modellevaluering som sikrer påliteligheten og effektiviteten til løsningen vår for både jobbsøkere og arbeidsgivere. Systemet er utviklet av et team av dedikerte forskere innen anvendt maskinlæring (ML), ML-ingeniører og fageksperter i samarbeid mellom AWS og Talent.com.

Anbefalingssystemet har ført til en økning på 8.6 % i klikkfrekvens (CTR) i online A/B-testing mot en tidligere XGBoost-basert løsning, og har hjulpet millioner av Talent.coms brukere til bedre jobber.

Oversikt over løsning

En oversikt over systemet er illustrert i følgende figur. Systemet tar en brukers søk som input og sender ut en rangert liste over jobber i rekkefølge etter relevans. Jobbrelevans måles ved klikksannsynligheten (sannsynligheten for at en jobbsøker klikker på en jobb for mer informasjon).

Fra tekst til drømmejobb: Bygg en NLP-basert jobbanbefaler på Talent.com med Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Systemet inkluderer fire hovedkomponenter:

  • Modellarkitektur – Kjernen i denne jobbanbefalingsmotoren er en dyp læringsbasert Triple Tower Pointwise-modell, som inkluderer en spørringskoder som koder for brukersøk, en dokumentkoder som koder stillingsbeskrivelsene og en interaksjonskoder som behandler tidligere brukerjobber interaksjonsfunksjoner. Utgangene fra de tre tårnene er sammenkoblet og sendt gjennom et klassifiseringshode for å forutsi jobbens klikksannsynligheter. Ved å trene denne modellen på søk, jobbspesifikasjoner og historiske brukerinteraksjonsdata fra Talent.com, gir dette systemet personlig tilpassede og svært relevante jobbanbefalinger til jobbsøkere.
  • Funksjonsteknikk – Vi utfører to sett med funksjonsteknikk for å trekke ut verdifull informasjon fra inndata og mate den inn i de tilsvarende tårnene i modellen. De to settene er standard funksjonsteknikk og finjusterte Sentence-BERT (SBERT)-innbygginger. Vi bruker de standard konstruerte funksjonene som input til interaksjonskoderen og mater den SBERT-avledede innebyggingen inn i spørringskoderen og dokumentkoderen.
  • Modelloptimalisering og tuning – Vi bruker avanserte opplæringsmetoder for å trene, teste og distribuere systemet med SageMaker. Dette inkluderer SageMaker Distribuert Data Parallel (DDP) trening, SageMaker Automatic Model Tuning (AMT), læringshastighetsplanlegging og tidlig stopp for å forbedre modellens ytelse og treningshastighet. Å bruke DDP-treningsrammeverket bidro til å øke hastigheten på modelltreningen vår til omtrent åtte ganger raskere.
  • Modellevaluering – Vi gjennomfører både offline og online evaluering. Vi evaluerer modellytelsen med Area Under the Curve (AUC) og Mean Average Precision ved K (mAP@K) i offline-evaluering. Under online A/B-testing evaluerer vi CTR-forbedringene.

I de følgende avsnittene presenterer vi detaljene for disse fire komponentene.

Deep learning modellarkitekturdesign

Vi designer en Triple Tower Deep Pointwise (TTDP) modell ved å bruke en trippeltårns dyp læringsarkitektur og den punktvise parmodelleringsmetoden. Trippeltårnarkitekturen gir tre parallelle dype nevrale nettverk, hvor hvert tårn behandler et sett med funksjoner uavhengig. Dette designmønsteret lar modellen lære forskjellige representasjoner fra forskjellige informasjonskilder. Etter at representasjonene fra alle tre tårnene er oppnådd, settes de sammen og sendes gjennom et klassifiseringshode for å gjøre den endelige prediksjonen (0–1) på klikksannsynligheten (et punktvis modelleringsoppsett).

De tre tårnene er navngitt basert på informasjonen de behandler: spørringskoderen behandler brukersøket, dokumentkoderen behandler kandidatjobbens dokumentasjonsinnhold inkludert stillingstittel og firmanavn, og interaksjonskoderen bruker relevante funksjoner hentet fra tidligere brukerinteraksjoner og historie (diskutert mer i neste avsnitt).

Hvert av disse tårnene spiller en avgjørende rolle for å lære å anbefale jobber:

  • Spørringskoder – Spørringskoderen tar inn SBERT-innbyggingene avledet fra brukerens jobbsøkespørring. Vi forbedrer innbyggingene gjennom en SBERT-modell vi har finjustert. Denne koderen behandler og forstår brukerens jobbsøkeintensjon, inkludert detaljer og nyanser fanget opp av våre domenespesifikke innebygginger.
  • Dokumentkoder – Dokumentkoderen behandler informasjonen til hver stillingsoppføring. Nærmere bestemt tar det SBERT-innbyggingene av den sammenkoblede teksten fra stillingstittelen og selskapet. Intuisjonen er at brukere vil være mer interessert i kandidatjobber som er mer relevante for søket. Ved å kartlegge jobbene og søkene til samme vektorrom (definert av SBERT), kan modellen lære å forutsi sannsynligheten for de potensielle jobbene en jobbsøker vil klikke.
  • Interaksjonskoder – Interaksjonskoderen tar for seg brukerens tidligere interaksjoner med stillingsannonser. Funksjonene produseres via et standard funksjonstrinn, som inkluderer beregning av popularitetsverdier for jobbroller og selskaper, etablering av kontekstlikhetspoeng og uttrekk av interaksjonsparametere fra tidligere brukerengasjementer. Den behandler også de navngitte enhetene identifisert i stillingstittelen og søkespørsmål med en forhåndsopplært modell for navngitt enhetsgjenkjenning (NER).

Hvert tårn genererer en uavhengig utgang parallelt, som alle deretter kobles sammen. Denne kombinerte funksjonsvektoren sendes deretter for å forutsi klikksannsynligheten for en stillingsannonse for en brukerforespørsel. Trippeltårnarkitekturen gir fleksibilitet i å fange komplekse forhold mellom ulike innganger eller funksjoner, slik at modellen kan dra nytte av styrken til hvert tårn samtidig som den lærer mer uttrykksfulle representasjoner for den gitte oppgaven.

Kandidatjobbers anslåtte klikksannsynligheter rangeres fra høy til lav, og genererer personlige jobbanbefalinger. Gjennom denne prosessen sikrer vi at hver enkelt informasjon – enten det er brukerens søkeintensjon, stillingsannonsedetaljer eller tidligere interaksjoner – blir fullstendig fanget opp av et spesifikt tårn dedikert til den. De komplekse relasjonene mellom dem fanges også gjennom kombinasjonen av tårnutgangene.

Funksjonsteknikk

Vi utfører to sett med funksjonsteknologiske prosesser for å trekke ut verdifull informasjon fra rådataene og mate den inn i de tilsvarende tårnene i modellen: standard funksjonsteknikk og finjusterte SBERT-innbygginger.

Standard funksjonsteknikk

Dataforberedelsesprosessen vår begynner med standard funksjonsteknikk. Totalt sett definerer vi fire typer funksjoner:

  • popularitet – Vi beregner popularitetsscore på den enkelte stillingsnivå, yrkesnivå og bedriftsnivå. Dette gir en beregning av hvor attraktiv en bestemt jobb eller bedrift kan være.
  • Tekstmessig likhet – For å forstå det kontekstuelle forholdet mellom ulike tekstelementer, beregner vi likhetspoeng, inkludert strenglikhet mellom søket og stillingstittelen. Dette hjelper oss med å måle relevansen av en jobbåpning for en jobbsøkers søke- eller søknadshistorikk.
  • Interaksjon – I tillegg trekker vi ut interaksjonsfunksjoner fra tidligere brukerengasjementer med stillingsannonser. Et godt eksempel på dette er den innebygde likheten mellom tidligere klikkede stillingstitler og kandidatjobbtitler. Dette tiltaket hjelper oss å forstå likheten mellom tidligere jobber en bruker har vist interesse for kontra kommende jobbmuligheter. Dette forbedrer presisjonen til vår jobbanbefalingsmotor.
  • Profil – Til slutt trekker vi ut brukerdefinert jobbinteresseinformasjon fra brukerprofilen og sammenligner den med nye jobbkandidater. Dette hjelper oss å forstå om en jobbkandidat matcher en brukers interesse.

Et avgjørende skritt i vår dataforberedelse er bruken av en forhåndstrent NER-modell. Ved å implementere en NER-modell kan vi identifisere og merke navngitte enheter innenfor stillingstitler og søk. Følgelig lar dette oss beregne likhetsscore mellom disse identifiserte enhetene, og gir et mer fokusert og kontekstbevisst mål på slektskap. Denne metodikken reduserer støyen i dataene våre og gir oss en mer nyansert, kontekstsensitiv metode for å sammenligne jobber.

Finjusterte SBERT-innstøpinger

For å øke relevansen og nøyaktigheten til vårt jobbanbefalingssystem bruker vi kraften til SBERT, en kraftig transformatorbasert modell, kjent for sin dyktighet i å fange semantiske betydninger og kontekster fra tekst. Imidlertid kan det hende at generiske innbygginger som SBERT, selv om de er effektive, ikke fullt ut fanger opp de unike nyansene og terminologiene som er iboende i et spesifikt domene som vårt, som sentrerer rundt ansettelse og jobbsøk. For å overvinne dette, finjusterer vi SBERT-innbyggingene ved å bruke våre domenespesifikke data. Denne finjusteringsprosessen optimerer modellen for bedre å forstå og behandle det bransjespesifikke språket, sjargongen og konteksten, noe som gjør innbyggingene mer reflekterende av vårt spesifikke domene. Som et resultat gir de raffinerte innebyggingene forbedret ytelse når det gjelder å fange både semantisk og kontekstuell informasjon innenfor vår sfære, noe som fører til mer nøyaktige og meningsfulle jobbanbefalinger for brukerne våre.

Følgende figur illustrerer SBERT-finjusteringstrinnet.

Fra tekst til drømmejobb: Bygg en NLP-basert jobbanbefaler på Talent.com med Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Vi finjusterer SBERT-innstøpinger ved hjelp av Trippeltap med en cosinusavstandsmetrikk som lærer tekstinnbygging der anker- og positive tekster har høyere cosinuslikhet enn anker- og negative tekster. Vi bruker brukernes søk som ankertekster. Vi kombinerer stillingsbetegnelser og arbeidsgivernavn som input til de positive og negative tekstene. De positive tekstene er samplet fra stillingsannonser som den tilsvarende brukeren har klikket på, mens de negative tekstene er samplet fra stillingsannonser som brukeren ikke har klikket på. Følgende er eksempelimplementering av finjusteringsprosedyren:

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)

Modelltrening med SageMaker Distributed Data Parallel

Vi bruker SageMaker Distributed Data Parallel (SMDDP), en funksjon i SageMaker ML-plattformen som er bygget på toppen av PyTorch DDP. Det gir et optimalisert miljø for å kjøre PyTorch DDP-treningsjobber på SageMaker-plattformen. Den er designet for å øke hastigheten på modelltrening for dyp læring betydelig. Den oppnår dette ved å dele et stort datasett i mindre biter og distribuere dem over flere GPUer. Modellen er replikert på hver GPU. Hver GPU behandler sine tilordnede data uavhengig, og resultatene blir samlet og synkronisert på tvers av alle GPUer. DDP tar seg av gradientkommunikasjon for å holde modellreplikaer synkroniserte og overlapper dem med gradientberegninger for å øke hastigheten på treningen. SMDDP bruker en optimalisert AllReduce-algoritme for å minimere kommunikasjonen mellom GPUer, redusere synkroniseringstiden og forbedre den generelle treningshastigheten. Algoritmen tilpasser seg ulike nettverksforhold, noe som gjør den svært effektiv for både lokale og skybaserte miljøer. I SMDDP-arkitekturen (som vist i følgende figur), skaleres distribuert trening også ved å bruke en klynge med mange noder. Dette betyr ikke bare flere GPUer i en databehandlingsforekomst, men mange forekomster med flere GPUer, noe som øker treningen ytterligere.

Fra tekst til drømmejobb: Bygg en NLP-basert jobbanbefaler på Talent.com med Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

For mer informasjon om denne arkitekturen, se Introduksjon til SageMakers distribuerte data parallellbibliotek.

Med SMDDP har vi vært i stand til å redusere treningstiden betydelig for vår TTDP-modell, noe som gjør den åtte ganger raskere. Raskere treningstider betyr at vi kan gjenta og forbedre modellene våre raskere, noe som fører til bedre jobbanbefalinger for brukerne våre på kortere tid. Denne effektivitetsgevinsten er medvirkende til å opprettholde konkurranseevnen til jobbanbefalingsmotoren vår i et arbeidsmarked i rask utvikling.

Du kan tilpasse treningsskriptet ditt med SMDDP med bare tre linjer med kode, som vist i følgende kodeblokk. Ved å bruke PyTorch som eksempel, er det eneste du trenger å gjøre å importere SMDDP-bibliotekets PyTorch-klient (smdistributed.dataparallel.torch.torch_smddp). Klienten registrerer seg smddp som en backend for PyTorch.

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

Etter at du har et fungerende PyTorch-skript som er tilpasset for å bruke det distribuerte dataparallelle biblioteket, kan du lanser en distribuert treningsjobb ved å bruke SageMaker Python SDK.

Evaluering av modellens ytelse

Når du evaluerer ytelsen til et anbefalingssystem, er det avgjørende å velge beregninger som stemmer overens med forretningsmålene og gir en klar forståelse av modellens effektivitet. I vårt tilfelle bruker vi AUC for å evaluere TTDP-modellens prediksjonsytelse for jobbklikk og mAP@K for å vurdere kvaliteten på den endelig rangerte jobblisten.

AUC refererer til området under mottakerdriftskarakteristikken (ROC) kurven. Det representerer sannsynligheten for at et tilfeldig valgt positivt eksempel vil bli rangert høyere enn et tilfeldig valgt negativt eksempel. Den varierer fra 0–1, der 1 indikerer en ideell klassifisering og 0.5 representerer en tilfeldig gjetning. mAP@K er en beregning som ofte brukes for å vurdere kvaliteten på informasjonsgjenvinningssystemer, for eksempel jobbanbefalingsmotoren vår. Den måler gjennomsnittlig presisjon for å hente de beste K relevante elementene for en gitt spørring eller bruker. Den varierer fra 0–1, hvor 1 indikerer optimal rangering og 0 indikerer lavest mulig presisjon ved gitt K-verdi. Vi evaluerer AUC, mAP@1 og mAP@3. Samlet lar disse beregningene oss måle modellens evne til å skille mellom positive og negative klasser (AUC) og dens suksess med å rangere de mest relevante elementene øverst (mAP@K).

Basert på vår offline-evaluering, overgikk TTDP-modellen basismodellen – den eksisterende XGBoost-baserte produksjonsmodellen – med 16.65 % for AUC, 20 % for mAP@1 og 11.82 % for mAP@3.

Fra tekst til drømmejobb: Bygg en NLP-basert jobbanbefaler på Talent.com med Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Videre designet vi en online A/B-test for å evaluere det foreslåtte systemet og kjørte testen på en prosentandel av den amerikanske e-postbefolkningen i 6 uker. Totalt ble omtrent 22 millioner e-poster sendt med jobben anbefalt av det nye systemet. Den resulterende økningen i klikk sammenlignet med forrige produksjonsmodell var 8.6 %. Talent.com øker gradvis prosentandelen for å rulle ut det nye systemet til hele befolkningen og kanalene.

konklusjonen

Å lage et jobbanbefalingssystem er en komplisert bestrebelse. Hver jobbsøker har unike behov, preferanser og faglige erfaringer som ikke kan utledes fra et kort søk. I dette innlegget samarbeidet Talent.com med AWS for å utvikle en ende-til-ende dyplæringsbasert jobbanbefalingsløsning som rangerer lister over jobber å anbefale til brukere. Talent.com-teamet likte virkelig å samarbeide med AWS-teamet gjennom hele prosessen med å løse dette problemet. Dette markerer en betydelig milepæl i Talent.coms transformative reise, ettersom teamet drar nytte av kraften i dyp læring for å styrke virksomheten sin.

Dette prosjektet ble finjustert ved hjelp av SBERT for å generere tekstinnbygginger. I skrivende stund introduserte AWS Amazon Titan-innbygginger som en del av deres grunnleggende modeller (FM) som tilbys gjennom Amazonas grunnfjell, som er en fullstendig administrert tjeneste som tilbyr et utvalg av høyytende grunnleggende modeller fra ledende AI-selskaper. Vi oppfordrer leserne til å utforske maskinlæringsteknikkene som presenteres i dette blogginnlegget og utnytte mulighetene som tilbys av AWS, for eksempel SMDDP, mens de bruker AWS Bedrocks grunnleggende modeller for å lage sine egne søkefunksjoner.

Referanser


Om forfatterne

Fra tekst til drømmejobb: Bygg en NLP-basert jobbanbefaler på Talent.com med Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai. Yi Xiang er en Applied Scientist II ved Amazon Machine Learning Solutions Lab, hvor hun hjelper AWS-kunder på tvers av ulike bransjer med å akselerere deres AI og skyadopsjon.

Fra tekst til drømmejobb: Bygg en NLP-basert jobbanbefaler på Talent.com med Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Tong Wang er Senior Applied Scientist ved Amazon Machine Learning Solutions Lab, hvor han hjelper AWS-kunder på tvers av ulike bransjer med å akselerere deres AI og skyadopsjon.

Dmitriy BespalovDmitriy Bespalov er Senior Applied Scientist ved Amazon Machine Learning Solutions Lab, hvor han hjelper AWS-kunder på tvers av ulike bransjer med å akselerere deres AI og skyadopsjon.

Fra tekst til drømmejobb: Bygg en NLP-basert jobbanbefaler på Talent.com med Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Anatoly Khomenko er en senior maskinlæringsingeniør hos Talent.com med en lidenskap for naturlig språkbehandling som matcher gode mennesker til gode jobber.

Fra tekst til drømmejobb: Bygg en NLP-basert jobbanbefaler på Talent.com med Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Abdenour Bezzouh er en leder med mer enn 25 års erfaring med å bygge og levere teknologiløsninger som skaleres til millioner av kunder. Abdenour hadde stillingen som Chief Technology Officer (CTO) kl Talent.com da AWS-teamet designet og utførte denne spesielle løsningen for Talent.com.

Fra tekst til drømmejobb: Bygg en NLP-basert jobbanbefaler på Talent.com med Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Dale Jacques er en senior AI-strateg i Generative AI Innovation Center hvor han hjelper AWS-kunder med å oversette forretningsproblemer til AI-løsninger.

Yanjun QiYanjun Qi er Senior Applied Science Manager ved Amazon Machine Learning Solution Lab. Hun innoverer og bruker maskinlæring for å hjelpe AWS-kunder med å få fart på AI og skyadopsjon.

Tidstempel:

Mer fra AWS maskinlæring