65
SVEU ˇ CILIŠTE U ZAGREBU FAKULTET ORGANIZACIJE I INFORMATIKE VARAŽDIN Leon Palai´ c AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU DIPLOMSKI RAD Varaždin, 2018.

AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

Embed Size (px)

Citation preview

Page 1: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

SVEUCILIŠTE U ZAGREBU

FAKULTET ORGANIZACIJE I INFORMATIKE

VARAŽDIN

Leon Palaic

AGENTI ZA KOMUNICIRANJE UGOVORNOM JEZIKU

DIPLOMSKI RAD

Varaždin, 2018.

Page 2: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

SVEUCILIŠTE U ZAGREBU

FAKULTET ORGANIZACIJE I INFORMATIKE

V A R A Ž D I N

Leon Palaic

Maticni broj: 44412/15-R

Studij: Baze podataka i baze znanja

AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU

DIPLOMSKI RAD

Mentor :

izv. prof. dr. sc. Markus Schatten

Varaždin, Sijecanj 2018.

Page 3: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

Leon Palaic

Izjava o izvornosti

Izjavljujem da je moj diplomski rad izvorni rezultat mojeg rada te da se u izradi istoga nisamkoristio drugim izvorima osim onima koji su u njemu navedeni. Za izradu rada su korišteneeticki prikladne i prihvatljive metode i tehnike rada.

Autor potvrdio prihvacanjem odredbi u sustavu FOI-radovi

i

Page 4: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

Sažetak

U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim jezikom. Pri-kazan je razvoj agenata za komuniciranje u govornom jeziku kroz povijest. Agenti su se ka-tegorizirali prema nacinu generiranja odgovora na generativne i pretraživacke te su prikazanenajkorištenije metode generativnih i pretraživackih agenata. Istaknuti su glavni nedostatci iprednosti ranije spomenutih metoda. Problem dijaloga zbog svoje kompleksnosti podijelio sena podprobleme u obliku istraživackih smijerova. Definirana je domena za implementaciju jed-nog agenta koji komunicira govornim jezikom. Zbog zatvorenosti definirane domene odabran jepristup pomocu pretraživackih metoda, konkretnije AIML jezika. Prikazan je primjer komunika-cije korisnika sa agentom. Primjer prikazuje negativne i pozitivne izmjene izmedu sugovornika.Problem dijalog se definirao kao dugorocni cilj umjetne inteligencije te prikazali nedostatci da-našnjih agenata koji komuniciraju govornim jezikom

Kljucne rijeci: agent; agent za dijalog; chatbot; taksonomija agenata za komuniciranje ugovornom jeziku; AIML; generativni agenti; pretraživacki agenti; istraživacke grane dijaloga

ii

Page 5: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

Sadržaj

1. Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2. Povijest agenata koji komuniciraju govornim jezikom . . . . . . . . . . . . . . . 2

3. Taksonomija agenata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

3.1. Generativni agenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

3.1.1. Povratne neuronske mreže . . . . . . . . . . . . . . . . . . . . . . . . . . 33.1.1.1. GRU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83.1.1.2. LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3.1.2. Okvir iz slijeda u slijed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.2. Pretraživacki agenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.2.1. Agenti temeljeni na predlošcima . . . . . . . . . . . . . . . . . . . . . . . 10

3.2.1.1. AIML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.2.2. Agenti temeljeni na matematickim modelima . . . . . . . . . . . . . . . . 16

4. Istraživacke grane dialoga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4.1. Odgovaranje na pitanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4.1.1. Memorijske mreže . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.2. Vizualno odgovaranje na pitanja . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4.2.1. Dinamicke memorijske mreže . . . . . . . . . . . . . . . . . . . . . . . . . 224.2.1.1. Ulazni modul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224.2.1.2. Epizodni memorijski modul . . . . . . . . . . . . . . . . . . . . . 244.2.1.3. Modul pitanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244.2.1.4. Modul za odgovaranje . . . . . . . . . . . . . . . . . . . . . . . . 24

4.3. Citanje s razumijevanjem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4.4. Razumijevanje i zakljucivanje nad tekstom . . . . . . . . . . . . . . . . . . . . . . 26

4.4.1. Povratne entitetske mreže . . . . . . . . . . . . . . . . . . . . . . . . . . . 284.4.1.1. Ulazni modul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.4.1.2. Dinamicka memorija . . . . . . . . . . . . . . . . . . . . . . . . . 294.4.1.3. Izlazni modul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

4.5. Ciljno orijentirani dijalog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

4.6. Otvoreni dijalog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

5. Poslovni problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355.1. Domena agenta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

6. Implementacija agenta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

iii

Page 6: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

6.1. Python AIML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

6.2. Struktura agenta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

6.2.1. Pozdravne kategorije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

6.2.2. Kategorije selekcije poddomene . . . . . . . . . . . . . . . . . . . . . . . 42

6.2.3. Kategorije poddomena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

6.2.4. Kategorije osobnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

6.2.5. Odlazne kategorije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

6.3. Primjer dijaloga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

7. Zakljucak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Popis literature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

Popis slika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

Popis popis tablica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

iv

Page 7: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

1. Uvod

Zadnjih godina umjetna inteligencija niže brojne uspjehe u akademskim i poslovnimpodrucjima. Mediji i društvene mreže vrve vijestima o umjetnoj inteligenciji. Razlog uspjehaumjetne inteligencije je ogromna kolicina podataka koja nam je danas dostupna te racunalnasnaga koju danas posjedujemo kako bi pokretali odredene algoritme. Poslovni svijet uvelikeje prihvatio metode umjetne inteligencije te ih integrira u gotovo svaki oblik svojeg djelovanja.Samim time, postajemo korisnici umjetne inteligencije iako nemamo direktan doticaj s njomesamom. Medutim, postoje oblici gdje direktno vršimo interakciju s umjetnom inteligencijom.Vjerovali ili ne, u mnogim slucajevima kada chatate ili pricate s online podrškom, zapravo ko-municirate s racunalnim agentom. Takve agente nazivamo agentima koji govore prirodnimjezikom ili dijaloškim agentima.

Razvoj ove grane agenata možemo pripisati Alanu Turingu i Turingovom testu. Turingovtest ispituje inteligentno ponašanje strojeva te mu je cilj utvrditi razlikuje li se strojno ponašanjeod ljudskog. Ako ne možemo razlikovati strojno ponašanje od ljudskog, stroj je prošao test.Test je zamišljen kao interakcija izmedu ljudskog sudca i stroja putem prirodnog pisanog teksta.Time je Turingov test postao zacetnik grane agenata koji govore prirodnim jezikom.

U ovom diplomskom radu dotaknut ce se tema agenata koji komuniciraju govornim jezi-kom. Prikazat ce se razvoj grane kroz povijest, objasnit istraživacki smjerovi agenata, podjelaagenata po taksonomiji. Predstavit ce se poslovni subjekt i njegova potreba za jednim dijalo-škim agentom. Naposljetku diplomskog rada implementirat ce se agent te dati kriticki osvrt natemu.

1

Page 8: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

2. Povijest agenata koji komuniciraju govornimjezikom

Prvi primjer komunikacijskog agenta dolazi s americkog sveucilišta MIT. Laboratorijumjetne inteligencije MIT-a, voden Josephom Weizenbaumom. 1966. godine izdaju Elizu,prvog komunikacijskog agenta [1]. Elizin nacin rada temeljio se na tehnici podudaranja te-meljem predložaka. Eliza bi na temelju korisnikove ulazne recenice utvrdila kljucne rijeci teputem predefiniranih pravila mapirala kljucne rijeci s odgovarajucim odgovorom. Weizenba-umov cilj je bio prikazati kako racunala ne mogu voditi smislene razgovore s ljudima, tvrdioje da su dijalozi izmedu racunala i covjeka jako površni. Prvi primjer Elize bio je kreiran natemelju skripte zvane DOCTOR. Skripta je sadržavala pravila i odgovore kako bi se simuliralapocetna terapija izmedu pacijenta i psihijatra. Nakon prvotnih testiranja Elize, mnogi subjekti suse povezali s Elizom kao s osobnim psihijatrom. Weizenbaum nije ocekivao ovakve rezultate,uvelike su ga iznenadili jer su se prkosili s njegovim razmišljanjima. Rezultati Elize su bili jedanod motiva zašto je napisao knjigu “Racunalna snaga i ljudsko zakljucivanje” u kojoj je iznesaosvoje stavove o umjetnoj inteligenciji i njenoj ulozi u donošenju važnih odluka. 1970. godinesa sveucilišta Stanford dolazi Parry [2], komunikacijski agent koji je zamišljen da bude cistasuprotnost Elizi. Bio je imitirao paranoicno ponašanje šizofrenicnih pacijenata. Parry je bionamijenjen proucavanju paranoicnog ponašanja kod pacijenata. Takoder, temeljio se na tehnicipodudaranja predlošcima. Parry korisnikovo pitanje reprezentira kao seriju predložaka, koji suzatim mapirani s odgovorima na temelju semanticke slicnosti. Eliza i Parry su bili predvodnicivala komunikacijskih agenata. Popularizacijom ove grane javila se potreba evaluacije agenata.1990. godine osniva se Lobnerovo natjecanje [3], prvo natjecanje kojem je cilj evaluirati ko-munikacijske agente. Agenti se evaluiraju putem Turingovog testa [4] te najbolji agent dobivaLobnerovu nagradu i 100 000 americkih dolara. Jedan od najboljih, višestruko nagradivani inajutjecajniji agent u povijesti je Alice [5]. Samim spomenom na Alice moramo spomenuti iAIML (engl. Artificial Intelligence Markup Language) koji je temelj Alice agenta. Ovaj jezik služiza definiranje heuristika kojima se generiraju odgovori na korisnikova pitanja. Njegov razvojje zapoceo Dr. Richard S. Wallace 1995. godine pod GNU GPL licencom. Samim time velikibroj razvijatelja softwarea se ukljucio u razvoj AIML-a. Uspjeh Alice-a potaknuo je druge istra-živacke grupe i razvijatelje na upotrebu AIML-a. Danas gotovo da ne postoji dijaloški sustavkoji ne koristi AIML u svome radu. Mitsku agent, pobjednik Lobnerove nagrade 2016. godinekoristi AIML kao jednu od svojih komponenta. Razvojem strojnog ucenja te grane pretraživanjainformacija (IR) pojavili su se agenti koji upotrebljavaju njihove metode. Danas možemo koristititakve tipove sustava, kao što su Siri, Amazon Alexa i dr.. Nedavni uspjesi dubokog ucenja, tj.povratnih neuronskih mreža u strojnom prevodenju potaknuli su istraživace na primjenu ovetehnike u domeni dijaloga. Sve više pažnje se pridodaje modelima koji koriste jednu povratnuneuronsku mrežu kako bi enkodirali sve važne znacajke korisnikovog pitanja te drugu povratnuneuronsku mrežu za generiranje odgovora.

2

Page 9: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

3. Taksonomija agenata

Današnje dijaloške agente za komuniciranje u govornom jeziku možemo kategoriziratiprema njihovom nacinu generiranja odgovora na:

• Pretraživacke agente - koriste bazu predefiniranih odgovora te pripadajucu heuristikukako bi vratili najbolji moguci odgovor prema postavljenom pitanju i trenutnom kontek-stu razgovora. Heuristika ovisi o kompleksnosti cilja i domene u koju se agent stavlja.Neki od mogucih tipova heuristika mogu biti jednostavnog oblika kao reguralni izrazi,uvjetno-akcijska pravila ili malo kompleksnijeg oblika kao slobodne gramatike, statistickiklasifikatori ili pak ansambli metoda strojnog ucenja. Pretraživacki agenti zbog svoje bazepredefiniranih odgovora ne daju korisnicima osjecaj razgovora s pravom osobom. Samimtime korisnicima se uskracuje pravo iskustvo dijaloga. Prednosti ovih modela su efikas-nost nad striktno definiranim domenama te gramaticka tocnost generiranih odgovora.

• Generativne agente - odgovore generiraju korak po korak. U svakom koraku ovi agentigeneriraju rijec ili frazu koja ce se nalaziti u konacnom odgovoru.

3.1. Generativni agenti

Generativni agenti se oslanjaju na tehnike strojnog prevodenja gdje se umjesto mapira-nja ulazne recenice s prijevodom, ulazna recenica mapira na pripadajuci odgovor [6]. Najcešcekorištene tehnike su duboki modeli bazirani na povratnim neuronskim mrežama ili modeli statis-tickog prijevoda. Prednost ovih modela jest generalizacija nad nevidenim ulaznim recenicama,medutim, ovi modeli zahtijevaju ogromne kolicine podataka za treniranje kako bi se skaliraliza stvarnu upotrebu. Takoder, mana ovih modela jest generiranje negramatickih recenica jerposjeduju veliku slobodu prilikom generiranja odgovora. U nastavku ce se objasniti najcešcaarhitektura koja se koristi u ovim agentima. Ona je okvir iz slijeda u slijed [7]. Ovaj okvir sesastoji od dvije povratne neuronske mreže. Kako bi se objasnio sam okvir, prvo ce se dati opispovratnih neuronskih mreža te zatim opis samog okvira.

3.1.1. Povratne neuronske mreže

Danas se gotovo svi podatci prikupljaju i pohranjuju, vecina tih podataka spada u po-datke u sekvencionalnom obliku. Ideja iza pohranjivanja podataka u sekvencijalnom oblikudolazi zbog potrebe za sustavima koji predvidaju buduca ponašanja entiteta o kojem se po-datci prikupljaju. Ako želimo predvidjeti sljedece stanje nekog entiteta ono ce u vecini slucajevaovisiti o prošlim stanjima tog entiteta. Najjednostavniji primjer jest predvidanje cijene dionica.Ako jedan broker želi obaviti kupnju ili prodaju dionice, analizirat ce prošla kretanja cijene te natemelju svog predvidanja cijene donijeti odluku o kupnji ili prodaji. Takoder, ako želimo izgraditisustav koji ce predvidati sljedece rijeci u recenici, on mora svoju predikciju donijeti na temeljuprošlih rijeci. Zbog sve vece potrebe obrade sekvencijalnih podataka kreirana je arhitekturazvana povratne neuronske mreže.

3

Page 10: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

Povratne neuronske mreže [8] su arhitektura za obradu sekvencijalnih podataka koja usvakom koraku predvida izlaz na temelju prijašnjih ulaza i trenutnog ulaza vršeci istu operaciju.Ulazi mogu biti diskretne vrijednosti ili kontinuirane. Radi jednostavnosti, opis arhitekture vršitce se pod pretpostavkom da se obavljaju operacije nad diskretnim ulaznim podatcima iz skupaH te da se rješava problem klasifikacije. Dijagram arhitekture prikazan je na slici 4. Prema

Slika 1: Vizualizacija tri koraka povratne neuronske mreže

dijagramu vidimo tri koraka mreže, gdje mreža u svakom koraku t prima ulaz xt. Ulaz u mrežumože biti gusti vektor, rijetki vektor ili neki drugi oblik reprezentacije podataka izveden iz diskret-nog ulaza xt. Operacija mreže se sastoji od racunanja skrivenog stanja ht te racunanja izlazayt. Skriveno stanje ht predstavlja memoriju mreže koja pohranjuje sve informacije izvedene izprijašnjih koraka. Dobiva se na temelju prijašnjeg stanja ht−1 te ulaza xt. Dobivanje stanja htprikazano je formulom (3.1), gdje je φ ne-linearna aktivacijska funkcija po izboru. Dobivanjeskrivenog stanja možemo tumaciti kao sloj s odredenim brojem neurona, od kojih svaki obavljalinearnu operaciju množenja ulaza xt, prijašnjeg stanja ht−1 s matricama U i W popracenone-linearnom aktivacijskom funkcijom.

ht = φ(Uxt +Wht−1) (3.1)

Skriveno stanje se zatim prosljeduje potpuno povezanom linearnom sloju, nakon kojeg slijedisoftmax funkcija kako bi dobili vjerojatnosnu distribuciju nad diskretnim podatcima skupa H.Operacija je prikazana jednadžbom (3.4).

ot = V ht, yt = Softmax(ot) (3.2)

U naprijed propusnim neuronskim mrežama svaki sloj koristi razlicite matrice težina. Povratneneuronske mreže za razliku od naprijed propusnih mreža dijele težine matrica W ,U i V u sva-kom koraku mreže. Funkcija troška u ovom slucaju jest unakrsna entropija izmedu istinitogizlaza yt te predvidenog izlaza yt. Unakrsna entropija u trenutku t prikazana je formulom (3.3).

E(yt, yt) = −ytlog(yt) (3.3)

4

Page 11: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

