Gästskribent: Artificiell intelligens vid sökning av arbetsplats

Blogg

Det kanske viktigaste begreppet på Jobbmarknaden är den så kallade matchningen, dvs. hur arbetstagarna och arbetsgivarna passas ihop. Om allt stämmer får arbetstagaren en arbetsplats som motsvarar hens kompetens och intressen, medan arbetsgivaren får kompetent arbetskraft. Det bidrar till ett fungerande näringsliv, varmed behovet av samhälleligt stöd minskar. Det är dock utmanande att hitta rätt arbetsplats för varje arbetssökande; arbetstagarens arbetshistoria berättar inte nödvändigtvis allt om hens kompetens och önskemål, och arbetsgivaren vet inte heller nödvändigtvis exakt vad den förväntar sig av arbetstagaren.

Heikki Niittylä työpöydän ääressä

På Jobbmarknaden har man även tidigare kunnat söka arbetsplatser som passar ihop med den egna profilen, varvid sökningen har grundat sig på bl.a. ESCO-klassificeringar av yrken och kompetens, samt utbildning och språkkunskaper. I den förnyade profilen kan man också skriva fri text om det egna kunnandet och arbetsönskemål, varvid sökningen också använder metoder som baserar sig på språkteknologi (natural language processing, NLP). I det här blogginlägget beskriver jag några metoder för artificiell intelligens som den nuvarande jobbsökningen på Jobbmarknaden använder sig av.

Relevansmodellen

Vi märkte rätt snart att det är lite problematiskt att rikta sökningarna till platsannonsernas texter som sådana. Det kan nämligen finnas många ord och meningar i platsannonserna som i själva verket inte beskriver den aktuella arbetsplatsen. En annons för ett företag inom metallbranschen kan till exempel till stor del handla om hurdant kunnande företaget har inom metallbranschen, medan man till exempel söker en bokförare eller städare – ingalunda en expert inom metallbranschen. Om annonsen skulle användas som sådan, skulle orden i anslutning till metallbranschen få för stor vikt. För att lösa detta problem skapade vi ett verktyg för förbearbetning av arbetsplatsannonser, som vi kallar relevansmodellen. Den strävar efter att endast plocka ut de ord i den ursprungliga platsannonsen som verkligen beskriver arbetsplatsen och den yrkesperson som söks.

I praktiken ändras orden i platsannonsen med hjälp av FastText-modellen till numeriska vektorer, varefter orden matas in i ett återkopplat neuronnätverk (recurrent neural network, RNN), som räknar ut ett poängantal för varje ord för att beskriva dess relevans. Slutligen ger relevansmodellen ut de orden som har det högsta poängantalet. Antalet ord som returneras beror förutom på ordens poängantal även på platsannonsens längd: en större del av orden i en kortare annons återsänds, medan en mindre del av orden i en längre annons återsänds.

Relevansmodellen har lärts in med finsk-, svensk- och engelskspråkiga platsannonser och därför kan samma modell hantera platsannonser oberoende av språket (eller vilka språk) de är skrivna på. Inlärningsmaterialet togs fram genom att manuellt gå igenom några hundra platsannonser och plocka ut de mest relevanta orden från dem.

Vi tar ett exempel. De orden i platsannonsen som relevansmodellen plockade ut är markerade med fet stil:

