Aktuální vydání

celé číslo

08

2019

MSV 2019 v Brně

celé číslo

Hlasový chatbot Alquist opět uspěl v mezinárodní soutěži Alexa Prize

Alexa Prize je soutěž organizovaná firmou Amazon, které se účastní týmy univerzitních studentů z celého světa. Cílem je vytvoření chatbotu pro hlasovou asistentku Alexu, jenž by s lidmi dokázal „zajímavě“ konverzovat o obecných tématech, jako jsou filmy, sport nebo hudba. Hlavní cenu ve výši jednoho milionu dolarů (která dosud nebyla udělena) získá chatbot schopný vést souvislé a zábavné rozhovory s průměrnou délkou alespoň 20 minut a s hodnocením 4/5 nebo vyšším.

Loni se konal již druhý ročník této soutěže, které se účastnil i český tým Alquist AI – a již podruhé úspěšně. V obou ročnících český tým skončil na druhém místě – loni dokázal s člověkem konverzovat zhruba osm minut.

 Co je chatbot?

S primitivním chatbotem se už potkal asi každý. Je to okénko, které na vás vyskočí na okraji webové stránky a snaží se vás přesvědčit, že s ním potřebujete komunikovat. Někdy vám na druhém konci odpoví živý člověk, ale jindy automatický systém vyhledává v databázi často kladených otázek.

Obr. 1. Tým Alquist AI: zleva Ondřej Hrách, Petr Marek, Petr Lorenc, Martin Matulík, Jan Pichl, Radka Fléglová, Jakub Konrád, Jan Šedivý

V mnoha případech jde opravdu jen o módní podobu vyhledávače, ale důmyslnější chatboty s uživatelem skutečně konverzují a provádějí ho procesy např. objednávky zboží, sjednání pojištění nebo vyhledání a koupě letenky. V průmyslu může chatbot zajistit interaktivní návod uvádění zařízení do provozu, nastavování jeho parametrů nebo opravy závad.

Nejdůmyslnější chatboty s vámi udržují obecnou konverzaci. Můj synovec chatbot definoval takto: „To je taková aplikace, která si s tebou píše, když nemáš žádné kamarády.“ Zatímco primitivnější chatboty si vystačí s omezenou databází, chatbot, který udržuje obecnou konverzaci, musí být schopen v reál­ném čase vyhledávat ve více zdrojích. Takové chatboty se označují jako socialboty.

Hlasový chatbot musí být navíc schopen zpracovat vyřčenou otázku a v hlasové podobě ji předat komunikujícímu na druhé straně. A právě to dokáže Alquist.

 Hlasový chatbot Alquist

Chatbot Alquist a tým jeho tvůrců se představily na workshopu, který pořádalo centrum NCP 4.0 ve středu 30. ledna v budově CIIRC ČVUT v Praze.

V úvodu vystoupil mentor týmu Jan Šedivý a seznámil posluchače s pokroky ve využití umělé inteligence při zpracování řeči. V tomto oboru – podobně jako při zpracování obrazu – hrají velkou roli zejména neuronové sítě a hluboké učení.

Podle výzkumů lidé v běžné konverzaci, při níž se nevidí, tedy např. po telefonu, rozumí zhruba 94 % slov. Systém zpracování řeči od firmy Google loni dosáhl porozumění z 95 %, v tomto ohledu se tedy již vyrovnal lidskému posluchači.

Rozvoj systémů zpracování řeči byl podnětem ke vzniku domácích hlasových asistentů, někdy též zvaných inteligentní reproduktory. Prvním z nich byla asistentka Alexa od firmy Amazon (obr. 2), která je také nejrozšířenější, ale už ne jediná: konkurují jí např. asistenty Google Home, zaměřené na využití IoT v domácnostech, nebo Apple HomePod, který je zaměřen především na přehrávání hudby – obsahuje velmi kvalitní reproduktor, ale je rovněž nejdražší.

br. 2. Hlasová asistentka Alexa (foto: Amazon)

