Gästskribent: Utnyttjande av artificiell intelligens vid identifiering av språkkunskapskraven
Arbetssökande – i synnerhet personer med utländsk bakgrund – bör kunna söka arbetsplatser som de har tillräckliga språkkunskaper för. Detta förutsätter naturligtvis att arbetsplatsannonsen innehåller information om de språkkunskaper som behövs i arbetet. Denna information finns dock inte alltid tillgänglig i strukturerad form, även om det i arbetsplatsannonsens text kan nämnas vilken typ av språkkunskaper som krävs. Detta väckte frågan om vi kanske kunde dra slutsatser om språkkraven direkt ur texten med hjälp av en lösning för artificiell intelligens.
Vi började arbeta på en tjänst som skulle förstå
- när man talar om språkkunskaper och när man inte gör det: "du måste kunna finska" vs. "vi har verksamhetsställen runt om i Finland",
- är meningen positiv eller negativ: "vi förutsätter kunskaper i engelska" vs. "du behöver inte kunna engelska" och
- är språkkunskaperna nödvändiga eller endast nyttiga: "det är nödvändigt att kunna franska" vs. "vi uppskattar kunskaper i franska".
Tjänsten ska fungera på de språk som används på Jobbmarknaden (finska, svenska och engelska) och identifiera åtminstone det tjugotal språk som förekommer mest i arbetsplatsannonserna.
Val av teknik
Först började vi med att testa om relevansmodellens bekanta teknik (FastText + RNN-nätverket) skulle fungera även i detta fall. Början såg lovande ut och språkorden hittades helt lätt i texten. Men när vi sedan hade velat skilja mellan nödvändiga och nyttiga språkkunskaper kom modellens gränser emot. Det kan hända att problemet skulle ha lösts genom mera skolning för FastText-modellen, men vi gick ändå inte in på den vägen.
I stället testade vi om de stora språkmodellerna (large language model, LLM) skulle erbjuda en behändig lösning för detta. Hugging Face erbjuder ett berömvärt antal språkmodeller och verktyg för att utnyttja dem, så vi valde att använda den flerspråkiga LaBSE-modellen som Google utvecklat. Nyttan med den flerspråkiga modellen är att vi inte behöver en separat modell för behandling av arbetsplatsannonser på finska, svenska och engelska, utan en modell räcker. Dessutom stöder undervisningsmaterial på olika språk varandra, dvs. språkmodellen lär sig i viss mån att behandla arbetsplatsannonser även på sådana språk som den inte har fått särskild skolning i.
- Gästskribent: Artificiell intelligens vid sökning av arbetsplats (jobbmarknaden.fi)
- Language-Agnostic BERT Sentence Embedding (googleblog.com, på engelska)
Undervisningsmaterial
För att lära ut åt språkmodellen vilka ord vi är intresserade av behöver vi undervisningsmaterial. Som undervisningsmaterial behöver vi alltså arbetsplatsannonser med ord som beskriver språkkunskaper. Detta kunde göras genom att gå igenom verkliga arbetsplatsannonser och klassificera orden manuellt. Det skulle dock vara ett stort arbete och undervisningsmaterialet skulle inte nödvändigtvis vara balanserat. I de finländska arbetsplatsannonserna förekommer nämligen ofta krav på kunskaper i finska, svenska och engelska, men ganska sällan till exempel kunskaper i franska. Vi skulle dock vilja att modellen reagerar på samma sätt såväl på engelska som på franska, spanska och farsi.
Vi löste detta problem genom att skapa artificiella arbetsplatsannonser, dvs. verkliga arbetsplatsannonser där vi lade till en eller ett par meningar om språkkrav. Dessa meningar genererades ur exempelfraser, såsom "kundarbetet förutsätter smidiga kunskaper i SPRÅK och SPRÅK", i vilka SPRÅK-beteckningarna ersattes med slumpmässiga språk (med beaktande av ordets böjningsform), såsom "finska", "samiska", "franska" osv. På så sätt kunde vi generera en stor mängd undervisnings- och testmaterial där olika språk förekom i olika meningar och olika arbetsplatsannonser.
I undervisningsmaterialet klassificerade vi orden alltså i tre klasser: 1) ord som beskriver den språkkunskap som krävs, 2) ord som beskriver nyttiga språkkunskaper samt 3) andra ord.
Att skola modellen
Det är inte tekniskt svårt att fortsätta med Hugging Faces språkmodeller i sig, men det kräver bearbetningskraft och tid. Med en egen dator är det inte längre särskilt trevligt att skola modeller av denna storleksklass, så vi utnyttjade Azures maskininlärningsmiljö. Vi började med mindre maskiner, men vi märkte snart att vi behövde en GPU-maskin för skolningen. Därefter var problemet att en del av de grafikkort som erbjöds hade så lite minne att de inte kunde hantera en språkmodell av denna storleksklass. Till slut blev lösningen Nvidias Tesla T4-grafik, med vilken skolningen kunde utföras på några timmar.
Ändring av språkord till språkkoder
Med den lärda språkmodellen hittar vi alltså sådana ord i arbetsplatsannonsen som berättar om språkkraven. Detta är inte helt tillräckligt, eftersom språken måste anges med ISO 639-1-språkkoder. Denna ändring av språkordet till språkkod visade sig vara så rättfram att det inte lönade sig att bygga upp en större intelligens. Således identifieras språken enbart genom jämförelse av teckensträngen: om det sökta ordet innehåller till exempel teckensträngen "svenska", "svensk" eller "swedis", returneras språkkoden "sv".
ISO 639-1 (wikipedia.org, på engelska)
Fungerar den?
Den väsentliga frågan är naturligtvis om tjänsten fungerar med riktiga arbetsplatsannonser. I regel (över 95 procent av platsannonserna) fungerar den utmärkt, även om kraven på språkkunskaper kan formuleras på många olika sätt. Låt oss ta ett exempel på en arbetsplatsannons. "Heltidsanställd timlärare i svenska språket i grundskolan. I skolans språkprogram finns för närvarande B1 svenska samt A1 och A2 engelska, franska och tyska samt B2 spanska." Enligt artificiell intelligens är de språkkunskaper som krävs för uppgiften svenska enligt texten. I följande exempel har artificiell intelligens identifierat finska och farsi som de språkkunskaper som krävs. "Vi söker en tolk för persiska/farsi. Vi förutsätter utmärkta kunskaper i finska och persiska/farsi."
I följande exempel har artificiell intelligens identifierat engelska som de språkkunskaper som krävs och tyska, franska och finska som nyttiga språkkunskaper. "Fluent in speaking English, and completely proficient in writing in English (writing autonomously contractual letters, Contract Amendments and documents issued to the subcontractors). - Proficiency in German and/or French and/or Finnish is a plus." I den svenskspråkiga texten har artificiell intelligens kunnat välja finska och engelska som de språk som krävs samt tyska, svenska och italienska som nyttiga språk. "Du kommer att lyckas med den här uppgiften med flytande finska och engelska muntliga och skriftliga färdigheter. Färdighet i andra språk, särskilt tyska, svenska och italienska, anses till din fördel."
I exemplet "Vi uppskattar också mångsidiga språkkunskaper. Goda kunskaper i engelska är nödvändiga (vårt arbetsspråk är finska) och andra språkkunskaper, såsom arabiska, spanska, svenska, ryska och estniska är till fördel", har den identifierat kunskaper i engelska och finska som de språkkunskaper som krävs samt kunskaper i arabiska, spanska, svenska, ryska och estniska som nyttiga språkkunskaper.
Skrivfel stör artificiella intelligensens arbete
Få tjänster med artificiell intelligens är dock perfekta. Exempelvis skrivfel och oklarheter visar sig vara svåra för modellen. Språkmodellen förstår inte heller till exempel hänvisningar till "det andra inhemska" eller "skandinaviska" språk. Och ibland kan modellen misslyckas utan någon uppenbar anledning. Fortsatt utveckling av modellen är dock relativt okomplicerat, eftersom de konstaterade felen ger nytt undervisningsmaterial.
Fel som modellen gör är vanligtvis sådana att något krav på språkkunskaper inte uppmärksammas eller de klassificeras fel. Till exempel i följande mening har artificiell intelligens inte kunnat klassificera finska och svenska som obligatoriska språkkunskaper, utan den har definierat dem felaktigt som nyttiga språkkunskaper. "Till dina uppgifter hör kundservice per telefon på både finska och svenska och dessutom omfattar din arbetsbeskrivning även olika slags kontorsarbete."
På grund av ett skrivfel saknades kunskaperna i finska helt i följande exempel. "We are looking for team player with good communication (English and Finish) and CAD skills." Endast kunskaper i engelska hade definierats som de språkkunskaper som krävs. Utan en tydlig orsak kunde artificiell intelligens inte identifiera engelskan i följande exempel. "Vi använder finska som vårt huvudsakliga arbetsspråk, men nästan daglig kommunikation med våra rektorer bedrivs på engelska, kunskap om tyska är en fördel men inte en nödvändighet." Som krävda språkkunskaper klassificerades kunskaper i finska och nyttiga var kunskaper i tyska.
Tjänsterna kommer till Jobbmarknaden våren 2023
På det hela taget kan vi dock vara nöjda, eftersom det ursprungliga målet uppnåddes med tillräcklig noggrannhet. I fortsättningen kan vi automatiskt av arbetsplatsannonsen dra slutsatser om de språk som krävs, om de inte har angetts separat. Det i sin tur förbättrar matchningen när vi kan erbjuda arbetssökande arbetsplatsannonser som motsvarar deras språkkunskaper!
Tjänsten kommer att tas i produktionsbruk på Jobbmarknaden våren 2023.
Heikki Niittylä
Data Scientist
Gofore