Zephyrnet logo

AI puhuu sinulle. Mutta ymmärtääkö se mitä se sanoo?

Treffi:

Oletetaan, että olet huoneessa yksin.

Katsot ympärillesi. Huoneessa ei ole ikkunoita tai ovia, vain pieni aukko toisessa seinässä, ja hyllyt, jotka on kasattu kirjoilla ja tomeilla. Ne ovat täynnä outoja symboleja ja niiden mukana on englanninkielisiä ohjeita, jotka auttavat sinua muuntamaan ne uusiksi, yhtä outoiksi.

Lopulta paperiromu putoaa aukon läpi. Se sisältää merkkijonon, jota et ymmärrä, samanlainen kuin kirjoissa. Käydään läpi kaikkien kirjojen kaikki sivut, kunnes löydät vastaavat merkit, ja seuraat ohjeita ja kerrot, mitä kirjoittaa alkuperäisen viestin alle, ja siirrät paperin takaisin aukon läpi, mitä teet.

Nämä eivät ole merkityksettömiä symboleja, jotka on kirjoitettu paperille. Huoneen toisella puolella on kiinankielisiä äidinkielenään puhuvia, jotka ovat juuri saaneet täydellisen vastauksen kysymykseensä. He toteavat luonnollisesti, että toisessa huoneessa on kiinan äidinkielenään puhuja. Vain me tiedämme, että näin ei ole.

Tämä on kiinalainen huone, paljon keskusteltu ajatuskokeilu, jonka vuonna 1980 ehdotti filosofi John Searle. Kokeessa kirjat eivät ole kiinan-englannin sanakirjoja - ne eivät missään vaiheessa yritä selittää symbolien merkitystä. He vain antavat sinulle ohjeet syötteen ottamiseen, hahmojen manipulointiin niiden välisten suhteiden perusteella ja antavat ulostulon. Kirjat toimivat kuin tietokoneohjelma.

Searle väitti, että Turingin testi ei ollut luotettava testi koneen älykkyydelle. Mikä tahansa tehokas tekoälyohjelma voi lopulta oppia tietyn kielen säännöt ja antaa illuusion siitä, että sillä on sama ymmärrys kuin äidinkielenään puhuvalla.

Nämä tietokoneiden ja ihmisten kielten väliset vuorovaikutukset ovat luonnollisen kielenkäsittelyn eli NLP: n keskiössä. Puheentunnistus, tekstin yhteenveto, mielipiteiden analyysi, konekäännös - NLP on kaikkialla. Ja se on nähnyt valtavia parannuksia 80-luvulta lähtien. Vaikka humoristista konekäännöstä on vielä tarpeeksi kiertämiseen, olemme edenneet pitkälle siitä päivästä lähtien BabelKala. Me - varsinkin minä, yksikielinen jenkki, joka asuu Lissabonissa - pääsemme nopeasti, melko tarkkiin käännöksiin itsestäänselvyytenä.  

Oletko koskaan miettinyt, kuinka tietokoneohjelmat pystyvät käsittelemään sanoja?

Loppujen lopuksi jopa yksinkertaisimmat lauseet voivat olla semanttisia miinakenttiä, täynnä konnotaatioita ja kieliopillisia vivahteita, jotka vain äidinkielenään puhuvat voivat ymmärtää heti. Otetaan esimerkiksi seuraava lause: "Eilen menin pankkiin ja törmäsin ystäväni kanssa." Kuinka tietokone voi kääntää tämän ranskaksi? Raakaisin tapa olisi kenties sanasta sanaan korvaaminen kaksikielisellä sanakirjalla. Tulisimme todennäköisesti käännökseen "Hier, je allé à le banque et couru dans mon ami". Ensinnäkin on ongelmia verbien taivutuksessa ja artikkeli-substantiivi-sukupuolisopimuksessa ("le banque" pitäisi olla "la banque"). Mutta jos todella haluaisimme kääntää tällä tavalla, voisimme suunnitella joukon sääntöjä, jotka huolehtivat näistä kieliopin nuuskista. Niiden toteuttamisen jälkeen saatamme päätyä seuraavaan käännökseen: "Hier, je suis allé à la banque et j'ai couru dans mon ami." Ehdottomasti parannus - mutta tässä versiossa lataan edelleen ystäväni kuin puolustava takla.

Kirjoittaessasi Google-kääntäjä - joka ei ole tarkalleen tunnettu täydellisestä käännöksestään - antaa meille tämän: "Hier, je suis allé à la banque et suis tombé sur mon ami." Se kääntää oikein idiomaattisen ilmaisun tarkoituksen tavata joku odottamattomasti. Tämä ei voi olla pelkästään sanasta sanaan korvaamista.