Izracun funkcije troška za predvideni slijed sa slike (4) prikazan je slikom (2). Funkcija troška

Slika 2: Vizualizacija izracuna troška za tri koraka povratne neuronske mreže

racuna se za kompletni slijed modela te je iskazana formulom u nastavku.

E(y, y) =∑t

ytlog(yt) (3.4)

Kako bi naucili ovisnosti u svakom koraku moramo proširiti pogrešku kroz svaki korak za svakiuceci parametar modela W , V i U . Kako bi se proširila pogreška kroz model koristi se algoritamproširivanja pogreške kroz vrijeme. Proširivanje pogreške kroz vrijeme zapravo je izvedenicaalgoritma proširivanja pogreške unatrag. Funkcija troška u ovom slucaju sumira pogreške krozvremenske korake, isto tako sumirao gradijente za svaki uceci parametar. Primjer izracunagradijenata za parametar W prikazan je formulom (3.5).

∂E

∂W=

T∑t=1

∂Et

∂W(3.5)

Kako bi izracunali gradijente koristimo ulancano pravilo diferencijacije kao i u algoritmu širenjapogreške unatrag. Kako bi pojednostavili racunanje, rastavimo jedan korak modela na racunskigraf. Takoder, uvest cemo pomocne funkcije zt, rt, kt i tangens hiperbolni kao aktivacijskufunkciju kako bi se intuitivnije prikazale derivacije. Racunski graf prikazan je slikom (3). Prvoracunamo gradijente na funkciju izlaznog sloja ot, izraz je prikazan formulom (3.6). Prvi uceciparametar u racunskom grafu jest V . Kako bi dobili gradijente za funkcije troška s obzirom na

5

Page 12: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

Slika 3: Širenje pogreške u koraku t

parametar V , množimo gradijente ∂E∂ot

dobivene u prijašnjem koraku s gradijentima funkcije otprema parametru V , izraz je prikazan jednadžbom (3.7).

∂Et

∂ot= yt − yt (3.6)

∂Et

∂V=∂Et

∂ot

∂ot∂V

= (yt − yt)ht (3.7)

Nadalje, prateci ulancano pravilo, racunamo gradijente funkcije troška prema skrivenom stanjuht. U obzir moramo uzeti gradijente iz sljedeceg koraka te ih pridodati gradijentima u korakut. Ako se mreža nalazi u posljednjem koraku, gradijenti sljedeceg koraka inicijalizirani su 0.

6

Page 13: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

Gradijenti funkcije troška s obzirom na skriveno stanje iskazani su sljedecim izrazom.

∂E

∂ht=∂Et

∂ot

∂ot∂ht

+∂Et+1

∂ht+1= V T (

∂Et

∂ot) +

∂Et+1

∂ht+1(3.8)

Kako bi se olakšalo deriviranje, racunanje skrivenog stanja razdvojeno je na dva dijela,izraz je prikazan jednadžbom (3.9).

ht = tanh(zt), zt = rt + kt, rt =Wht−1, kt = Uxt (3.9)

Prateci ulancano pravilo dolazimo do izracuna gradijenata s obzirom na funkciju zt. Izracungradijenata prikazan je formulom (3.10).

∂Et

∂zt=∂Et

∂ht

∂ht∂zt

=∂Et

∂ht(1− tanh2(zt)) (3.10)

Zatim na red dolaze funkcije rt i kt. Gradijenti funkcije troška s obzirom na rt i kt prikazani susljedecim izrazima.

∂Et

∂rt=∂Et

∂zt

∂zt∂rt

=∂Et

∂zt∗ 1 (3.11)

∂Et

∂kt=∂Et

∂zt

∂zt∂kt

=∂Et

∂zt∗ 1 (3.12)

Prateci dalje racunski graf i širenje gradijenata dolazimo do posljednja dva uceca parametra Wi U . Izracun gradijenata funkcije troška prema parametrimaW i U dano je sljedecim formulama.

∂Et

∂U=∂Et

∂rt

∂rt∂U

=∂Et

∂rt∗ xt (3.13)

∂Et

∂W=∂Et

∂kt

∂kt∂W

=∂Et

∂kt∗ ht−1 (3.14)

Takoder, moramo propustiti gradijente s obzirom na prijašnje skriveno stanje ht−1. Na racun-skom grafu ova operacija nije prikazana, stoga definirat cemo ju sljedecim izrazom.

∂Et

∂ht−1=∂Et

∂rt

∂rt∂ht−1

=∂Et

∂rt∗W T (3.15)

Jedan od nedostataka povratnih neuronskih mreža jest njihova nemogucnost pohranji-vanja izrazito dugih ovisnosti u podatcima. Nemogucnost dolazi zbog nacina širenja pogreškei aktivacijske funkcije koja se koristi u koraku mreže. Slika prikazuje parcijalnu derivaciju hi-perbolnog tangensa s obzirom na ulaz. Prema slici možemo vidjeti da je parcijalna derivacijafunkcija na oba kraja jednaka 0. Ako prilikom ucenja dode do takvog slucaja kažemo da jegradijent nestao ili da se neuron ugasio. Povratne neuronske mreže izrazito su podložne ovomproblemu zbog ogromnog broja operacija množenja matrica unutar koraka i slojeva mreže.Stoga, ako gradijent nestane u jednom koraku, to ce uzrokovati nestajanjem gradijenata i uostalim koracima. Ovaj problem naziva se problem nestajucih gradijenata [9]. Suprotno pro-blemu nestajucih gradijenata postoji problem eksplodirajucih gradijenata. Ovisno o aktivacijskojfunkciji, gradijenti mogu poprimiti velike vrijednosti što uzrokuje povecavanje ostalih gradijenata

7

Page 14: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

kroz korake i slojeve. Ovaj problem je izrazito lako uociti zbog numerickih ogranicenja tipovapodataka koje odredeni programski jezici imaju. Problem nestajucih gradijenata teže je primi-jetiti jer programske strukture svih jezika imaju efikasnu podršku za vrijednost 0. Kako bi riješiliove probleme koristi se tehnika rezanja gradijenata ili se koriste modificirane jedinice za obradupodataka prilikom koraka mreže. Modificirane jedinice, a one su:

• LSTM

• GRU

3.1.1.1. GRU

GRU (engl. Gated reccurent unit) ili propusna povratna jedinica dizajnirana je kako bipovratne neuronske mreže mogle pamtiti dugorocne ovisnosti u podatcima [10]. GRU jedi-nica izmjenjuje nacin kako mreža u svakom koraku generira predikciju pomocu niza vrata kojeusmjeravaju informacije. Modifikacija koraka prikazana je sljedecim izrazima.

zt = σ(W zxt + U zht−1) (3.16)

rt = σ(W rxt + U rht−1) (3.17)

ht = tanh(rt ◦ Uht−1 +Wxt) (3.18)

ht = (1− zt) ◦ ht + zt ◦ ht−1 (3.19)

Izraz zt predstavlja ažurirajuca vrata koja utvrduju u kolikoj mjeri ce se starih informacijaprenijeti u skriveno stanje ht. Ako ovaj izraz teži vrijednosti 1, prošlo skriveno stanje ht−1 cese prekopirati u novo skriveno stanje ht. Ako ovaj izraz teži vrijednosti 0, kandidat za novoskriveno stanje ht ce se prenijeti u skriveno stanje ht.

Izraz rt predstavlja brišuca vrata koja utvrduju koliko je relevantno stanje ht−1 za izracunkandidata novog stanja ht.

Izraz ht predstavlja kandidata za skriveno stanje u koraku t. Ova vrata zapravo racunajukandidata za skriveno stanje na temelju konteksta svih ulaza i ulaza u koraku t.

Skriveno stanje ht dobiva se na temelju ažurirajucih vrata koje kombiniraju kontekst svihprijašnjih ulaza i novog kandidata stanja ht.

3.1.1.2. LSTM

LSTM (engl. Long-short-term memory ) ili dugorocno kratkotrajna memorija je takoderdizajnirana kako bi povratne neuronske mreže mogle pamtiti dugorocne ovisnosti u podatcima[11]. Ovaj tip jedinice takoder usmjerava tijek informacija kroz korak te se minimalno razlikujeod GRU jedinice. Za razliku od GRU jedinice, LSTM jedinica posjeduje memoriju c koja premapotrebi pušta informacije u skriveno stanje te samim time daje vecu reprezentativnu moc mreži.

8

Page 15: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

LSTM jedinica dana je sljedecim izrazima.

it = σ(W ixt + U iht−1) (3.20)

ft = σ(W fxt + Ufht−1) (3.21)

ot = σ(W oxt + Uoht−1) (3.22)

ct = tanh(W cxt + U cht−1) (3.23)

ct = ft ◦ ct−1 + it ◦ ct (3.24)

ht = ot ◦ tanh(ct) (3.25)

Prva dva izraza predstavljaju vrata koja provjeravaju jesu li prošlo skriveno stanje i trenutniulaz relevantni za generiranje kandidata novog skrivenog stanja. Stoga, izraz it predstavljaulazna vrata koja provjeravaju je li trenutni ulaz relevantan za generiranje kandidata novogstanja. Izraz ft predstavlja zaboravljajuca vrata kojima je svrha kontrolirati protok informacija izprijašnjeg stanja prilikom generiranja novog skrivenog stanja.

U memoriji ct nalaze se dugorocne ovisnosti koje je mreža naucila do trenutka t. Akoželimo generirati odgovor u trenutku t nema potrebe da koristimo sve informacije iz dugorocnememorije, vec samo onaj dio informacija koji je relevantan u tom trenutku. Kako bi dobili rele-vantne informacije koristimo vrata ot kako bi se adresirale potrebne informacije iz memorije ct ipridodale skrivenom stanju. Izraz ct predstavlja operaciju generiranja novog kandidata memo-rije ct kao u slucaju GRU jedinica te izraz ct predstavlja generaciju memorije u trenutku t gdjese nova memorija dobiva na temelju ulaznih vrata, prošle memorije ct−1 te novog kandidatamemorije ct. Skriveno stanje u trenutku t dobiveno je propuštanjem informacija iz memorije natemelju propusnih vrata ot.

3.1.2. Okvir iz slijeda u slijed

Vecina modela koji se koriste u generativnim agentima su bazirani na okviru zvanom"iz slijeda u slijed". Ideja ovog okvira jest nauciti mapiranje tako da se iz ulaznog slijeda poda-taka, predvidi izlazni slijed podataka [7]. Neki od primjera gdje je ovaj tip mapiranja posebnopoželjan jest prijevod. Ako prevodimo recenicu iz izvornog jezika u željeni jezik, želimo naucitislijed rijeci ciljanog jezika koji odgovara slijedu rijeci izvornog jezika. Strojni prijevod je prviproblem u kojem je ovaj okvir postigao zapažene rezultate. Razlog zašto se ovaj okvir koristi uproblemu dijaloga jest uspjeh na podrucju strojnog prijevoda te slicnost formuliranja problemakao u strojnom prijevodu. Odgovaranje na pitanja korisnika možemo tumaciti kao prevodenjepitanja u izlazni slijed koji je u slucaju dijaloga odgovor na zadano pitanje [12]. Slika (4). pri-kazuje arhitekturu okvira "iz slijeda u slijed". Arhitektura se sastoji od dvije povratne neuronskemreže. Prva neuronska mreža naziva se Enkoder. Ona služi za pohranjivanje znacenja i infor-macija ulazne recenice u svoje skriveno stanje. Zatim se posljednje skriveno stanje Enkoderaprosljeduje drugoj povratnoj neuronskoj mreži koju nazivamo Dekoder.

Dekoder služi za generiranje odgovora na zadano pitanje. U slucaju dekodera uvodimo

9

Page 16: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

Slika 4: Okvir "iz slijeda u slijed" (Izvor: Vinyals i Le, 2015)

dva umjetna tokena koji ce oznaciti Dekoderu kada treba krenuti generirati odgovor te kada jekraj odgovora. Navedeni tokeni su KRENI i KRAJ.

Matematicki iskazano cilj ovog okvira jest procijeniti uvjetnu vjerojatnost p(y1, ..., yT ′ | x1, ..., xT )

gdje x1, ..., xT predstavlja ulazni slijed te y1, ..., y′T odgovarajuci izlazni slijed dužine T

′. Prika-

zana arhitektura prilikom generiranja odgovora koristi samo zadnje skriveno stanje Enkodera.Stoga, zadnje skriveno stanje mora pohraniti sve ovisnosti i informacije ulaznog pitanja. Pret-postavimo da ulazno pitanje sadrži više od 30 rijeci. Nemoguce je da ce posljednje skrivenostanje pohraniti sve potrebne znacajke ulazne recenice kako bi se generirao dobar odgovor.

3.2. Pretraživacki agenti

Pretraživacki agenti oslanjaju se na bazu predefiniranih odgovora i odgovarajucih he-uristika koje odabiru odgovor na temelju konteksta dijaloga. Vecina današnjih dijaloških sustavaimplementirano je u obliku pretraživackih agenata kojima je cilj izvršenje striktno definiranih za-datka nad malim domenama. Trenutno ovi tipovi agenata rade bolje od agenata temeljenihna generativnom pristupu. Prvenstveno zbog toga što kreator definira bazu predefiniranih od-govora te samim time ne dopušta sustavu generiranje negramatickih odgovora, uznemirujucihodgovora ili odgovora koji se ne ticu teme.

Pretraživacki agenti mogu se podijeliti na dvije skupine heuristika temeljem kojih gene-riraju odgovore, a to su:

• Agenti temeljeni na predlošcima - oslanjaju se na heuristike koje su definirane kao pravilakoja mapiraju ulazno pitanje korisnika prema odgovarajucem odgovoru.

• Agenti temeljeni na matematickim modelima - oslanjaju se na statisticke metode, metodestrojnog ucenja i metode pretraživanja informacija.

3.2.1. Agenti temeljeni na predlošcima

Agenti temeljeni na predlošcima oslanjaju se na heuristike koje su definirane kao pra-vila koja mapiraju ulazno pitanje korisnika prema odgovarajucem odgovoru. Ovaj tip agenata

10

Page 17: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

zahtjeva mnogo vremena kako bi predlošci pokrili sve mogucnosti i smjerove u kojima dijalogmože ici. Neke od najcešce korištenih tehnika za implementaciju su heuristike temeljene naregularnim izrazima, kontekstualno slobodne gramatike te AIML jezik.

3.2.1.1. AIML

AIML (engl. Artificial Intelligence Markup Language) je XML jezik za specificiranje pa-rova predložaka-odgovora za dijaloške sustave, nastao 1995. godine od strane Richarda S.Wallacea. Cilj ovog jezika je olakšati modeliranje dijaloga. AIML jezik sastoji se od gradevnihblokova koji su predstavljeni s odredenim oznakama u XML-u. Svaka oznaka odgovara odrede-noj jezicnoj naredbi. Svaki AIML dokument pocine s oznakom < aiml > te završava s oznakom< /aiml >.

Proces obrade ulaznog teksta u AIML jeziku odvija se u tri koraka, oni su:

• Normalizacija zamijene

• Normalizacija recenice

• Normalizacija uzoraka podudaranja

Normalizacija zamijene predstavlja heuristike koje se primjenjuju na korisnikov ulazkako bi transformirale i omogucile zadržavanje informacija kroz korake normalizacije recenicate normalizacije uzoraka podudaranja. Jedna moguca transformacija bi bila za korisnikov ulaz"Where is Mr. Smith?". Kako bi se sprijecilo razdvajanje ovog ulaza prema tocki, heuristike cezamijeniti izraz "Mr." s izrazom Mister".

Normalizacija recenica je korak u kojemu se ulaz razdvaja na zasebne recenice premapravilima odredenog jezika. AIML dolazi s implementiranim heuristikama za razdvajanje rece-nica prema pravilima engleskoj jezika.

Normalizacija uzoraka podudaranja definirana je heuristikama koje zamjenjuju sve ne-normalne znakove sa znakom razmaka te transformiraju sve normalne znakove u njihovu velikoslovnu varijantu. Kompletan proces obrade recenice "Where is Mr. Smith?" kroz tri navedenakoraka prikazan je nastavku (tablica 1).

Tablica 1: Obrada recenice u AIML jeziku

Korisnikovulaz

Normalizacijazamijene

Normalizacijarecenice

Normalizacijauzoraka po-dudaranja

Where is Mr.Smith?

Whereis MisterSmith?

Where isMister Smith

WHERE ISMISTERSMITH

Nakon obrade korisnikovog ulaza isti se prosljeduje heuristikama za podudaranje uzo-raka. U AIML podudaranje uzoraka odvija se tako da se definirane kategorije sa svojim uzor-

11

Page 18: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