"Vi är en pålitlig och säker arbetsgivare. Vi erbjuder arbetsplatser inom bl.a. bygg-, logistik-, industri-, social- och hälsobranschen samt inom hotell- och restaurang- och handelsbranschen. Vi satsar på våra experters arbetshälsa på alla nivåer i verksamheten och värnar om ett gott arbetsklimat. Vi verkar i hela landet nära dig. Vi är ett internationellt fungerande finländskt familjeföretag som sysselsätter över 14 000 personer. Vi söker målare till nybyggen och saneringsobjekt i Joensuu. Vi söker sakkunniga som är noga med kvaliteten. Du arbetar alltså omsorgsfullt och har god erfarenhet inom måleribranschen och mångsidig kunskap om de senaste materialen. Arbetet är i regel inomhusmålning. Kriterier: ca 2 års erfarenhet av måleriarbeten -arbetssäkerhetskort -en bra attityd och humor uppskattas också. Skicka din ansökan snarast. Bifoga din CV eller en noggrann lista över din tidigare arbetserfarenhet och kompetens. Kontakta Sven Svensson för mer information om arbetet vardagar kl. 8–16, tfn 050–12345678. Vi erbjuder dig ett trevligt arbetsklimat och bra objekt. Ett trevligt arbetsklimat och bra laganda är viktiga för oss. Vi följer regelbundet upp personalens arbetstillfredsställelse med hjälp av enkäter och utvecklar vår verksamhet utifrån den respons vi får. Utöver en glad arbetsgemenskap erbjuder vi också möjlighet till utbildning och utveckling av yrkesskickligheten.”

Relevansmodellen ignorerade alltså till exempel företagsbeskrivningen och ansökningsanvisningarna och fokuserade på det viktigaste: inom vilken bransch söker man yrkespersoner och vad förutsätts av dem?

TFIDF-sökning

När de viktigaste orden har plockats ur platsannonserna kan vi pröva på olika sökmetoder. TFIDF-sökningen påminner om en traditionell textbaserad sökning, m.a.o. att man plockar ut delar, några bokstäver, av ord och undersöker hur mycket de förekommer i vissa platsannonser. Metoden fungerar bra när både ansökningstexten och platsannonserna har många gemensamma termer, till exempel när "Laukas församling söker en kyrkvaktmästare" och den arbetssökande har "erfarenhet av kyrkvaktmästararbete i Petäjävesi församling". En annan fördel är att TFIDF-sökningen även fungerar när något enskilt yrke eller någon enskild term är helt okänd sedan tidigare. Om man till exempel i platsannonsen skulle söka en "forkpluggare" och den arbetssökande i sin profil nämner att hen är en "framstående forkpluggare", kan denna söksalgoritm koppla ihop dem.

På motsvarande sätt är det en nackdel för algoritmen att den inte förstår ordens kontext eller synonymer, så att "jurist" och "advokat" inte kopplas ihop. TFIDF-sökningen är också bunden till språket, så att en svenskspråkig sökande inte hittar arbeten inom sin egen bransch om platsannonserna är finskspråkiga.

Vi testar metoden i en databas med många platsannonser inom olika yrken: "Jag har tio års erfarenhet av att svetsa rostfritt.” Den här platsannonsen toppar sökresultaten: "Vi söker en MIG-SVETSARE FÖR ROSTFRITT till vårt växande kundföretag i Uleåborgsområdet.” Det var mitt i prick av förståeliga orsaker.

Slutresultatet är ett annat om inte exakt samma termer används i platsannonsen. Sökningen "Jag vill arbeta som bussförare.” ger till exempel platsannonser där man söker taxichaufförer, inte busschaufförer, som den borde.

FastText-sökning

Den bästa egenskapen hos FastText-modellerna är att de ger liknande representationer för ord inom samma ämnesområde när orden omvandlas till numeriska vektorer. Alla ord som förekommer i platsannonserna grupperas in i 500 kluster (eller ”fack”) med hjälp av en FastText-modell som lärts upp med platsannonser, så att vart och ett kluster innehåller ord som tillhör samma ämnesområde. Således hamnar orden "advokat", "jurist", "juridik", "rättsvetenskap" och "rättslig" i samma kluster. Modellen är också språkoberoende, så att samma kluster också kan innehålla orden "law", "attorney", "asianajaja", "lakimies", "juristi” och "oikeustiede". Den egentliga sökningen grundar sig sedan på vilka platsannonser det är som har ord i samma kluster som söktexten.