Joten mitä täällä tapahtuu? Ensinnäkin meidän tulisi miettiä tapaa, jolla me ihmiset opimme selvittämään sanallisen epäselvyyden. Kun koemme tarpeeksi esimerkkejä lapsena, alamme antaa sanoille semanttista arvoa ja abstraktoida ja ekstrapoloida näitä semanttisia arvoja annettuina sanayhdistelminä. Yksinkertaisemmin sanoen, ilman nimenomaista opetusta, ymmärrämme, mitä sanat tarkoittavat ja miten niiden konteksti vaikuttaa niihin. Viitaten aikaisempaan englannista ranskaan esimerkkiin, ensimmäinen vaistomme on ajatella, että tapasimme ystävämme emmekä törmänneet hänen kanssaan. Meillä on kokemuksia fyysisestä maailmasta ja elinikäinen kielellinen panos, joka auttaa meitä asettamaan asiat asiayhteyteen.

Mitä sanat ja lauseet tarkoittavat tietokoneelle, joka ymmärtää vain nollia ja niitä?

Vaikka tietokoneet eivät todellakaan voi "ymmärtää" kieltä ihmisen mielessä, heidän kouluttamisensa tuottamaan hyödyllistä tietoa tekstistä ei ole aivan erilainen kuin omat kokemuksemme kielen hankkimisesta. Näytä tietokoneelle tarpeeksi esimerkkejä, niin se alkaa tunnistaa kuviot. Mutta mikä korvaa ihmisen ymmärryksen? Sanojen upotukset, minkä tahansa luonnollisen kielenkäsittelytehtävän perusyksiköt.

Sanan upottaminen on lähinnä numerosarja - vektori -, joka tallentaa tietoja sanan merkityksestä.

Sanojen upotusten luomisen tavoite on kaksi: parantaa muita NLP-tehtäviä, kuten konekääntämistä, tai analysoida sanojen ja sanaryhmien välisiä yhtäläisyyksiä.

Useiden läpimurtojen vuoksi sanojen upottamismenetelmissä vuotta 2018 on pidetty NLP: n kulta-aikaa. Nämä uudet menetelmät tuottivat merkittäviä parannuksia kykymme mallinnaa kieltä, minkä pitäisi näkyä pian sekä kulutustuotteissa että yrityksissä.

Katsotaanpa yksinkertaista esimerkkiä saadaksemme tunteen sana upottamisesta.

Oletetaan, että haluamme luoda 2-ulotteisia sanojen upotuksia (toisin sanoen kutakin sanaa edustaa joukko kahta numeroa) tietyille eläimille: virtahepo, käärme, perhonen, platypus. Oletetaan lisäksi, että kaksi ulottuvuuttamme edustavat kahta ominaisuutta, joita eläimillä voi olla vaihtelevassa määrin: "vaarallisuus" ja "epätasaisuus".

Näiden eläinten väärennetyt sana-upotukset saattavat olla seuraavat:

Eläin Vaarallinen Pörröinen
Virtahepo 0.85 0.13
Käärme 0.88 -0.97
Perhonen -0.91 -0.86
Vesinokkaeläin 0.61 0.79

Tässä esimerkissä "virtahepoa" edustaa vektori [0.85, 0.13], käärme [0.88, -0.97] ja niin edelleen. Meillä on nyt numeerinen esitys, vaikkakin yksinkertaistettuna, jokaisesta näistä eläimistä näiden kahden ominaisuuden suhteen. Näille vektoreille voidaan suorittaa kaikenlaisia ​​matemaattisia operaatioita saadakseen meille uutta tietoa.

Usein mainittu esimerkki, joka korostaa sanan upotustoimintojen voimaa, on kuningas - mies
+
nainen = kuningatar. Tässä kaaviossa sinisten nuolien voidaan sanoa edustavan sukupuolta, ja oranssien nuolien rojalti.

Yksi tällainen toimenpide on vertailu. Kuinka samanlainen sana on toiseen? Eläimiä koskevassa esimerkissämme voimme kuvitella "virtahepo", "käärme", "perhonen" ja "platypus" numeerisen esityksen 2D-kaaviona viivana, joka ulottuu alkuperästä ja kulkee merkin osoittamien pisteiden läpi. numerot. Näiden sanojen samankaltaisuus voidaan siis määrittää niiden vektorien välisen kulman perusteella (kutsumme tätä) kosinin samankaltaisuus). Pohjimmiltaan sanoilla, jotka on erotettu 90 ° kulmalla, ei ole semanttista suhdetta, kun taas 180 ° kulmalla erotetut sanat ovat tarkkoja vastakohtia.