cima sortiraju po abecednom redoslijedu. Nakon sortiranja, ulaz se usporeduje s kategorijamau obrnutom redoslijedu. Ovim nacinom osigurano je da specificno definirane kategorije imajunajviši prioritet prilikom podudaranja.

AIML jezik karakteriziraju njegove oznake koje omogucuju modeliranje nacina odgovora.Najvažniji koncepti i oznake jezika su:

• Kategorija

• Uzorak

• Predložak

• Star oznaka

• Srai oznaka

• Tema

• Think oznaka

• Varijable

• Uvjet

Oznaka Kategorija pocinje s oznakom< category > te završava s oznakom< /category >.Ova oznaka je osnovna jedinica AIML agenta te predstavlja znanje koje agent posjeduje. Svekategorije agenta predstavljaju njegovu bazu znanja. Svaka oznaka kategorije se sastoji od:

• Korisnikovog ulaza - modelira se pomocu oznake uzorka, u AIML jeziku oznaka uzorkadefinirana je s < pattern >.

• Odgovora na korisnikov ulaz - modelira se unutar oznake predloška, unutar AIML jezikaoznaka predloška definirana je s < template >

U nastavku, prikazan je primjer kategorije. Kategorija iz primjera predstavlja kategoriju kojaodgovara slucajevima u kojima korisnik inicira razgovor. Slijed dijaloga za prikazanu kategorijuje sljedeci:

1. Korisnik: Pozdrav

2. Agent: Pozdrav!

Listing 3.1: Primjer kategorije u AIML jeziku

<aiml>

<category>

<pattern> POZDRAV </pattern>

<template>

Pozdrav!

</template>

</category>

</aiml>

12

Page 19: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

Oznaka uzorka služi za definiranje podudaranja s korisnikovim ulazom. Unutar svakekategorije nalazi se tocno jedna oznaka uzorka. Tekst unutar oznake uzorka mora biti napisanvelikim slovima te može sadržavati posebne znakove koji zamjenjuju odredeni dio teksta. Po-sebni znakovi osim što zamjenjuju dio teksta kontroliraju redoslijed kojim se korisnikovi ulaziprovjeravaju s uzorcima unutar kategorija. Znacenje posebnih znakova te redoslijed premaprioritetu je sljedeci:

1. $ - oznacava da rijec ima viši prioritet od _

2. # - nula ili više rijeci

3. _ - jedna ili više rijeci

4. rijec - jedna rijec

5. - nula ili više rijeci

6. - jedna ili više rijeci

Oznaka predloška definira odgovor agenta te se mora definirati poslije oznake uzorka.Odgovor se mora nalaziti unutar < template > AIML oznake. Ova oznaka može vršiti operacijenad varijablama, provjeravati uvjete te aktivirati druge rutine.

Oznaka Star služi za formiranje podudaranja i spremanja odredenog dijela teksta ulazakorisnika te ima sljedeci oblik < star index = ”n”/ > gdje n predstavlja redoslijedni dioulaznog teksta korisnika. Neka je definiran sljedeci slijed dijaloga:

1. Korisnik: Ja sam fan Star Wars filmova i redatelja Riana Johnosona

2. Agent : Ja sam isto fan Star Wars filmova, ali ne i redatelja Riana Johnosona

Pomocu oznake star možemo definirati da su agent i korisnik fanovi istog serijala filmova, ali nedijele isto mišljenje o redatelju. Primjer je dan u nastavku.

Listing 3.2: Primjer korištenja star oznake

<category>

<pattern> JA SAM FAN * FILMOVA I REDATELJA * </pattern>

<template>

Ja sam isto fan <star index="1"/> filmova ali ne i redatelja <star index="2"

/>

</template>

</category>

Oznaka Srai omogucava podudaranje razlicitih oznaka uzoraka s jednim predloškom.Drugim rijecima, ova oznaka omogucava korištenje jednog odgovora agenta za razliciti skupkorisnikovih ulaza. Jedna moguca primjena može biti odgovaranje na pitanja o sinonimima.Neka je definiran sljedeci slijed dijaloga:

1. Korisnik: Ljekarna je?

13

Page 20: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

2. Agent : Zdravstveni objekt, u kojem se obavljaju farmaceutske usluge.

3. Korisnik: Apoteka je?

4. Agent: Zdravstveni objekt, u kojem se obavljaju farmaceutske usluge.

Navedeni dijalog može se modelirati na sljedeci nacin pomoci Srai oznake.

Listing 3.3: Primjer korištenja Srai oznake

<category>

<pattern> LJEKARNA JE? </pattern>

<template>

Zdravstveni objekt, u kojem se obavljaju farmaceutske usluge.

</template>

</category>

<category>

<pattern> APOTEKA JE? </pattern>

<template>

<srai> LJEKARNA JE? </srai>

</template>

</category>

Navedeni primjer kod prvog korisnikovog ulaza ce generirati odgovor na temelju prve kategorije.Prilikom drugog ulaza korisnika, generirat ce se odgovor na temelju druge kategorije. Medutim,podudaranje ce se preusmjeriti na uzorak iz prve kategorije pomocu < srai > oznake te ceagent dati isti odgovor u oba slucaja. Istim nacinom može se napraviti podudaranje na temeljukljucne rijeci. Prvo ce se definirati korijenska kategorija koji daje odgovor za definiranu kljucnurijec. Zatim se u formulaciji ostalih kategorija definiraju uzorci putem teksta i posebnih znakovakoji ce se < srai > oznakom preusmjeriti na korijensku kategoriju.

Varijable se u AIML jeziku definira pomocu oznaka < get > i < set >. Oznaka < set >

služi za definiranje i inicijaliziranje varijable,< get > oznaka služi za vracanje postavljene vrijed-nosti varijable. Varijabla se postavlja sljedecom sintaksom: < set name = ”ime_varijable” >vrijednost_varijable < /set >, gdje name definira ime varijable te ce se varijabla inicijaliziratis vrijednošcu unutar oznake < set >.

Oznaka teme služi za grupiranje kategorija koje odgovaraju na pitanja o odredenoj pod-domeni/temi. Grupiranje kategorija unutar tema olakšava pretraživanje i samo podudaranjekorisnikovih ulaza s pripadajucim odgovorima. Takoder, na ovaj nacin možemo kontrolirati tijekdijaloga izmedu korisnika i agenta. Oznaka teme je definirana s < topic >. Praksa je da sedefinira genericka tema razgovora iz koje se zatim granaju ostale teme o kojima agent možerazgovarati. Neka je definiran sljedeci slijed dijaloga:

1. Korisnik: Razgovarajmo o Star Warsu!

2. Agent : Ok

3. Korisnik: Darth Vader je moj omiljeni lik.

4. Agent: Darth Vader je i moj omiljeni lik!

14

Page 21: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

5. Korisnik: Tamna strana je zakon!

6. Agent: Tako je!

Jedna moguca formulacija dana je u nastavku.

Listing 3.4: Primjer grupiranja kategorija pod odredenu temu

<category>

<pattern> RAZGOVARAJMO O STAR WARSU! </pattern>

<template>

Ok <set name="topic">star_wars</set>

</template>

</category>

<topic name="star_wars">

<category>

<pattern> * JE MOJ OMILJENI LIK</pattern>

<template>

<star index="1"/> je i moj omiljeni lik!

</template>

</category>

<category>

<pattern> TAMNA STRANA JE * </pattern>

<template>

Tako je!

</template>

</category>

</topic>

Nakon korisnikovog ulaza o želji razgovaranja o Star Wars-u, agent postavlja varijablu temena vrijednost za Star Wars tematiku. Nakon postavljanja teme, svi ulazi se preusmjeravaju nagrupirane oznake kategorije unutar definirane teme o Star Wars-u.

Think oznaka definirana je s < think > te služi za procesuiranje ulaza, provjeravanjauvjeta i ostalih operacija koje želimo sakriti od korisnika. Primjer postavljanja korisnikovogimena u pripadajucu varijablu kako bi agent znao s kime prica je dan u nastavku.

Listing 3.5: Primjer postavljanja varijable pomocu oznake < think >

<category>

<pattern> MOJE IME JE * </pattern>

<template>

<think> <set name="user_name"> <star index="1"/> </set> </think>

</template>

</category>

Oznake uvjeta koriste se ako imamo niz odgovora koje možemo vratiti korisniku na te-melju odredenog stanja. Oznake uvjeta odgovaraju switch selekciji u vecini programskih jezika.Ova oznaka definirana je s < condition > te može primiti parametre ime varijable te vrijed-nost varijable. Kompletna definicija oznake je < conditionname = ”variable_name”value =

”variable_value”/ >, gdje ime varijable predstavlja varijablu koja ce se usporedivati te vrijed-nost varijable predstavlja vrijednost koja ce biti usporedivana. Ako je uvjet zadovoljen, blok

15

Page 22: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

oznaka razdvojen s uvjetom ce se izvršiti. Primjer formulacije jednog uvjetno slucaja dan je unastavku. Varijabla state pohranjuje vrijednost korisnikovog odgovora

Listing 3.6: Primjer korištenja oznake uvijeta

<category>

<pattern> KAKO SI DANAS? </pattern>

<template>

<think><set name = "state">sretan</set></think>

<condition name = "state" value = "sretan">

Sretan sam!

</condition>

<condition name = "state" value = "tuzan">

Tuzan sam!

</condition>

</template>

</category>

3.2.2. Agenti temeljeni na matematickim modelima

Agenti temeljeni na matematickim modelima modeliraju dijalog i proces odgovaranjaputem metoda strojnog ucenja, statistike te metoda pretraživanja informacija. Na temelju koris-nikovog ulaza, kombinaciji povijesti dijaloga, ulaza i stanja agenta definiraju kontekst razgovorac. Zatim svakom predefiniranom odgovoru dodjeljuju pripadajucu ocjenu na temelju kontekstadijaloga te se najbolje ocijenjeni odgovor vraca korisniku. U nastavku, prikazat ce se jedannacin vracanja odgovora na temelju povratne neuronske mreže. Detalji povratne neuronskemreže objašnjeni su u ranijem poglavlju.

Neka je dana baza pitanjaA = {a1, a2, ..., an} s pripadajucim odgovorimaB = {b1, b2, ..., bn}.Cilj agenta je za dano pitanje an vratiti odgovor bn. Moguca arhitektura za dani problem prika-zana je na slici (5). Svako pitanje an predstavljeno je kao niz rijeci an1 , a

n2 , ..., a

nn koje su ulazi u

povratnu neuronsku mrežu. Povratna neuronska mreža procesuira ulaz do zadnje rijeci, nakontoga skriveno stanje se prosljeduje linearnom sloju popracenom softmax funkcijom. Linearnisloj se sastoji od produkta skrivenog stanja i matriceWb dimenzije nxbroj_predefiniranih_odgovora.Softmax funkcija ce nam dati distribuciju nad predefiniranim odgovorima, posljednji korak jeodabrati odgovor s najvišom vjerojatnosti iz distribucije dobivene softmax funkcijom.

16

Page 23: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

Slika 5: Povratna neuronska mreža za generiranje predefiniranog odgovora

17

Page 24: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

4. Istraživacke grane dialoga

Dijalog zbog svoje kompleksnosti jedan je od najtežih problema umjetne inteligencije.Kako bi agent vodio smislen razgovor s korisnikom, mora imati znanja o domenama razgovora,pratiti kontekst razgovora, parafrazirati, referencirati se na prošle izmjene u razgovoru, ukljucitiidentitet u svoje odgovore i dr.. Današnji agenti su u relativno uspješni kada govorimo o poje-dinacnim zadatcima kao rezervacija avionskih sjedala, hotelskih soba i dr.. Medutim, ako predagenta stavite kompleksniji zadatak u kojem mora moci razumjeti višestruke recenice, pratitikontekst, izvršavati više pod-zadataka kako bi riješio glavni problem, rezultati nisu zadovolja-vajuci. Kako bi što bolje evaluirali agente i što prije riješili odredene prepreke u modeliranjudijaloga, rodilo se više istraživackih smjerova koji rješavaju odredene zadatke unutar dijaloga.Današnji smjerovi su:

• Odgovaranje na pitanja – jedno od najjednostavnijih forma dijaloga. Razgovor je forma-tiran tako da u svakoj izmjeni korisnik postavlja pitanje te agent daje odgovor na zadanopitanje.

• Vizualno odgovaranje na pitanja – kompleksniji oblik odgovaranja na pitanja. Agentu seprikazuje slika, zatim korisnik postavlja pitanja o inicijalnoj slici. Agentov cilj je odgovaratina korisnikova pitanja o slici.

• Citanje s razumijevanjem – pred agenta se stavlja kratka prica. Zatim se agentu postav-ljaju pitanja o inicijalnoj prici.

• Razumijevanje i zakljucivanje nad tekstom – pred agenta se stavljaju razliciti zadatci kojizahtijevaju razlicite oblike zakljucivanja.

• Ciljno orijentirani dijalog – oblik dijaloga koji ukljucuje postizanje odredenog cilja. Agentovcilj je ostvariti odredeni cilj kroz razgovor s korisnikom

• Otvoreni dijalog – najteži oblik dijaloga. Provjerava se agentova sposobnost vodenjasmislenog razgovora s korisnikom

4.1. Odgovaranje na pitanja

Odgovaranje na pitanja je jedan od najosnovnijih oblika dijaloga. Agentu se postavljaodredeno pitanje unutar jedne recenice te je agentov zadatak pružiti odgovor na zadano pitanje.Ovaj smjer je jedan od najistraživanijih podrucja unutar procesuiranja prirodnog jezika. Modelinastali iz ovog smjera koriste se za pretraživanje informacija, ekstrakciju entiteta te unutardijaloga. Zbog dugovjecnosti ovog smjera zajednica je stvorila podatkovne skupove koji sunamijenjeni za ocjenjivanje modela/agenata. Neki od skupova koji se danas najcešce koristeza evaluaciju modela su :

• SimpleQuestions [13] – sastoji se od 108442 parova pitanja-odgovor. Pitanje je u oblikurecenice dok se odgovor sastoji od trojke (subjekt, relacija, objekt) što daje potpuno objaš-njenje odgovora. Podatci su prikupljeni iz javno dostupne baze Freebase. Primjer pitanja

18

Page 25: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

i pripadajuceg odgovora: "What American cartoonist is the creator of Andy LIppincott?"(andy lippincot, character created by, garry trudeau)

• WikiQA [14] – jedan od novijih javno dostupnih skupova. Kreiran od strane Microsofta po-mocu korisnickih pretraživanja unutar tražilice Bing. Podatkovni skup je kreiran selekcijomkorisnickih upita koji imaju oblik pitanja, selektirani upiti su upareni s prvim relevantnim re-zultatom koji potice s web mjesta Wikipedia. Primjer. "How a water pump works?" Pumpsoperate by some mechanism (typically reciprocating or rotary ), and consume energy toperform mechanical work by moving the fluid.

Razvojem dubokog ucenja agenti su u mogucnosti postizati vrlo visoke razine tocnosti nadranije navedenim podatkovnim skupovima. Gotovo svakodnevno izlaze novi modeli i tehniketvrdeci da su postigli najvišu zabilježenu razinu tocnosti. Cesto je slucaj da se granica po-makne za samo jedan posto. Prvi modeli koji su ostvarili zapažene rezultate u ovom podrucjusu Memorijske mreže [15] te Duboke opažajuce mreže [16]. Danas se gotovo svi modeli uovom podrucju baziraju na njima, bilo da koriste izvorne modele ili modificirane tipove izvornihmodela.

4.1.1. Memorijske mreže

Povratne neuronske mreže postižu zavidne rezultate nad sekvencijalnim tipovima po-dataka. Samim time zajednica ih uvelike koristi prilikom modeliranja dijaloga, predikcije cijenadionica i ostalih slicnih problema koji se baziraju nad sekvencijalnim tipovima podataka. Limita-cija povratnih neuronskih mreža leži u problemu pohranjivanja dugorocnih ovisnosti i relacija upodatcima. Uzrok tome je propagacija gradijenata kroz povratne slojeve ovih tipova mreža, od-nosno gradijenti funkcije troška eksponencijalno se smanjuju s vremenom (problem nestajucihgradijenata). Povratne neuronske mreže s dugotrajno-kratkotrajnom memorijom te usmjerava-juce povratne neuronske mreže rješavaju ovaj problem uvodeci mehanizam adresiranja i zapi-sivanja memorije kroz jednostavne matematicke izraze. Takoder, ovi tipovi mreža s vremenomzaboravljaju odredene informacije kako bi oslobodile mjesto za pohranu novim informacijama.Medutim, ovi tipovi mreža ne postižu zavidne rezultate nad ovakvim tipovima problema. S obzi-rom na to da problem odgovaranja na pitanja zahtjeva da se informacije i ovisnosti iz podatakadugotrajno pamte ovi modeli ne mogu ostvariti znacajne rezultate.

