Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele CBOW- ja Skip-Gram-Mallit | Sanaesitykset
Johdatus NLP:hen Pythonilla

bookCBOW- ja Skip-Gram-Mallit

Perustiedot neuroverkoista ovat suositeltavia tämän luvun ymmärtämiseksi. Jos aihe ei ole ennestään tuttu, voit tutustua tähän kurssiin:

Sekä CBoW- että Skip-gram-arkkitehtuurit oppivat sanaupotuksia neuroverkkorakenteen avulla, joka koostuu seuraavista kerroksista:

  • syötekerros;
  • yksi piilokerros;
  • ulostulokerros.

Syöte- ja piilokerrosten välinen painomatriisi, merkittynä W1W^1 tai EE, toimii upotusmatriisina. Jokainen tämän matriisin rivi edustaa upotusvektoria vastaavalle sanalle, ja ii:s rivi vastaa sanaston ii:ttä sanaa.

Tämä matriisi sisältää VV (sanaston koko) upotusta, joista jokaisen koko on NN, määrittelemämme dimensio. Kun tämän matriisin transpoosi (N×VN \times V matriisi) kerrotaan one-hot-koodatulla vektorilla (V×1V \times 1 vektori), saadaan tietyn sanan upotus, joka on N×1N \times 1 vektori.

Toinen painomatriisi, joka sijaitsee piilotetun ja ulostulokerroksen välillä, on kooltaan N×VN \times V. Kun tämän matriisin transpoosi (V×NV \times N matriisi) kerrotaan piilotetun kerroksen N×1N \times 1 vektorilla, saadaan V×1V \times 1 vektori.

CBoW

Tarkastellaan nyt esimerkkiä CBoW-mallin käytöstä:

Ensiksi upotusmatriisin transpoosi kerrotaan kontekstisanojen one-hot-vektoreilla, jolloin saadaan näiden sanojen upotukset. Nämä upotukset summataan tai keskiarvoistetaan toteutuksesta riippuen, jolloin muodostuu yksi vektori. Tämä vektori kerrotaan W2W^2-matriisilla, jolloin saadaan V×1V \times 1 vektori.

Lopuksi tämä vektori syötetään softmax-aktivointifunktion läpi, jolloin siitä muodostuu todennäköisyysjakauma, jossa jokainen alkio kuvaa sanaston sanan todennäköisyyttä olla kohdesana.

Tämän jälkeen lasketaan tappiofunktio ja molempia painomatriiseja päivitetään tappion minimoimiseksi. Ihannetapauksessa halutaan, että kohdesanan todennäköisyys on lähellä 1 ja kaikkien muiden sanojen todennäköisyydet lähestyvät nollaa. Tämä prosessi toistetaan jokaiselle kohdesanan ja sen kontekstisanojen yhdistelmälle.

Kun kaikki yhdistelmät on käsitelty, yksi epookki on suoritettu. Tyypillisesti neuroverkkoa koulutetaan useiden epookkien ajan, jotta oppiminen olisi tarkkaa. Lopuksi tuloksena saadun upotusmatriisin rivejä voidaan käyttää sanaupotuksina. Jokainen rivi vastaa tietyn sanan vektoriesitystä sanastossa ja kuvaa tehokkaasti sen semanttisia ominaisuuksia koulutetussa mallissa.

Skip-gram

Tarkastellaan nyt skip-gram-mallia:

Kuten huomaat, prosessi on pääosin samanlainen kuin CBoW-mallissa. Se alkaa hakemalla kohdesanan upotuksen, jota käytetään piilotetussa kerroksessa. Tämän jälkeen tuotetaan V×1V \times 1 -vektori ulostulokerroksessa. Tämä vektori saadaan kertomalla kohdesanan upotus ulostulokerroksen painomatriisilla, minkä jälkeen softmax-aktivointifunktio muuntaa sen todennäköisyysvektoriksi.

Note
Huomio

Vaikka tämä todennäköisyysvektori on sama kaikille kontekstisanoille, jotka liittyvät yhteen kohdesanaan yhden harjoitusaskeleen aikana, tappio jokaiselle kontekstisanalle lasketaan yksittäin.

Kunkin kontekstisanan tappio summataan, ja painomatriiseja päivitetään jokaisella iteraatiolla kokonais­tappion minimoimiseksi. Kun määritelty määrä epookkeja on suoritettu, upotusmatriisia voidaan käyttää sanaupotusten saamiseksi.

Note
Lisätietoa

Käytännössä, erityisesti suurilla sanastoilla, softmax-funktio voi olla liian laskennallisesti raskas. Tämän vuoksi käytetään usein approksimaatioita, kuten negatiivista näytteenottoa, laskennan tehostamiseksi.

1. Täydennä aukot

2. Mitä ensimmäinen painomatriisi W1W^1 neuroverkossa edustaa?

question-icon

Täydennä aukot

The architecture tries to predict the target word from its context.
The
architecture tries to predict the context of the target word.

Click or drag`n`drop items and fill in the blanks

question mark

Mitä ensimmäinen painomatriisi W1W^1 neuroverkossa edustaa?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 2

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Suggested prompts:

Can you explain the main difference between CBoW and Skip-gram?