Tässä esimerkissä virtahepon ja platypusin välinen etäisyys on noin 16 °, kun taas virtahepo ja perhonen ovat 104 °.

Tietysti tämä on vain hauska, hypoteettinen esimerkki, jossa vain korostetaan sanojen upotuksia ja aletaan kuvata niiden hyödyllisyyttä. Käytännössä käytetään paljon suurempia dimensiovektoreita (tyypillisesti satoja), ja semanttisten kenttien, kuten "vaarallisten" ja "pörröisten", yrittäminen näille ulottuvuuksille olisi vaikeaa ja epäoikeudenmukaista, koska algoritmi ei todellakaan ole tietää sanat 'merkitys. Lisäksi tarvitaan erittäin suuria, kymmenien miljoonien sanojen suuruisia ruumiita, jotta voidaan "oppia" tyydyttävät sanojen upotukset.

Mutta ensin meidän on koskettava nopeasti kielitieteen alaa, jota kutsutaan jakelusemantiikaksi.

Sanojen upottamiset kaappaavat tehokkaasti jotakin, jota kutsutaan "jakautumishypoteesiksi", jonka brittiläinen kielitieteilijä John Rupert Firth tiivistää sopivasti vuonna 1957 kirjoittamassaan teoksessa, Yhteenveto kieliteoriasta:

"Tiedät sanan yritykseltä, jota se pitää."

Jakelusemantiikan kenttä esittää, että samankaltaisissa yhteyksissä esiintyvillä sanoilla ja lauseilla - samanlaisilla jakaumilla - on samanlainen merkitys.

Oletetaan esimerkiksi, että meillä on joukko lauseita:

  • Hän hyväili sumeaa koiraa.
  • Hän hyväili sumeaa kissaa.
  • Hän soitti hakua koiran kanssa.

Ihmisen kohdalla on heti ilmeistä, että kissat ja koirat ovat sukulaisia ​​(molemmat lemmikkieläimiä), kun taas ”hellitetyt” ja “pelatut haut” ovat yhteydessä toisiinsa (molemmat lemmikkieläinten toiminnot). Mutta on myös heti selvää, että et voi saada kissaa pelaamaan hakua, vaikka ei kokeilun puutteesta!

Laskennalliset sanojen upotusmenetelmät hyödyntävät tätä ajatusta - että sanan konteksti voi auttaa kertomaan meille, mitä sana tarkoittaa, jos olemme nähneet riittävän määrän ja erilaisia ​​esimerkkejä.

Tämä vie meidät lopulta varsinaisiin algoritmeihin sanojen upotusten laskemiseksi, kuten Word2Vec, jonka Tomas Mikolov ja hänen Googlen tutkijatoverinsa esittivät vuonna 2013. Algoritmin pääajatuksena on ennustaa kaikille sanoille naapuritermit käyttämällä paljon tekstiä harjoitteludatana.

Palataan takaisin pieneen muunnelmaan alkuperäisestä lauseestamme: "Eilen menin pankkiin ja luin sanomalehteä."

Word2Vecin avulla haluamme ensin määritellä kontekstin sanat - sanotaan kaksi. Joten, jokaisen harjoitteludatan sanan osalta tarkastelemme kahta sanaa ennen ja sen jälkeen olevia kahta sanaa ja luomme parit nykyisen sanan ja jokaisen neljän kontekstisanan kanssa. Keskisana on tulo ja kontekstisana on lähtö, jossa haluamme käyttää syötesanaa lähtösanan ennustamiseen.

Esimerkiksi, jos keskimmäinen sanamme on "pankki", harjoitusparit ovat: (pankki, to), (pankki, the), (pankki ja), (pankki, I).

Tämä parien luomisprosessi toistetaan jokaiselle lauseen sanalle, ja lopuksi sanan upotukset syntyvät syöttösanan avulla jokaisen parin lähtösanan ennustamiseen.

Jos voit kuvitella, että meillä on miljoonia tekstiriviä harjoittelua varten, yleisempiä pariliitoksia esiintyy useammin näissä esimerkeissä, mikä tekee mallista todennäköisemmin oppivan nämä yhdistelmät. Jopa tässä yhdessä lauseessa voimme nähdä, että (pankki, the) / (sanomalehti, the) ja (go, I) / (lue, I) ovat samanlaisia ​​pareja, koska ne seuraavat paradigmoja substantiivi-artikkeli ja verbi-aihe-pronomini, vastaavasti.

Seuraava vaihe on muuttaa nämä sanat jakautumisvektoreiksi, kuten eläinten esimerkissä, jossa numeroilla on merkitys suhteessa toisiinsa.

