Sanojen Upotusten Perusteet
Pyyhkäise näyttääksesi valikon
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 tekstikorpuksissa.
Sanaesitykset ratkaisevat nämä ongelmat ottamalla huomioon sanojen esiintymisympäristön ja tarjoavat kielelle vivahteikkaamman ymmärryksen.
Sanaesitykset ovat tiheitä 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 merkistön 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äytetyt mallit sanaupotusten tuottamiseen. Koska FastText on kuitenkin vain paranneltu versio Word2Vecistä, jätämme sen käsittelemättä ja keskitymme ainoastaan Word2Vec-malliin.
Kuinka 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 noudattaa kahta mallia:
- CBoW (continuous bag of words): ennustaa kohdesanan ympäröivien sanojen tarjoaman kontekstin perusteella;
- Skip-gram: ennustaa ympäröivät kontekstisanat kohdesanan perusteella.
Molemmissa Word2Vec-arkkitehtuureissa mallille annetaan jokaisella koulutusiteroinnilla kohdesana ja sitä ympäröivät sanat kontekstina, jotka esitetään one-hot-koodattuina vektoreina. Koulutusdata koostuu siis näistä pareista tai ryhmistä, joissa jokainen kohdesana liitetään 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 kattavan oppimisen kaikista mahdollisista konteksteista korpuksessa.
Kontekstikkuna on kiinteä määrä sanoja kohdesanan ympärillä, joita malli käyttää oppiakseen kontekstin. Se määrittää, kuinka monta sanaa ennen ja jälkeen kohdesanan otetaan huomioon koulutuksen 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