How does the softmax function work in these models?

What is the purpose of the embeddings matrix in these architectures?

Awesome!

Completion rate improved to 3.45

bookCBOW- ja Skip-Gram-Mallit

Pyyhkäise näyttääksesi valikon

Perustiedot neuroverkoista ovat suositeltavia tämän luvun ymmärtämiseksi. Jos aihe ei ole ennestään tuttu, voit tutustua tähän kurssiin:

Sekä CBoW- että Skip-gram-arkkitehtuurit oppivat sanaupotuksia neuroverkkorakenteen avulla, joka koostuu seuraavista kerroksista:

  • syötekerros;
  • yksi piilokerros;
  • ulostulokerros.

Syöte- ja piilokerrosten välinen painomatriisi, merkittynä W1W^1 tai EE, toimii upotusmatriisina. Jokainen tämän matriisin rivi edustaa upotusvektoria vastaavalle sanalle, ja ii:s rivi vastaa sanaston ii:ttä sanaa.

Tämä matriisi sisältää VV (sanaston koko) upotusta, joista jokaisen koko on NN, määrittelemämme dimensio. Kun tämän matriisin transpoosi (N×VN \times V matriisi) kerrotaan one-hot-koodatulla vektorilla (V×1V \times 1 vektori), saadaan tietyn sanan upotus, joka on N×1N \times 1 vektori.

Toinen painomatriisi, joka sijaitsee piilotetun ja ulostulokerroksen välillä, on kooltaan N×VN \times V. Kun tämän matriisin transpoosi (V×NV \times N matriisi) kerrotaan piilotetun kerroksen N×1N \times 1 vektorilla, saadaan V×1V \times 1 vektori.

CBoW

Tarkastellaan nyt esimerkkiä CBoW-mallin käytöstä:

Ensiksi upotusmatriisin transpoosi kerrotaan kontekstisanojen one-hot-vektoreilla, jolloin saadaan näiden sanojen upotukset. Nämä upotukset summataan tai keskiarvoistetaan toteutuksesta riippuen, jolloin muodostuu yksi vektori. Tämä vektori kerrotaan W2W^2-matriisilla, jolloin saadaan V×1V \times 1 vektori.

Lopuksi tämä vektori syötetään softmax-aktivointifunktion läpi, jolloin siitä muodostuu todennäköisyysjakauma, jossa jokainen alkio kuvaa sanaston sanan todennäköisyyttä olla kohdesana.

Tämän jälkeen lasketaan tappiofunktio ja molempia painomatriiseja päivitetään tappion minimoimiseksi. Ihannetapauksessa halutaan, että kohdesanan todennäköisyys on lähellä 1 ja kaikkien muiden sanojen todennäköisyydet lähestyvät nollaa. Tämä prosessi toistetaan jokaiselle kohdesanan ja sen kontekstisanojen yhdistelmälle.

Kun kaikki yhdistelmät on käsitelty, yksi epookki on suoritettu. Tyypillisesti neuroverkkoa koulutetaan useiden epookkien ajan, jotta oppiminen olisi tarkkaa. Lopuksi tuloksena saadun upotusmatriisin rivejä voidaan käyttää sanaupotuksina. Jokainen rivi vastaa tietyn sanan vektoriesitystä sanastossa ja kuvaa tehokkaasti sen semanttisia ominaisuuksia koulutetussa mallissa.

Skip-gram

Tarkastellaan nyt skip-gram-mallia:

Kuten huomaat, prosessi on pääosin samanlainen kuin CBoW-mallissa. Se alkaa hakemalla kohdesanan upotuksen, jota käytetään piilotetussa kerroksessa. Tämän jälkeen tuotetaan V×1V \times 1 -vektori ulostulokerroksessa. Tämä vektori saadaan kertomalla kohdesanan upotus ulostulokerroksen painomatriisilla, minkä jälkeen softmax-aktivointifunktio muuntaa sen todennäköisyysvektoriksi.

Note
Huomio

Vaikka tämä todennäköisyysvektori on sama kaikille kontekstisanoille, jotka liittyvät yhteen kohdesanaan yhden harjoitusaskeleen aikana, tappio jokaiselle kontekstisanalle lasketaan yksittäin.

Kunkin kontekstisanan tappio summataan, ja painomatriiseja päivitetään jokaisella iteraatiolla kokonais­tappion minimoimiseksi. Kun määritelty määrä epookkeja on suoritettu, upotusmatriisia voidaan käyttää sanaupotusten saamiseksi.

Note
Lisätietoa

Käytännössä, erityisesti suurilla sanastoilla, softmax-funktio voi olla liian laskennallisesti raskas. Tämän vuoksi käytetään usein approksimaatioita, kuten negatiivista näytteenottoa, laskennan tehostamiseksi.

1. Täydennä aukot

2. Mitä ensimmäinen painomatriisi W1W^1 neuroverkossa edustaa?

question-icon

Täydennä aukot

The architecture tries to predict the target word from its context.
The
architecture tries to predict the context of the target word.

Click or drag`n`drop items and fill in the blanks

question mark

Mitä ensimmäinen painomatriisi W1W^1 neuroverkossa edustaa?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 2
some-alt