Tätä varten käymme läpi kaikki luomamme harjoitusparit ja noudatamme seuraavaa menettelyä. Alustamme ensin syötesanan upottamisen satunnaislukujen vektorina. Sitten vektoriin sovelletaan joukkoa matemaattisia toimintoja. Näiden operaatioiden tulos on toinen vektori, joka puolestaan ​​edustaa sanaa, jonka haluamme olla harjoitusparimme lähtösana. Jos ennustettu sana ei ole lähtösanamme, säädämme upotettavan syötesanan numeroita hieman, jotta operaatioiden tulos näyttää lähempänä lähtösanan vektoria.

Tässä esimerkissä harjoitusparimme on (pankki, the). Sovellettuamme lähtöfunktiot sanaan upotus sanalle "pankki" (oranssilla), katsomme ennustettua sanavektoria (vihreä) nähdäksesi, vastaako se kohdesanaa "." Lopuksi muokkaamme "pankin" oranssia upotusta siten, että vihreä ennustettu vektori on lähempänä "."

Päivitämme nämä sanojen upotukset maksimoidaksemme todennäköisyyden, että syötesanan mukaan tuotettu lähtösana esiintyy usein kontekstisanana tiedoissa. Samankaltaisilla sanoilla on samanlainen konteksti ja siksi samanlaiset sanojen upotukset.

Näiden mallien kestävyyden korostamiseksi tässä on joitain esimerkkejä alkuperäisestä paperi esittelemällä Word2Vec.

Yhteys EXA
mple 1
Esimerkki 2 Esimerkki 3
Ranska: Pariisi Italia: Rooma Japani: Tokio Florida: Tallahassee
Einstein: tutkija Messi: keskikenttäpelaaja Mozart: viulisti Picasso: taidemaalari
Microsoft: Ballmer Google: Yahoo IBM: McNealy Apple: Työpaikat

Huomaa: Kuten voidaan nähdä, tarkkuus on melko hyvä, vaikka parannuksia on selvästi paljon.

Sanojen upottamisen avulla voimme pyytää mallia suorittamaan analogioita, kuten "Ranska on Pariisiin kuin Italia ___?" Vaikka tietokone ei vieläkään ymmärtää, se on kuin se tietäisi, että Rooma on Italian pääkaupunki ja että Picasso oli taidemaalari. Jakeluhypoteesin perusteella se kääntäisi nimen "Steve Jobs" nimellä "Steve Jobs" teknisessä artikkelissa, mutta "työpaikat" "emploisiksi" taloudellisessa raportissa. Se huomaisi, että en tarttunut ystäväni maahan; Juoksin vain hänen kanssaan pankissa.

Tällaista sanojen upotustekniikkaa käyttämällä olemme nähneet hämmästyttäviä tuloksia erilaisissa tehtävissä, kuten mielipiteiden analysoinnissa, tekstin luomisessa ja, mikä tärkeintä Unbabelissa, konekäännöksessä.

Edelleen, Tekoälyn kieliongelma ei ole ratkaistu - emme ole kovinkaan saaneet tietokoneita saavuttamaan todellista luonnollista kielten ymmärtämistä. Loppujen lopuksi kieli on luonnostaan ​​inhimillinen toiminta, joka erottaa älykkyytemme. Se vaatii sekoituksen abstraktiota ja assosiaatiota, vuorovaikutusta ympäröivän fyysisen maailman kanssa ja ehkä vähän ihmisen kekseliäisyyttä, mitä meillä on runsaasti, mutta tekoälystä puuttuu.

Pyrittäessä aidosti älykkäisiin koneisiin on vaikea kuvitella mitään monimutkaista tekoälyjärjestelmää, jonka ytimessä ei ole kieltä. Mutta huolimatta siitä, mitä jotkut yritykset ja otsikot uskovat, sitä ei tapahdu milloin tahansa pian.

Lähteet:

Herbelot, A. Jakelusemantiikka: kevyt johdanto. https://aurelieherbelot.net/research/distributional-semantics-intro/.

McCormick, C. (2016, 19. huhtikuuta). Word2Vec-opetusohjelma - Skip-Gram-malli. Haettu osoitteesta http://www.mccormickml.com

Mikolov, T. et ai. Tehokas arviointi Word-esityksistä vektoriavaruudessa. 2013. https://arxiv.org/pdf/1301.3781.pdf. Mikolov, T. et ai. Hajautetut sanojen ja lauseiden esitykset ja niiden koostumus. 2013. https://arxiv.org/pdf/1301.3781.pdf.

Lähde: https://unbabel.com/blog/ai-talking-understanding/

spot_img

Uusin älykkyys

spot_img