Zbog navedene limitacije, stvorena je nova arhitektura povratnih neuronskih mrežazvana Memorijska mreža [15]. Ovaj tip povratne neuronske mreže koristi vanjsku memorij-sku komponentu koja omogucuje citanje i pisanje informacija. Generiranje odgovora se obavljapomocu jednog ili više skoka kroz memoriju. Skok operacija se može protumaciti kao operacijapažnje u enkoder-dekoder okvirima. U nastavku, objasnit ce se koraci pomocu kojih modelgenerira odgovor.

Model na svome ulazu prima set diskretnih ulaza (npr. recenice u tokeniziranom obliku)x1, ..., xn koji se pohranjuju u memoriju. Set ulaza se pretvara u set ulaznih memorijskih vek-tora mi dimenzije d putem ulazne matrice ugradnje A velicine dxV gdje je V velicina rjecnikakojime su se recenice pretvorile u tokenizirani oblik. Zatim se pitanje/upit na isti nacin pretvara

19

Page 26: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

u vektorski oblik, ali putem druge matrice ugradnje C te se dobiva vektorski oblik pitanja u. Za-tim se racuna izvorno podudaranje pitanja sa svakom memorijskom jedinicom putem skalarnogprodukta pitanja u i seta memorija mi, time dobivamo vektor podudaranja. Vektor podudaranjanam govori koliko pažnje moramo posvetiti pojedinoj memorijskoj jedinici, medutim, trenutnevrijednosti nisu normalizirane te se propuštaju kroz softmax funkciju kako bi vektor pažnje pre-tvorili u vjerojatnosti i samim time normalizirali vrijednosti na skalu od 0 do 1. Izracunati vektornazvat cemo pi.

pi = Softmax(uTmi) (4.1)

Nakon što smo izracunali vektor pažnje, diskretan set ulaza se putem izlazne matrice ugradnjeC pretvara u set izlaznih memorija ci. Zatim slijedi operacija sume seta izlaznih memorijaskaliranih s vektorom vjerojatnosti pi, te dobivamo izlazni vektor o.

o =∑i

cipi (4.2)

Izlazni modul se sastoji od linearne transformacije sume vektora u i o popracenog softmaxfunkcijom. Linearni sloj se sastoji od matrice W velicine V xd.

a = Softmax(W (o+ u)) (4.3)

Funkcija gubitka modela je unakrsna entropija izmedu generiranog odgovora a i istinitog odgo-vora a. Ucenje težina modela se obavlja stohastickim gradijentnim spustom. Prikaz arhitekturemože se vidjeti na (6) Ako želimo koristiti višeslojnu arhitekturu moramo formulirati novi ulaz za

Slika 6: Memorijska mreža (Izvor: Sukhbaatar, Szlam, Weston i dr., 2015)

svaki sloj. Ulaz novog sloja dobijemo tako da sumiramo vektor u i o prijašnjeg sloja.

uk+1 = uk + ok (4.4)

Svaki sljedeci sloj memorijske mreže ima svoje matrice ugradnje, ako želimo smanjiti broj pa-rametara mreže težine svakog sloja možemo vezati na nekoliko nacina:

20

Page 27: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

• Dijeljenjem težina - svaki sloj koristi iste matrice ugradnje kao pocetni sloj. Medutim,važno je dodati linearni sloj prilikom kreiranja ulaza novog sloja kako bi svaki sloj naucionove informacije za generiranje odgovora. Time vektor uk+1 dobivamo sljedecim izrazomuk+1 = Huk + ok

• Dijeljenje izlazne matrice ugradnje - u ovom slucaju izlazna matrica ugradnje sloja k sekoristi kao ulazna matrica ugradnje sloja k + 1

Primjer višeslojne arhitekture može se vidjeti na (slika 6) pod dijelom b). Formule u ovomodlomku napisane su prema [15].

4.2. Vizualno odgovaranje na pitanja

Zadnjih nekoliko godina interes za strojnim razumijevanjem slika znatno se povecao.Velike tehnološke tvrtke kao Microsoft, Google i sl. ulažu velike napore kako bi njihovi sustavimogli što bolje razumjeti vizualne objekte kao što su slike. Sustav koji želi efikasno razumjetivizualne objekte mora riješiti brojne probleme koristeci tehnike racunalnog vida i procesuiranjaprirodnog jezika. Ako racunalu prikažete sliku ono mora klasificirati što je na slici, detektirati,lokalizirati objekte te donositi zakljucke o samoj slici. Velike tehnološke kompanije su zainte-resirane za ovakav oblik sustava zbog ogromne kolicine informacija koje su prisutne u ovak-vim objektima. Ako promotrimo dijalog cesto sugovornici diskutiraju i raspravljaju o odredenimvizualnim objektima. Takve rasprave se dogadaju prilikom listanja fotografskih albuma, pre-gledavajuci vremenske trake na društvenim mrežama te u mnogim drugim slucajevima. Podgrana istraživanja dijaloga koja se bazira na vizualnom razumijevanju i zakljucivanju naziva seVizualno odgovaranje na pitanja. Cilj ove grane je stvoriti agenta koji ce moci detektirati, ras-poznavati i zakljucivati nad entitetima prisutnim u vizualnom objektu. Na slici (7) možemo vidjetijedan primjer pitanja na koje racunalo treba dati odgovor. Primjer pokazuje razlicite fotografijekoje sadržavaju razlicite informacije. Na prvoj vidimo muškarca koji nosi naocale, a na drugojženska osoba nosi naocale. U ovom slucaju racunalo mora moci raspoznati entitete na slikama(muška osoba, ženska osoba), detektirati i lokalizirati naocale te donijeti zakljucak tko nosi na-ocale. Kako bi razvijatelji evaluirali svoje modele, stvoreno je VQA natjecanje s pripadajucimskupom podataka [17]. Agenti se evaluiraju tako da im se proslijedi slika te pitanje u prirodnomjeziku zatim agent mora dati odgovor na pitanje. Podatkovni skup VQA natjecanja se sastoji odpribližno 750 tisuca pitanja o 250 tisuca slika. Jedan od prvih modela koji je ostvario zapaženerezultate su Dinamicke memorijske mreže. U nastavku, objasnit ce se arhitektura Dinamickihmemorijskih mreža.

21

Page 28: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

Slika 7: Vizualno odgovaranje na pitanja (Izvor: Antol, Agrawal, Lu i dr., 2015)

4.2.1. Dinamicke memorijske mreže

Uspjeh memorijskih mreža potaknuo je mnoge ideje na korištenje vanjske memorije.Jedna takva arhitektura su Dinamicke neuronske mreže [18]. Ova arhitektura je podijeljena urazlicite funkcijske module, a oni su :

• Ulazni modul – služi za procesuiranje ulaznih podataka o kojima ce se postaviti pitanje

• Modul pitanja – služi za pretvaranje pitanja u vektorski oblik kako bi ukodirali znacajkepitanja.

• Epizodni memorijski modul – služi za dohvacanje i obradu potrebnih informacija za odgo-varanje na pitanje. Obradene informacije prenose se modulu za odgovaranje

• Modul za odgovaranje – služi za generiranje odgovora

Modularnost ovoj arhitekturi daje dodatnu fleksibilnost i slobodu. Ako se tip ulaznih podatakamijenja ovisno o cilju, ulazni modul se može zamijeniti kako bi se postigao zadani cilj. Istovrijedi i za ostale komponente modela.

4.2.1.1. Ulazni modul

Originalno ulazni modul ove arhitekture jest namijenjen za procesiranje recenica u tek-stualnom formatu, gdje se svaka ulazna recenica pretvara u pripadajuci cinjenicni vektor f. Sobzirom na to da se u ovoj cjelini govori o vizualnom odgovaranju na pitanja pažnja ce biti

22

Page 29: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

usmjerena prema procesuiranju vizualnih ulaza u arhitekturu. Stoga, ulazni podatci vizualnogulaznog modela bit ce F = f1, . . . , fn gdje su F vektori dimenzije d. Ovaj modul se sastoji odtri dijela:

• Lokalni sakupljac znacajki – ovaj dio je zadužen za izvlacenje informacija iz vizualnihobjekata. Ovaj dio to radi tako da se prvotno slika propusti kroz konvolucijsku neuronskumrežu do posljednjeg sloja sažimanja. Zatim se iz mape znacajki dimenzijaDxxbrojfilteradobivene iz posljednjeg sloja sažimanja pretvara u lokalne površinske vektore dimenzijed = brojfiltera. Lokalni površinski vektori zapravo sadrže informacije o razlicitim regi-jama vizualnog ulaza.

• Ulazni vizualni vektor – kako bi dali odgovor na tekstualno pitanje, moramo efikasno tran-sformirati vizualni vektor u prostor tekstualnih znacajki. Kako bi se to postigao ovaj dio,dodaje se linearni aktivacijski sloj s tangens funkcijom za projiciranje lokalnih površinskihvektora u prostor tekstualnih znacajki.

• Ulazni fuzijski sloj – projicirani lokalni površinski vektori sadrže samo lokalne informacijeo vizualnom objektu što im daje malu reprezentacijsku moc. Kako bi se odgovorilo napitanje potrebno je uz lokalni kontekst sagledati i globalni. Ukoliko bi kompletno zaboravilina globalni kontekst, utoliko bi propustili veliki dio potrebnih informacija. Kako bi ukodi-rali globalni kontekst, koristi se dvosmjerna povratna neuronska mreža nad projiciranimlokalnim površinskim vektorima da bi dobili cinjenicne vektore f1, . . . , fn.

Slika 8: Ulazni modul (Izvor: Xiong, Merity i Socher, 2016)

23

Page 30: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

4.2.1.2. Epizodni memorijski modul

Epizodni memorijski modul se sastoji od seta memorijskih vektora koji pohranjuju in-formacije na temelju epizoda citanja cinjenicnih vektora. Epizoda modula odnosi se na jedanprolaz kroz set cinjenicnih vektora te je broj memorijskih vektora odreden brojem epizoda/pro-laza samog modula. Citanje cinjenicnih vektora obavlja se povratnom neuronskom mrežom smehanizmom pažnje. Pažnja je implementirana kao propusna funkcija G koja ce kontroliratikoliko ce informacija iz prijašnjeg skrivenog stanja biti zaboravljeno te koliko ce informacija iznovog skrivenog stanja neuronske mreže biti propušteno. Prilikom svake epizode i, pažnjauzima cinjenicu ft, prošlu memoriju mi − 1 te pitanje q kako bi kreirala set znacajki koje ce sekoristiti za racunanje vrijednost funkcije G.

z(c,m, q) = [c,m, q, c ◦ q, c ◦m, |cq|, |cm|, cTW (b)q, cTW (b)m] (4.5)

Set znacajki definiran je formulom (4.5) prema [18].

G(c,m, q) = (W 2tanh(W 1z(c,m, q) + b1) + b2) (4.6)

Funkcija G formulirana je kao dvoslojna neuronska mreža s ulazom z(c,m, q). Detaljnija formu-lacija dana je jednadžbom 4.6 prema [18]. Sada kada je pažnja detaljnije prikazana, možemoprijeci na ostale korake epizode. Jedan vremenski korak povratne neuronske mreže prema [18]prikazan je formulom u nastavku.

mit = gitGRU(ct,m

it−1) + (1− git)mi

t−1 (4.7)

Ako se pomnije promotri, vidljiva je formulacija ekvivalentna generaciji novog skrivenog stanja uLSTM jedinicama. Pocetno skriveno stanje povratne neuronske mreže u prolazu i inicijaliziranoje s prijašnjim memorijskim vektorom mi−1, osim u prvoj epizodi prolaska gdje je stanje inicija-lizirano s vektorom pitanja m0 = q. Izlaz epizodnog memorijskog modula jest zadnje skrivenostanje, zadnje epizode modula.

4.2.1.3. Modul pitanja

Modul pitanja pretvara pitanje u vektorsku reprezentaciju putem povratne neuronskemreže ili po želji bilo koje druge metode koja može enkodirati niz rijeci u vektorsku reprezenta-ciju. Enkodirano pitanje q prema autorima modela jest posljednji sloj GRU povratne neuronskemreže q = GRU(wn, qn−1).

4.2.1.4. Modul za odgovaranje

Modul za odgovaranje se temelji na povratnoj neuronskoj mreži. Pocetno skriveno sta-nje povratne neuronske mreže jest izlaz mi iz epizodnog memorijskog modula, ulaz u svakomkoraku neuronske mreže jest spojeni vektor pitanja q s vektorom zadnje generiranog odgovora

24

Page 31: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

yt−1. U ovom slucaju korištena je povratna neuronska mreža s GRU jedinicama.

yt = softmax(W aat), at = GRU([yt−1, q], at−1) (4.8)

4.3. Citanje s razumijevanjem

Danas, ljudi svakodnevno citaju plasirane tekstove putem društvenih mreža. Diskuti-raju o njima te razmjenjuju poruke oko odredenih tema koje su procitali. Kako bi mogli obav-ljati ranije navedene radnje, ljudi razvijaju sposobnost citanja s razumijevanjem od svojih ranihškolskih dana. Citanje s razumijevanjem [19] predstavlja sposobnost osobe koja omogucavacitanje teksta te procesuiranje istog kako bi se razumjelo njegovo znacenje. Ova sposobnostnam omogucava ucenje novih stvari te direktno utjece na intelektualni razvoj osobe. Takoder,ova vještina omogucava osobi da diskutira o procitanim temama s drugim osobama. Samimtime, jedna je od važnijih komponenti dijaloga, odnosno jedna od temeljnih sposobnosti kojuosoba mora imati da bi komunicirala s drugim osobama u današnjem svijetu. Osim toga, cita-nje s razumijevanjem je nužno za mnoge poslove koje ljudi obavljaju od korisnicke podrške dodonošenja menadžerskih odluka. Samim time IT zajednica je uvidjela potrebu za agentima kojice biti sposobni citati s razumijevanjem kako bi automatizirali i ubrzali procese unutar odredenihposlovnih procesa, ali i kako bi se približili generalnoj umjetnoj inteligenciji. Ova sposobnost jevrlo važna za dijaloške agente kako bi mogli diskutirati o novim temama, odgovarati na osnovnapitanja o danom tekstu te razumjeti osnovne ideje teme koja mu je dana. Ljudi nevjerojatnomlakocom mogu odgovarati i diskutirati o odredenim temama i tekstovima, medutim, kada govo-rimo o racunalnim dijaloškim agentima situacija je znatno drugacija. S današnjim tehnikama uprocesuiranju prirodnog jezika agenti se i dalje muce s problemom citanja s razumijevanjem.Kako bi što bolje pratili napredak u podrucju, istraživacka zajednica kreirala je skupove poda-taka nad kojima se agenti evaluiraju i uce. Jedan od najcešce korištenih skupova podatka jestkolekcija djecjih prica zvana Children’s Book test [19]. Ovaj podatkovni skup se sastoji od nizadjecjih prica koje su formatirane tako da je svaka prica podijeljena na do 20 uzastopnih recenicanakon kojih slijedi pitanje o kontekstu koji recenice opisuju. Primjer je dan u nastavku.

Listing 4.1: Chilren’s Book primjer jednog primjera za ucenje (Izvor: Hill, Bordes, Chopra i dr.,2015)

Context:

1 So they had to fall a long way .

2 So they got their tails fast in their mouths .

3 So they could n’t get them out again .

4 That ’s all .

5 ‘‘ Thank you , " said Alice , ‘‘ it ’s very interesting .

6 I never knew so much about a whiting before . "

7 ‘‘ I can tell you more than that , if you like , " said the Gryphon .

8 ‘‘ Do you know why it ’s called a whiting ? "

9 ‘‘ I never thought about it , " said Alice .

10 ‘‘ Why ? "

11 ‘‘ IT DOES THE BOOTS AND SHOES . ’

12 the Gryphon replied very solemnly .

13 Alice was thoroughly puzzled .

25

Page 32: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

14 ‘‘ Does the boots and shoes ! "

15 she repeated in a wondering tone .

16 ‘‘ Why , what are YOUR shoes done with ? "

17 said the Gryphon .

18 ‘‘ I mean , what makes them so shiny ? "

19 Alice looked down at them , and considered a little before she gave her answer .

20 ‘‘ They ’re done with blacking , I believe . "

Query: ‘‘ Boots and shoes under the sea ,

" the XXXXX went on in a deep voice , ‘‘ are done with a whiting ".

Candidates: Alice|BOOTS|Gryphon|SHOES|answer|fall|mouths|tone|way|whiting

