Kaip kompiuteris išmoksta suprasti žmogaus kalbą
Kai pirmą kartą pasakote „Alexa, koks oras šiandien?”, jums tai atrodo paprasta kaip ir pokalbis su draugu. Bet už šių kelių žodžių slypi neįtikėtinai sudėtinga technologija, kuri per kelias milisekundes turi atpažinti jūsų balsą, suprasti ką norite pasakyti, atrasti reikiamą informaciją ir atsakyti jums suprantama kalba. Alexa balso asistentas naudoja natūralios kalbos supratimo (NKS) technologijas, kurios leidžia mašinai ne tik girdėti žodžius, bet ir suprasti jų prasmę.
Natūralios kalbos supratimas yra dirbtinio intelekto šaka, kuri stengiasi išmokyti kompiuterius suprasti žmonių kalbą tokią, kokia ji yra – su visais jos niuansais, dviprasmybėmis ir konteksto reikalavimais. Skirtingai nuo senųjų kompiuterių programų, kurioms reikėjo griežtų komandų, Alexa gali suprasti įvairius to paties klausimo variantus: „Koks oras?”, „Ar šiandien lis?” arba „Ar man reikės skėčio?” – visa tai ji supras kaip panašius užklausimus apie oro sąlygas.
Kelionė nuo garso bangų iki prasmės
Kai jūs kalbate su Alexa, vyksta kelių etapų procesas. Pirmiausia jūsų balsas yra užfiksuojamas mikrofonu ir paverčiamas skaitmeniniais duomenimis – garso bangomis. Šis procesas vadinamas garso apdorojimu ir jis vyksta tiesiog jūsų Amazon Echo įrenginyje. Tačiau tikrasis darbas prasideda toliau.
Garso duomenys siunčiami į Amazon debesinius serverius, kur juos apdoroja galingos mašinos. Ten pirmiausia įsijungia kalbos atpažinimo sistema (ASR – Automatic Speech Recognition). Ji analizuoja garso bangas ir bando atpažinti atskirus garsus, skiemenis ir žodžius. Tai panašu į tai, kaip mes skaitome lūpų judesius, tik daug sudėtingiau – sistema turi atskirti žodžius nuo fono triukšmo, suprasti skirtingus akcentus ir kalbėjimo tempus.
Po to, kai sistema paverčia jūsų kalbą į tekstą, prasideda tikrasis natūralios kalbos supratimas. Čia įsijungia NLU (Natural Language Understanding) modulis, kuris analizuoja tekstą ir bando suprasti, ką jūs iš tikrųjų norite. Jis identifikuoja pagrindinius elementus: kokia yra jūsų intencija (intent) – ką norite padaryti, ir kokie yra esminiai duomenys (entities) – apie ką kalbate.
Kaip Alexa išmoksta jūsų kalbos niuansų
Vienas įdomiausių dalykų apie Alexa yra tai, kad ji nuolat mokosi. Sistema naudoja mašininio mokymosi algoritmus, kurie buvo treniruoti su milijonais tikrų žmonių pokalbių pavyzdžių. Kiekvienas naujas pokalbis padeda sistemai tapti protingesnei ir geriau suprasti kalbos įvairovę.
Pavyzdžiui, jei pasakysite „Alexa, pridėk pieną į sąrašą”, sistema turi suprasti kelis dalykus vienu metu. Pirma, ji turi atpažinti, kad jūsų intencija yra pridėti prekę į apsipirkimo sąrašą. Antra, ji turi identifikuoti, kad „pienas” yra ta prekė, kurią reikia pridėti. Trečia, ji turi žinoti, į kurį sąrašą pridėti – jei turite kelis sąrašus, ji gali paklausti papildomai arba naudoti numatytąjį.
Bet kas nutinka, kai sakote kažką neįprasto? Pavyzdžiui: „Alexa, nepamiršk, kad man reikia to balto skysčio iš karvių”. Sistema turi suprasti, kad kalbate apie pieną, nors tiesiogiai jo nepaminėjote. Čia įsijungia konteksto supratimas ir semantinė analizė – sistema bando rasti ryšius tarp žodžių ir sąvokų, kurias ji žino.
Intencijų atpažinimas ir skilių užpildymas
Alexa veikia pagal intencijų sistemą. Kiekviena intencija – tai konkretus veiksmas, kurį galite atlikti: paleisti muziką, nustatyti laikmatį, užsakyti pica, valdyti protingus namų įrenginius ir taip toliau. Amazon kūrėjai sukūrė tūkstančius standartinių intencijų, bet kūrėjai gali kurti ir savo.
Kiekviena intencija turi vadinamuosius „slot” arba duomenų laukus. Pavyzdžiui, muzikos paleidimo intencija gali turėti tokius laukus: atlikėjo vardas, dainos pavadinimas, žanras, nuotaika. Kai sakote „Alexa, paleisk ramią džiazo muziką”, sistema:
1. Atpažįsta intenciją – paleisti muziką
2. Užpildo žanro lauką – džiazas
3. Užpildo nuotaikos lauką – rami
4. Vykdo veiksmą su šiais parametrais
Įdomu tai, kad sistema gali dirbti net su neužpildytais laukais. Jei pasakysite tiesiog „Alexa, paleisk muziką”, ji paleis muziką pagal jūsų ankstesnius pasirinkimus arba paklaus, ko norėtumėte.
Konteksto svarba ir pokalbių istorija
Viena iš sunkiausių užduočių natūralios kalbos supratimui yra konteksto palaikymas. Žmonės kalbėdami nuolat naudoja nuorodas į ankstesnius dalykus, įvardžius, neužbaigtus sakinius. Alexa stengiasi sekti pokalbio giją ir suprasti, apie ką kalbate.
Pavyzdžiui, toks pokalbis:
– „Alexa, koks oras Vilniuje?”
– „Vilniuje šiandien 15 laipsnių ir debesuota”
– „O rytoj?”
– „Rytoj Vilniuje bus 12 laipsnių ir gali lyti”
– „Gerai, primink man pasiimti skėtį”
Šiame pokalbyje Alexa turi suprasti, kad „rytoj” vis dar kalbate apie Vilnių, nors tiesiogiai jo nepaminėjote. Ji taip pat turi suprasti, kad prašydami priminti pasiimti skėtį, reaguojate į informaciją apie lietų.
Sistema saugo trumpalaikę pokalbio istoriją ir naudoja ją kontekstui suprasti. Tai veikia naudojant vadinamuosius sesijos atributus – laikinus duomenis, kurie išsaugomi pokalbio metu. Tačiau čia yra ir privatumo aspektas – Amazon teigia, kad ilgalaikiai pokalbių įrašai nėra saugomi, nebent jūs to aiškiai prašote.
Daugiakalbystė ir akcentų atpažinimas
Vienas didžiausių iššūkių kuriant globalų balso asistentą yra kalbų įvairovė. Alexa dabar palaiko daugiau nei 10 kalbų, įskaitant anglų, ispanų, vokiečių, prancūzų, italų, japonų ir kitas. Bet tai nereiškia, kad viena sistema tiesiog išverčia žodžius – kiekviena kalba turi savo NKS modelius, kurie treniruoti su tos kalbos duomenimis.
Lietuvių kalbos Alexa oficialiai dar nepalaiko, bet tai puikus pavyzdys, kodėl kalbų pridėjimas yra sudėtingas. Lietuvių kalba turi sudėtingą linksnių sistemą, daug išimčių, įvairių žodžių formų. Sistema turėtų būti treniruota su milijonais lietuviškų frazių pavyzdžių, kad galėtų tinkamai suprasti visus niuansus.
Net toje pačioje kalboje skirtingi akcentai kelia iššūkių. Britų anglų kalba skiriasi nuo amerikiečių, o australų anglų kalba vėl kitokia. Amazon investuoja daug išteklių į akcentų atpažinimą, rinkdama duomenis iš įvairių regionų ir treniruodama sistemas atpažinti skirtingus tarimo būdus.
Kai sistema nesupanta – klaidų tvarkymas
Net ir pažangiausia sistema kartais suklysta. Alexa gali neteisingai išgirsti žodį, nesuprati keistos frazės arba neturėti informacijos, kurios prašote. Kaip sistema su tuo tvarkosi?
Pirmiausia, Alexa naudoja pasitikėjimo balus (confidence scores). Kai sistema atpažįsta jūsų kalbą ir intenciją, ji apskaičiuoja, kiek yra tikra dėl savo atsakymo. Jei pasitikėjimo balas žemas, ji gali paklausti patikslinti: „Ar norėjote pasakyti…?” arba tiesiog atsakyti: „Atsiprašau, nesupratau. Galite pakartoti?”
Sistema taip pat mokosi iš klaidų. Kai vartotojai klausia „Alexa, ką ką tik pasakiau?”, sistema gali parodyti, kaip ji suprato jūsų žodžius. Jei matote, kad ji neteisingai išgirdo, galite pateikti atsiliepimą per Alexa programėlę. Šie duomenys padeda tobulinti atpažinimo algoritmus.
Įdomus aspektas yra tai, kaip Alexa tvarkosi su dviprasmybėmis. Pavyzdžiui, žodis „bank” anglų kalba gali reikšti ir banką, ir upės krantą. Sistema naudoja kontekstą ir tikimybes, kad nuspręstų, kurią reikšmę jūs turėjote omenyje. Jei kalbate apie pinigus, greičiausiai tai finansų įstaiga; jei apie žvejybą – upės krantas.
Ateitis jau čia, bet dar ne visai
Alexa natūralios kalbos supratimas per pastaruosius metus padarė milžinišką pažangą, bet vis dar yra toli nuo tikro žmogaus kalbos supratimo. Sistema puikiai tvarkosi su aiškiais, struktūruotais užklausimais, bet sudėtingesni pokalbiai, ironija, metaforos ar kultūrinės nuorodos vis dar kelia sunkumų.
Praktiškai tai reiškia, kad geriausiai Alexa veikia, kai kalbate aiškiai ir tiesiogiai. Vietoj „Gal galėtum man padėti sužinoti, ar atsitiktinai žinai, koks dabar laikas?” geriau pasakyti „Alexa, kiek valandų?”. Sistema tobulėja suprasdama sudėtingesnes frazes, bet paprastumas vis dar veikia patikimiausiai.
Ateityje tikimasi, kad natūralios kalbos supratimas taps dar natūralesnis. Amazon investuoja į emocijų atpažinimą – sistemą, kuri galėtų suprasti ne tik ką sakote, bet ir kaip jaučiatės. Jau dabar Alexa gali atpažinti kai kuriuos emocijų ženklus balse ir pritaikyti atsakymus.
Kitas svarbus kryptis yra daugiašaliai pokalbiai – kai keletas žmonių gali kalbėtis su Alexa vienu metu, o sistema supranta, kas kalba ir į ką reaguoja. Tai reikalautų dar pažangesnio konteksto supratimo ir balsų atpažinimo technologijų.
Taip pat vyksta darbas ties tuo, kad Alexa galėtų geriau suprasti netiesiogines užklausas ir implikacijas. Pavyzdžiui, jei sakote „Alexa, šalta čia”, sistema galėtų suprasti, kad greičiausiai norite, jog būtų padidintas šildymas, nors tiesiogiai to neprašėte. Tai reikalauja gilaus konteksto ir situacijos supratimo, kuris vis dar yra technologijos ribose.
Natūralios kalbos supratimas yra viena iš svarbiausių technologijų, leidžiančių mums bendrauti su mašinomis žmogiškai. Alexa pavyzdys rodo, kad esame pasiekę įspūdingų rezultatų, bet kelias į tikrą kalbos supratimą vis dar tęsiasi. Kiekvienas jūsų pokalbis su Alexa prisideda prie šios technologijos tobulinimo, o tai reiškia, kad ateityje balso asistentai taps dar protingesni ir naudingesni mūsų kasdienybėje.




