word2vec

Vi skal i dette projekt se lidt nærmere på brugen af vektorer, nærmere bestemt til at analysere semantikken af en tekst.

Semantik kommer fra det græske ord semantikos som betyder “betydningsfuld, som inderholder betydning“. Semantikken er den gren inden for sprogvidenskab der beskæftiger sig med sproglige udtryks betydning. 1

Analysen er en klassifikation eller en dekomposition af ordet, det vil sige den betydning som der er indkodet i orden på et bestemt sprog.

Rødhals også kendt som rødkælk. Photo by Jan Meeus on Unsplash

For eksempel så kaldes fuglen på billedet for en rødhals, af mange kendt som en rødkælk. Begge ord er navnet på samme fugl og det er derfor et spørgmål om semantik om man vælger at bruge det ene navn frem for det andet, betydningen er ens. 2

Hvis vi skal have en computer til at afkode sematikken bliver vi nød til at omdanne tekst til tal, da computeren ikke umiddelbart forstå de sprog vi mennesker skriver eller taler.

Sprogteknologi som er en gren inden for kunstig intelligens beskæftiger sig med teknikker til netop at oversætte tekst til matematik.

WORD EMBEDDINGS

Når vi gerne vil omdanne tekst til matematik vil vi gerne tildele ord en talværdi. En sådan tildeling af værdier til forskellige ord kaldes for word embedding. Lad os se på et eksempel. Ord har forskellig associationer eller egenskaber. For eksempel så vil ordet konge få en til at tænke på køn, autoritet, måske rig eller velstillet, men man vil nok ikke tænke på ord som vinger, hale eller begivenhed. Hver af disse egenskaber giver vi en talværdi. I skemaet herunder ses de forskellige egenskaber og en talværdi for de egenskaber for forskellige ord.

kongedronninghestkoncertmandkvindefugl
køn-1110-111
autoritet110.0100.20.30.01
rig110.0100.30.30.01
vinger0000001
hale0010001
begivenhed0001000

Tabellen herover viser at forskellige ord har forskellige engenskaber, for eksempel så kan ordet konge beskrives ud fra talsættet

$konge = \begin{bmatrix}-1\\ 1\\ 1\\ 0\\ 0\\ 0\end{bmatrix}$

når vi nu har at ordene er udtryk med talværdier så kan vi begynde at lave regneoperationer med dem. Det vil sige, vi kan for eksempel spørge hvad er

$konge – mand + kvinde$?

hvis vi udtrykker det med talværdier så har vi at

$\begin{bmatrix}-1\\ 1\\ 1\\ 0\\ 0\\ 0\end{bmatrix}-\begin{bmatrix}-1\\ 0.2\\ 0.3\\ 0\\ 0\\ 0\end{bmatrix}+\begin{bmatrix}1\\ 0.3\\ 0.3\\ 0\\ 0\\ 0\end{bmatrix}=\begin{bmatrix}1\\ 1.1\\ 1\\ 0\\ 0\\ 0\end{bmatrix}$

Den talserie vi for svare til den serie vi har for ordet dronning (det er i alt fald tæt på). Vi har derfor mulighed for at ords betydning ud fra andre ord.

Ord kan have 6, 10, 50, 1000 egenskaber som der skal gives en talværdi for. Vi vil dog her i opgaven begrænse os til kun to egenskaber da talserien for ordene kommer til at minde om vektorkoordinater i to dimensioner.

Lad os se på et eksempel med fire ord (droning, konge, kvinde og mand) og på to egenskaber (køn og royalitet).

Kvindemanddronningkonge
Køn1-11-1
Royalitet-1-111
tabel over ordene kvinde, mand, dronning og konge med talværdier for egenskaberne køn og royalitet, hvor kønværdien -1 er maskulin og 1 er feminin og for værdien for royalitet betyder -1 almindelig borger mens 1 svare til adelig.

Vi kan nu se at vi kan udtrykke de fire ord med vektorer, for eksempel

$\overrightarrow{kvinde}=\begin{pmatrix}1\\ -1\end{pmatrix}$

  1. hvad er vektorkoordinaterne for de andre tre ord?
  2. beregn vektorerne $\overrightarrow{kvinde}-\overrightarrow{mand}$ og $\overrightarrow{dronning}-\overrightarrow{konge}$. Er der noget påfaldende som du observere?

ANALOGIER MELLEM ORD

AT forskellen mellem to sæt af vektorer er ens (eller næsten ens) udtrykker en form for analogi. Du har måske set opgaver hvor man skal indsætte et ord der passer. For eksempel

Danmark forholder sig til København og England forholder sig til ________”

Her kan de fleste nok gætte, at det manglende ord er London, idet sammenhængen handler om lande og deres hovedstader. Den type forhold mellem ord kaldes en analogi. Med word embeddings kan man formulere en analogi på vektorform

Mand forholder sig til kvinde, som konge forholder sig til dronning

