Sådan reducerer du skævheder i NLP-modeller for bedre tekstanalyse (med Dan Erickson fra Viable)
Michael Luchen
Natural Language Processing kan være et utroligt effektivt værktøj. Det kan bruges til at analysere tusindvis af datapunkter og levere hurtig, pålidelig indsigt, men er der en risiko for, at skævheder sniger sig ind i disse resultater? Hvordan ved vi med sikkerhed, at resultaterne er så objektive som muligt? Lyt med, når vi i dag går i dybden med Natural Language Processing, et effektivt værktøj, der vil hjælpe fremtidens produktledelse.
Dette er Product Manager-podcasten, stemmerne fra det fællesskab, der skriver drejebogen for produktledelse, -udvikling og -strategi. Vi sponsoreres af Crema, et digitalt produktbureau, der hjælper enkeltpersoner og virksomheder med at trives gennem kreativitet, teknologi og kultur. Læs mere på crema.us.
Lyt med for at få praktisk og autentisk indsigt, der kan hjælpe dig med at få succes inden for produktledelse.
Okay. I dag har vi besøg af Dan Erickson, administrerende direktør og grundlægger af Viable, som skal tale med os om skævheder inden for Natural Language Processing eller NLP. Viable hjælper virksomheder med at lære af deres kunder ved at samle kundefeedback på tværs af kanaler, identificere temaer og analysere feedbacken for at skabe reel indsigt og konkrete anbefalinger.
Viable understøtter mange kanaler: arbejdssager, livechat, sociale medier, undersøgelser, produkt- og appanmeldelser samt opkaldstransskriptioner. Dan og hans team har også rejst i alt 9 millioner dollars fra Craft Ventures, Javelin Venture Partners, Streamlined Ventures, Meyers Capital, mange fantastiske engleinvestorer og selvstændige generalistpartnere.
Hej Dan! Velkommen til programmet.
Dan Erickson
Tak fordi jeg måtte komme, Michael. Det er fantastisk at være her.
Michael Luchen
Det er fantastisk at have dig med.
Jeg er nysgerrig på vores lytters vegne. Kan du begynde med at fortælle lidt om din baggrund, og hvordan du er nået dertil, hvor du er i dag?
Dan Erickson
Ja, selvfølgelig. Min baggrund er faktisk inden for ingeniørarbejde.
Jeg har arbejdet på startups fra den tekniske side i omkring 15 år nu. Jeg har især fokuseret på de tidlige stadier og derefter også på vækst. I begyndelsen af min karriere havde jeg meget fokus på at hjælpe virksomheder i den tidlige fase med at bygge deres allerførste produkt og virkelig forstå det første stadie af produkt-markedstilpasning.
Derefter bevægede jeg mig over i nogle virksomheder med mere vækst, som Yammer og Eaze. Jeg var teknisk direktør hos Eaze. Jeg var CTO i en virksomhed, der hed Getable, og som arbejdede inden for udlejning til byggebranchen. Og for et par år siden grundlagde jeg Viable for virkelig at hjælpe virksomheder med at forstå og skabe forbindelse til deres kunder.
Michael Luchen
Hvordan fik du idéen til Viable, og hvordan opdagede du behovet for virksomheden?
Dan Erickson
Vi nåede faktisk frem til Viables nuværende form ad en lidt kringlet vej. Vi fulgte markedet. Da vi først startede virksomheden, kaldte vi os Viable Fit. Dengang fokuserede vi på at hjælpe virksomheder i den tidlige fase med at finde produkt-markedstilpasning ved hjælp af Superhumans rammeværk for produkt-markedstilpasning.
Vi havde en prototypeversion, der brugte NLP til at hjælpe dem med at forstå de svar, de fik tilbage i den undersøgelse, som Superhuman havde udarbejdet. Men vi indså hurtigt, at den største værdi, vi skabte, lå i analyselaget – ikke nødvendigvis i indsamlingen af feedback eller målingen af produkt-markedstilpasning.
Så vi bevægede os op i markedet. Væk fra startups i den tidlige fase og hen imod virksomheder i høj vækst og større virksomheder, som modtager enorme mængder data, men som ikke har nogen måde at analysere det på lige nu.
Michael Luchen
Det er fascinerende. Især at se, hvor du startede, og hvor du senere drejede hen med hensyn til markedssegmenter.
Dan Erickson
Det handlede alt sammen om at lytte til markedet.
Michael Luchen
Før vi går mere i dybden med Viable, vil jeg gerne spørge på vores lytters vegne: Kan du på et overordnet niveau forklare, hvad Natural Language Processing, eller NLP, er?
Dan Erickson
Ja, helt sikkert. Natural Language Processing er grundlæggende en måde at hjælpe en computer med at forstå menneskesprog.
I sin vorden blev det brugt til ret simple ting, som at udtrække nøgleudtryk fra tekster eller udføre følelsesanalyse af bestemte emner i en tekst. NLP har eksisteret i årtier, men i løbet af de seneste år har vi set en enorm renæssance inden for NLP. Det gælder især transformer-modeller og store sprogmodeller. De har gjort det muligt at opnå en langt dybere forståelse af menneskesprog i dets sammenhæng.
I stedet for blot at kunne udtrække nøgleudtryk eller fortælle, om noget udtrykker en positiv eller negativ følelse, kan man faktisk begynde at forstå, hvad folk mener med tingene. Man kan også begynde at forstå lighederne mellem forskellige emner.
I stedet for at udtrække nøgleudtryk som tastaturgenveje, tastaturkommandoer og genvejstaster som tre separate idéer, er NLP nu ved at gøre det muligt faktisk at forstå, at de tre ting er det samme. Det skyldes den dybde i forståelsen, som de nye NLP-modeller har.
På et overordnet niveau handler NLP altså om at forstå menneskesprog på en måde, som computere kan bruge til at udtrække de rigtige oplysninger.
Michael Luchen
Hvordan bruger Viable NLP?
Dan Erickson
Helt centralt i vores produkt ligger vores motor til kvalitativ analyse. Den består af en kombination af interne modeller og tredjepartsmodeller, herunder GPT-3.
GPT-3 fungerer på en måde som fundamentet for det, vi bygger her. Men oven på det har vi faktisk bygget en masse tilpassede modeller samt nogle finjusterede GPT-3-modeller. Vi arbejder meget tæt sammen med OpenAI og folkene hos OpenAI for at gøre det.
Vi bruger NLP og NLG, altså Natural Language Generation, til en lang række funktioner.
En af dem er tema-analyse. Det handler grundlæggende om at tage et stort datasæt fra en række forskellige kilder og samle tingene i temaer. På den måde kan vi identificere ting som: Hvad er jeres største klager? Hvad er jeres største komplimenter? Eller hvilke spørgsmål bliver stillet oftest?
Hver af disse ting ender som en klynge, som vi kalder et tema. Vi udfører altså en tema-analyse. Vi samler ikke bare tingene i klynger, men går også ind i dem og opsummerer hver klynge, så du kan forstå præcis, hvad folk taler om i den pågældende tekstklynge.
Et godt eksempel kunne være, at du bygger en spilcontroller, og at folk skriver på Reddit, at det venstre joystick ikke fungerer særlig godt. Du har måske tusindvis af kommentarer i denne subreddit, men kun omkring hundrede af dem handler om det venstre joystick.
Det ville tage dig timevis at gennemgå alt dette og manuelt sortere det i forskellige grupper. Vi kan gøre det på få minutter og derefter opsummere alle de hundrede kommentarer om det venstre joystick, så du kan sende resultatet videre til dit hardwareteam, som præcis ved, hvor de skal begynde.
Vi bruger det også til emneudtrækning. Det handler specifikt om at finde ud af, hvilke funktioner og produkter folk taler om, og den slags. Derefter udfører vi opsummering af tema-analysen, hvilket er her, den naturlige sprogproduktion kommer ind. Her genererer vi faktisk tekst, som mennesker kan læse.
Vores gennemsnitlige rapport indeholder faktisk over 30 afsnit med reel skriftlig analyse, som er skrevet af vores computersystem – ikke af mennesker. Vi bruger det også til vores åbne spørgsmål og svar, hvor du kan skrive et spørgsmål på almindeligt dansk eller engelsk. Derefter søger vi i dine data, finder alt det, der potentielt kan besvare spørgsmålet, og kører det gennem en række analysemodeller for faktisk at besvare spørgsmålet for dig.
Michael Luchen
Det er virkelig fascinerende.
Når jeg hører dig fortælle om det og samtidig kender lidt til Viables historie som virksomhed, tænker jeg, at det er en ret højteknologisk produktløsning.
Da I byggede det og forsøgte at finde jeres produkt-markedstilpasning, var det så sådan, at I så teknologien og tænkte: Her er der en mulighed for at anvende nogle af de tendenser, du taler om, i et produkt, der kan løse et problem?
Eller udsprang det af, at I så et problem og ville finde en teknologi, og at NLP tilfældigvis var på et stadie, hvor det kunne løse problemet?
Dan Erickson
Det begyndte faktisk som det sidste. Vi ville løse et reelt problem. Oprindeligt handlede det om at hjælpe virksomheder med at finde produkt-markedstilpasning ved hjælp af Superhumans proces for produkt-markedstilpasning. Den går grundlæggende ud på at udsende en undersøgelse, indsamle svarene, læse hvert svar, gruppere dem efter funktioner eller problemområder og bruge det til at styre jeres køreplan.
Det, folk havde svært ved i denne proces, var at finde tid til faktisk at læse hvert svar og kategorisere det korrekt. Men vi indså hurtigt, at NLP kunne hjælpe os med det og måske konkurrere med mennesker i netop den opgave. Derfor startede vi med et ret enkelt NLP-system, som primært udtrak emner og havde en smule følelsesanalyse bygget ind for at hjælpe med at forstå, hvad man skulle bygge og hvor.
Men vi opdagede hurtigt, at folk virkelig satte pris på analysesiden. Derfor besluttede vi at satse mere på den og bevægede os væk fra det oprindelige problem, vi forsøgte at løse.
Vi bevægede os dog hen imod et andet problem, som vi opdagede undervejs. Vi begyndte at arbejde med virksomheder, der allerede havde produkt-markedstilpasning, mens vi stadig var tidligt i processen. De talte om at føre andre typer data ind – ikke kun den undersøgelse, vi udsendte. Derfor begyndte vi at bygge et mere generelt system, og så fik vi adgang til GPT-3 i juni 2020.
Det hjalp os med at indse, at der faktisk var en måde at automatisere dette på. Ikke kun for en enkelt undersøgelse, men for bogstaveligt talt al den tekst, en virksomhed indsamler.
Michael Luchen
Så når man indsamler al den tekst, kan der potentielt også opstå skævheder.
Vores emne er skævheder i NLP og håndteringen af dem. Før vi går i dybden med det, hvordan kan skævhed potentielt blive introduceret i NLP, hvis man bruger det i sit produkt?
Dan Erickson
Ja, helt sikkert. Som udgangspunkt indeholder alle sprogmodeller faktisk en form for indbygget skævhed, fordi de er trænet på tekst, der på et tidspunkt er skrevet af mennesker.
Mennesker er grundlæggende skæve i deres vurderinger. Vi er ikke fuldt ud rationelle væsener. Og fordi disse systemer trænes på et datakorpus, der er meget menneskeligt, ender vi med at introducere menneskelige skævheder i NLP-modellerne.
De virksomheder, der leverer disse modeller, gør en enorm indsats for at reducere skævhederne så meget som muligt. Jeg mener faktisk, at OpenAI fører an på dette område. De har hele teams hos OpenAI, der specifikt fokuserer på problemet med skævheder.
Hvis du bare bruger noget som GPT-3 direkte fra pakken, kan du godt få den til at producere problematiske ting. Men du kan blandt andet forsøge at løse noget af dette ved at finjustere og træne modellen til en bestemt anvendelse. Jo mere specifik anvendelsen er, desto bedre vil resultatet typisk blive.
Som sagt indeholder alle NLP-modeller iboende skævheder. Man skal virkelig fokusere på at træne modellen på en måde, der reducerer dem mest muligt.
Michael Luchen
Hvordan arbejder I hos Viable med at reducere denne skævhed i begyndelsen af processen? Og kan man overhovedet gøre det?
Dan Erickson
Som jeg nævnte tidligere, er det vigtigste, vi gør, at træne mange af modellerne selv på datasæt, som vi selv har kurateret. Det hjælper os med at nå frem til den meget specifikke anvendelse. I stedet for at bruge den store generelle model bruger man noget, der er trænet til at gøre én bestemt ting.
Når man gør noget mere specifikt, er det lettere at undgå skævheder. Det gør vi både med GPT-3 via deres slutpunkt til finjustering og med alle de interne modeller, vi har udviklet.
Derefter sammenligner vi alle modellerne med vores egen intuition om skævhed. Vi har altså faktisk mennesker med i processen, når vi træner modellerne, så vi kan forstå, om modellen ser ud til at favorisere X eller være negativt indstillet over for Y. Derefter kan vi tilføje flere træningsdata for at opveje skævhederne.
Michael Luchen
Er der nogle særlige overvejelser, når det gælder dine kunders datasæt, som I analyserer?
Dan Erickson
De datasæt, vi analyserer, bruger vi faktisk ikke til træning. Vi har som regel vores egne datasæt, som vi har opbygget.
Nogle gange bruger vi anonymiserede versioner med tilladelse og den slags, men som hovedregel bruger vi ikke kundedata til træning. Vi analyserer kundedataene med fortrænede modeller, som vi har gennemgået for at sikre, at skævheden er reduceret.
Så nej, for det meste træner vi ikke på selve kundedataene. Vi analyserer dem med modeller, som vi allerede har undersøgt for problemer med skævhed.
Michael Luchen
Et af de temaer, der står frem for mig, er den fortsatte investering i at forbedre modellerne, især oven på de grundmodeller, som GPT-3 eller OpenAI stiller til rådighed.
Når det gælder jeres produktkøreplan, har I så perioder med forbedringer, eller hvordan arbejder I med forbedringsarbejdet, når det skal prioriteres i jeres produktkøreplan?
Dan Erickson
Forbedringer findes på vores køreplan som næsten sit eget spor. Vi har virksomhedsfunktioner, vi tilføjer, integrationer, vi bygger, og derefter har vi grundlæggende model forbedring. Vi arbejder også med en masse andre ting.
Men model forbedring er bestemt noget, vi løbende arbejder på. Jeg kan faktisk ikke huske en uge, hvor vi ikke har udført en eller anden form for genindlæring.
Vi har over et dusin modeller internt på nuværende tidspunkt, som vi arbejder med. Jeg siger ikke, at vi genindlærer alle modellerne hele tiden, men mindst én af modellerne bliver justeret eller genindlært i en given uge.
Michael Luchen
Hvor meget af dit teams tid vil du sige, der går til det?
Dan Erickson
Jeg vil sige, at omkring 20 % af NLP-teamets tid går til denne løbende forbedring og genindlæring.
Michael Luchen
Meget interessant. Hvis vi ser på risikoen for skævhed i NLP, hvordan kan brugen af NLP så reducere potentiel skævhed i traditionelle manuelle processer?
Dan Erickson
Når man taler om skævhed i NLP, er det vigtigt også at tænke på den skævhed, der findes i den aktuelle proces, som NLP skal erstatte.
Produktchefer, der forsøger at forstå, hvad kunderne klager over, er for eksempel ofte afhængige af anekdoter fra den supportmedarbejder, sælger eller andre, som de tilfældigvis har været i kontakt med. Som produktchef har du sikkert spurgt en supportmedarbejder eller sælger: Hvad er de store problemer, vi bør løse lige nu?
Så kommer personen med noget fra toppen af hovedet, hvilket som regel er korrekt. Men det er som regel ikke komplet. De har ofte en aktualitetsbias og en tendens til at fokusere på de mest højlydte kunder frem for flertallet.
Mennesker bliver derfor nemt afsporet af en bestemt ting, som på en måde bliver deres personlige mærkesag. NLP lider ikke under netop denne form for skævhed. Det betyder, at man i stedet for det begrænsede perspektiv, der findes i anekdoterne, kan bruge NLP til at udvide sit perspektiv og se mere af dataene.
Vi producerer for eksempel i gennemsnit over 30 temaer. Og det tal stiger faktisk, efterhånden som vi udfører den genindlæring, jeg talte om. Den seneste rapport, vi lavede, indeholdt over 300 temaer, som vi identificerede. Mennesker vil ikke kunne opnå den grad af detaljer eller den samme fuldstændighed i analysen.
Når jeg selv gennemgår feedbackstykkerne manuelt, vil jeg sandsynligvis kun sortere hvert feedbackstykke i måske ét eller to temaer. Men normalt ser vi, at der faktisk er tre til fem temaer til stede i de fleste feedbackstykker.
Folk registrerer bare kun det ene, der på en måde er det centrale problem. Derfor får man et langt mindre komplet billede ved manuel behandling end med noget som NLP.
Michael Luchen
Interessant. Er menneskelig gennemgang eller menneskelig input altså altid nødvendigt på et eller andet niveau for at mindske potentiel skævhed?
Dan Erickson
Ja. Selvom vi altid bør stræbe efter at reducere skævhed i disse systemer, især i store sprogmodeller, der er trænet på terabytes af menneskesprog, bør vi heller aldrig miste blikket for de forbedringer i den virkelige verden, som systemerne allerede kan give i dag.
Det betyder dog, at man bør have mennesker til at gennemgå arbejdet. Modellerne kan udføre meget af grundarbejdet for dig, men du vil altid have brug for nogen, der læser det igennem og sikrer, at tingene er i orden.
Vi forsøger at gøre så meget som muligt på siden med modeltræning og intern gennemgang. Men vi giver også vores kunder mulighed for at give os feedback, så de kan hjælpe med genindlæringen. Der er en tommel op- og en tommel ned-funktion ved næsten alle de analyser, vi udfører, så vores kunder kan fortælle os, om resultaterne er gode eller dårlige, og om det fungerer.
Michael Luchen
Interessant. Hvordan får I mere detaljeret feedback fra kunderne end blot en tommel op eller ned, så I kan finde ud af, hvordan modellerne skal justeres?
Dan Erickson
Det er ikke implementeret endnu, men tommel ned-funktionen vil snart åbne et tekstfelt, lige efter at man trykker på tommel ned. Derefter sender vi teksten tilbage til Viable – vores egen instans af systemet.
På den måde kan vi identificere alle temaerne i feedbacken og forsøge at håndtere dem.
Michael Luchen
Det er fantastisk. Jeg tænker altid på fremtidens produktarbejde. Hvordan ser fremtiden for NLP ud for dig i dag? Og hvordan kan det forme fremtidens produktledelse? Du talte oprindeligt om, at det udsprang af din ekspertise og arbejdet med at finde produkt-markedstilpasning.
Hvordan mødes de to verdener?
Dan Erickson
Som jeg nævnte tidligere, oplever NLP en renæssance lige nu. Tingene bevæger sig virkelig fremad. Det kan man se med multimodale modeller som DALL-E 2, hvor man kan skrive en beskrivelse af et billede, man gerne vil generere.
Så kommer der et billede ud i den anden ende. Man kan skrive noget som en and i en tekop, og så laver systemet faktisk et billede af det. Det er fantastisk at se, men den større udvikling inden for NLP handler om større modeller med en dybere forståelse.
GPT-4 kommer sandsynligvis på et tidspunkt i løbet af de næste måneder eller det næste år, eller hvornår det nu bliver. Den vil formentlig have betydelige forbedringer i forhold til GPT-3. Vi ser også ting som PaLM fra Google samt en række andre modeller fra blandt andre Microsoft og Facebook.
De bliver alle større, men de gør det også muligt at inddrage mere kontekst. Lige nu er vi begrænset af den mængde tekst, som GPT-3 kan analysere på én gang. Det er omkring 2.000-4.000 tokens, hvilket svarer til cirka 4.000 ord.
I fremtiden tror jeg dog, at vi får meget større kontekstvinduer. Vi vil kunne håndtere titusindvis af ord i stedet for blot nogle få tusinde. Det vil i høj grad øge modellernes evne til at forbinde begreber, der ligger længere og længere fra hinanden.
Michael Luchen
Hvis jeg er produktchef og ser en mulighed for at integrere en NLP-model som GPT-3, eller måske GPT-4 senere i år, hvor begynder jeg så? Skal jeg spørge mine udviklere om det? Er det en massiv implementering og opgave, som vi først bør overveje om nogle år?
Hvad vil du anbefale produktchefer, der lytter med?
Dan Erickson
Jeg synes, det første sted at begynde er med det, jeg er begyndt at kalde grænseflader i naturligt sprog. Man har kommandolinjegrænseflader og grafiske brugergrænseflader.
Det er forskellige måder at interagere med et system på. Grænseflader i naturligt sprog – som vores spørgsmål-og-svar-system, GPT-3 eller GitHub Copilot – fungerer ved, at man skriver nogle kommandoer, hvorefter systemet udfører handlingen.
Jeg tror, det er her, vi vil se den største innovation fremover, og det er den letteste ting for næsten ethvert produkt at tilføje. Det vil gøre det muligt at interagere mere naturligt med produktet. I stedet for at tvinge brugerne gennem en guide eller et modalvindue kan man stille dem spørgsmål og lade dem stille spørgsmål.
Systemet kan derefter bruges på almindeligt sprog i stedet for at tvinge brugerne til at gætte og klikke. Denne del er faktisk ret let at implementere direkte fra starten med noget som GPT-3.
Jeg vil derfor anbefale, at man eksperimenterer med det. Gå ind på legepladsen i GPT-3 hos OpenAI og test, hvad den kan gøre, og hvordan den muligvis kan hjælpe ens produkt.
Michael Luchen
Fantastisk. Før vi afslutter, vil jeg gerne stille nogle personlige spørgsmål i lynrundeformat, hvis det er i orden.
Dan Erickson
Ja, det lyder godt.
Michael Luchen
Hvilken af dine personlige vaner har bidraget mest til din succes?
Dan Erickson
For mig handler det om at få otte timers søvn. Det er virkelig svært som grundlægger, men jeg oplever, at søvn er grundvanen for alle de andre ting. Når man mangler søvn, præsterer man ikke lige så godt.
Man begynder måske at springe måltider over eller undlader at træne den dag. Derfor er søvn for mig den ene vane, der ikke kan ofres til fordel for andre ting.
Det betyder ikke, at jeg aldrig har perioder med ekstra travlhed eller arbejder til langt ud på natten, men for det meste forsøger jeg at være konsekvent med det.
Michael Luchen
Hvad er dit yndlingsværktøj, som du bruger regelmæssigt?
Dan Erickson
Lige nu er det helt klart GitHub Copilot. Jeg bruger Visual Studio Code til alt mit udviklingsarbejde. Vi er et lille team, omkring 10 personer hos Viable lige nu.
Så jeg skriver stadig noget kode. Det har faktisk været fantastisk at arbejde med. GitHub Copilot er grundlæggende NLP til kode i stedet for engelsk. Man begynder bare at skrive kode i sin editor, og så forsøger systemet at forstå, hvad man gør, og skriver mere kode for en.
Det er som at have en programmørpartner med kunstig intelligens, og det er nået dertil, hvor omkring 50 % af den kode, jeg skriver, faktisk bliver skrevet af GitHub Copilot.
Michael Luchen
Det er utroligt.
Til sidst: Hvilket råd vil du give til en person, der lige er begyndt på sin produktrejse?
Dan Erickson
Lad være med at sidde fast i en rille. Det, jeg mener, er, at du får en idé, og den idé bliver virkelig spændende. Men det er måske ikke den ting, der faktisk vil føre virksomheden til succes. Den oprindelige idé er som regel anderledes end det sted, man ender senere.
Det er vigtigt hele tiden at lytte til sine brugere og lade dem trække en i den rigtige retning i stedet for kun at fokusere på sin egen intuition.
Michael Luchen
Det er virkelig godt sagt og en fantastisk måde at afslutte på.
Mange tak, Dan, fordi du ville være med i dag. Jeg har bestemt lært meget om NLP og har fået nogle ting med mig, som jeg vil tage med tilbage til de produkter, jeg har arbejdet på.
Dan Erickson
Selv tak. Tak fordi jeg måtte komme. Det var fantastisk at være her.
Michael Luchen
Du kan finde mere om Dan på LinkedIn, og du kan også læse mere om hans virksomhed, Viable, på askviable.com.
Og mange tak, Dan, fordi du ville være med.
Tak til alle, der lyttede med. Husk at anmelde podcasten og fortælle os, hvad I synes. Hvis du ikke allerede har gjort det, så følg med og bliv en del af vores fællesskab på theproductmanager.com
Tak igen, og hav en god dag!

