Paljon matematiikkaa ilman taikuutta: kuinka ääniavustajat todella toimivat

Assistant Zuckerberg ja käyttöjärjestelmä "Samantha": kahdenlaisia ​​äänijärjestelmiä

Työskentelen laboratoriossa

koneoppimisdatan esitys.Opetan yliopistossa kahta ainelohkoa: yksi niistä liittyy soveltavaan koneoppimiseen ja tekoälyyn. Toinen koskee hakua ja sen lajikkeita. Näiden aiheiden risteyksessä on alue, josta yritän puhua tänään.

On kaksi tapaa tarkastella sitä, mikä onääniavustaja. Kuvittele, että sinulla on virtuaalinen hovimestari. Esimerkiksi noin viisi vuotta sitten Mark Zuckerberg teki kotiinsa älykkään avustajan, nimeltään "Jarvis". Hän osasi päästää ihmiset taloon, avata ja sulkea ovet, verhot, sytyttää valot. Muita esimerkkejä tällaisista laitteista ovat "Alexa" ja "Alice", ne elävät laitteessa ja pystyvät parantamaan elämää. He voivat ohjata uunia, pesukonetta, pölynimuria ja niin edelleen.

Toinen tapa tarkastella avustajia on askäyttöliittymä. Elokuvassa "She" oli käyttöjärjestelmä nimeltä "Samantha", venäläisessä ääninäyttelijässä hänellä oli sama ääni kuin Yandexin "Alice". Hän toimi käyttöjärjestelmän hallinnan käyttöliittymänä, eikä häntä ollut suunniteltu avustajaksi. Applella on tämä lähestymistapa - Siri, Microsoft - Сortana, Google - Google Assistant.

Miten ne toimivat?

Kaikki avustajat on rakennettu hyvin samanlaiselle pohjalleperiaate. Ensimmäinen asia, joka hänen on tehtävä, on kuulla ääni. Tämä tapahtuu käyttäjän laitteessa - matkapuhelimessa tai älykaiuttimessa. Käyttäjä sanoo: "Alice", "Alexa", "OK Google". Näiden taikasanojen jälkeen laite on valmis nauhoittamaan käyttäjän ääntä. Tämä tapahtuu jossain vaiheessa - kunnes asiakas on hiljaa tai laite on kyllästynyt odottamaan, kunnes se on hiljaa. Tämän jälkeen tiedot lähetetään palveluita tarjoavan yrityksen palvelimelle.

Tästä taika alkaa.Ensimmäinen operaatio on puheen muuntaminen tekstiksi. Jokainen sanoo eri tavalla, kuinka voin muuntaa tämän tekstiksi? Sitten alkaa se, mihin käytämme ääniavustajia - palvelun tarjoaminen. Tämä on mikä tahansa verkossa saatavilla oleva operaatio - lippujen ostaminen, pöydän varaus ravintolaan. Ainoa kysymys on, kuinka tarjota käyttäjäystävällinen käyttöliittymä. Jos sitä ei ole, laite muuttuu puhujaksi.

Palveluun soittamisen jälkeen käyttäjän täytyypalauta tulokset, tätä varten sinun on pakattava ne oikein. Todennäköisimmin se on teksti, Internet-sivun ongelma, kappale, laskimen laskemat tiedot. Tiedot muunnetaan takaisin puheeksi ja lähetetään asiakkaalle.

Puhe tekstiksi

Viestimme tapahtuu puheen kautta, ääni onilman liikettä ympärillä. Nämä tärinät osuvat tärykalvoon, se työntää kolmea luuta - jalustimen, alasin ja vasaran. Ne puolestaan ​​heiluttavat etanaksi kutsuttua urua. Saimme etanan kalasta, se on täynnä vettä ja siinä elävät karvasolut, jotka värähtelevät etanassa olevan veden mukana. Yläkarvasolut vahvistavat nesteen vaihtelua ja välittävät ne karvasolujen alaosaan, jotka muodostavat sähköisen impulssin. Tämä impulssi välittyy aivoihin.

Lisäksi simpukan eri paikoissa karvasolut ovat vastuussa eri taajuuksista. Korkeat taajuudet käsitellään leveässä osassa, keskitaajuudet ovat keskellä ja matalat taajuudet lähempänä keskustaa.

Kuinka voimme saada koneen havaitsemaan tämän äänen?samalla tavalla - ei raakasignaalin muodossa, vaan taajuusjoukon muodossa? Vastauksen tähän kysymykseen antoi ranskalainen matemaatikko Jean Baptiste Fourier, hän asui XVIII-XIX vuosisatojen rajalla. Tiedemies ehdotti tällaista matemaattista muutosta, jonka avulla kaikki on sama kuin korvassa - raakasignaali otetaan ja hajotetaan taajuuskomponenteiksi.