Answer: gryphon

Jedan od uspješnijih modela nad ovim tipom zadatka su Memorijske mreže koje smo opisali uranijem odlomku. Važno je spomenuti da se niz od 20 recenica procesuira te putem matricaugradnje pretvara u vektorski oblik, isto vrijedi i za pitanje. Nakon toga arhitektura obavljaoperaciju skoka ili višestrukih skokova kako bi generirala odgovor.

4.4. Razumijevanje i zakljucivanje nad tekstom

Kao što sam ranije naveli citanje s razumijevanjem je jedan od težih zadataka kojeg inte-ligentni dijaloški agenti moraju moci obavljati. Ako je agent sposoban citati s razumijevanjem todirektno povlaci da efikasno zakljucuje nad procitanim tekstom. Medutim, zbog kompleksnostizadataka performanse agenata nisu zadovoljavajuce te drasticno zaostaju za ljudima. Kakobi se olakšao sam problem, zajednica je stvorila poseban skup koji se sastoji od 20 umjet-nih zadataka koji testiraju razumijevanje teksta i zakljucivanje nad istim. Skup je nazvan Babizadatci [20]. Svaki od 20 zadataka testira sposobnosti agenata nad jednim tipom problema tek-stualnog zakljucivanja. Babi zadatci zapravo kreiraju umjetni svijet s pripadajucim entitetima,dogadajima i relacijama izmedu entiteta i dogadaja. Format skupa je dan u nastavku.

Listing 4.2: Primjer Babi formata (Izvor: Weston, Bordes, Chopra i dr., 2015)

ID tekst

ID tekst

ID pitanje[tab]odgovor[tab]id potporne cinjenice

Linije s ID tekst predstavljaju pricu/cinjenice o kojoj ce se postaviti pitanje. ID pitanjepredstavlja pitanje o danoj prici, odgovor predstavlja tocan odgovor na postavljeno pitanje tepotporne cinjenice predstavljaju niz ID-a koji se referenciraju na tekst price te služe za olakšanozakljucivanje nad tekstom. Zadatci su sljedeci:

• Jedna potporna cinjenica – odgovor na pitanje je sadržan u jednoj potpornoj cinjenici odcijelog seta cinjenica. Jedan od jednostavnijih pitanja jest o lokaciji pojedinih objekata iliosoba. Jedno takvo pitanje može biti „Gdje je kuhalo?“, nad setom cinjenica u kojem jejedna od cinjenica „Kuhalo je u kuhinji“, te je ID te cinjenice formatiran u liniji odgovora.

26

Page 33: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

• Dvije ili više potpornih cinjenica – teža verzija prvog zadatka u kojoj se mora povezatidvije do tri potporne cinjenice kako bi se pružio odgovor. Set potpornih cinjenica zapitanje „Gdje je kuhalo?“ može biti „Leon je u kuhinji“ te „Leon je podigao kuhalo“. Agentmora zakljuciti da je kuhalo u kuhinji iz seta cinjenica.

• Relacijsko zakljucivanje – zadatak u kojem se testira sposobnost zakljucivanja gdje jeodgovor prisutan u relacijama. Ako imamo set cinjenica „Kuhinja je sjeverno od dnevnesobe“, „Dnevna soba je južno od kuhinje“, te pitanje „Što je južno od kuhinje?“. Agentmora zakljuciti nad relacijama iskazanim u cinjenicama te odgovoriti „Dnevna soba“

• Da/ne pitanja – jednostavan zadatak u kojem se testira sposobnost odgovaranja na da/nepitanja. Ako imamo set cinjenica „Leon je u kuhinji“, „Ana je u dnevnoj sobi“ te pitanje „Jeli Leon u kuhinji? „ agent mora odgovoriti potvrdno na zadano pitanje.

• Da/ne pitanja – jednostavan zadatak u kojem se testira sposobnost odgovaranja na da/nepitanja. Ako imamo set cinjenica „Leon je u kuhinji“, „Ana je u dnevnoj sobi“ te pitanje „Jeli Leon u kuhinji? „ agent mora odgovoriti potvrdno na zadano pitanje.

• Prebrojavanje – agent mora imati sposobnost prebrojavanja objekata ili entiteta iz setacinjenica. Ako imamo set cinjenica: „Leon je uzeo daljinski“, „Leon je uzeo mobitel“ tepitanje „Koliko stvari je kod Leona?“, agent mora moci prebrojati entitete koje je Leonuzeo te odgovoriti na zadano pitanje.

• Negacija i nedovoljno znanje – ovi zadatci testiraju sposobnost prepoznavanja negacijegdje potporne cinjenice impliciraju negaciju ili nedovoljno informacija o postavljenom pi-tanju. Primjer potporne cinjenice može biti „Leon više nije u kuhinji“ gdje agent morazakljuciti da je Leon promijenio svoju lokaciju te da više nije u kuhinji. Nedovoljno znanjepokušava modelirati odgovore gdje agent dogovara s odredenom vjerojatnošcu nego li skonkretnim odgovorom. Potporna cinjenica u ovom slucaju može biti „Leon nije u kuhinjiniti u dnevnoj sobi“ , pitanje za danu cinjenicu može biti „Je li Leon u dvorištu?“ na koje biagent trebao odgovoriti s možda.

• Jednostavna i složena koreferenca – ovi zadatci testiraju agentovu sposobnost referenci-ranja nad jednim ili više entiteta. Ako imamo set cinjenica „Leon i Ana otišli su u dnevnusobu. Zatim su otišli u kuhinju.“. Agent mora moci razumjeti i pratiti stanje entiteta na kojese referencira u cinjenicama.

• Konjunkcije – u gramatici konjunkcije su dijelovi govora koji spajaju rijeci, fraze ili klauzule.Agent mora moci raspoznati i razumjeti konjunkcije u cinjenicama. Primjer može biti „Leoni kuhalo su u kuhinji“

• Vremensko zakljucivanje – cinjenice u ovom zadatku odnose se na razumijevanje vre-menskih pojmova u cinjenicama. Primjerice ako imamo cinjenice „Popodne je Leon jeobademe“ ili „Jucer je Leon pisao zadacu“, agent mora moci razumjeti i povezati kada jeentitet obavljao koju radnju.

• Dedukcija i Indukcija – u ovim zadatcima testira se osnovno razumijevanje i sposobnostdedukcije i indukcije nad tekstom

27

Page 34: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

• Zakljucivanje nad pozicijom i velicinom entiteta – cinjenice iskazuju pozicije i velicinu en-titeta. Agent mora razumjeti odnose izmedu velicina i pozicija entiteta. Ako imamo ci-njenice „Leon stoji Ani s lijeva“, „Ana stoji desno od Leona“, Dubravko stoji ispred Ane“.Agent mora razumjeti cinjenice i obavljati pozicijsko zakljucivanje, ista stvar vrijedi ako suu cinjenicama iskazane velicine.

• Traženje puta – u ovom zadatku testira se pronalaženje puta izmedu lokacija iskazanih ucinjenicama

• Motivacija entiteta – u ovom zadatku testira se zakljucivanje zašto je odredeni entitet ucinjenicama obavio pojedine radnje. Ako imamo cinjenice „Leon je žedan„, „Leon je otišaou kuhinju“, „Leon je popio vodu iz slavine“ te pitanje „Zašto je Leon popio vodu?“, agentmora odgovoriti zato što je žedan.

Svaki pojedini zadatak se smatra riješenim ako sustav postigne 97 postotnu tocnost nad njime.

4.4.1. Povratne entitetske mreže

Ako promotrimo Babi zadatke možemo primijetiti da se vecina njih svodi na pracenjestanja odredenih viših koncepata kao što su osobe, lokacije te materijalne stvari unutar umjet-nog svijeta. Takoder, zadatci su formatirani tako da odredeni dogadaji mijenjaju stanje svijetai karakteristike viših koncepata. Inteligentni agent/sustav koji želi uspješno riješiti navedenezadatke mora moci pratiti stanje i atribute viših koncepata kroz niz cinjenica unutar pojedinogzadataka. Ako imamo cinjenicu "Lopta je u dvorištu" sustav/agent mora ažurirati lokacijsko sta-nje lopte i ažurirati stanje dvorišta tako da sadrži loptu uz ostale stvari koje su ranije zabilježene.S obzirom na to da su zadatci formatirani kao niz cinjenica nakon kojih slijedi pitanje, sustavsvakom cinjenicom dobiva ogranicene informacije o svijetu te mora izvesti nove zakljucke izogranicenih informacija. Ako sustav primi cinjenicu "Lopta je u dvorištu" te je u svijetu prisutnasamo jedna lopta, automatski mora zakljuciti da lopta nije prisutna u ostalim lokacijama. Jednaod prvih arhitektura koja postiže zavidne rezultate nad ovim skupom zadataka su Povratneentitetske mreže [21].

Povratne entitetske mreže koriste distribuirane memorijske celije koje su povezane sasvojom procesorskom jedinicom. Ideja ove arhitekture jest da nauci više koncepte unutar me-morijskih celija putem procesorske jedinice koja ažurira stanje memorijskih celija. Memorijskacelija se sastoji od pripadajuceg vektorskog kljuca wj te vektorskog sadržaja hj . U idealnomslucaju želimo da vektorski kljuc direktno reprezentira više entitete unutar svijeta npr. osobe,lokacije i sl. dok vektor sadržaja vezan za vektorski kljuc predstavlja svojstva višeg entiteta.Primjerice, ako u svijetu imamo osobu Ana te je ona ženska osoba, studentica. Vektorski kljucbi direktno reprezentirao rijec Anu dok bi njena svojstva bila sadržana u pripadajucem vektorusadržaja. Vektorski kljuc i vektor sadržaja same celije koriste se za potrebe adresiranja unu-tar procesorske jedinice. Procesorska jedinica svake celije na temelju adresiranja i propusnogmehanizma ažurira informacije unutar memorijske celije. Arhitektura je sastavljena od ulaznogmodula, dinamicke memorije te izlaznog modula.

28

Page 35: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

4.4.1.1. Ulazni modul

Ulazni modul pretvara sadržaj ulaznih cinjenica u vektorsku reprezentaciju dimenzije d.Konkretnije, u slucaju babi zadataka, ulazna cinjenica u vremenskom trenutku t predstavljenas nizom rijeci, pretvara se u vektor dimenzije d tako da se prvo dobije vektorska reprezentacijapojedine rijeci ei putem matrice ugradnje. Time dobivamo reprezentaciju recenice kao nizvektora rijeci e1, ..., en. Zatim vektorska reprezentacija cinjenice dobiva se izrazom 4.9

st =∑i

fi � ei (4.9)

prema [21]. Ako imamo pet rijeci u iskazanoj cinjenici. Svaki vektor rijeci u recenici množi seHadamardovim produktom s pripadajucim vektorom f . Time dobivamo pet vektora dimenzije dkoji se zatim sumiraju da dobijemo reprezentaciju cinjenice st.

4.4.1.2. Dinamicka memorija

Dinamicka memorija se sastoji od memorijskih celija te njima pripadajucih procesorskihjedinica. Dinamicka memorija podijeljena je u blokove. Broj blokova je proizvoljan ovisno o cilju.Svaki blok se sastoji od memorijske celije te procesorske jedinice. Velicina bloka d odredujedimenziju vektorskog kljuca wj te dimenziju vektora sadržaja hj . Proces obrade ulaza dina-micke memorije jest sljedeci. U trenutku t ulaz st sekvencijalno se propušta kroz svaki blokdinamicke memorije. Operacija bloka j sastoji se od sljedecih operacija nad vektorom kljucawj te vektorom sadržaja hj memorijske celije j prema [21].

gj = σ(sTt hj + sTt wj) (4.10)

hj = φ(Uhj + V wj +Wst) (4.11)

hj = hj + gj � hj (4.12)

hj =hj||hj ||

(4.13)

Operacija 4.10 diktira koliko ce se memorija hj ažurirati s novim informacijama na te-melju adresiranja putem vektorskog kljuca wj ili putem vektora sadržaja hj . Uzmimo primjerulazne cinjenice "Ana je ušla u kupaonicu". Za adresiranje putem vektora kljuca zadužen jedio izraza sTt wj , nazovimo ga direktno adresiranje. Direktno adresiranje je zapravo vrijednostpodudaranja informacija sadržanih u ulaznoj cinjenici i vektorskom kljucu. Pretpostavimo da jemreža naucila te vezala entitet Ana i njena svojstva za memorijsku celiju j. Samim time vektor-ski kljuc wj se direktno odnosi na rijec Ana, koja je sadržana u ulaznoj cinjenici. Stoga, izrazsTt wj uzrokuje visoku vrijednost vrata gj koja ce propustiti nove informacije u vektor sadržajahj . Takoder, blok koji se odnosi na kupaonicu ce se na isti nacin ažurirati i pohraniti u sadržajnivektor Aninu lokaciju. Zatim imamo sTt hj kojeg možemo nazvati adresiranje sadržajem. Ovajizraz predstavlja podudaranje informacija ulazne cinjenice i vektora sadržaja. Ako ulaz priminovu cinjenicu "Ana je otišla u spavacu sobu". Memorijska celija koja odgovara entitetu kupa-

29

Page 36: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

onice aktivirat ce se na temelju adresiranja sadržajem. Ranije smo naveli da je u sadržajnomvektoru kupaonice zapisano da je Ana u njoj. Primanjem nove cinjenice u kojoj Ana mijenja lo-kaciju uzrokovat ce propuštanje novih informacija u sadržajni vektor kupaonice. U ovom slucajuce to biti da Ana više ne boravi u njoj.

Izraz 4.11 racuna novi vektor sadržaja hj koji predstavlja nove informacije dobivene ukoraku t. Funkcija φ predstavlja bilo koju aktivacijsku funkciju. Matrice U ,V i W su parametrikoji se uce zajedno s ostalim parametrima mreže te se dijele kroz sve blokove. Izraz ?? obavljaažuriranje vektora sadržaja celije na temelju propusnih vrata gj i novog vektora sadržaja hj .Posljednji normalizacijski korak omogucava zaboravljanje prijašnjih informacija.

Izlaz dinamicke memorije je matrica ho dobivena spajanjem vektora sadržaja.

ho = h1 ⊕ h2 ⊕ ...⊕ hn (4.14)

.

4.4.1.3. Izlazni modul

Izlazni modul na temelju postavljenog pitanja q i izlaza iz dinamicke memorije ho gene-rira odgovor te je dan sljedecim izrazima

pj = softmax(qTho) (4.15)

u =∑i

pjhi (4.16)

y = Rφ(q +Hu) (4.17)

Kada pogledamo izraze možemo vidjeti da se prva dva koraka ne razlikuju od operacijeskoka Memorijske mreže. Jedina razlika izmedu Memorijskih mreža i ovog izlaznog modulasu dodatne matrice u posljednjem koraku te aktivacijska funkcija φ. Aktivacijska funkcija možebiti bilo koja diferencijalna funkcija kako bi se ucenje modela moglo obavljati gradijentnim spus-tom. Model se uci pomocu algoritma backpropagation kroz vrijeme. Funkcija troška modela jeunakrsna entropija izmedu generiranog odgovora i ispravnog odgovora.

4.5. Ciljno orijentirani dijalog

U današnjem svijetu sve više kupujemo i obavljamo odredene stvari putem interneta.Prilikom nedoumica ili neznanja cesto tražimo pomoc od korisnicke podrške, pomoc prilikomrezervacije odredenih stvari ili pak prilikom kupovine odredenih proizvoda. Danas vecinom oveposlove obavljaju ljudi. S obzirom na to da ovi poslovi cesto zahtijevaju ponavljanje odrede-nih radnji stvorila se potreba za automatizacijom istih. Online komunikacija se najcešce odvijaputem pisanog dijaloga, stoga se stvorila grana kojoj je cilj kreirati agente koji ce putem razumi-

30

Page 37: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

jevanja teksta pomoci korisnicima da ostvare odredeni cilj, ta grana se naziva ciljno orijentiranidijalog. Danas možemo svjedociti brojnim sustavima koji imaju ovu funkciju te putem razu-mijevanja teksta i govora pomažu korisnicima ostvariti odredene zadatke. Neki od poznatijihi generalnijih sustava su Apple Siri, Microsoftova Cortana, Google Now i Amazon Echo. Ovisustavi su zapravo hibridni sustavi koji koriste kombinaciju razlicitih tehnologija kako bi riješiliproblem. Kada govorimo o dijaloškim sustavima koji koriste samo tekstualni ulaz, proces rješa-vanja problema korisnika modeliran je kao sekvencijalni proces u kojemu je cilj riješiti odredenepodzadatke kako bi se postigao cilj. Najcešce je taj cilj vezan za specificnu domenu, samimtime broj stanja u kojem dijalog može biti se znatno smanjuje. Ako promotrimo problem rezervi-ranja avionskih karata, domena je vrlo specificna te sustav prvo mora utvrditi mjesto polijetanja,destinaciju na koju korisnik želi stici, vrijeme leta te je li željeni let povratni ili ne. Stoga, sek-vencijalni postupak jednog ciljno orijentiranog sustava bi bio da prvo pita korisnika od kuda želipoletjeti te u koje vrijeme, gdje želi stici te želi li opciju povratne karte ili ne.

