Embeddings: miten tekoäly muuttaa kaiken numeroiksi
Lukuongelma
Tietokoneet käsittelevät lukuja. Pelkkiä lukuja. Neuroverkot? Samoin. Pelkkää matematiikkaa luvuilla.
Mutta maailma ei ole lukuja. Sanoja. Kuvia. Ääniä. Käsitteitä. Miten tekoäly käsittelee näitä?
Upotukset. Ne muuntavat kaiken luvuiksi tavalla, joka säilyttää merkityksen. Keskeinen käsite. Kaiken modernin tekoälyn taustalla.
Mitä upotukset oikeastaan ovat
Upotus on tiheä lukuvektori, joka esittää jotakin.
Sanan upotus: "kissa" muuttuu muotoon [0.2, -0.5, 0.8, ...] (satoja lukuja).
Kuvan upotus: valokuva muuttuu muotoon [0.1, 0.9, -0.3, ...] (tuhansia lukuja).
Luvut eivät ole satunnaisia. Ne opitaan vangitsemaan merkitys. Samankaltaiset asiat saavat samankaltaiset upotukset. Eri asiat saavat erilaiset upotukset.
Tämä on avain: merkityksen samankaltaisuus muuttuu lukujen samankaltaisuudeksi. Matemaattiset operaatiot upotuksille heijastavat semanttisia suhteita.
Miksi upotuksia tarvitaan
Sanoja voisi esittää one-hot-vektoreina. "Kissa" = [1,0,0,...,0]. "Koira" = [0,1,0,...,0]. Jokaiselle sanalle oma numero.
Ongelma: yhteyksiä ei vangita. "Kissa" ja "koira" ovat yhtä erilaisia kuin "kissa" ja "lentokone". Kaikki vektorit ortogonaalisia. Ei semanttista merkitystä.
Upotukset ratkaisevat tämän. "Kissa" ja "koira" saavat samankaltaiset upotukset (molemmat eläimiä). "Kissa" ja "lentokone" saavat erilaiset upotukset. Samankaltaisuus vektoriavaruudessa heijastaa merkityksen samankaltaisuutta.
Nyt matemaattiset operaatiot käyvät järkeen. Aritmetiikka upotuksille vastaa päättelyä merkityksestä.
Miten upotukset opitaan
Upotuksia ei muotoilla käsin. Ne opitaan datasta.
Sanan upotukset (Word2Vec-menetelmä):
Harjoitetaan neuroverkkoa yksinkertaisella tehtävällä: ennustetaan kontekstisanat kohdesanasta. Tai päinvastoin.
Esimerkki: lause "Kissa istui matolla." Kohdesanalle "kissa" ennustetaan "istui", "matolla".
Verkko oppii: ennustaakseen kontekstin hyvin sen on esitettävä samankaltaiset sanat samankaltaisesti. "Kissa" ja "koira" esiintyvät samankaltaisissa konteksteissa. Ne saavat samankaltaiset upotukset.
Upotukset ovat sivutuote. Eivät tehtävän tavoite. Mutta ne vangitsevat semanttisen merkityksen.
Moderni menetelmä (Transformers):
Upotukset opitaan osana suurempaa mallia. Kielimalli ennustaa seuraavan sanan. Kuvamalli luokittelee kohteita. Upotukset syntyvät sisäisinä esityksinä.
Nämä ovat kontekstuaalisia. Sama sana saa erilaiset upotukset eri konteksteissa. "Pankki" (rahoitus) ja "pankki" (joki) saavat erilaiset esitykset.
Semanttinen avaruus
Upotukset luovat geometrisen avaruuden, jossa merkitys on geometriaa.
- Samanlaisuus = läheisyys: Samankaltaiset käsitteet ryhmittyvät. Eläimet ryhmittyvät. Ajoneuvot ryhmittyvät. Abstraktit käsitteet ryhmittyvät. Etäisyys mittaa samankaltaisuutta.
- Suhteet = suunnat: Kuuluisa esimerkki: king - man + woman ≈ queen
Vektoriaritmetiikka vangitsee suhteet. Suunta "man":sta "king":iin (sukupuolesta kuninkaallisuuteen) on samankaltainen kuin "woman":sta "queen":iin.
Analogiat muuttuvat vektorioperaatioiksi. Mieltä räjäyttävää, mutta se toimii.
Ulottuvuudet = ominaisuudet:
Jokainen ulottuvuus vangitsee jonkin ominaisuuden. Yksi ulottuvuus voi olla "elollisuus" (elollinen vs. eloton). Toinen voi olla "koko". Kolmas "abstraktius".
Sadat ulottuvuudet vangitsevat satoja ominaisuuksia. Yhdistettynä ne edustavat merkitystä.
Erilaiset upotustyypit
- Sanauppotukset: Sanoista vektoreiksi. Word2Vec, GloVe, FastText. NLP:n perusta.
- Lauseuppotukset: Kokonaisista lauseista vektoreiksi. Vangitsevat kokonaisten lauseiden merkityksen, eivät vain sanojen. Käytetään semanttiseen hakuun.
- Kuvauppotukset: Kuvista vektoreiksi. CNN-ominaisuudet. Vision transformer -lähdöt. Mahdollistavat kuvahaun ja samankaltaisuuden vertailun.
- Monimuotouppotukset: Eri muodot samaan avaruuteen. Teksti ja kuvat saavat vertailukelpoiset upotukset. CLIP tekee tämän. Mahdollistaa monimuotohaun.
- Graafiuppotukset: Graafien solmuista vektoreiksi. Vangitsevat verkostorakenteen. Käytetään sosiaalisissa verkostoissa ja tietograafeissa.
Miten upotuksia käytetään
- Samankaltaisuushaku: Etsi samankaltaisia kohteita. Lähimmät naapurit upotusavaruudessa. Hakukoneet, suositusjärjestelmät.
- Luokittelu: Käytä upotuksia luokittelun piirteinä. Semanttisia piirteitä, ei raakaa dataa. Parempi yleistyminen.
- Klusterointi: Ryhmittele samankaltaisia kohteita. K-means upotuksille. Aihemallinnus, asiakassegmentointi.
- Siirto-oppiminen: Käytä suuren mallin upotuksia pienessä tehtävässä. Esikoulutettu tieto siirtyy. Yleistä näkö- ja kielitehtävissä.
- Hakuavusteinen tuotanto: Upota kyselyt ja asiakirjat. Hae olennaiset asiakirjat. Anna kielimallille. Faktapohjaisia tekoälyvastauksia.
Binaariset upotukset (tehokas vaihtoehto)
Perinteiset upotukset: liukulukuvektoreita. 32 bittiä ulottuvuutta kohti. Suuri muistijalanjälki.
Binaariset upotukset: 1 bitti ulottuvuutta kohti. Jokainen ulottuvuus on +1 tai -1. 32× vähemmän muistia.
Näin ne toimivat:
Opitaan upotukset normaalisti. Sitten binarisoidaan: positiivisista ulottuvuuksista tulee +1, negatiivisista -1.
Samankaltaisuus: pistetulon sijaan käytetään Hamming-etäisyyttä tai XNOR-popcountia. Paljon nopeampaa.
Kompromissit:
Menetetään hieman tarkkuutta. Mutta monissa tehtävissä sillä ei ole merkitystä. Haku ja lähimmän naapurin haku toimivat hyvin binaarisena.
Hyöty: valtava nopeus- ja muistitehokkuus. Käytettävissä reunalaitteilla. Prosessoi miljardeja vektoreita nopeasti.
Dweven lähestymistapa:
Rajoitteet ovat binaarisia kuvioita. Luonnostaan binaarisia upotuksia. 65 536 bitin hypervektoreita. Tehokas tallennus, nopeat toiminnot.
Kuviontunnistus XNOR- ja popcount-operaatioilla. Samankaltaisuus yhteensopivuuden laskennalla. Binaarista koko matkan.
Ulottuvuuksien määrällä on merkitystä
Kuinka monta ulottuvuutta? Enemmän ei aina ole parempi.
Liian vähän ulottuvuuksia: Monimutkaisuutta ei voi vangita. Eri käsitteet törmäävät. Tärkeitä eroja menetetään.
Liian monta ulottuvuutta: Laskennallinen kustannus. Muistin käyttö. Ylisovittuminen. Ulottuvuuksien kirous (kaikesta tulee yhtä kaukana toisistaan korkeissa ulottuvuuksissa).
Tyypilliset koot:
Sanaupotukset: 100-300 ulottuvuutta
Lauseupotukset: 384-1024 ulottuvuutta
Kuvauptotukset: 512-2048 ulottuvuutta
Binaariset hypervektorit: 1024-65536 bittiä (vankkojen ominaisuuksien saavuttamiseksi)
Valinta riippuu tehtävän monimutkaisuudesta ja laskentabudjetista.
Mitä sinun tulee muistaa
- 1. Upotukset muuntavat kaiken numeroiksi. Sanat, kuvat ja käsitteet muuttuvat vektoreiksi. Mahdollistaa tekoälyn käsittelyn.
- 2. Merkityksestä tulee geometriaa. Samankaltaiset käsitteet saavat samankaltaisia vektoreita. Etäisyys mittaa samankaltaisuutta. Suunnat vangitsevat suhteita.
- 3. Opitaan datasta, ei käsin suunnitella. Neuroverkot oppivat upotukset osana harjoitusta. Datan rakenteet määräävät esityksen.
- 4. Mahdollistavat semanttiset operaatiot. Vektorien matematiikka heijastaa päättelyä merkityksestä. Vektoriaritmetiikka tekee analogioita.
- 5. Useita tyyppejä eri datalle. Sanat, lauseet, kuvat, graafit. Jokaisella on erikoistuneet upotusmenetelmät.
- 6. Binaariset upotukset tarjoavat tehokkuutta. 1 bitti ulottuvuutta kohti 32:n sijaan. Valtavat muisti- ja nopeushyödyt. Toimii monissa tehtävissä.
- 7. Ulottuvuuksien määrä on kompromissi. Useammat ulottuvuudet vangitsevat enemmän monimutkaisuutta. Mutta kuluttavat laskentaresursseja. Tasapaino tarpeen.
Lopputulos
Upotukset ovat tapa, jolla tekoäly siltaa kuilun ihmisen käsitteiden ja koneen laskennan välillä. Kaikki merkityksellinen muunnetaan vektoreiksi avaruudessa, jossa merkityksen samankaltaisuus muuttuu geometrian samankaltaisuudeksi.
Tämä ei ole vain esitystapa. Se on modernin tekoälyn perusta. Haku, suositukset, generointi, ymmärrys. Kaikki perustuu upotuksiin.
Vektorit eivät ole mielivaltaisia. Ne opitaan vangitsemaan semanttinen rakenne. Geometria heijastaa merkitystä. Matemaattiset operaatiot vastaavat päättelyä.
Binääriupotukset osoittavat, ettei semanttinen merkitys vaadi liukulukutarkkuutta. 1-bittiset esitykset toimivat. Tehokkaasti. Suuressa mittakaavassa. Käytettävissä missä tahansa.
Upotusten ymmärtäminen tarkoittaa sen ymmärtämistä, miten tekoäly näkee maailman. Ei sanoina tai kuvina. Vaan vektoreina korkeaulotteisessa avaruudessa, jossa merkitys on matematiikkaa.
Haluatko tehokkaita upotuksia? Tutustu Dweven hypervektorilähestymistapaan. 65 536-bittisiä binäärikuvioita. XNOR-pohjainen samankaltaisuus. Semanttinen merkitys binääriavaruudessa. Sellainen esitystapa, joka toimii laitteiston nopeudella.