Mitä tehdä taajuuskomponenteille?Voimme kartoittaa spektriesityksen foneemiksi, eli voimme muuntaa puheen foneemiksi. Ne muunnetaan enemmän tai vähemmän helposti algoritmisesti kirjaimiksi. Eli voimme saada sanan foneettisesta esityksestä.

Mutta kaikki tämä on epätarkkoja.On foneemeja, jotka eroavat hieman, siirtymät äänestä toiseen voivat kuulostaa erilaisilta. Niitä kutsutaan senoneiksi, niitä on noin 10 tuhatta. Mutta kun niitä on niin paljon, sanojen määrittely on paljon vaikeampaa.

Vikojen torjunta

Miten tutkijat suhtautuvat virheisiin?Vastauksen tähän kysymykseen antoi venäläinen matemaatikko Andrei Markov, joka eli 1800- ja 1900-luvun vaihteessa. Hän kehitti teorian, joka kuvaa prosesseja, joissa toinen seuraa toisesta. Ja hänen teoriansa ansiosta kehitettiin piilotettuja Markovin malleja. Tämä on yksi ensimmäisistä tavoista korjata tällaiset virheet.

Esimerkiksi kun henkilö puhuu epäselvästi, hänaksentti tai hän lausuu sanan väärin - on olemassa matemaattinen mekanismi, jonka avulla voit palauttaa ja määrittää suurella tarkkuudella, mitä henkilö tarkoitti. Loppujen lopuksi ihmiset tekevät myös virheitä, mutta he ymmärtävät toisiaan, mikä tarkoittaa, että meillä on päässämme mekanismi virheiden korjaamiseksi.

Mutta tekstin esittäminen ei riitä -tietokone toimii numeroiden kanssa. Kuinka saada ne? Noam Chomskylla on hypoteesi, että aivoissamme on rakenne, joka on lisäksi saatavilla syntymätasolla, mikä auttaa meitä oppimaan nopeasti luonnolliset kielet. Chomsky rakentaa, jalostaa ja työskentelee koko elämänsä ajan mallin mukaan, joka määrittää, mitä yhteisiä malleja kielessä on, olipa se mikä tahansa - venäjä, englanti tai kiina.

Dialla - Chomskyn kielioppi.Tämä on suunnilleen sama asia kuin venäjän kielen tunneilla analysoidessaan lausetta sävellyksen mukaan. On substantiivit, adjektiivit, aiheet, predikaatit, verbiryhmät - kaikki tämä on formalisoitu ja voidaan näyttää koneelle. Tämä rakenne on helppo esittää numeroina.

Kone voi ymmärtää, mistä aiheesta on kyseehdotus ja mitä toimia pitäisi tehdä. Jos asiakas esimerkiksi sanoo: "Liisa, laita musiikkia päälle", "sytytä" on toiminta, "musiikki" on kohde, jolla toiminta tapahtuu. "Liisa" ymmärtää asiakasta ja alkaa toimia.

Mutta sanat itsessään ovat kokoelma kirjaimia, kutenymmärtää niiden merkityksen? On olemassa samanlaisia ​​sanoja - "play" ja "play", ymmärtääkö laite, että tämä on sama asia? Vastauksen tähän kysymykseen antoi amerikkalainen lingvisti Leonardo Bloomfield. 1900-luvun alussa hän ehdotti teoriaa, jossa sanan merkitys määräytyy kontekstin mukaan, jossa sana sijaitsee. Katso diaa ja mieti, millä sanalla voidaan korvata kolme pistettä.

Vastaukseni olisi norsu, mutta kun kysyinopiskelijat sanovat, että siellä saattaa olla sarvikuono tai jopa kirahvi. Mutta yleisesti ottaen ymmärrämme, että tämä on suuri eläin, joka asuu Afrikassa ja joka voi olla vihainen. Jos yhdistämme kaiken tämän, saamme jonkin semanttisen kuvauksen tästä objektista käyttämättä itse sanaa.

Mutta jos digitalisoimme tämän, saamme senkymmeniä tuhansia numeroita. Ja amerikkalaisen matemaatikon Gene Golubin ansiosta hän onnistui selvittämään kuinka vähentää merkittävästi numeroiden määrää. Numeroiden sijaan he käyttivät numerokokoelmaa, jota kutsutaan vektoriksi. Ja tätä vektoria voidaan käyttää ymmärtämään läheisyyttä tai etäisyyttä merkityksessä, semanttista sukua. Joten voit ymmärtää, että "leikki" on suunnilleen sama kuin "leikki".