Najjednostavniji primjer ciljno orijentiranog dijaloškog agenta/sustava može se vidjetina slici (slika 9). Prikazani sustav korak po korak vodi korisnika kroz postupak kupovine karte.Ovakav sustav možemo nazvati inicijativni dijaloški sustav jer agent zapravo vodi dijalog te nedozvoljava korisniku da se udalji od domene. Takoder, vidimo kako sustav slijedno rješavapotprobleme, u ovom slucaju potproblemi su izvlacenje informacija o polasku, destinaciji te tipuleta. Nakon što agent dobije relevantne informacije on ih bilježi u njima pripadajuce spremnike.Popunjavanje pripadajucih spremnika odnosno izvlacenje informacija može obavljati pomocutehnika pretraživanja informacija, procesuiranja prirodnog jezika, itd.

Detaljnije ove agente možemo podijeliti na

• Sustavno inicijativne

• Miješano inicijativne

Sustavno inicijativni dijaloški agenti potpuno kontroliraju razgovor s korisnikom te gavode korak po korak do njima zadanog cilja. Najjednostavniji agent prikazan je slikom (slika9). Ovi agenti su napravljeni tako da je tok dijaloga odreden predefiniramim pravilima te svekorisnikove ulaze koji odstupaju od teme agent ignorira te vraca dijalog na zadanu temu razgo-vora. Ovi sustavi su jednostavni za izgradnju te vrlo efikasni prilikom rješavanja jednostavnihzadataka. Efikasnost dolazi zbog predefiniranog toka dijaloga i kontrole istog. Kontrolom di-jaloga ovi agenti korisniku uskracuju pravo iskustvo dijaloga. Ako korisnik preuzme inicijativute pošalje agentu "Želio bih poletjeti 19.2 iz Zagreba za London." u prvoj recenici. Agent neceznati intepretirati korisnikov ulaz iako striktno prati domenu agenta, nemogucnost interpretacijedolazi zbog strogo definiranih pravila i toka dijaloga.

Miješano inicijativni dijaloški agenti dozvoljavaju promjenu inicijative te daju korisnikuvecu fleksibilnost za razliku od Sustavno inicijativnih dijaloški agenata. Ovaj tip agenata ba-ziran je na ontologiji domene koja reprezentira sve moguce strukture informacija koje sustavmože izvuci iz korisnikovih recenica. Strukture informacija su definirane pomocu okvira. Svakiokvir se sastoji od kolekcije spremnika za pohranjivanje kljucnih informacija iz korisnikovogupita. Okviri zapravo predstavljaju tip informacija koje agent treba znati kako bi riješio odredeni

31

Page 38: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

Slika 9: Tok dijaloga jednostavnog agenta za kupovinu leta

problem. Kako bi agent uopce znao koji okvir treba popuniti koristi klasifikator intencije. Klasi-fikator intencije je dio agenta koji klasificira korisnikov ulaz te ga mapira prema odgovarajucem

32

Page 39: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

dijelu agenta za izvlacenje informacija i popunjavanja okvira. Pretpostavimo da agent sa slike9 omogucava korisniku da postavlja pitanja o letovima te da prati definirani tok za rezervacijuletova. Na ovaj nacin agent daje odredenu slobodu korisniku da inicira tijek dijaloga. Prematome definirajmo dva okvira za pohranu informacija, prvi ce biti generalni okvir koji odgovarakorisnikovim ulazima koji prate definirani tok, te drugi okvir koji odgovara korisnikovim ulazimakoji se odnose na informiranje o letovima. Prvi okvir ce se temeljiti na definiranom toku te cemoga nazvati rezervacijski okvir. Navedeni okvir prikazan je u nastavku.

Listing 4.3: Rezervacijski okvir

Rezervacija:

Polazna destinacija: GRAD

Polazno vrijeme: VRIJEME

Ciljna destinacija: GRAD

Povratna karta: DA|NE

Zatim cemo definirati upitni okvir koji odgovara ulazima korisnika koji preuzimaju inicijativu iodgovaraju pitanjima o informacijama o letovima. Jedan primjer pitanja može biti "Pokaži miletove izmedu Zagreba i Londona na dan 20.2.". Ovakvi tipovi ulaza mapirat ce se na sljedeciokvir kojeg cemo nazvati upitni okvir. Agent na temelju procesiranja prirodnog jezika popunjavaspremnike okvira. Popunjeni spremnik okvira prikazan je u nastavku.

Listing 4.4: Upitni okvir

Let:

Polazna destinacija:Zagreb

Ciljna destinacija: London

Datum: 20.2

Popunjeni okvir agent koristi za generiranje odgovora. U ovom slucaju odgovor može biti kreiranpomocu jednostavnog upita u bazu znanja s parametrima iz spremnika okvira. Kako bi agentmapirao korisnikove ulaze prema pripadajucim okvirima i dijelovima za izvlacenje informacijaiz ulaza, koristi klasifikator intencije. Klasifikator intencije može biti regularni izraz, statistickiklasifikator ili kontekstualno slobodna gramatika. Nakon modifikacije agenta pojednostavljenaarhitektura agenta može se vidjeti na slici 10. Nakon što agent primi ulaz, klasifikator intencijena temelju ulaza prosljeduje korisnikov ulaz i pripadajuci okvir modulu za generiranje odgo-vora. Modul za generiranje odgovora na temelju procesuiranja tekstualnog ulaza popunjavaspremnike u okviru te generira odgovore. Prikazana arhitektura je pojednostavljena verzijaovakvih sustava koji su u stvarnosti mnogo kompleksniji. Takvi sustavi mogu podnijeti mnogoviše intencija korisnika te imati posebne module za iniciranje razgovora.

33

Page 40: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

Slika 10: Pojednostavljena arhitektura miješano inicijativnog agenta

4.6. Otvoreni dijalog

Otvoreni dijalog je dugorocni cilj istraživanja umjetne inteligencije. U postavkama pro-blema otvorenog dijaloga agenti moraju biti sposobni razgovarati o bilo kojoj domeni. Neogra-niceni broj domena uvelike otežava agentima posao jer moraju imati znanja o gotovo svemu.Takoder, nemoguce je rucno definirati sve scenarije i pravila koja ce kontrolirati dijalog. Otvorenidijalog takoder zahtjeva striktno pracenje konteksta te odgovaranja s odredenom identitetom.Najviše primjera otvorenog dijaloga možemo vidjeti prilikom rasprava na društvenim mrežamakao što su Facebook, Twitter i Reddit. Kako bi zajednica razvijala agente za ovaj tip dijaloga,uloženo je mnogo truda u razvoj sljedecih skupova podataka:

• Skup razgovora s Ubuntu foruma [22] - kolekcija višestrukih izmjena izmedu korisnika naUbuntu forumu. Ovaj skup sadrži više od 1 000 000 višestrukih dijalog, te ukupno sadržipreko 7 000 000 recenica te 100 000 000 rijeci. Ovaj resurs predstavlja ogroman skuppodataka za razvoj dijaloških sustava za otvoreni dijalog.

• Cornell dijalozi iz filmskih skripti [23] - kolekcija dijaloga s pripadajucim metapodatcimaizmedu 9 035 likova iz 617 filmova. Ukupno ovaj skup sadrži 220 570 dijaloških izmjenaizmedu filmskih likova.

Generativne metode u kombinaciji s tehnikama pretraživanja informacija trenutno daju najboljerezultate nad ovim skupovima podataka.

34

Page 41: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

5. Poslovni problem

Hrvatska kao turisticka zemlja u svojoj ponudi posjeduje mnogo prirodnih i kulturnihsadržaja u kojima posjetitelji mogu uživati. Vecina marketinških aktivnosti republike Hrvatskeusmjereno je prema obalnom ljetnom turizmu te se time uvelike zapostavio razvoj kontinen-talnog turizma. Kontinentalni turizam u republici Hrvatskoj posjeduje ogroman potencijal te semože reci da je za sada nebrušeni dijamant Republike Hrvatske. Jedno podrucje kontinentalneHrvatske koje posjeduje ogromni turisticki potencijal jest Posavina sa svojim prirodnim parkomLonjsko polje. Posavina posjeduje ogromni potencijal zbog svog prirodnog bogatstva i kulturo-loškog nasljeda. Jedno mjesto koje posjeduje ogromni potencijal smjestilo se unutar granicaPosavine i parka prirode Lonjsko polje, to mjesto zove se Krapje.

Krapje se smjestilo na lijevoj obali rijeke Save u blizini Jasenovca, broji 144 stanov-nika te je jedno od važnijih sela zbog svoje kulturne povijesti te specificne arhitekture gradnjegradevinskih objekata. Krapje je proglašeno selom graditeljske baštine zbog velikog broja gra-devinskih objekata koji prate dva stila gradnje: bavarski stil gradnje i hrvatski stil gradnje. Ovadva stila razlikuju se u nacinu vezanja drvenih gredi prilikom izgradnje kuca. Konkretne pri-mjere i tradicijske predmete posjetitelji mogu vidjeti u centru Parka prirode Lonjsko polje kojise smjestio u Krapju te u etnografskoj zbirci obitelji Palaic. Uz arhitekturu Krapje i povijesnonaslijede ono posjeduje mnoga prirodna dobra. Najvažnije prirodno dobro Krapja jest KrapjeÐol prvi ornitološki rezervat u republici Hrvatskoj. Krapje Ðol je mali rijecni rukavac rijeke Saveu kojemu se gnijezdi nekoliko vrsta caplji od kojih je najvažnija i najugroženija vrsta caplja žli-carka. Ornitološki rezervat pruža brojne mogucnosti promatracima ptica i ljubiteljima mocvarnihpodrucja zbog svoje raznolike flore i faune. Položaj Krapja pruža brojne mogucnosti ljubiteljimalova i ribolova. Zbog blizine rijeke Save i rijeke Struga posjetitelji mogu uživati u rekreacijskomribolovu. Okolno šumsko podrucje Krapja stvoreno je za ljubitelje lova koji mogu iskušati svojesposobnosti uz odobrenje lokalnog lovnog saveza. Uz navedeno, Krapje posjeduje bogatugastronomsku ponudu u kojoj posjetitelji mogu uživati

Posjetitelji jedan dio informacija o Krapju mogu pronaci na stranicama Parka prirodeLonjsko polje u obliku statickih internet stranica. Vecina informacija na navedenom resursuodnosi se na prirodna dobra što ne predstavlja dovoljno informacija za privlacenje veceg brojaposjetitelja. S obzirom na porast popularnosti dijaloških agenata u zadnjih nekoliko godina,implementirat ce se jedan dijaloški agent kojemu ce cilj biti odgovarati i informirati potenci-jalne posjetitelje o svim sadržajima koje Krapje može ponuditi. Agent ce biti implementiran sasposobnošcu odgovaranja i vodenja dijaloga na engleskom jeziku. Vecina posjetitelja Krapjadolazi iz inozemstva stoga ce agent biti implementiran da može razumjeti i odgovarati samo naengleskom jeziku.

5.1. Domena agenta

Domena agenata koji govore prirodnim jezikom može biti definirana kao:

• Otvorena domena

35

Page 42: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

• Zatvorena domena

U otvorenoj domeni korisnici mogu odvesti razgovor u bilo kojem smjeru što zahtjeva dabaza znanja agenta pokriva sve moguce teme o kojima korisnici žele razgovarati. Broj tema ismjerova u kojima dijalog može krenuti postaje beskonacan te je pred agente stavljen vrlo težakzadatak. Zbog kompleksnosti otvorene domene današnji agenti vrlo lako izgube kontekst te sunjihove performanse vrlo loše. Vecina današnjih agenata se bazira na zatvorenim domenamazbog kompleksnosti problema otvorene domene.

U zatvorenoj domeni korisnici mogu razgovarati s agentom samo o usko odredenim te-mama, ako korisnici pokušaju odvesti razgovor izvan definirane domene agenti im nisu dužnipružiti valjani odgovor. Ovaj tip domene uvelike olakšava posao agentima jer se znatno sma-njuju moguca stanja i smjerovi dijaloga. Vrlo cesto u zatvorenim domenama agenti imaju spe-cifican cilj koji moraju ostvariti te se razgovor smatra uspješan ako je agent ostvario zadanicilj.

Agentova domena definirat ce se kao zatvorena domena nad cinjenicama o selu Krapju.Domena ce biti podijeljena na sljedece poddomene:

• Priroda - agentova baza znanja o prirodnim karakteristikama sela Krapja.

• Gastronomija - agentova baza znanja o gastronomiji Krapja. Ova poddomena ukljucivatce znanja o tradicionalnim delicijama jednog posavskog sela

• Rekreacija - agentova baza znanja o rekreacijskim aktivnostima koje selo Krapje nudi

• Arhitektura - agentova baza znanja o arhitekturalnim karakteristikama Krapja

• Turisticki sadržaj - agentova baza znanja o turistickim kapacitetima i sadržajima koje seloKrapje nudi

• Osobnost - agentova baza znanja o osobnim pitanjima koja se mogu pojaviti unutar dija-loga s korisnicima. Jedan primjer takvog pitanja može biti "Where are you from?".

36

Page 43: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

6. Implementacija agenta

Agent ce se definirati kao pretraživacki agent zbog tipa definirane domene. Agent cekoristiti bazu predefiniranih odgovora i pravila kako bi razgovarao s korisnicima. Baza odgovorai pravila bit ce definirana pomocu AIML oznacajnog jezika. Kako bi se AIML oznacajni jezik mo-gao interpretirati odabran je programski jezik Python s pripadajucom programskom knjižicompython-aiml za potrebe interpretiranja AIML jezika.

Za potrebe implementacije agenta definirat ce se posebno Python virtualno okruženjes ranije navedenim programskim knjižicama. Kako bi kreirali virtualno okruženje prvo ga jepotrebno instalirati pomocu bash naredbe koja ce koristit pip upravitelja programskih knjižica.Naredba za instaliranje virtualnog okruženja dana je u nastavku

Listing 6.1: Instaliranje virtualnog okruženja

pip install virtualenv

Nakon toga definirat ce se virtualno okruženje sa željenom verzijom Python intepretera, sis-temskim programskim knjižicama te željenim pomocu naredbe dane u nastavku.

Listing 6.2: Kreiranje virtualnog okruženja

virtualenv --system-site-packages -p python3 krapje-bot

Nakon toga potrebno je aktivirati virtualno okruženje te instalirati programsku knjižicu za inte-pretiranje AIML jezika. Naredbe su dane u nastavku.

Listing 6.3: Instaliranje virtualnog okruženja

source krapje-bot/bin/activate

pip install python-aiml

6.1. Python AIML

Python AIML programska knjižica pruža sucelje prema interpreteru za AIML oznacajnijezik kako bi razvijatelji mogli razvijati svoje dijaloške agente u Python jeziku pomocu AIML je-zika. Ova programska knjižica omogucava ucitavanje AIML dokumenata, definiranje i postavlja-nje varijabli unutar AIML dokumenata, kreiranje profila dijaloškog agenta pomocu programskihnaredbi te mogucnost odgovaranja na korisnikova pitanja.

Pristup interpreteru definira se putem objekta Kernel. Kako bi se ucitali AIML dokumentipotrebno je pozvati funkciju learn i proslijediti joj putanju do AIML oznacajnog dokumenta. Kakobi se generirao odgovor na pitanje potrebno je pozvati funkciju respond. Primjer ucitavanjaAIML dokumenata i generiranja jednog odgovora dan je u nastavku.

Listing 6.4: Primjer ucitavanja AIML dokumenate i generiranje jednog odgovora

import aiml

kernel = aiml.Kernel()

37

Page 44: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

kernel.learn("test-aiml.xml")

user_input = input("User input : ")

response = kernel.respond(user_input)

print("Bot response: " + response)

Neka je testni AIML dokument definiran jednom kategorijom koja odgovara na korisnikov ulazHello. Dokument je prikazan u nastavku.

Listing 6.5: Test-aiml dokument

<?xml version="1.0" encoding="ISO-8859-1"?>

<aiml version="1.0.1">

<category>

<pattern>HELLO</pattern>

<template>

Hello!

</template>

</category>

</aiml>