K čemu jsou tato zařízení užitečná? Je zajímavé, že podle průzkumu na tuto otázku nedokáže odpovědět 65 % jejich vlastníků. Pro ně jde jen o zajímavou hračku, mohutně podporovanou marketingem.

Hlasové asistenty však podle Jana Šedivého mají velkou budoucnost, protože řeč je nejpřirozenějším komunikačním prostředkem. V současné době je nejslibnější vývoj v oblasti hlasového ovládání audiovizuální techniky. Možnost místo listování v menu říci televiznímu nebo rozhlasovému přijímači, který kanál nebo který pořad chcete sledovat, je příjemná – a jde-li o autorádio, také bezpečnější než manuální ovládání. Následovat bude ovládání zařízení internetu věcí v domácnostech: osvětlení, vytápění, klimatizace, přístupu a zabezpečení budovy atd. Prostřednictvím hlasových domácích asistentů bude možné vyhledávat odpovědi na jednoduché faktické otázky, které systém vyhledá např. ve Wikipedii. Modifikací jsou různé kvízy, odkud už je jen kousek k využití pro slovní testy např. při výuce jazyků.

Důležité je, že pro hlasové domácí asis­tenty, jak Alexu od Amazonu, tak Google Home, je možné psát vlastní aplikace. To velmi rozšiřuje možnosti jejich použití a dává šanci týmům, jako je Alquist AI. Pro Alexu je v současné době k dispozici už zhruba 70 tisíc aplikací.

 Jak funguje Alexa?

Uvnitř Alexy je pole mikrofonů, které je možné směrovat k mluvčímu, a reproduktor. Dále je v ní komunikační modul WiFi, a to je v podstatě vše. Záznam řeči se zpracovává na serveru v cloudu (nebo jinde, ale mimo Alexu). Zde je hlas převeden na text a obráceně: reakce na dotaz je z textové podoby zpracována do řečového výstupu a takto zaslána do Alexy.

Alquist v podstatě umí to, že z textu zjistí, na co uživatel ptal, vyhledá odpověď a tu pošle zpět do Alexy.

 Konverzační umělá inteligence

Dalším z řečníků workshopu byl Jakub Konrád, který se na FEL ČVUT během doktorského studia i v týmu Alquist AI věnuje vývoji konverzační umělé inteligence. Hovořil o tom, proč byl Alquist v soutěži Alexa Prize již podruhé tak úspěšný.

Zaprvé má velký rozsah databáze znalostí, kterou lze velmi lehce procházet. Alquist tak dokáže mluvit o mnoha tématech. Zadruhé je to možnost využívat externí zdroje dat, jako jsou WikiData, Reddit nebo Washington Post. Alquist proto dokáže diskutovat např. také o aktuálních zprávách. A zatřetí je to „osobnost“ chatbotu, kterému jeho tvůrci dodali i smysl pro humor nebo schopnost prozpěvovat si. Konverzace je tak mnohem přirozenější. Alquist si pamatuje předchozí konverzaci s uživatelem a umí na ni navázat. Díky tomu mají uživatelé větší chuť pokračovat v rozhovoru.

Martin Matulík, další z členů týmu Alquist, předváděl diskusi s Alexou a Alquistem v praxi. Diskutoval s Alquistem o knihách i filmech, Alquist na jeho otázky reagoval, odpovídal na ně a v další obrátce konverzace na ně navazoval a pokládal vlastní otázky.

Jan Pichl, vedoucí týmu Alquist, hovořil o tom, jak chatbot vznikal. První, co je třeba vzít v úvahu, je kapacita, tedy možnost paralelně diskutovat s velkým množstvím uživatelů. Protože zařízení Alexa je stále více a Alquist je díky účasti v soutěži stále populárnější. Hned v počátku je tedy nutné uvažovat nejen o funkcích chatbotu, ale též o jeho funkčnosti, posílené tím, že moduly strojového učení, které chatbot využívá (a jsou výpočetně dosti náročné), mohou běžet současně na různých instancích.

 Zpracování řeči a vedení konverzace