Nyt on työkaluja, joihin voit kirjoittaa sanoja,ja tulee selväksi, kuinka ne jakautuvat merkityskartalla. Esimerkiksi sanat "kirahvi", "norsu" ja "sarvikuono" ryhmitellään ja päätyvät rinnakkain merkitysavaruudessa. Nämä menetelmät ovat kehittyneet ja näyttävät nyt paljon edistyneemmiltä.

Olemme esittäneet sanat rakenteen muodossa, lauseet rakenteen muodossa, olemme esittäneet sanat merkityksien muodossa, kaikki tämä on numeroiden muodossa, mitä seuraavaksi?

palvelut

Jokaisella palvelulla on satoja tuhansia, miljoonia,miljardeja esineitä. Jos puhumme Internetin hausta, kyseessä on satoja miljardeja sivuja, kymmeniä miljardeja kuvia. Jos musiikkia suoratoistetaan, miljoonia kappaleita.

Yksi ensimmäisistä lähestymistavoista tietojen indeksointiin −binäärihakupuiden rakentaminen. Samaa käytetään sanakirjoissa: avaat sen keskeltä ja jos ohitit oikean sanan, vierität taaksepäin, jos et ymmärtänyt, jatka eteenpäin. Mutta vuonna 1962 Neuvostoliiton matemaatikot Georgi Adelson-Velsky ja Evgeniy Landis keksivät tietorakenteen, joka ylläpitää itsensä nopean haun tilassa.

Tämä järjestelmä toimii vain lineaarisilla tiedoilla −numeroita tai sanoja. Ja mitä tapahtuu moniulotteiselle datalle, jos haluamme etsiä jotain kartalta tai kolmiulotteisesta avaruudesta? Tätä varten he keksivät sellaisia ​​rakenteita kuin kd-puut, jotka selviävät täydellisesti kolmiulotteisen avaruuden etsintätehtävistä. Mutta he lopettivat työskentelyn nykyaikaisissa tehtävissä, joissa tekstiä kuvataan sadoilla numeroilla.

Mutta kiitos 1900-luvun lopun teoreettisen työnEric Berninson ehdotti Anna-nimisen hakupuiden kehittämistä, jonka avulla voidaan taata hyvä hakulaatu valtavissa kokoelmissa. Tämä toimii koko laajalle Spotify-pohjalle - upea tulos, joka saatiin vain viisi vuotta sitten.

On myös muita lähestymistapoja:esimerkiksi sosiologi Stanley Milgram teki outoja ja joskus epäinhimillisiä kokeita. Hän synnytti kuuden kädenpuristuksen teorian, jonka mukaan kaikki ihmiset maan päällä tuntevat toisensa enintään kuuden kättelyn kautta. Tätä varten hän pyysi ihmisiä lähettämään kirjeen tuntemattomalle. Sitten heidän täytyi valita tuttujensa joukosta ne, jotka voisivat olla tuttuja tämän henkilön kanssa. Ja kävi ilmi, että heiltä tarvittiin kuusi kirjainta tähän. Kokeilua kritisoitiin, mutta se toistettiin 2000-luvulla - ja se vahvisti tulokset.

Tämä on hämmästyttävä ominaisuus, joka matematiikassasai nimen kreivi "pieni maailma". Venäläiset tutkijat - Juri Malkovin ryhmä - ehdottivat mielenkiintoista algoritmia. He käyttivät sitä löytääkseen mitä tahansa mistä tahansa. Tämän kaavion solmut eivät ole enää ihmisiä, vaan asiakirjoja.

Tässä kaaviossa - lyhin etäisyys minkä tahansapari esinettä. Käyttäjät löytävät tarvitsemamme erittäin nopeasti. Tätä tietorakennetta käytetään nyt monissa yrityksissä Venäjällä ja ulkomailla - Facebook, Mail.ru, Yandex. Erinomainen matemaattinen malli, joka on muuttanut haku- ja suosituspalvelujen lisäksi myös ääniavustajaa.

Lue lisää

Katso maailman ensimmäinen tulevaisuuden yksivaiheinen kiertorata-alus

Kolmen vuoden ajan tutkijat uskoivat, että Marsin eteläosassa oli vettä. Kävi ilmi, ettei ollut

Hyperääninen vetykäyttöinen lentokone voi saavuttaa jopa 12 Machin nopeuden. Se on melkein 15 000 km/h