Primjer izvodenja za dani dokument i programski kod dan je u nastavku.

Listing 6.6: Primjer izvodenja

User input : Hello

Bot response : Hello!

Definirajmo na isti nacin pocetni program agenta za domenu Krapja.

Listing 6.7: Krapje agent

import aiml

kernel = aiml.Kernel()

kernel.learn("krapje-start.xml")

k.respond("load aiml b")

k.setBotPredicate("name", "Levi")

k.setBotPredicate("home", "Krapje")

k.setBotPredicate("location", "Krapje")

k.setBotPredicate("creator", "Leon")

k.setBotPredicate("gender", "Male")

k.setPredicate("talkabout", "Krapje")

while True:

print (k.respond(input("> ")))

38

Page 45: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

Zatim definirat ce se pocetni AIML dokument koji ce se sastojati od jedne kategorije pomocukoje ce se ucitati svi AIML dokumenti za definiranu domenu. Dokumenti ce se ucitati i naucitipomocu oznake pomocu oznake < learn >. Takoder, osobne informacije dodijelit ce se agentupomocu funkcije setBotPredicate.

Listing 6.8: Pocetni AIML Krapje dokument

<?xml version="1.0" encoding="ISO-8859-1"?>

<aiml version="1.0">

<category>

<pattern>LOAD AIML B</pattern>

<template>

