Sanojen Upotusten Perusteet
Sanastoupotusten ymmärtäminen
Perinteisillä tekstin esitystavoilla, kuten bag of words ja TF-IDF, on merkittäviä rajoituksia. Ne käsittelevät sanoja erillisinä, eivät huomioi semanttisia suhteita ja tuottavat korkean ulottuvuuden harvoja vektoreita, jotka muuttuvat laskennallisesti tehottomiksi suurissa aineistoissa.
Sanastoupotukset ratkaisevat nämä ongelmat ottamalla huomioon sanojen esiintymisyhteyden ja tarjoavat kielelle vivahteikkaamman ymmärryksen.
Sanastoupotukset ovat tiiviitä vektoriesityksiä sanoista jatkuvassa vektoriavaruudessa, jossa semanttisesti samankaltaiset sanat sijoittuvat lähelle toisiaan.
Useita malleja ja tekniikoita on kehitetty tuottamaan merkityksellisiä sanaupotuksia:
-
Word2Vec: Googlen kehittämä Word2Vec esittää sanat tiheinä vektoreina käyttäen kahta arkkitehtuuria: continuous bag of words (CBoW), joka ennustaa sanan sen ympäröivän kontekstin perusteella, ja Skip-gram, joka ennustaa ympäröivät sanat annetusta sanasta;
-
GloVe: Stanfordin kehittämä GloVe (global vectors) tuottaa sanaupotuksia analysoimalla koko korpuksen globaaleja sanapariyhteyksiä, tunnistaen semanttisia suhteita sen perusteella, kuinka usein sanaparit esiintyvät yhdessä;
-
FastText: Facebook AI Researchin esittelemä FastText pohjautuu Word2Veciin, mutta esittää sanat merkki n-grammeina. Tämä mahdollistaa osasanatason tiedon mallintamisen, mikä parantaa kykyä käsitellä harvinaisia ja sanaston ulkopuolisia sanoja sekä morfologisesti rikkaita kieliä.
Word2Vec ja FastText ovat yleisimmin käytettyjä malleja sanaupotusten tuottamiseen. Koska FastText on kuitenkin vain paranneltu versio Word2Vecistä, jätämme sen käsittelemättä ja keskitymme ainoastaan Word2Vec-malliin.
Miten Word2Vec toimii?
Word2Vec muuntaa sanat vektoreiksi prosessilla, joka alkaa one-hot-koodauksella, jossa jokainen sanaston sana esitetään yksilöllisenä vektorina, jossa on yksi 1 nollien joukossa. Tarkastellaan esimerkkiä:
Tämä vektori toimii syötteenä neuroverkolle, joka on suunniteltu 'oppimaan' sanaupotuksia. Verkon arkkitehtuuri voi perustua kahteen malliin:
- CBoW (continuous bag of words): ennustaa kohdesanan ympäröivien sanojen muodostaman kontekstin perusteella;
- Skip-gram: ennustaa ympäröivät kontekstisanat kohdesanan perusteella.
Molemmissa Word2Vec-arkkitehtuureissa mallille syötetään jokaisella harjoituskierroksella kohdesana ja sitä ympäröivät sanat kontekstina, jotka esitetään one-hot-koodattuina vektoreina. Harjoitusaineisto koostuu siis näistä pareista tai ryhmistä, joissa jokainen kohdesana liitetään sitä ympäröiviin kontekstisanoihin.
Jokainen sana sanastossa toimii vuorollaan kohdesanana, kun malli käy tekstin läpi käyttäen liukuvaa kontekstikkunaa. Tämä tekniikka siirtyy järjestelmällisesti sanasta toiseen varmistaen, että kaikki mahdolliset kontekstit korpuksessa tulevat huomioiduiksi oppimisessa.
Kontekstikkuna on kiinteä määrä sanoja kohdesanan ympärillä, joita malli käyttää kontekstin oppimiseen. Se määrittää, kuinka monta sanaa ennen ja jälkeen kohdesanan otetaan huomioon harjoittelun aikana.
Tarkastellaan esimerkkiä, jossa ikkunan koko on 2, jotta asia selkeytyy:
Konteksti-ikkunan koko 2 tarkoittaa, että malli ottaa mukaan enintään 2 sanaa sekä kohdesanan vasemmalta että oikealta puolelta, mikäli nämä sanat ovat saatavilla tekstin rajoissa. Kuten huomaat, jos jommallakummalla puolella on alle 2 sanaa, malli ottaa mukaan niin monta sanaa kuin on saatavilla.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 3.45
Sanojen Upotusten Perusteet
Pyyhkäise näyttääksesi valikon
Sanastoupotusten ymmärtäminen
Perinteisillä tekstin esitystavoilla, kuten bag of words ja TF-IDF, on merkittäviä rajoituksia. Ne käsittelevät sanoja erillisinä, eivät huomioi semanttisia suhteita ja tuottavat korkean ulottuvuuden harvoja vektoreita, jotka muuttuvat laskennallisesti tehottomiksi suurissa aineistoissa.
Sanastoupotukset ratkaisevat nämä ongelmat ottamalla huomioon sanojen esiintymisyhteyden ja tarjoavat kielelle vivahteikkaamman ymmärryksen.
Sanastoupotukset ovat tiiviitä vektoriesityksiä sanoista jatkuvassa vektoriavaruudessa, jossa semanttisesti samankaltaiset sanat sijoittuvat lähelle toisiaan.
Useita malleja ja tekniikoita on kehitetty tuottamaan merkityksellisiä sanaupotuksia:
-
Word2Vec: Googlen kehittämä Word2Vec esittää sanat tiheinä vektoreina käyttäen kahta arkkitehtuuria: continuous bag of words (CBoW), joka ennustaa sanan sen ympäröivän kontekstin perusteella, ja Skip-gram, joka ennustaa ympäröivät sanat annetusta sanasta;
-
GloVe: Stanfordin kehittämä GloVe (global vectors) tuottaa sanaupotuksia analysoimalla koko korpuksen globaaleja sanapariyhteyksiä, tunnistaen semanttisia suhteita sen perusteella, kuinka usein sanaparit esiintyvät yhdessä;
-
FastText: Facebook AI Researchin esittelemä FastText pohjautuu Word2Veciin, mutta esittää sanat merkki n-grammeina. Tämä mahdollistaa osasanatason tiedon mallintamisen, mikä parantaa kykyä käsitellä harvinaisia ja sanaston ulkopuolisia sanoja sekä morfologisesti rikkaita kieliä.
Word2Vec ja FastText ovat yleisimmin käytettyjä malleja sanaupotusten tuottamiseen. Koska FastText on kuitenkin vain paranneltu versio Word2Vecistä, jätämme sen käsittelemättä ja keskitymme ainoastaan Word2Vec-malliin.
Miten Word2Vec toimii?
Word2Vec muuntaa sanat vektoreiksi prosessilla, joka alkaa one-hot-koodauksella, jossa jokainen sanaston sana esitetään yksilöllisenä vektorina, jossa on yksi 1 nollien joukossa. Tarkastellaan esimerkkiä:
Tämä vektori toimii syötteenä neuroverkolle, joka on suunniteltu 'oppimaan' sanaupotuksia. Verkon arkkitehtuuri voi perustua kahteen malliin:
- CBoW (continuous bag of words): ennustaa kohdesanan ympäröivien sanojen muodostaman kontekstin perusteella;
- Skip-gram: ennustaa ympäröivät kontekstisanat kohdesanan perusteella.
Molemmissa Word2Vec-arkkitehtuureissa mallille syötetään jokaisella harjoituskierroksella kohdesana ja sitä ympäröivät sanat kontekstina, jotka esitetään one-hot-koodattuina vektoreina. Harjoitusaineisto koostuu siis näistä pareista tai ryhmistä, joissa jokainen kohdesana liitetään sitä ympäröiviin kontekstisanoihin.
Jokainen sana sanastossa toimii vuorollaan kohdesanana, kun malli käy tekstin läpi käyttäen liukuvaa kontekstikkunaa. Tämä tekniikka siirtyy järjestelmällisesti sanasta toiseen varmistaen, että kaikki mahdolliset kontekstit korpuksessa tulevat huomioiduiksi oppimisessa.
Kontekstikkuna on kiinteä määrä sanoja kohdesanan ympärillä, joita malli käyttää kontekstin oppimiseen. Se määrittää, kuinka monta sanaa ennen ja jälkeen kohdesanan otetaan huomioon harjoittelun aikana.
Tarkastellaan esimerkkiä, jossa ikkunan koko on 2, jotta asia selkeytyy:
Konteksti-ikkunan koko 2 tarkoittaa, että malli ottaa mukaan enintään 2 sanaa sekä kohdesanan vasemmalta että oikealta puolelta, mikäli nämä sanat ovat saatavilla tekstin rajoissa. Kuten huomaat, jos jommallakummalla puolella on alle 2 sanaa, malli ottaa mukaan niin monta sanaa kuin on saatavilla.
Kiitos palautteestasi!