Word2Vec

A-niveau
Kort
  • Vektorregning
  • Eksponentialfunktionen.
  • Word2Vec teori.

Forudsætningerne om WordVec teori bør dækkes ved hjælp af noten om Word2Vec.

Tidsforbrug: Ca. 90 minutter.

Formål

Formålet med dette forløb er dels at gennemføre beregningerne i Word2vec for et meget lille korpus af data, men også at forstå, hvad det vil sige at optimere vektorerne, så tabsfunktionen minimeres.

Et meget lille tekstkorpus

Vi vi anvende følgende meget simple tekstkorpus med 12 sætninger. Vi betragter kun de to ord, og anvender et 1-ords vindue, som endda kun indeholder det andet ord på samme linje. Så i den første linje er hunden i 1-ords vinduet til sover, og ingen andre ord er i sovers 1-ords vindue.

  • Hunden sover.
  • Katten sover.
  • Katten spinder.
  • Hunden gør.
  • Hunden sover.
  • Hunden gør.
  • Katten sover.
  • Hunden gør.
  • Katten sover.
  • Katten spinder.
  • Katten sover.
  • Katten spinder.

Overordnet er ideen så, at vi skal bestemme værdier til fokus- og kontekstvektorer, så tabfunktionen minimeres.

Fokus- og kontekstvektorer.

Vi skal således bruge både fokusvektorer og kontekstvektorer.

Opgave 1:
  • Hvor mange fokusvektorer er der brug for?
  • Hvor mange kontekstvektorer er der brug for?

Nu vælger vi indledningsvis værdier til alle disse vektorer - vi venter med optimering. For at gøre det simplere, vil vi I dette forløb begrænse os til enhedsvektorer, så længden altid er 5, hvor længden i Word2vec ellers generelt er variabel.

Fokusvektorerne: \[ \vec{v}_{hunden} = \begin{pmatrix} -4 \\ 3 \end{pmatrix}\\ \vec{v}_{katten} = \begin{pmatrix} 0 \\ 5 \end{pmatrix} \\ \vec{v}_{spinder} = \begin{pmatrix} 3 \\ 4 \end{pmatrix} \\ \vec{v}_{sover} = \begin{pmatrix} 4 \\ 3 \end{pmatrix} \\ \vec{v}_{gør} = \begin{pmatrix} 5 \\ 0 \end{pmatrix} \\ \] Kontekstvektorerne: \[ \vec{k}_{hunden} = \begin{pmatrix} 4 \\ -3 \end{pmatrix}\\ \vec{k}_{katten} = \begin{pmatrix} 3 \\ -4 \end{pmatrix} \\ \vec{k}_{spinder} = \begin{pmatrix} -5 \\ 0 \end{pmatrix} \\ \vec{k}_{sover} = \begin{pmatrix} -4 \\ -3 \end{pmatrix} \\ \vec{k}_{gør} = \begin{pmatrix} -3 \\ -4 \end{pmatrix} \\ \] Til disse værdier af vektorerne, skal vi nu have beregnet værdien af tabsfunktionen \(L\). For at kunne overskue beregningerne, opdeles de i mindre dele i de følgende opgaver.

Opgave 2: Beregn prikprodukterne og anvend eksponentialfunktionen.
  • Udregn prikproduktet mellem fokusordnet for \(hunden\) og kontekstordet for \(sover\).
  • Udregn på tilsvarende vis prikprodukterne for de 7 øvrige muligheder.
  • Udregn desuden \(e\) opløftet i hvert af de 8 prikprodukter.

Som det næste skal sandsynlighederne udregnes. F.eks. udregnes

Opgave 3: Udregn sandsynligheder
  • Udregn \[P(\text{sover} \mid \text{hunden}) &= \frac{\mathrm{e}^{\vec{v}_{\text{hunden}} \cdot \vec{k}_{\text{sover}} }}{\mathrm{e}^{\vec{v}_{\text{hunden}} \cdot \vec{k}_{\text{fjer}} }+\mathrm{e}^{\vec{v}_{\text{hund}} \cdot \vec{k}_{\text{pels}} }+\mathrm{e}^{\vec{v}_{\text{hund}} \cdot \vec{k}_{\text{hund}} }} \\ \]

Anden opdatering af vægtene

Overvej, om du kan strømline dine beregninger, for eksempel i Excel eller i dit CAS værktøj, så det bliver hurtigere at opdatere vægtene en gang mere på samme måde.

Opgave 4: Opdater vægtene anden gang
  • Beregn tabsfunktionen.
  • Beregn de opdaterede vægte.

Bemærk, at værdien af tabsfunktionen er blevet lidt mindre. Formålet er jo netop at minimere den gennem gradientnedstigning, så som regel bør værdien bliver mindre, hver gang vægtene opdateres.

App til simple neurale netværk

Med perceptron app’en kan du lave de samme beregninger bare automatisk.

Opgave 5: Afprøv perceptron app’en
  • Lav et Excelark med feature- og targetværdierne.
  • Indlæs data fra Excelarket i perceptron app’en.
  • Vælg de korrekte værdier i felterne på app’en. Herunder skal feature-skalering være slået fra.
  • Se om app’en giver samme resultater for tabsfunktionen og vægtene, som du selv fik efter 1 iteration og efter 2 iterationer.

Cross-entropy som tabsfunktion

Du kan læse om cross-entropy i noten om tabsfunktioner.

(Ekstra) Opgave 6: Cross-entropy tabsfunktion
  • Gentag opgave 1-5 men med cross-entropy som tabsfunktion i stedet for squared error.

Løsninger til opgaver

Facitliste.