Na obr. 3 je schéma převzaté z prezentace Jana Pichla. Prvním blokem je automatické rozpoznávání řeči, za ním následuje nahrávání kontextu z předchozích konverzací téhož uživatele (a předchozích obrátek téže konverzace) nebo z podobných konverzací. Teprve potom je zařazen modul porozumění přirozené řeči, který podle zpracovaného textu a kontextu zjišťuje, co vlastně uživatel řekl. Další modul rozhoduje o tom, jaké je téma dialogu a zda v něm pokračovat, nebo přepnout na jiné. O tom, jak bude konverzace pokračovat, rozhoduje manažer dialogu. Do chystané odpovědi je možné dodat externí znalosti a odpověď se uloží, aby s ní bylo možné pracovat v dalších obratech konverzace. Odpověď je nakonec převedena opět do řeči a odeslána do Alexy, odkud ji uživatel uslyší.

Proč nestačí jen převést řeč na text? To by stačilo tehdy, kdyby uživatel vydával jen předem dané slovní povely – např. při ovládání robotického ramene povely vpřed, vpravo, nahoru, stop apod. Ve větě je však nutné rozpoznat záměr, jednotlivé větné členy a jejich vztah. Souvětí je třeba rozdělit na jednotlivé věty a ty posuzovat každou zvlášť i vztah mezi nimi. Věty se třídí do jednotlivých tříd: ze základní školy známe věty oznamovací, tázací a rozkazovací, ale zde je třeba jemnější dělení do zhruba čtyřiceti tříd podle toho, zda jde o pokyn, otázku, odpověď na otázku, oznámení atd. Na základě tohoto členění se potom systém rozhoduje, jak dál konverzaci vést.

Obr. 3 Zpracování řeči a vedení konverzace

Důležité je, že nic neprobíhá podle pevně daných pravidel, ale s využitím neuronové sítě. Neuronová síť má schopnost generalizovat, proto věty nemusí být formulované přesně tak, jak byly v trénovací sadě.

Ovšem ne vždy chatbot přesně pozná, o čem se chce uživatel bavit. Například určité umělecké dílo existuje jako kniha, film a opera. Alquist se potom musí dotazovat doplňujícími otázkami, co měl uživatel na mysli, popř. na základě předchozí konverzace odhadnout, že uživatel je spíše fanouškem filmů než oper, a následně může v externích zdrojích najít další informace, které mohou být pro uživatele zajímavé, např. kde film hrají, kdo v něm hraje, kdo je režisérem atd. To lze čerpat z databází, v nichž Alquist vyhledává. Kromě toho si Alquist připravuje rešerše aktuálních článků z portálů Reddit a Washington Post, aby byl schopen se s uživatelem bavit i o novinkách a událostech.

Ne vždy se uživatel chce bavit jen o „správných“ věcech. Často se uživatelé zkoušejí ptát např. na „lechtivá“ témata. To by měl Alquist poznat a pokusit se konverzaci vést jiným směrem.

Může se stát i horší věc, a to, že by sám Alquist odpověděl nevhodně. Například příspěvky na Redditu jsou moderovány s určitým zpožděním a mohou se zde vyskytnout články, které není dobré prezentovat uživateli. Odfiltrovat vulgarismy je docela snadné, ale větší potíž je s větami, které samy nic vulgárního neobsahují, ale jejich smysl je urážlivý. Na to je třeba při programování chatbotu také pamatovat. Chatbot by uživatele rozhodně popouzet neměl.

 Konverzační stromy

Petr Marek, další člen týmu, vysvětlil, že chatboty založené na pravidlech mají na kaž­dou otázku připravenou odpověď. To je výhodné např. u interaktivních manuálů, ale pro Alquist, který se má bavit o obecných tématech, to není vhodné řešení. I kdyby byla databáze pravidel velmi rozsáhlá, stejně by se brzy našly otázky, na něž by chatbot neměl připravenou reakci, a byl by v koncích. Proto Alquist k hledání odpovědí používá neuronové sítě.