$\overrightarrow{kvinde}-\overrightarrow{mand}\approx\overrightarrow{dronning}-\overrightarrow{konge}$

  1. beregn vektorerne $\overrightarrow{kvinde}-\overrightarrow{mand}$ og $\overrightarrow{dronning}-\overrightarrow{konge}$
  2. udtryk konklusionen man kan drage af spørgsmål 2

På hjemmesiden http://labs.statsbiblioteket.dk/dsc/ kan du under “Analogy” finde ud af hvilke ord der passer bedst ind i en analogi. Husk at vælge “Danisk Newspapers 1900-2016” under “Select corpus” for at få danske ord (du vil lære mere om hvad ordet “corpus” betyder i næste afsnit).

  1. hvilke tre ord passer ifølge siden bedst ind i analogien: “Hammer forholder sig til søm, som sav forholder sig til_____________”
  2. find selv på nogle andre analogier, og skriv et par af de bedste (eller måske værste – modellen er ikke altid lige imponerende) ned.

MANGEL PÅ ANALOGI

Ovenstående viser hvordan man kan konstatere en analogi mellem ord. Tilsvarende vil man kunne vise en mangel på analogi hvis de to relevante vektorer er (meget) forskellige.

  1. undersøg om følgende analogi holder i vores oprindelige eksempel: “Mand forholder sig til dronning, som konge forholder sig til kvinde

HVORDAN FINDER MAN WORD EMBEDDINGS? ALGORITMER!

I praksis kan man ikke sidde og lave embeddings for alle ord i ordbogen i hånden. I stedet bruger man forskellige algoritmer, altså en slags “opskrifter” for computere. Algoritmerne virker ved at tage en stor mængde tekster og kigge på hvordan de forskellige ord forekommer i forhold til hinanden.

En sådan mængde af tekster kaldes et korpus (engelsk: corpus). På hjemmesiden ovenfor var der mulighed ofr at vælge mellem modeller trænet på tre forskellige korpusser. Algoritmen der er benyttet hedder word2vec, men det er ikke så vigtigt i denne smamenhæng.

ENDNU ET SIMPELT EKSEMPEL

Man er dog sjældent så heldig, at værdierne er så enmme at fortolke som ovenfor; der vil sjældent være et enkelt tal der beskriver køn, for eksempel. Det gør det sværere for et menneske at overskue hvad der egentlig foregår, og hvad der betyder hvad, mens computeren intet problem har.

Vi forestiller os nu at vi har sat en algoritme til at træne en mængde tekster. Tabellen nedenfor viser dens to-dimensionele embeddings for seks forskellige ord

Ordxy
mand-0,720,85
kvinde0,84-0,48
konge-1,080,79
dronning0,45-0,57
blå1,842,27
pink3,320,72

Læg igen mærke til, at vi umiddelbart ikke med hvad de to koordinater betyder, så derfor kar vi blodt kaldt dem x og y. Figuren herunder viser hvordan de seks ords embeddings ligger i planen

  1. overvej hvorfor nogle ord ligger tæt på hinanden, mens andre ikke gør.

LIGHEDER MELLEM ORD

En måde at give et mål for hvor ens eller forskellige to ord er fra hinanden, bruger man ofte det der kaldes cosinus-similaritet (engelsk: cosine similarity). Det er ikke så indviklet som det lyder. Man bruger den almindelige form for vinklen mellem to vektorer, men i stedet for at beregne selve vinklen med $\cos^{-1}$ til sidst, bruger vi $\cos(v)$ som et mål for afstand.

Hvis vi for eksempel vil beregne cosinus-similariteten mellem ordene mand og konge kan vi gøre det på følgende måde. Formlen for vinklen mellem to vektorer er

$\cos(v)=\frac{\vec{a}{\Large\bullet}\vec{b}}{|\vec{a}|\cdot |\vec{b}|}$

I dette tilfælde betyder det

$\cos(v)=\frac{-0,72\cdot (-1,08)+0,85\cdot 0,79}{\sqrt{(-0,72)^2+ 0,85^2}\cdot \sqrt{(-1,08)^2+ 0,79^2}}=0,97$

I stedet for at beregne vinklen v bruges nu tallet 0,97 som et mål for ligheden. Dette er cosinus-similariteten mellem mand og konge.

  1. beregn cosinus-similariteten mellem følgende par af ord:
    • mand – kvinde
    • mand – blå
    • droning – pink
  2. mellem hvilke to tal kan værdien af cosinus-similariteten ligge?
  3. hvad betyder det, at to ord har en cosinus-similaritet tæt på 1?
  4. hvad betyder det, at to ord har en cosinus-similaritet tæt på -1?
  5. hvad betyder det, at to ord har en cosinus-similaritet tæt på 0?