Svagheten i den här metoden är att den endast identifierar ord som tidigare lärts in, varmed modellen emellanåt måste omskolas för att den till exempel ska kunna identifiera nya yrken. Dessutom är klustringen av ord inte till alla delar komplett, utan enskilda ord kan hamna i fel fack. Om söktexten dessutom är mycket kort, ökar de enskilda ordens relevans, och då kan FastText-sökningen med dålig tur ge mycket märkliga resultat.

Vi prövar samma sökning som förra gången hittade jobb för taxichaufförer: "Jag vill jobba som bussförare.” Platsannonsen med det bästa sökresultatet är nu: "Vi söker busschaufförer för beställningstrafik till vårt kundföretag.” Det var rätt! FastText-modellen förstår alltså sambandet mellan förare och chaufför.

Vi tar en till: "Jag kan göra proteser om mina egna tänder måste dras ut.” Den här sökningen ger inget resultat, eftersom söktexten inte innehåller termer som FastText-modellen känner till.

Yrkessökning

Jag skrev tidigare om kompetensrekommenderaren, som utifrån texten också kan föreslå yrken enligt ESCO-klassificeringen. Eftersom de platsannonser som införs i systemet innehåller ett eller flera yrken, går det lätt att bygga upp ytterligare en sökalgoritm utifrån dem. Söktexten ges till kompetensrekommenderaren och därefter söker man sådana platsannonser som innehåller yrken som kompetensrekommenderaren har letat fram. Sökningen är oberoende av språk, eftersom kompetensrekommenderaren fungerar på samma sätt på alla språk som stöds.

Jobbsökningen använder sig alltså inte alls av platsannonsernas texter. Grovhuggenheten som detta orsakar kan från fall till fall vara till fördel eller nackdel. Yrkesbestämningen i platsannonserna är inte heller alltid den bästa möjliga, vilket ibland försämrar den här sökmetoden avsevärt.

Vi gör ett nytt försök med samma sökning som förut: "Jag kan göra proteser om mina egna tänder måste dras ut.” Nu finns det en platsannons högst upp på listan: "Vi söker en Tandtekniker/Tandlaborant för fast anställning på heltid till vårt tandlaboratorium i Helsingfors.”

Sammanställning av resultat

Som framgår ovan, har olika sökalgoritmer sina egna styrkor och svagheter. Ingen av dessa är entydigt bättre än de andra, och det är inte lätt att på förhand och på ett tillförlitligt sätt bedöma vilka av algoritmernas förslag som är de bästa. Därför använder den egentliga jobbsökningen alltid alla dessa och sammanställer sedan resultaten till en lista med hjälp av lämpliga viktningskoefficienter. Dåliga sökresultat från en enskild algoritm försämrar inte nödvändigtvis resultatet som helhet särskilt mycket. Omvänt, om samma platsannons toppar listan med alla sökmetoder, motsvarar den sannolikt söktexten relativt väl.

I verkligheten är en sökalgoritm inte riktigt så här rätlinjig. I sökningen beaktas till exempel också önskemål om arbete med egna viktningskoefficienter. Inte ens den ursprungliga sökningen utifrån yrke och kompetens är helt borttagen, utan de slutliga resultaten som användaren får grundar sig på en sammanställning av alla dessa olika källor.

Arbetet är långt ifrån klart och arbetsteamet har ännu många goda idéer på lut som ska testas. Vi behöver så mycket respons som möjligt om hur den nuvarande versionen fungerar och därför ber jag dig om hjälp. Pröva på att logga in på Jobbmarknaden och berätta i synnerhet om din kompetens och dina arbetsönskemål. Är de jobbförslagen som du får lyckade, eller kanske löjliga, eller irrelevanta i största allmänhet? Ge respons, så hjälper du till att utveckla tjänsten efter just dina behov!

Gofore är med och bygger upp Jobbmarknaden, som för samman arbetstagare och arbetsgivare.

Heikki Niittylä

Data Scientist

Gofore