Neuronové sítě ale mají jeden velký problém: pro své učení potřebují ohromné množství dat.

V případě Alquistu postupovali jeho tvůrci tak, že pro jednotlivá témata vytvořili dialogové scénáře v podobě konverzačních stromů. Tyto stromy se skládají z jednotlivých bloků obsahujících uživatelovy výroky se stejným významem. Jim odpovídají věty, kterými může Alquist reagovat. To, že chatbot může vybírat z více synonym, zlepšuje kvalitu dialogu. Funkční bloky potom např. vyhledávají odpovědi v externích zdrojích.

Konverzační stromy netvoří programátor, ale odborník na konverzaci. Propojování jednotlivých bloků je totiž velmi jednoduché, ale náročnou úlohou je krea­tivně navrhnout scénáře konverzací vhodné k jednotlivým tématům.

Konverzační stromy potom slouží jako základ pro trénování neuronové sítě.

Petr Marek podotkl, že odpověď nemusí být vždy jen textová s řečovým výstupem. Alquist nově umí odpovědět i obrázkem nebo videem. To bylo využito např. k tvorbě interaktivního filmu o Karlu Čapkovi, kde se může divák ptát, co by jej o spisovateli zajímalo (https://movies.alquistai.com/).

Dalším a posledním řečníkem workshopu byl Ondřej Hrách. Zatímco ostatní členové týmu jsou studenti ČVUT, Ondřej je absolventem bakalářského oboru mezikulturní komunikace na Filozofické fakultě Univerzity Karlovy, nyní tamtéž pokračuje v magisterském studiu překladatelství francouzštiny a tlumočnictví španělštiny, zabývá se počítačovou podporou překladů a v týmu plní úlohu jazykového konzultanta.

Ondřej Hrách uvedl, že při navrhování scénářů konverzace je třeba se zaměřit na tři oblasti. První je výstup, tedy to, co říká chatbot, druhá je vstup, tedy to, co říká uživatel, a třetí je oblast managementu dialogu.

Když Alquist položí uživateli jednoduchou otázku, např. jaká je jeho oblíbená barva, ne vždy se dozví konkrétní odpověď, např. že je to červená. Uživatelé často odpovídají, že nevědí nebo že mají rádi všechny barvy. Alquist musí být připraven omluvně zareagovat rovněž na odpověď, že uživatel je slepý. Výjimkou nejsou ani nekooperující uživatelé, kteří na tuto otázku odpovědí, buď záměrně, nebo proto, že špatně rozuměli, zcela nesmyslně, např. „mám rád banány“.

Častý je také případ, že uživatel na otázku zareaguje otázkou. I na to musí být Alquist připraven. Na jednoduchou otázku, zda má uživatel rád brokolici, by bylo možné očekávat odpověď „ano“ nebo „ne“, popř. „vlastně nevím“, „jak kdy“ apod. Na tyto odpovědi musí Alquist zareagovat zcela jinak než na odpověď otázkou: „A proč se, Alquiste, ptáš právě na brokolici?“

Užitečnou pomůckou při tvorbě dialogu je refrázování, kdy chatbot zopakuje uživatelovu otázku. Je to současně ujištění, že si uživatel s chatbotem správně rozumí. To je důležité u chatbotů, které nejen konverzují, ale vedou k určitému cíli. Například na uživatelovu otázku, zda si může objednat stůl pro pět lidí na sedmou hodinu, chatbot restaurace zopakuje: „rezervuji vám tedy stůl pro pět osob na zítra na sedmou hodinu večer“.

Složitá je otázka prozodie, která je zvláště v angličtině důležitá. Angličtina totiž nemůže slovo zdůraznit změnou pořadí slov ve větě, jako to dovede např. čeština. V psaném textu je třeba se bez prozodie obejít, ale při převodu textu na řeč důraz na špatné slovo ve větě působí nepřirozeně, popř. i mění smysl věty.

Ještě složitější je naprogramovat zpěv. Alquist se zpívat teprve učí a první pokusy zní velmi neuměle, ale již jim lze říkat zpěv.

Častou otázkou je, proč Alquist neumí česky. Problém je v tom, že angličtina a čeština jsou velmi rozdílné jazyky a systémy rozpoznávání řeči a formulování odpovědí pro češtinu je třeba začít navrhovat v podstatě od nuly. Čeština je zvlášť z hlediska tvarosloví mnohem bohatší než angličtina, proto je programování chatbotu v češtině obtížnější.

Z hlediska vedení dialogu je třeba co nejlépe uplatnit již uvedené konverzační stromy, aby rozhovor měl logický smysl. Alquist si pamatuje předchozí obrátky konverzace a snaží se udržovat dané téma, dokud to uživatele baví. Vždy je dobré, aby Alquist měl připravené otázky, kterými udrží dialog v chodu.

Alquist by ale neměl být jen encyklopedie. Pro dialog je důležité, aby Alquist prezentoval i určité názory, pokud možno koherentně, a byl přiměřeně vtipný a zábavný.

Jaké jsou nejčastější překážky plynulosti dialogu? Především, ačkoliv se systémy rozpoznávání řeči zlepšují, stále se může stát, že Alquist uživateli neporozumí nebo porozumí špatně a snaží se odvést konverzaci pro uživatele nečekaným a nesmyslným směrem.

Dalším problémem je, že konverzace probíhá simplexně. Alexa poslouchá jen tehdy, když nemluví, a naopak když mluví, neslyší. Jsou tedy omezeny bezprostřední reakce, a už vůbec si uživatel s Alexou nemohou skákat do řeči.

Velký problém je, že Alexa dokáže jen rozeznávat slova a věty. Jenže zhruba 93 % lidské komunikace probíhá neverbálně. Alexa nejen nevidí gesta a mimiku – to je stejné jako u telefonického rozhovoru –, ale nepozná ani to, zda je uživatel důrazný, nejistý, rozčilený, smutný nebo veselý. Neumí pracovat s melodií hlasu a s emocemi, které hlas vyjadřuje.

A další problém Alquistu je v tom, že se pohybuje jen ve virtuálním světě. Člověk získá za život mnoho zkušeností s reálným světem, které Alquist nemá, a proto se může chovat nelogicky, resp. logicky podle své omezené strojové logiky.

 Závěr

Tým Alquist AI pracuje kromě zdokonalování chatbotu Alquist na dalších projektech z oblasti umělé inteligence a zpracování řeči, které mohou mít kromě účasti na soutěži Alexa Prize i využití v průmyslové praxi. Proto také workshop pořádalo sdružení NCP 4.0, podporující prosazování koncepcí chytré výroby. Workshop byl prvním ze série akcí propagujících zajímavé akademické a start-upové projekty.

Těm, kteří se chtějí o Alquistu dozvědět více, lze doporučit webové stránky projektu (alquistai.com). S dvěma členy týmu Alquist AI budou mít zájemci možnost se setkat také na Fóru automatizace, které se bude konat v rámci doprovodného programu veletrhu Amper. Název přednášky, jež se uskuteční dne 19. 3. ve 12:45 bude Alquist: jak být lepší díky konverzační umělé inteligenci. Přednášet budou Jan Pichl a Petr Marek. Kompletní program fóra lze nalézt na www.automa.cz

Petr Bartošík

Alquist

Alquist je postava z utopické divadelní hry Karla Čapka R.U.R.

Alquist, stavitel a poslední z lidí, kterého nechali Roboti naživu, aby jim pomohl znovu najít ztracený návod na jejich výrobu, je jednou z hlavních postav dramatu a v mnohém vyjadřuje názory autora. Alquist má nedůvěru k velkým myšlenkám technického pokroku, jež mají změnit svět, a naopak si váží obyčejných věcí: práce, soucitu, lásky. Závěrečný monolog Alquista patří k nejznámějš