<learn>krapje-aiml/*.xml</learn>

</template>

</category>

</aiml>

6.2. Struktura agenta

Agentova baza znanja strukturirat ce se prema ranije definiranim pod domenama i os-novnim karakteristikama koje svaki agent koji govori prirodnim jezikom mora imati. Baza znanjazapisana pomocu AIML kategorija bit ce strukturirana unutar zasebnih AIML dokumenata kakobi se dobilo na preglednosti te olakšalo otkrivanje pogrešaka i rubnih uvjeta.

Struktura agenta je sljedeca:

• Pozdravne kategorije - definiraju odgovore na korisnikove pozdravne ulaze kojima korisnikzapocinje razgovor. Primjer jednog pozdravnog ulaza može biti "Hey!"

• Odlazne kategorije - definiraju odgovore na korisnikove pozdravne ulaze koji oznacavajukraj razgovora. Primjer jednog pozdravnog ulaza može biti "Goodbye bot!"

• Kategorije selekcije poddomena - definiraju nacin na koji agent korisniku daje mogucnostodabira teme razgovara. Ako agent ne pokriva željenu temu razgovora, korisniku ce bitispecificirano o kojim temama agent može razgovarati.

• Kategorije pod domena - definiraju znanja o svakoj pojedinoj poddomeni

• Kategorije osobnosti - definiraju odgovore na osobna pitanja o agentu

6.2.1. Pozdravne kategorije

Najcešce dijalog zapocinje pozdravnim porukama izmedu sugovornika. Nakon izmjenepozdravnih poruka dijalog se nastavlja u smjeru koji inicira jedna ili druga strana dijaloga. Poz-dravne kategorije definirat ce se unutar AIML datoteke krapje-introduction.xml. Za pocetak

39

Page 46: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

definirat ce se korijenska kategorija pozdrava. Korijenska kategorija pozdrava odgovarat ce nakorisnikov ulaz "Hello" te ce ostale izvedenice ulaznih poruka biti preusmjerene na nju. Pred-ložak odgovora korijenske kategorije definiran je tako da se korisnik prvo pozdravi te se zatimod njega traži ime. Korijenska kategorija dana je u nastavku.

Listing 6.9: Korijenska kategorija pozdravnog odgovora

<?xml version="1.0" encoding="ISO-8859-1"?>

<aiml version="1.0.1">

<category>

<pattern>HELLO</pattern>

<template>

Hello vistor! What can I call you?

</template>

</category>

</aiml>

Zatim ce se definirati svi pozdravni ulazi koje korisnik može koristiti za pocetak razgovora.Umjesto definiranja odgovora za svaki ulaz, iskoristit ce se oznaka srai kako bi iskoristili pred-ložak odgovora korijenske kategorije za svaki pozdravni ulaz. Primjer nekolicine definiranihkategorija dan je u nastavku.

Listing 6.10: Kategorije pozdrava

<category>

<pattern>HELLO THERE</pattern>

<template>

<srai>HELLO</srai>

</template>

</category>

<category>

<pattern>HEY THERE</pattern>

<template>

<srai>HELLO</srai>

</template>

</category>

.

.

.

<category>

<pattern>HEY</pattern>

<template>

<srai>HELLO</srai>

</template>

</category>

40

Page 47: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

Nakon što korisnik odgovori agentu potrebno je pohraniti korisnikovo ime te izraziti zadovoljstvoprilikom upoznavanja. Pohranjivanje korisnikovog imena postignut ce se korištenjem oznakeset. Prvo ce se definirati kategorija za izražavanje zadovoljstva prilikom upoznavanja. Nakontoga agent ce zapoceti proces selekcije poddomene s korisnikom putem oznake < srai >.

Listing 6.11: Kategorija zadovoljstva upoznavanja

<category>

<pattern>USERINTRODUCTION</pattern>

<template>

Nice to meet you <get name="user_name"/>. <srai>TOPIC SELECT</srai>

</template>

</category>

Takoder, potrebno je definirati sve moguce slucajeve kojima korisnik može otkriti svoje ime. Diokategorija otkrivanja imena dan je u nastavku.

Listing 6.12: Kategorije otkrivanja imena

<category>

<pattern>YOU CAN CALL ME *</pattern>

<that>* WHAT CAN I CALL YOU *</that>

<template>

<think><set name="user_name"><star/></set></think>

<srai>USERINTRODUCTION</srai>

</template>

</category>

<category>

<pattern>MY NAME IS *</pattern>

<that>* WHAT CAN I CALL YOU</that>

<template>

<think><set name="user_name"><star/></set></think>

<srai>USERINTRODUCTION</srai>

</template>

</category>

.

.

.

<category>

<pattern>I AM *</pattern>

<that>* WHAT CAN I CALL YOU</that>

<template>

<think><set name="user_name"><star/></set></think>

<srai>USERINTRODUCTION</srai>

</template>

</category>

41

Page 48: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

6.2.2. Kategorije selekcije poddomene

Kategorije selekcije poddomene služe za mijenjanje poddomene o kojoj se trenutnorazgovara te ce biti definirane unutar krapje-topics.xml dokumenta. Kategorijom zadovoljstvaupoznavanja definiralo se zapocinjanje selekcije poddomene pomocu oznake < srai > koja jevodila na kategoriju TOPIC SELECT. Kategoriju možemo nazvati pocetnom kategorijom selek-cije jer zapocinje proces selekcije tema. Agent se prvotno predstavi svojim imenom te postavitiinicijalnu domenu razgovora putem oznake < topic > i poziva polaznu kategoriju teme pomocuoznake < srai >. Krapje tema sadržavat ce kategorije za promjenu poddomene razgovora teopcenite informacije o selu Krapju. Pocetna kategorija selekcije dana je u nastavku.

Listing 6.13: Pocetna kategorija selekcije

<category>

<pattern>TOPIC SELECT</pattern>

<that>*</that>

<template>

I am <bot name="name"/>, you can ask me anything about Krapje!

<think><set name = "topic">KRAPJE</set></think><srai>START</srai>

</template>

</category>

Definicija domene Krapje i njene polazne kategorije dana je u nastavku.

Listing 6.14: Polazna kategorija domene Krapje

<topic name="KRAPJE">

<category>

<pattern>START</pattern>

<template>Which side you want to explore first?

We can talk about gastronomy, architecture, receration,

nature or popular tourist attractions?</template>

</category>

</topic>

Pocetna kategorija korisniku ce predstaviti moguce teme o kojima mogu razgovarati. Kako biagent bio sposoban razumjeti korisnikov odgovor definirat ce se kategorije koje izvlace željenutemu iz korisnikovog odgovora putem oznake < star > te ju preusmjeriti na kategoriju selekcijepoddomene. Nekoliko primjera kategorija izvlacenja teme je prikazano u nastavku.

Listing 6.15: Pocetna kategorija selekcije

<category>

<pattern>* TALK ABOUT *</pattern>

<template>

<srai>

<uppercase><star index="2"/> CHOICE</uppercase>

</srai>

</template>

</category>

<category>

<pattern>* KNOW MORE ABOUT *</pattern>

42

Page 49: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

<template>

<srai>

<uppercase><star index="2"/> CHOICE</uppercase>

</srai>

</template>

</category>

.

.

.

<category>

<pattern>* TELL ME ABOUT *</pattern>

<template>

<srai>

<uppercase><star index="2"/> CHOICE</uppercase>

</srai>

</template>

</category>

Kategorija selekcije poddomene prvo odgovori korisniku da je izvrsno odabrao te zatim postavipoddomenu na temelju korisnikovog ulaza pomocu oznake < srai >.

Listing 6.16: Kategorija selekcije poddomene

<category>

<pattern>* CHOICE</pattern>

<template>

<random>

<li><lowercase><star index="1"/></lowercase>

is wonderful choice!

</li>

<li><lowercase><star index="1"/></lowercase>

is amazing choice!

</li>

<li><lowercase><star index="1"/></lowercase>

is awesome choice!

</li>

</random>

<srai><uppercase><star index="1"/></uppercase></srai>

</template>

</category>

Kako bi se korektno postavila poddomena moraju se pokriti svi slucajevi korisnikovih ulazašto bi znacilo i pokrivanje sinonima za danu listu tema razgovora. U nastavku su definiranekategorije koje pokrivaju navedene slucajeve.

Listing 6.17: Kategorije postavljanja poddomena

<category>

<pattern>GASTRONOMY</pattern>

<template>

<think><set name="topic">GASTRONOMY</set></think><srai>START</srai>

</template>

</category>

43

Page 50: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

<category>

<pattern>CUISINE</pattern>h

<template>

<think><set name="topic">GASTRONOMY</set></think><srai>START</srai>

</template>

</category>

<!-- recreation -->

<category>

<pattern>RECREATION</pattern>

<template>

<think><set name="topic">RECREATION</set></think><srai>START</srai>

</template>

</category>

<category>

<pattern>SPORT</pattern>

<template>

<think><set name="topic">RECREATION</set></think><srai>START</srai>

</template>

</category>

<!-- architecture -->

<category>

<pattern>ARCHITECTURE</pattern>

<template>

<think><set name="topic">ARCHITECTURE</set></think><srai>START</srai>

</template>

</category>

.

.

.

<category>

<pattern>TOURISM</pattern>

<template>

<think><set name = "topic">TOURIST</set></think><srai>START</srai>

</template>

</category>

Navedene kategorije postavljaju poddomenu razgovora pomocu oznaka < set > i < think >.Postavljanje je omotano oznakom < think > kako bi se proces postavljanja sakrio od korisnika.Nakon postavljanja poddomene pozvat ce se inicijalna kategorija odabrane teme.

Kako bi se pokrili slucajevi odabira teme koju agent ne zna ili nekog drugog pitanja izvanopsega agenta definirat ce se generali odgovor koji ce poceti proces odabira ispocetka.

Listing 6.18: Kategorija ulaza izvan domene agenta

<category>

<pattern>*</pattern>

<template>Selected topic is out of my scope. <srai>START</srai> </template>

</category>

44

Page 51: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

Slika 11: Prioriter podudranja prilikom postavljene poddomene

6.2.3. Kategorije poddomena

Baza znanja o specificnim karakteristikama Krapja bit ce definirana u kategorijama pod-domena. Kategorije poddomena bit ce organizirane pomocu oznake < topic >. Svaka poddo-mena bit ce definirana unutar svoje oznake < topic >. Ako je aktivirana odnosno postavljenaodredena poddomena pomocu oznake < set >, kategorije unutar navedene oznake imat ceviši prioritet prilikom podudaranja ulaza korisnika. Prikaz redoslijeda podudaranja prikazan jena slici (11).

Prikaz par kategorija poddomene gastronomije Krapja prikazano je u nastavku. Na istinacin definirat ce se kategorije ostalih poddomene uz pomoc AIML oznaka.

45

Page 52: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

Listing 6.19: Kategorije poddomene gastronomija

<topic name="GASTRONOMY">

<category>

<pattern>WHAT * DISHES *</pattern>

<template><srai>DISHESLIST</srai></template>

</category>

<category>

<pattern>WHAT * EAT *</pattern>

<template><srai>DISHESLIST</srai></template>

</category>

<category>

<pattern>WHAT * EAT</pattern>

<template><srai>DISHESLIST</srai></template>

</category>

<category>

<pattern>DISHESLIST</pattern>

<template>

Dishes that you need to try are Trganci,

Palenta with pork, Corn Strudel,

Children joy,

Fish stews,

Goulash,

Chicken with mules,

Smoked carp,

Luce,

Boiled ham and eggs.

</template>

</category>

.

.

.

<category>

<pattern>WHAT ARE *</pattern>

<template>

<srai><uppercase><star index="1"/></uppercase></srai>

</template>

</category>

<category>

<pattern>WHAT IS *</pattern>

<template>

<srai>

<uppercase><star index="1"/></uppercase>

</srai>

</template>

</category>

46

Page 53: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

<category>

<pattern>TRGANCI</pattern>

<template>Special type of pasta which is cutted in long and flat pieces.

Often served with bacon, tomato sauce or sour cream </template>

</category>

<category>

<pattern>GOULASH</pattern>

<template>Stew of meat and vegetables,

seasoned with paprika and other spices.</template>

</category>

<category>

<pattern>CHILDREN S JOY</pattern>

<template>Bread with jam and butter.

In other cuisines you can find it by name jam and butter.</template>

</category>

</topic>

6.2.4. Kategorije osobnosti

Kategorije osobnosti predstavljaju pravila odgovora na korisnikove ulaze koji ispitujuagenta o njegovim osobnim informacijama i generalna pitanja koja se mogu javiti prilikom cavr-ljanja. Ove kategorije zadužene su za otkrivanje informacija o agentu te iskazivanja njegovogmišljenja o odredenim temama. Informacije koje agent može podijeliti s korisnicima su njegovoime, spol, mjesto stanovanja i ostale. Takoder, vrlo je važno agentu dati barem tracak osobnostikako korisnici ne bi imali potpuno umjetni dojam prilikom razgovora. Zbog toga definirat ce sepravila generalnog cavrljanja. Nekoliko primjera kategorija koje otkrivaju osobne informacijeagenta dane su u nastavku.

Listing 6.20: Kategorija ulaza izvan domene agenta

<category>

<pattern>*</pattern>

<template>Selected topic is out of my scope. <srai>START</srai> </template>

</category>

Listing 6.21: Kategorije otkrivanja agentovih osobnih informacija

<category>

<pattern>ARE YOU MALE</pattern>

<template>

I am a <bot name="gender"/>.

</template>

</category>

.

.

.

<category>

<pattern>WHERE DO YOU LIVE</pattern>

<template>

47

Page 54: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

<random>

<li>I am living in <bot name="location"/>.

</li>

<li>My location is <bot name="location"/>.

</li>

</random>

Where are you from?

</template>

</category>

Kako bi agent bio efikasniji u domeni generalnog cavrljanja potrebno je definirati kategorije kojece poticati nastavak dijaloga te kategorije koje ce pratiti kontekst dosadašnjeg razgovora. Ka-tegorije koje odgovaraju odredenom kontekstu definirat ce se s dodatnom oznakom < that >.Oznaka < that > omogucava davanje odgovora prema prijašnjem kontekstu razgovora. Pret-postavimo da korisnik agenta upita što on jede. Agentov odgovor ce biti da voli jesti autohtonajela iz Krapja. Nakon navedene izmjene postoji mogucnost da korisnik agenta pita tocno kojaautohtona jela voli jesti. Kako bi agent znao odgovoriti na navedeno pitanje mora znati da tre-nutno razgovaraju o jelima. Oznakom < that > definirat cemo da ce se ova kategorija odabratisamo ako je agentov prošli odgovor bio da jede autohtona jela iz Krapja. Primjer kategorija kojepokrivaju navedeni slucaj dan je u nastavku.

Listing 6.22: Pracenje konteksta

<category>

<pattern>WHAT DO YOU EAT</pattern>

<template>

I eat authentic dishes from Krapje.

</template>

</category>

<category>

<pattern>WHAT KIND OF *</pattern>

<that>_ DISHES FROM KRAPJE</that>

<template>

I often eat

<random>

<li>meal called Trganci</li>

<li>meal called Strukli</li>

<li>meal called Sarma</li>

</random>

.

<think><set name="topic">GASTRONOMY</set></think>

</template>

</category>

6.2.5. Odlazne kategorije

Dijalog obicno završava pozdravom izmedu sugovornika. Stoga ce se definirati kate-gorije koje ce služiti za odlazne pozdravne poruke prema korisnicima. Kategorije ce biti smje-štene unutar dokumenta krapje-goodbye.xml. Definirani skup kategorija bit ce definiran tako

48

Page 55: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

da se pokriju sve moguce opcije prekida razgovora. Skup definiranih kategorija pomocu oz-nake < srai > ce pozvati korijensku kategoriju odlaznog odgovora. Nekoliko primjera odlaznihkategorija dano je u nastavku.

Listing 6.23: Odlazne kategorije

<category>

<pattern>* BYE</pattern>

<template>

<srai>BYE</srai>

</template>

</category>

<category>

<pattern>BYE *</pattern>

<template>

<srai>BYE</srai>

</template>

</category>

Korijenska odlazna kategorija nasumicno ce generirati odgovor u kojem korisniku daje do zna-nja da je razgovor završio. Kategorija je prikazana u nastavku.

Listing 6.24: Korijenska odlazna kategorija

<category>

<pattern>BYE</pattern>

<template>

<random>

<li>Goodbye <get name="user_name"/>.</li>

<li>Until next time <get name="user_name"/>.</li>

</random>

</template>

</category>

6.3. Primjer dijaloga

U nastavku, bit ce prikazan jedan primjer izvodenja dijaloga s agentom. Dijalog ce seprikazati kao niz izmjena izmedu korisnika i agenta.

49

Page 56: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

Br. Izmjene Korisnikov ulaz Agentov odgovor1. Hello Hello vistor!

What can I callyou?

2. You can call meLeon

Nice to meet youLeon. I am Levi,you can ask meanything aboutKrapje! Whichside of Krapjeyou want to ex-plore first? Wecan talk aboutGastronomy,Architecture, Re-ceration, Natureor popular touristattractions?

3. Lets talk aboutarchitecture

architecture iswonderful choice!Krapje is rich withtraditional Posa-vina houses, builtby horizontallylayering oak-treeplanks, put toget-her by woodenpegs, representthe climax ofCroatian ruralfolk architecturein wood.

50

Page 57: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

4. Please tell memore abouthouses

Houses are cha-racterized by thecovered outsidestaircases, thearchaic porches,the protectivesmall roofs andthe richly deco-rated details onthe fences andcolumns, thewindow sealsdecorated bycarvings, thewooden bars andfences.

5. Why are stairca-ses placed out-side?

They were pla-ced outside toprotect entrancefrom weatherprecipitation.

51

Page 58: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

6. Can you tell memore about porc-hes?

Porches wereused to protectentrance to thehouse and theyare usually pla-ced on the southside of the house.

7. Why are theyplaced on southside?

Porches wereplaced on southside becauseof need to drygoods like be-ans, cheese andother.

8. Can we talk nowabout gastro-nomy?

Gastronomy iswonderful choice!Krapje cuisinereflects its ge-ography, cultureand history.Fertile lands ofPosavina, richhunting areaand Christianholidays werefoundation formany recepiesthat stick throughtime.

9. How did christi-anity affect gas-tronomy

Most of the Kra-pje’s populationthorugh timewere Christians.That causedretention of tra-ditional mealslike boiled hamand eggs withonions in timeof the Easter,sarma(meat-stuffed cabbageleaves) andpork cooked inopen fire duringChristimas week.

52

Page 59: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

10. What kind of di-shes can I eat inKrapje?

Dishes that youneed to try areTrganci, Palentawith pork, CornStrudel, Chil-dren’s joy, Fishstews, Goulash,Chicken withmules, Smokedcarp, Luce, Bo-iled ham andeggs.

11. What are trganci? Special type ofpasta which iscutted in longand flat pieces.Often served withbacon, tomatosauce or sourcream

12. That sounds deli-cious

It is!

13. What do you liketo eat?

I like to eat mealcalled Sarma

14. What is Sarma? Sarma is a dishconsisting ofcooked cabbageleaves wrappedaround mincedmeat.

15. Delicious It is!16. What do you think

about Trump?I don’t know an-swer to that ques-tion

17. What do you thinkabout snow?

I don’t know an-swer to that ques-tion

18. Hmm thank youfor your answers!

Your welcome

19. Goodbye Levi Goodbye Leon

53

Page 60: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

7. Zakljucak

U ovom diplomskom radu prvotno je prikazan uvod u polje agenata koji komuniciraju go-vornim jezikom zajedno s podjelom agenata prema njihovoj taksonomiji te prema istraživackimciljevima. Prikazane su osnovne karakteristike prvih agenata koji su komunicirali govornim je-zikom te kako se odvijao daljnji razvoj agenata i nacin evaluacije istih. Podjela agenata premataksonomiji na generativne i pretraživacke agente dala je uvid u ogranicenja i prednosti obapristupa. Odabir agenta prema taksonomiji uvelike ovisi o domeni za koju je agent namijenjen.Ako je domena dovoljno uska i zatvorena moguce je razviti agenta pomocu pretraživackog pris-tupa koji ce pokriti dovoljan broj scenarija kako bi ga korisnici ocijenili zadovoljavajucom ocje-nom. Ako agent ima specifican cilj koji mora zadovoljiti unutar zadane domene, pretraživackipristup dat ce mnogo bolje rezultate od generativnog pristupa. Otvorena domena predstavljaveliki problem današnjim agentima. Nemoguce je pokriti sva moguca stanja dijaloga i smjeroveu koje dijalog može ici pomocu predefiniranih odgovora, koji su temelj pretraživackog pristupa.Otvorena domena za sada se pokušava riješiti generativnim modelima u kojima se agent mo-delira kao parametarski matematicki model koji nastoji nauciti zadanu distribuciju predstavljenupomocu podatkovnih skupova koji su nastali prikupljanjem izmjena dijaloga. Inspiracija ovompristupu su nedavni uspjesi nadziranog ucenja. Medutim, i dalje generativni ne postižu zavidnerezultate u otvorenoj domeni.

Zbog loših rezultata agenata te same kompleksnosti nad otvorenom domenom, istra-živacka zajednica odlucila je promijeniti pristup dijalogu te ga podijeliti na manje ispunjenivijeciljeve. Pretpostavka je ako se ispune manji ciljevi, njihovom kombinacijom mogu se posticivisoke performanse u otvorenoj domeni. Ciljevi su u ovom radu predstavljeni kao istraživackegrane. Objašnjena je svaka istraživacka grana te su prikazni jedni od uspješnijih pristupa zasvaku granu.

Nadalje, definirana je problematika dostupnosti turistickih informacija za mjesto Kra-pje te rješenje pomocu jednog agenta koji govori govornim jezikom. Odabran je pretraživackipristup temeljen na AIML jeziku zbog zatvorenosti i specificnosti domene. Prikazana je im-plementacija agenta pomocu AIML jezika te Python programskog jezika. Rucno je definiranabaza znanja te pravila kojima agent odgovora na korisnikove ulaze. Agent se strukturirao premasadržajima koje Krapje može ponuditi svojim posjetiteljima te mu se dodijelila odredena dozaosobnosti. Takoder, prikazao se jedan moguci scenarij izvodenja razgovora s agentom.

Dijalog predstavlja sveti gral umjetne inteligencije. Agent koji ce moci voditi dugorocnismisleni razgovor s korisnikom, bit ce upisan u povijest kao jedno od najvecih dostignuca zna-nosti. Mogucnost vodenja smislenog razgovora za sada posjeduju samo inteligentna bica kaoljudi. Rješavanje ovog problema bit ce jedan veliki korak prema generalnoj umjetnoj inteligen-ciji. Trenutno stojimo daleko od potencijalnog rješenja, trenutne tehnike i modeli ne posjedujudovoljnu moc za rješavanje te ce biti potrebno provesti mnogo osnovnog znanstvenog istra-živanja na temu dijaloga. Iako smo trenutno daleko, pozitivan trend prihvacanja agenata kojikomuniciraju govornim jezikom može znatno ubrzati put do zadanog cilja.

54

Page 61: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

Popis literature

[1] J. Weizenbaum, „ELIZA&Mdash;a Computer Program for the Study of Natural LanguageCommunication Between Man and Machine”, Commun. ACM, sv. 9, br. 1, str. 36–45,sijecanj 1966, ISSN: 0001-0782. DOI: 10.1145/365153.365168. adresa: http://doi.acm.org/10.1145/365153.365168.

[2] K. M. Colby, Artificial Paranoia: A Computer Simulation of Paranoid Processes. New York,NY, USA: Elsevier Science Inc., 1975, ISBN: 0080181627.

[3] M. L. Mauldin, „ChatterBots, TinyMuds, and the Turing Test: Entering the Loebner PrizeCompetition”, Proceedings of the Twelfth National Conference on Artificial Intelligence(Vol. 1), serija AAAI ’94, Seattle, Washington, USA: American Association for ArtificialIntelligence, 1994, str. 16–21, ISBN: 0-262-61102-3. adresa: http://dl.acm.org/citation.cfm?id=199288.199285.

[4] A. M. Turing, „Computers &Amp; Thought”, E. A. Feigenbaum i J. Feldman, ur., Cam-bridge, MA, USA: MIT Press, 1995, pogl. Computing Machinery and Intelligence, str. 11–35, ISBN: 0-262-56092-5. adresa: http : / / dl . acm . org / citation . cfm ? id =216408.216410.

[5] R. S. Wallace, „The Anatomy of A.L.I.C.E.”, Parsing the Turing Test: Philosophical andMethodological Issues in the Quest for the Thinking Computer, R. Epstein, G. Robertsi G. Beber, ur. Dordrecht: Springer Netherlands, 2009, str. 181–210, ISBN: 978-1-4020-6710-5. DOI: 10.1007/978-1-4020-6710-5_13. adresa: https://doi.org/10.1007/978-1-4020-6710-5_13.

[6] Y. Wu, M. Schuster, Z. Chen, Q. V. Le, M. Norouzi, W. Macherey, M. Krikun, Y. Cao,Q. Gao, K. Macherey, J. Klingner, A. Shah, M. Johnson, X. Liu, Ł. Kaiser, S. Gouws,Y. Kato, T. Kudo, H. Kazawa, K. Stevens, G. Kurian, N. Patil, W. Wang, C. Young, J.Smith, J. Riesa, A. Rudnick, O. Vinyals, G. Corrado, M. Hughes i J. Dean, „Google’sNeural Machine Translation System: Bridging the Gap between Human and MachineTranslation”, CoRR, sv. abs/1609.08144, 2016. adresa: http://arxiv.org/abs/1609.08144.

[7] I. Sutskever, O. Vinyals i Q. V. Le, „Sequence to Sequence Learning with Neural Networks”,Proceedings of the 27th International Conference on Neural Information Processing Sys-tems - Volume 2, serija NIPS’14, Montreal, Canada: MIT Press, 2014, str. 3104–3112.adresa: http://dl.acm.org/citation.cfm?id=2969033.2969173.

55

Page 62: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

[8] L. C. Jain i L. R. Medsker, Recurrent Neural Networks: Design and Applications, 1st.Boca Raton, FL, USA: CRC Press, Inc., 1999, ISBN: 0849371813.

[9] R. Pascanu, T. Mikolov i Y. Bengio, „Understanding the exploding gradient problem”,CoRR, sv. abs/1211.5063, 2012. arXiv: 1211.5063. adresa: http://arxiv.org/abs/1211.5063.

[10] K. Cho, B. van Merrienboer, D. Bahdanau i Y. Bengio, „On the Properties of Neural Mac-hine Translation: Encoder-Decoder Approaches”, CoRR, sv. abs/1409.1259, 2014. arXiv:1409.1259. adresa: http://arxiv.org/abs/1409.1259.

[11] S. Hochreiter, Untersuchungen zu dynamischen neuronalen Netzen. Diploma thesis, Ins-titut für Informatik, Lehrstuhl Prof. Brauer, Technische Universität München, 1991.

[12] O. Vinyals i Q. V. Le, „A Neural Conversational Model”, CoRR, sv. abs/1506.05869, 2015.arXiv: 1506.05869. adresa: http://arxiv.org/abs/1506.05869.

[13] A. Bordes, N. Usunier, S. Chopra i J. Weston, „Large-scale Simple Question Answeringwith Memory Networks”, CoRR, sv. abs/1506.02075, 2015. arXiv: 1506.02075. adresa:http://arxiv.org/abs/1506.02075.

[14] Y. Yang, S. W.-t. Yih i C. Meek, „WikiQA: A Challenge Dataset for Open-Domain Ques-tion Answering”, ACL – Association for Computational Linguistics, rujan 2015. adresa:https://www.microsoft.com/en-us/research/publication/wikiqa-a-

challenge-dataset-for-open-domain-question-answering/.

[15] S. Sukhbaatar, A. Szlam, J. Weston i R. Fergus, „Weakly Supervised Memory Networks”,CoRR, sv. abs/1503.08895, 2015. arXiv: 1503.08895. adresa: http://arxiv.org/abs/1503.08895.

[16] C. Xiong, V. Zhong i R. Socher, „Dynamic Coattention Networks For Question Answering”,CoRR, sv. abs/1611.01604, 2016. arXiv: 1611.01604. adresa: http://arxiv.org/abs/1611.01604.

[17] S. Antol, A. Agrawal, J. Lu, M. Mitchell, D. Batra, C. L. Zitnick i D. Parikh, „VQA: VisualQuestion Answering”, International Conference on Computer Vision (ICCV), 2015.

[18] C. Xiong, S. Merity i R. Socher, „Dynamic Memory Networks for Visual and Textual Ques-tion Answering”, CoRR, sv. abs/1603.01417, 2016. arXiv: 1603.01417. adresa: http://arxiv.org/abs/1603.01417.

[19] F. Hill, A. Bordes, S. Chopra i J. Weston, „The Goldilocks Principle: Reading Children’sBooks with Explicit Memory Representations”, CoRR, sv. abs/1511.02301, 2015. arXiv:1511.02301. adresa: http://arxiv.org/abs/1511.02301.

[20] J. Weston, A. Bordes, S. Chopra i T. Mikolov, „Towards AI-Complete Question Answering:A Set of Prerequisite Toy Tasks”, CoRR, sv. abs/1502.05698, 2015. arXiv: 1502.05698.adresa: http://arxiv.org/abs/1502.05698.

[21] M. Henaff, J. Weston, A. Szlam, A. Bordes i Y. LeCun, „Tracking the World State with Re-current Entity Networks”, CoRR, sv. abs/1612.03969, 2016. arXiv: 1612.03969. adresa:http://arxiv.org/abs/1612.03969.

56

Page 63: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

[22] R. Lowe, N. Pow, I. Serban i J. Pineau, „The Ubuntu Dialogue Corpus: A Large Datasetfor Research in Unstructured Multi-Turn Dialogue Systems”, CoRR, sv. abs/1506.08909,2015. arXiv: 1506.08909. adresa: http://arxiv.org/abs/1506.08909.

[23] C. Danescu-Niculescu-Mizil i L. Lee, „Chameleons in imagined conversations: A newapproach to understanding coordination of linguistic style in dialogs.”, Proceedings of theWorkshop on Cognitive Modeling and Computational Linguistics, ACL 2011, 2011.

57

Page 64: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

Popis slika

1. Vizualizacija tri koraka povratne neuronske mreže . . . . . . . . . . . . . . . . . 4

2. Vizualizacija izracuna troška za tri koraka povratne neuronske mreže . . . . . . . 5

3. Širenje pogreške u koraku t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

4. Okvir "iz slijeda u slijed" (Izvor: Vinyals i Le, 2015) . . . . . . . . . . . . . . . . . 10

5. Povratna neuronska mreža za generiranje predefiniranog odgovora . . . . . . . . 17

6. Memorijska mreža (Izvor: Sukhbaatar, Szlam, Weston i dr., 2015) . . . . . . . . 20

7. Vizualno odgovaranje na pitanja (Izvor: Antol, Agrawal, Lu i dr., 2015) . . . . . . 22

8. Ulazni modul (Izvor: Xiong, Merity i Socher, 2016) . . . . . . . . . . . . . . . . . 23

9. Tok dijaloga jednostavnog agenta za kupovinu leta . . . . . . . . . . . . . . . . . 32

10. Pojednostavljena arhitektura miješano inicijativnog agenta . . . . . . . . . . . . . 34

11. Prioriter podudranja prilikom postavljene poddomene . . . . . . . . . . . . . . . . 45

58

Page 65: AGENTI ZA KOMUNICIRANJE U GOVORNOM JEZIKU · U ovom diplomskom radu obradena je tema agenata koji komuniciraju govornim ... umov cilj je bio prikazati kako racunala ne mogu voditi

Popis tablica

1. Obrada recenice u AIML jeziku . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

59