Tekniske begrænsninger: dette ligheds-mål kommer ikke helt til sin ret her, da antallet af dimensioner er så lavt (2). I højere dimensioner vil langt de fleste par af ord have cosinus-similariteter tæt på nul, da der i en vis forstand er “mere plads” i rum med høj dimension. I vores eksempel får urelaterede ordpar som dronning og pink en kunstig høj cosinus-similaritet af denne grund. Ordparret mand og kvinde, der her ser ud til at være modsætninger, ville tilsvarende havde en cosinus-similaritet tæt på 1, da de begge er navneord, angiver personer osv. De adskiller sig faktisk kun på ét punkt: køn.

HVILKE ORD MINDER MEST OM HINANDEN?

Hvis man har givet et ord kan man være interesseret i hvilke andre ord der ligner det mest, altså har egenskaber der er tættest på. Hvis man har en lang række embeddings for forskellige ord, kan man sammenligne cosinus-similariteterne mellem det givne ord og alle de andre ord i ordbogen. Herefter udvælger man det/de ord der havde højest cosinus-similaritet.

  1. hvilke ord minder mest om mand i eksemplet ovenfor? Konge, kvinde eller blå?

Hjemmesiden vi så tidligere (http://labs.statsbiblioteket.dk/dsc/) har også mulighed ofr at lave en sådan søgning. Dette foregår i feltet “Nearest words”.

  1. hvilke tre ord er tættest på hest i følge modellen på siden?
  2. find selv på flere ord at prøve med, og skriv de bedste/sjoveste resultater ned.

ANALOGIER I EKSEMPLET

Vi vender nu tilbage til eksemplet fra før, og ønsker at finde analogier mellem ord. Undersøg ved hjælp af word embeddings om følgende analogier gælder og kommenter resultaterne

  1. Mand forholder sig til kvinde, som konge forholder sig til dronning
  2. Mand forholder sig til kvinde, som konge forholder sig til blå
  3. Mand forholder sig til kvinde, som blåforholder sig til pink

BIAS SKABER PROBLEMER

Den sidste analogi ser potentielt problematisk ud! I en moderne, ligestillet verden skulle mænd og kvinder helst ikke identificeres med forskellige farvekoder. Dette er et eksempel på bias i modellen, altså en type forudindtagethed.

Dette kan synes harmløst når det handler om farver, men det kan gå grueligt galt hvis der er andre biases i modellen.

  1. undersøg historien om Microsofts Twitter-chatbot Tay, og forklar hvad der gik galt.

HVOR KOMMER BIAS FRA?

Som du måske fandt ud af i historien om Tay, er sprogteknologiske modeller kun så gode som de data man baserer dem på. Hvis det korpus man bruger til at træne modellen er rasistisk eller sexistisk vil det også afspejle sig i de word embeddings den producerer.

Probelemt kunne derfor løses ved at brige et andet korpus der ikke indeholder de biases man ønsker at undgå. I praksis kan det dog være svært eller kostbart at finde sådan et korpus. Men der er også andre muligheder som vi skal se i næste afsnit.

DE-BIASING

Nu hvor vi ved at der er et problem med analogien mellem køn og farve i vores model, kan vi aktivt forsøge at fjerne denne sammengæng. Denne proces kaldes de-biasing, idet vi prøver at reducere bias i modellen.

Først spørger vi os selv: Hvordan udtrykkes køn i modellen? Når vi kigger på de fire ord der har tydeligt køn ser vi, at de i store træk ligger på en lige linje. I modsætning til vores første legetøjseksempel, hvor køn kunne aflæses på x-aksen er køns-elementet her tilsyneladende udtrykt ved hvor vi befinder os langs en linje der går fra 2 kvadrant til 4 kvadrant.

  1. Find en retningsvektor $\overrightarrow{r_{køn}}$ for denne linje ved at tage gennemsnittet af de fire kønnede ords embeddings.

Vi kigger nu på de to ord vi ønsker at fjerne køns-elementet fra, altså blå og pink.

Hvilken del at disse ords embedding er parallel med $\overrightarrow{r_{køn}}$? Svaret er, at det er projektionen på $\overrightarrow{r_{køn}}$.

  1. beregn $\overrightarrow{blå_{v_{køn}}}$, altså projektionen af $\overrightarrow{blå}$ ned på $\overrightarrow{v_{køn}}$.

Det er denne del af blå‘s embedding vi ønsker at slippe af med. Derfor kan vi finde den de-biasede embedding ved at trække projektionen fra

  1. beregn $\overrightarrow{blå_{debiased}}$
  2. lav en skitse af den tilsvarende geometri for pink. Beregn den de-biasede embedding $\overrightarrow{pink_{debiased}}$
  3. hvad betyder det, at de to debiasede embeddings nu er tæt på hinanden?
  4. Undesøg analogien “mand forholder sig til kvinde, som blå forholder sig til pink” med de nye, de-biasede embeddings

  1. kilde: ordnet.dk

  2. ordet rødkælk kommer fra det tyske ord rotkehlchen, hvor kelchen betyder strube – Dansk Ornitologisk Forening