Ladataan 3D-laboratoriota…
Ladataan oppituntia…
← Miten tekoäly toimiiMaailma 1 · oppitunti 3/4Kaikki oppitunnit ↓

Upotukset: lukuja sisältävä lista jokaiselle tokenille
Opetatko tätä? Avaa projektoritila
Tokenien tunnisteet ovat vain nimilappuja. Tunniste 4821 ei ole merkitykseltään ”lähellä” tunnistetta 4822. Merkityksen kaltaisten kuvioiden laskemista varten malli tarvitsee esityksen, jossa samankaltaisuus on luku, jonka voit laskea.
Tätä esitystä kutsutaan upotukseksi: jokaiselle tokenille on lukuja sisältävä lista, jota kutsutaan vektoriksi. Vektorit ovat suuressa taulukossa. Niiden arvot alkavat satunnaisina, ja niitä säädetään koulutuksen aikana. Oikeissa malleissa on satoja tai tuhansia lukuja tokenia kohden.
Mikä tekee vektorista hyödyllisen? Tokenit, jotka esiintyvät samankaltaisissa asiayhteyksissä, päätyvät saamaan samankaltaiset vektorit. Mikolov kollegoineen osoitti tämän idean suuressa mittakaavassa (2013, ”word2vec”), ja se muistuttaa kielitieteilijän sanontaa: sanan luonne määräytyy sen seurasta. ”Cat” ja ”dog” esiintyvät sanojen kuten ”pet”, ”fed” ja ”vet” lähellä, joten niiden vektorit päätyvät lähelle toisiaan. ”Cat” ja ”carburettor” eivät esiinny.
Samankaltaisuuden mittaaminen: kosinisamankaltaisuus. Kahdelle vektorille a ja b:
cos = (a · b) / (|a| × |b|)
missä a · b on vastaavien alkioiden tulojen summa ja |a| on neliöiden summan neliöjuuri. Tulos on aina välillä −1 ja 1: 1 tarkoittaa, että vektorit osoittavat samaan suuntaan, 0 tarkoittaa, että ne ovat suorassa kulmassa toisiinsa nähden, ja −1 tarkoittaa vastakkaisia suuntia.
Kahden luvun leikkiesimerkki (keksitty): cat = (3, 4) ja dog = (4, 3). Pistetulo on 3×4 + 4×3 = 24. Molempien pituus on 5. Siis cos = 24 / 25 = 0,96. Otetaan nyt car = (4, −3): pistetulo catin kanssa on 12 − 12 = 0, joten cos = 0.
300 ulottuvuutta ei voi piirtää. Kartan näyttämistä varten vektorit puristetaan 3 (tai 2) ulottuvuuteen esimerkiksi PCA:n tai t-SNE:n avulla. AI Labin maailmassa ”Kuudesta piirteestä pistepilveksi” näytetään, miten nämä menetelmät toimivat ja missä ne vääristävät etäisyyksiä. Puristaminen vääristää aina jotakin: kaksi kartalla naapureilta näyttävää sanaa voivat olla kauempana toisistaan koko avaruudessa.
Staattisilla upotuksilla on raja-arvo. Jos jokaisella tokenilla on yksi kiinteä vektori, sanalla ”bank” on sama vektori ilmauksissa ”river bank” ja ”bank account”. Yhden vektorin on palveltava molempia merkityksiä. Myöhemmin tässä laboratoriossa (maailmassa 2) näet, miten huomio antaa tokenin lukujen riippua sitä ympäröivistä sanoista.
Kaksi sanavektoria osoittaa täsmälleen samaan suuntaan. Mikä on niiden kosinisamankaltaisuus?
Miksi sanavektorien 3D-kartassa kaksi sanaa voi näyttää olevan lähellä toisiaan, vaikka ne ovat koko avaruudessa kaukana toisistaan?
Miksi yksi kiinteä vektori sanalle “bank” on ongelma?
Kun cat = (3, 4) ja dog = (4, 3), mikä on kosinisamankaltaisuus?