Võrgurobotid ja nende kasutusalad

From ICO wiki
Jump to navigationJump to search

Sissejuhatus

Viimaste aastate masinõppe ja andmeanalüüsi teadus- ja uurimistööd on tekitanud plahvatusliku botide kasvu. Varsti on erinevad botid kasutuses juba igas valdkonnas. Suuremad tehnoloogiahiiud on välja toonud lausa oma tooted. Alljärgnevalt uurime ja testime lähemalt vestlusbote, sest inimese-arvuti suhtluses on alanud uus ajastu vestlusliidese tugeva pealetulekuga.

Mis on bot?

Interneti robot (Internet bot, web robots) ehk lühemalt öeldes bot, on algoritmide kogum, mis täidab automaatseid, korduvaid ning eelnevalt määratletud ülesandeid internetis, mis inimeste jaoks on tüütud ja aeganõudvad [1].

Bot on otsingumootorite alustalaks, mille eesmärk on teostada interneti süvaotsingut ja andmekaevamist, et sinu otsingule vasteid anda. Osa neist robotitest töötavad automaatselt ja osad käivitatakse ainult konkreetse sisendi saamisel. Automatiseeritud skriptid leiavad, analüüsivad ja esitavad saadud informatsiooni interneti veebiserveritest mitmeid kordi kiiremini kui inimene seda jõuaks teha.  Internetis on kõige rohkem kasutust leidnud nn indekseerimisrobotid, mida tuntakse ka internetis roomaja (web crawlers [2]) või ämbliku (web-spiders) nime all. Nende ülesandeks on koguda automaatselt infot otsimootorite jaoks, monitoorides URL-e (veebilehe aadresse), kodulehti, blogisid, foorumeid, uudisteportaale jne, indekseerides nende sisu nagu pealkirju, teateid, pildinimetusi, tekstiosa – lauseid, lausepaare, märksõnu lausetes jne [3].

Veebiroboti eesmärgiks võib pidada internetis oleva info väärtustamist ning kasulikuks muutmist. Üldiselt pole ka mingi uudis see, et veebilehtede põhikülastajateks ei ole inimesed vaid hoopis botid, mis moodustavad natuke üle 50% kogu veebiliiklusest. Üle poole boti veebiliiklusest tekitatakse nn pahade botide poolt [4].

Paha bot

Pahatahtlik bot on automaatselt leviv õelvaraline robot, mis otsib internetist monitoorimise teel haavatavaid ja kaitsmata arvuteid või paigaldatakse turvavigadega veebilehtedele trooja, uss jne, millel viibides samuti nakatatakse arvutid märkamatult pahavarasse, saates sellest kohe automaatselt teate kuritegeliku bot´i loonud inimesele. Nakatatud arvuti abil saab küberkurjategija (botmaster) haarata kaugjuhtimise teel kogu kontrolli kasutaja arvuti üle ja vastavalt eesmärgile salvestada klahvivajutusi, koguda paroole või finantsteavet, teostada identiteedivargust, käivitada DDoS rünnakuid, saata rämpsposti või levitada kontrolli all olevast arvutist teistele kasutajatele edasi arvutiusse, viiruseid, troojaid jm pahavara [5].

Nakatatud arvuteid nimetatakse ka zombie-arvutiteks ning nende abil üritatakse omakorda nakatada servereid ja internetivõrku ühendatud teisi arvuteid ning luua sellise rünnaku abil botnet-võrgustik. Tõesti, pahade bottide puhul räägitakse robotvõrgustikust.

Botnetiks ehk robotvõrguks (robot network) nimetatakse küberkurjategijate poolt kontrollitavat arvutikogumit, mis, samal ajal kui pahaaimamatud omanikud mängivad, surfavad või muid igapäevaseid toimetusi teevad, pommitab mõnd veebiserverit tühiste päringutega, kuni see enam koormuse all vastu ei pea, serveerib porno- või piraattarkvarakollektsiooni, nakatab uusi arvuteid ja saadab laiali spämmi. Kontrolli alla saamiseks rünnatakse arvutit kas mõne turvaaugu kaudu (eriti kui arvutis on vananenud ja paikamata tarkvara), sagedamini aga pahavara abil, mis satub teie arvutisse kas kiirsuhtlusprogrammi või elektronposti kaudu või siis kuritahtlikke veebilehti külastades [6]

Botnetti võib kuuluda miljoneid arvuteid, viimasel ajal aga näivad kurjategijad arvavat, et kõige optimaalsem ja ohutum on pidada väikesi, paarikümnest tuhandest arvutist koosnevaid botnette, millest aga täpse rünnaku jaoks piisab täiesti [7].

Tavaliselt arvutikasutaja ei oska kahtlustada seesuguse tarkvara olemasolu oma arvutis, sest pahavara toimetab arvutis märkamatult ega anna endast ekraanil kuidagi teada. Samas on saad netis suht kiirelt juhtnööre, kuidas veenduda, et pahavara pole sinu arvutisse sattunud [8].

Hea bot

Nagu eelnevalt mainitud, siis boti peamiseks ülesandeks võib pidada internetis oleva info kasulikuks muutmist. Näitena võib siin tuua Googlebot’i [9], mis kammib Goolge jaoks läbi interneti avarusi ning märksõnade, tekstiosade jms järgi sisu indekseerib ja siis päringule kiire vastuse annab.

Hea boti näiteks on ka vestlusrobot (chatbot, talkbot, chatterbot, Bot, IM bot, interactive agent, Artificial Conversational Entity) [10]. Lihtsamalt öeldes on vestlusrobot arvutiprogramm, mis simuleerib arukat suulist või kirjalikku vestlust ühe või mitme inimesega [11]. Botid suhtlevad klientidega läbi vestlusrakenduste ning vastatavad neile esitatud küsimustele kiirelt ja efektiivselt kas klaviatuuri abil või ka häälega. Bot alustab suhtlust mingi sisendi alusel ja tavaliselt peab inimene ise boti poole pöörduma. Sisuliselt ei pruugi me tulevikus aru saada, kas räägime inimese või arvutiga, kuna botid õpivad käigu pealt ning muutuvad ajaga veelgi nutikamateks.

Järjest enam ettevõtteid suunavad oma tähelepanu ning energiat veebirobotite arendamiseks ning integreerimiseks meie igapäevaste tegevustega. Viimastel kuudel on tulnud mitmeid uudiseid vestlusrobotite kasutusele võtust Eestis.

Hiljuti valmis Päästeametil Facebooki vestlusrobot, mis teadaolevalt on Eesti esimene riigisektoris kasutatav vestlusrobot. Päästeameti vestlusrobot töötab sarnaselt paljudele teistele platvormillevivatele robotitele: kui kasutaja alustab vestlust, uurib robot, millega ta aidata saab ning kui kasutaja valib endale meelepärase valiku, annab robot selle kohta infot. Hetkel on roboti vastused seotud peamiselt tuleohutusega [12]. [13]. LHV Panga Facebook lehe sõnumirakenduses vastab nüüd kõikidele klientide küsimustele vestlusrobot Uku, mis on masinõppel põhinev klienditoe lahendus. Nimetatud virtuaalteenindaja oskab vastata lihtsamatele ja korduma kippuvatele küsimustele ning aitab kaasa teeninduskvaliteedi tõstmisele, kuna klienditoe inimteenindajatel jääb rohkem aega keerulisematele küsimustele vastamiseks ja süvenemist vajavate murede lahendamiseks [14].

SEB pank oma käivitanud ka oma esimese vestlusroboti, mille eesmärgiks on aidata panga kliente ISIC-kaardi tellimisel ning selle üheaegsete vestluste arv on piiramatu. Vestlusroboti väljatöötamine võttis aega 1,5 kuud ning seda on võimalik edasi arendada, et see oskaks vastata ka muudele pangateenuseid puudutavatele küsimustele. Järgmisena on pangal plaanis töötada välja programmeeritud vestlusrobot, mis aitaks leida kliendi jaoks parimat internetipanga autentimislahendust. Pangal on kavas suurendada oma tehisabiliste hulka, kuna seda tarka süsteemi ei kammitse tööaeg, klientide arv või muud inimlikud piirangud [15] Samas SEB pangal on Rootsis kasutuses oma digitaalne klienditeenindaja AIDA, kes oskab lisaks vastamisele ka õppida. AIDA filtrid on tõhusad ja pangasaladusi ta ei reeda. Tehisintellekt on viimaste aastatega oluliselt arenenud, nii et enam ei saa korduda Microsofti katsetatud vestlusroboti juhtum, mil see õppis ära halvad kombed, mida Internetis talle õpetati ja hakkas ropendama [16].


Keerulisemad vestlusrobotid on tublisti „targemad”, kasutades tehisintellekti meetodeid kasutaja küsimuste mõistmiseks ja vajaduse järgi unikaalsete vastuste koostamiseks.

Vestlusrobotid

Ülevaade vestlusrobotite ajaloost

Jäljendusmäng

Vestlusroboti elujoont pidi tekkimise suunas liikudes võime jõuda isegi internetieelsesse aega. See, kas masin suudab mõelda ja käituda nagu inimene, on arvutiteadlasi paelunud juba esimese arvuti sünnist alates.

Teema uurimiseks lõi matemaatik ja arvutiteadlane Alan Turing nn Turingi testi, mida ta kirjeldab 1950. aastal ajakirjas Mind ilmunud artiklis "Computing Machinery and Intelligence”[1]. Ta nimetab seda testi jäljendusmänguks, sest ei väida artiklis, et testi läbiv masin suudab mõelda, vaid et see suudab kohtuniku ära petta sarnanedes piisavalt inimesele. Jäljendusmängus on 3 mängijat: kaks inimest ja arvuti, kes kõik paiknevad eraldi tubades. Üks inimene trükib arvutisse küsimusi ning saab vastuseid nii teiselt inimesel kui arvutilt ning tema ülesandeks on arvata ära, kummaga parasjagu suhtleb. Tänaseks päevaks ei ole ükski arvuti Turingi testi läbida suutnud. Turing ise ennustas, et 20. sajandi lõpuks suudab arvuti, millel ligikaudu 120MB mälu, läbida testi edukalt 30% inimeste puhul.[2] Säärane tulemus õnnestus saavutada veidi hijlem, 2014. aastal, mil programm nimega Eugene Goostman suutis ära petta kolmandiku kohtunikest, simuleerides 13-aastast ukraina poissi. See on ka seni parim tulemus.

Eliza

Eliza, esimese vestlusroboti, lõi 1966. aastal MITi arvutiteaduse professor Joseph Weizenbaum ning see koosnes vaid 200 koodireast. Eliza püüab simuleerida psühhoterapeuti vestlust. Eliza keeletöötlusreeglid on lihtsad. See otsis tekstist märksõnu ning asetas need siis vastuse sisse. Kui märksõna ei leitud, siis tagastab programm kas üldise vastuse või kordab eelmist. Oma ajastul oli Eliza väga populaarne, kuid siiski oli tal hulgaliselt puudujääke. Peamine neist muidugi see, et Elizaga ei olnud võimalik vestluses eriti süvitsi minna. [3] Siiski sai juba sel ajal selgeks, et inimene soovib suhelda tehnoloogiaga samal moel nagu omavahelgi, kuid selle reaalsuseks saamist takistas vähene tehnoloogiline teadmine.

Elizat on võimalik ise testida siit. http://www.masswerk.at/elizabot/

Nutiseadmed

Nutitelefonide populaarsuse tohutu kasv 2000ndate alguses nõudis veebilehtede ümbertegemist nõnda, et need mahutuksid hugla väiksemale ekraanile, ent säilitaksid samas kogu funktsionaalsuse. Selline kohandamine tõi kaasa tohutu hulga äppide sünni, millest kõige populaarsemad on erinevad suhtlus- ja sõnumivahetusrakendused. [4] Inimene on sotsiaalne olend ning armastab suhelda, aga mis oleks loomulikum ja mugavam kui otsene kõnekeelne suhtlus? Suhtlemine on aastatega muutunud kiiremaks, mugavamaks ja reaalsemaks ning õigepea on ilmselt ka puutetundlikul ekraanil tähtede valimine juba minevik. Seda mõistavad väga hästi ka suurkorporatsioonid nagu Google ja Amazon, kelle hiljuti turule toodud kodurobotid Amazon Echo ja Google Home on sootuks ekraanivabad seadmed, millega vesteldes võib inimene saada vastuseid nii kõiksugustele küsimustele kui juhtida ka suurt hulka seadmeid ning suhelda sõpradega ilma ainsatki liigutust tegemata.

Tuntumad vestlusrobotid ja nende võrdlus

Selleks, et võrrelda nutikaid abimehi vaatame neid natuke lähemalt ja teeme nendega mõned katsed, mis näitavad, kui hästi üks või teine nendest toimib ja mis raskusi tekitab.

Siri

Siri on Apple poolt loodud intelligentne isiklik abimees(naine), kes aitab kasutajal erinevaid toiminguid kiiremini teha. Näiteks aitab Siri sõnumeid saata, kõnesid vastuvõtta ja kalendrist sündmusi vaadata või neid sinna lisada. Siri rakendus võeti kasutusele veebruaris 2010 ja kuulub Apple tarkvara juurde. Sirit on võimalik kasutada iPhone'is, iPad'is ja iPod touch'is. Sirit eraldi seadistama ei pea.


Kuidas Sirit kasutada? Siri poole pöördumiseks on mitu varianti:

  • Kodu ehk "Home" nupule vajutamine
  • Külgnupule ehk "Side" nupule vajutamine
  • "Hei Siri" ütlemisel. Antud funktsiooni kasutamiseks tuleb telefoni seadistuste all antud funktsioon sisse lülitada.


Siri kasutamisel erinevate iPhone'i versioonide puhul võivad esineda mõned väikesed erinevused. iPhone 6 või uuema versiooni puhul peab all hoidma näiteks kodu ehk "Home" nuppu. iiPhone X puhul tuleb vajutada külgnppu ehk "Side".

Sirit on võimalik kasutada 21 erinevas keeles ja 36 erinevas riigid. Eesti keelt nende hulgas veel ei ole.[17]

Apple on viimasel ajal ka Siri edasiarendusse panustanud. Viimaseid suuremaid Siri uuendusi on see, et Siri tõlgib ühest keelest teise reaalajas. Kasutaja ütleb lause näiteks inglise keeles ja Siri ütleb antud lause tõlke soovitud keeles. [18]


Cortana

Cortanat kirjeldatakse veebis, kui digitaalagenti, kes aitab kasutajal toiminguid kiiremini läbi häälkäskluste teha. Cortana võeti 2015 jaanuar kasutusele uue Windows 10 ühe rakendusena. Cortanaga suhtlemise alustamiseks tuleb kasutajal sisestada otsingukasti küsimus või valida mikrofon ja suhelda Cortanaga. Hea on see, et kirjavahetuse pidamine Cortanaga toimib alati, kuid häälkõne jaoks on vaja mikrofoni. [19] Sarnaselt Sirile on ka Cortanas võimalik seadistada "Hei, Cortana" käskulus, mille peale Cortana käivitub.

Cortana võimaldab:

  • Anda kasutajale meeldetuletusi aja, koha või inimeste põhjal
  • Saata e-kirju ja sisestada tekste
  • Hallata kalendrit ja vajadusel seda ajakohastada
  • Nimekirjade loomist ja haldamist
  • Chatis vestelda
  • Leida fakte, faile, kohti ja infot
  • Avada oma süsteemis kõik rakendused

Cortana on saadaval ainult teatud riikides / regioonides ja mõned Cortana funktsioonid ei pruugi kõikjal kätte saadaval olla. Hetkel on Cortana kättesadav 13 regioonis sealhulgas 8-s keeles. [20]


Googel Assistant

Rakendus Google Assistant on sarnane abimees nagu Siri või Cortana, kuid mõeldud siis Android telefonidele. Google Assistant'i käivitamine on lihne, vajutades kas Kodu ehk Home nupule või siis lihtsalt ödeldes "Ok Google".

Google Assistanti kaudu on võimalik saata sünnipäeva kaarti, kui parasjagu ei saa sõrmedega nuppe vajutada, siis läbi häälkäskluste on võimalik helistada ja paluda Google Assistandil mängida oma lemmik muusikat. Seda on võimalik kasutada igal ajal ja igal pool. Uuemates telefonides on Google Assistant juba sisse ehitatud, kuid olemas on ka rakendus "Google Assistant". Antud rakenduse installeerimiseks peavad olema täidetud järgmised miiinimumnõuded:Google Search v7.11 või uuemad ja miinimummälu nõuded siiski vastama Google Assistant nõuetele.

Google Assistant'i abil on võimalik teha järgmisi toiminguid [21]:

  • Teha kiireid telefonikõnesid ("Helista emale")
  • Saata tekstisõnumeid ("Tekst Sara ma jään hiljaks")
  • Määrata meeldetuletuseid ("Meeldetuletus Laurale sünnipäeva kingitus")
  • Määrata kalendrisündmuseid ("Kalendrisündmus kohtumine Karliga homme 7-9")
  • Muusika esitamine ("Esita jazzmuusika YouTube'is")
  • Navigeerida kohti ("Võta mulle suund koju")
  • Ilmateade ("Kas ma pean tänavihmavarju kaasa võtma?")
  • Värskeimate uudiste saamine ("Räägi mulle uudised")


Alexa

Alexa on sarnane abmees nagu eelmainitud 3, kuid kuulub Amazonile. Alexa on integreeritud paljudesse Amazoni teenustesse ja neid saab kasutada selliste toodetega nagu Amazonase Echo ja Amazon Fire TV.

Alexalt on võimalik küsida erinevaid küsimusi ja selleläbi peetakse ühendust pilevepõhise teenusega. Amazon on loonud Alexa Voice Service (AVS), et jäljendada tegelikke vestlusi, kuid kasutaja kasutab intuitiivseid häälkäsklusi, et seda teenust teatud ülesannete täitmiseks kasutada. "Alexa" on lihtsalt "äratatud sõna", mis teavitab teenust, et hakata oma häält kuulama. "Alexa Voice Service (AVS) on Amazoni intelligentne hääletuvastus ja loomuliku keele mõistmise teenus, mis võimaldab häälkõnesid kasutada, mis tahes ühendatud seadet, millel on mikrofon ja kõlar." [22]

Kuigi Alexa on ametlik nimi Amazoni hääleassistendile, siis samas on võimalik Alexa nimi ka ära muuta. See on eriti kasulik juhul, kui teil on peres inimene nimega Alexa.


Vestlusrobotitega läbi viidud testid

Selleks, et kõige paremini mõista erinevate vestlusrobotite funktsionaalsust ja töövõimekust viisime Siri, Cortana, Google Assistanti ja Alexaga läbi järgmised testid. Siriga läbi viidud testid on tehtud iPhone 6 peal, Cortana testimine on tehtud MacBook'i peal, Google Assistanti testimisel kasutati Androidi platvormil töötavat telefoni. Kõik küsimused on esitatud inglise keeles, kuid töösse oleme kirja pannud küsimused ja vastused eesti keeles, et oleks kõigile arusaadav. Nii testi küsimused kui testide tulemused on esitatud alljärgnevas tabelis. Testiküsimused oleme koostanud ise lähtudes sellest, et oleks kaetud erinevad funktsioonid.


Siri testimise käigus tehtud kuvatõmmised:

Cortana testimise käigus tehtud kuvatõmmised:


Testitulemuste kokkuvõte

Siriga läbi viidud testi tulemus on 13/14 ehk et valesti vastatud vastuseid oli ainult 1. Selle tulemustega võib rahul olla. Siri reageeris igale küsimusele väga kiiresti ja vastused olid selged ning ekraanile kuvatu oli õige ja informatiivne. On näha, et Siri õpetamisega on väga palju vaeva nähtud.

Cortanaga tehtud testidest 5 testi said tulemuseks "Testi ei läbitud" ja 3 testi puhul jäi tulemuseks "Testi tulemus ebamäärane". Seega 14'st testist 6 said positiivse hinnangu. Cortana rakendus töötas muidu väga aeglaselt ja jooksis mitmeid kordi kokku. Seetõttu ongi testi punktipallid suhteliselt madalad.

Google Assistanti puhul oli õigesti vastatud 12-le küsimusele 14-st, mis on hea tulemus. Kahel korral olid vastused ebamäärased, aga see võib olla seotud ka sellega, kuidas küsimused olid püstitatud. Testi alusel võiks väita, et Google Assistanti kvaliteet on võrdväärne Siri’ga.

Alexa testide puhul oli õigesti vastatud 6-le küsimusele 14-st. Ebamäärased vastused on tingitud seadistuste puudumisest. Tõenäoliselt Amazon ei ole nii pea valmis Alexa teenustele Eesti tuge looma. Seega mõningased ebamugavused selle seadmega püsivad veel mõnda aega Eesti turu jaoks. Veebilehelt alexa.amazon.com on võimalik lisada Alexale tuhandeid erinevaid oskusi ehk skille.

Läbiviidud testide põhjal saame öelda, et Siri ja Google Assistant on testitulemuste poolest suhteliselt võrdsed ning ka kasutajatele olid mõlemad võrgurobortid võrdväärsed.

Millised tehnoloogiad on veebirobotite taga ning kuidas nad õpivad?

Masinõpe

Masinõpe (Machine Learning) on arvutiteaduse haru, mis annab arvutile võime õppida, olemata selleks otseselt programmeeritud [23]. Kui programmeerimisel on muidu paika pandud programmi eesmärk ja ka kõik täpsed sammud selle saavutamiseks, siis masinõppe puhul seatakse arvuti probleemi ette ja arvuti ise leiab sellele lahenduse. Näiteks, kui ülesandeks on koerte piltidelt ära tundmine, siis ei anta talle konkreetset käsku analüüsida pildil olevat esmalt vurrude, siis nina, kõrvade ja saba põhjal, vaid ta õpib neid ära tundma tuhandete koerapiltide läbivaatamise teel.

Masinõpet kasutatakse väga laiaulatuslikult ülesannete juures, kus disainida ja programmeerida selgeid ja hästitoimivaid algoritme on keeruline või lausa võimatu. Selliste ülesannete hulka kuuluvad näiteks e-kirjade ja spämmi filtreerimine, ebatavalise käitumise tuvastamine (näiteks illegaalsed operatsioonid rahaga, süsteemi sissemurdmised jms), näotuvastus jne.

Masinõppe algoritmid jaotatakse tavaliselt juhendatud, juhendamata ja stiimulõppeks.

Juhendatud õppe algoritmid toetuvad uute andmete analüüsimisel varem õpitule ning selle najalt ennustavad midagi. See algoritm suudab võrrelda oma ennustust ka õige tulemusega ning selle põhjal parandada oma ennustusmudelit.

Juhendamata õppe algoritme kasutatakse, kui alginfo ei ole kuidagi klassifitseeritud ega määratletud ning selle eesmärk on leida andmekogumitest struktuuri. Juhendamata algoritm ei ennusta midagi, vaid analüüsib andmeid ning leiab nende vahel seoseid. Juhendamata algoritme kasutatakse näiteks soovitusmootorites.

Pooljuhendatud algoritmid jäävad nende kahe vahele ning kasutavad nii varasemalt määratletud kui määratlemata andmeid. See võimaldab õppimist muuta oluliselt täpsemaks.

Stiimulõpe on meetod, kua algoritm suhtleb ümbritseva keskkonnaga ning õnnestunud tegude korral saab preemiat, näiteks mängus punkte kogudes või õiget reklaami soovitades. Preemiate põhjal õpibki programm, millised on need teod, mida tasub korrata [24].


Sügavõpe

Sügavõpe (Deep Learning) on üks masinõppe harusid, mis on inspireeritud inimajust. See koosneb neurovõrkudest, milles on rohkem kui üks neuronikiht. Andmed läbivad iga kihti ning iga järgnev kiht teostab sisendi järjest keerulisemat analüüsi ning edastab saadud tulemuse järgmisele kihile. Nagu inimajugi, tuleb sügavõpe toime väga erinevate ja keeruliste probleemide lahendamisega.

Sügavõpet kasutavad näiteks Google ja Apple oma hääle- ja pildituvastusalgoritmides, selle abil otsustavad Netflix ja Amazon, mida kasutaja järgmiseks võiks tahta vaadata või osta [25].


Loomuliku keele töötlemine

Loomuliku keele töötlemine (Natural Language Processing ehk NLP) on masinõppe haru, mis uurib seda, kuidas arvuti interpreteerib inimkeelt. Erinevalt tavalisest sõnaprotsessorist, mis käsitleb teksti pelgalt sümbolite jadana, arvestab NLP keele hierarhlist struktuurI: sõnad moodustavad fraase, fraasid lauseid ning laused kannavad edasi mõtteid [26]. Tänu sellele arusaamisele saab seda kasutada robotites kõnekeele kirjapanekuks, automaatseks keeltevaheliseks tõlkimiseks, aga ka näiteks sihtturunduse tegemiseks. Loomuliku keele töötlemine on arvutile keeruline, sest see on harva täpne ja puhtalt kõneldud. Inimkeele mõistmiseks ei piisa ainult sõnadest aru saamisest, vaid arvuti peab mõistma ka konteksti ning seda, kuidas sõnad koos moodustavad tähenduse. Kuigi inimesele on keele õppimine võrdlemisi lihtne, siis on loomuliku keele ebastandartsus see, mis muudab selle töötlemise arvuti jaoks keeruliseks. NLP algoritmid baseeruvad masinõppe algortmidel ning selle asemel, et ette on antud tohutu reeglite kogumik, analüüsib arvuti ise tohutul hulgal näiteid. Näiteks selleks, et õppida tundmatute sõnapaaride vastavusi (näiteks cat = gato), uurisid Google’i teadurid sõnapaaride koosesinemise mustreid (näiteks esineb bed tihti ühes lauses sõnaga sleep). Selle meetodi aluseks oli hüpotees, et sarnaseid sõnu kasutatakse mõlemas keeles sarnastes kontekstides. Nii luges Google’i arvutiprogramm tuhandeid lehekülgi näiteks hispaanikeelset teksti, mille alusel õppis selgeks paljude tundmatute sõnakoosluste esinemise. Siis kordas ta sama protseduuri inglise keeles. Inglise ja hispaania sõnade andmemustrite vastavusse viimiseks võttis ta appi pisikese sõnaraamatu, mis andis täpsed vastavused vaid mõnetuhande sõna vahel ning nende alusel sai ta vastavusse viia ka ülejäänud 95 000 sõnapaari (Tehisintellekt: loomadest ja masinatest. 2017) [27]:

Kas veebiroboti saab ka ise teha?

Vestlusrobotite võrdluse peatükis ära toodud näited on suurte korporatsioonide poolt loodud robotid. Kuid ka tavainimene saab oma boti püsti panna ja seda enda või oma firma heaks tööle panna. Enda tehtud bote saab kasutada erinevates valdkondades, näiteks interneti mängudes, e-poodides, sotsiaalvõrgustikutes jne. Tänapäeval on moes kasutada messengeri platvormi kommerts chatbotide loomiseks ning arvatakse, et iga ennast lugupeetav start-up peab sellist boti omandama.

Selleks, et boti luua, pead kõigepealt endale selgeks tegema, kus ja mille jaoks tahad seda kasutada. Kui eesmärk on selge, siis tuleb teha põhjalik analüüs, kuidas Sinu robot peab toimima, mida ta peab tegema, millises keskkonnas hakkab see töötama, millele peab reageerima jne. Näiteks, kui vajad chatboti sotsiaalvõrgustikes (Facebook, Twitter, Slack jne) klientidega suhtlemiseks, siis tuleb analüüsida võimalikult palju oma klientidega peetud dialooge : milliseid küsimusid nad tavaliselt esitavad, kuidas vastustele reageerivad ja millised lisaküsimused neil tekivad peale vastuse saamist. Boti loomisel peab lähtuma kogu loogilisest ahelast. Loodav chatbot peab oskama juhtida vestlust ja kasutama selleks täpsustavaid küsimusi. Tähtis on, et bot saaks kasutajaga suhelda samal tasemel ning kasutaks arusaadavaid termineid ja ei oleks keeruline. Ei ole mõtet luua 20 erinevat vastust samale küsimusele, ainult selle pärast, et nad olemas oleksid - mida lihtsam on, seda parem. Samuti peab bot oskama vestluse lõpule viima nii, et inimene, kellega ta suhtleb, jääks vestlusega rahul.

Kui Sa ei oska programmeerida…

siis on boti loomiseks kaks varianti.

Üks variant on palgata kallis programmeerija, kes teeb Sulle vajaliku boti. Sellise boti kvaliteet oleks kindlasti kõrgem võrreldes isetehtud botiga - selline bot oskaks adekvaatselt reageerida muutuvale olukorrale, vastata erinevatele küsimustele, võib-olla suudaks isegi ise õppida. Kahjuks on sellised robotid üldjuhul kallid.

Teine variant on teha bot ise ja kasutada selleks mõeldud platvorme, mis ei vaja programmeerimise teadmiseid. Sellised platvormid on näiteks Surveybot [28], Chatfuel [29], Flow XO [30], ManyChat [31] jms.

Kui “kood” ei ole Sulle võõrsõna....

siis saab juba teha midagi keerulisemat ja oma boti ise programmeerida.

Alguses on vaja valida programmeerimiskeel, milles kirjutada boti programmi. Tavaliselt kasutatakse Javascripti või Python'it; nende keelte kohta saab ka palju õppematerjale ning tuge internetist. Järgmisena peaks valima sobiva platvormi, kus Sinu bot tööle hakkab. Platvormiks võib olla Facebooki messengeri, Slacki platvorm või mõni muu. Lisaks peab valima teeki, millega hakkab suhtlema messengeri API. API (Application Program Interface [32]) on reeglistik olemasoleva valmisprogrammiga suhtlemiseks. Messengeri API abil saab Sinu programm suhelda Facebooki või mõne muu messengeri serveriga. Selleks, et saada API ligipääsuvõtit (access token [33]), tuleb oma bot registreerida. Näiteks Facebooki puhul on selleks vaja luua boti kasutajaleht ja äpp. Alguses võiks teha kõige lihtsama boti. Suure tõenäosusega on Sinu valitud messengeris juba olemas koodi näide. Proovi see käivitada ja ürita aru saada, kuidas see töötab. Seejärel võib sellele uusi käske lisada ja hakata seda seadistama vastavalt oma vajadustele. Kui midagi aga viltu läheb, siis on alati võimalus pöörduda teegi või API dokumentatsioonile, kus tihtipeale on võimalik leida infot, mis aitab Sinu probleemi lahendada. Küsimustele võib otsida lahendust näiteks messengeri arendajate suhtluskeskkonnast, näiteks Facebook Messenger Platform Developers Community ja vaadata, kas sealt saab mõne vihje, kuidas edasi toimida.

Viimaseks sammuks on boti testimine. Testimise käigus tulevad välja vead, mis jäid esialgu märkamatuks ning tõenäoliselt tekivad uued ideed boti funktsionaalsuse parendamiseks. Kõige parem viis testimiseks ongi boti kasutama hakkamine. Jaga oma bot’i sõprade ja kolleegidega, et nemad saaksid seda proovida, katsetada ja Sulle tagasisidet anda. Lõpuks, kui test on õnnestunud ja tunned, et oled valmis seda teistele esitama, lisa oma bot botide kataloogi või ühine näiteks Facebooki Chatbot grupiga.

Interneti avarusest leiab väga palju juhendeid, kuidas erinevaid bote luua. Siin on üks detailne näide, kuidas teha oma bot Facebookis: https://chatbotsmagazine.com/have-15-minutes-create-your-own-facebook-messenger-bot-481a7db54892

Kokkuvõte

Vaatamata sellele, et esimesed võrgurobotid olid loodud üsna ammu, alles viimastel aegadel on nad muutunud populaarsemaks. Kuna nende kasutusala on üpris lai, suured firmad on nendes vägagi huvitatud. Juhtivad pangad ja korporatsioonid saavad aru, et botide abil saab näiteks personalikuludes saavutada märkimisväärset kokkuhoiu. Ning sellest võib järeldada, et võrgurobotite tehnoloogiasse on mõttet investeeringuid teha. Veebibotid, vestlusrobotid võivad tulevikus asendada mobiiltelefonide äppid, tänapäevased sotsiaalvõrgustikud jäävad minevikku ja nende asemel tekkivad uued messengerid.

Kasutatud materjalid

  1. "https://en.wikipedia.org/wiki/Internet_bot"
  2. [ "https://en.wikipedia.org/wiki/Web_crawler"]
  3. "https://arvutiturve.wordpress.com/2012/05/09/mis-on-bot-ehk-interneti-robot-kuritahtlikud-bot´id-ja-head-tarkvararobotid-2/"
  4. "https://www.theatlantic.com/technology/archive/2017/01/bots-bots-bots/515043/"
  5. "https://arvutiturve.wordpress.com/2012/05/09/mis-on-bot-ehk-interneti-robot-kuritahtlikud-bot´id-ja-head-tarkvararobotid-2/"
  6. "http://www.arvutikaitse.ee./?page_id=826"
  7. "http://www.arvutikaitse.ee./?page_id=826"
  8. "https://us.norton.com/internetsecurity-malware-what-are-bots.html"
  9. "https://support.google.com/webmasters/answer/182072?hl=en"
  10. "https://en.wikipedia.org/wiki/Chatbot"
  11. "https://et.wikipedia.org/wiki/Juturobot"
  12. "https://geenius.ee/rubriik/turvaline-tehnika/paasteameti-facebooki-juturobot-opetab-sulle-kuidas-mitte-enda-maja-polema-panna/"
  13. "https://www.facebook.com/messages/t/paasteamet"
  14. "http://www.ituudised.ee/uudised/2017/06/18/lhv-klientidele-vastab-facebookis-vestlusrobot"
  15. "https://www.seb.ee/uudised/2017-10-10/seb-kaivitas-facebooki-juturoboti"
  16. "https://www.directormeedia.ee/tehisintellekt-aida-valvab-panga-e-varavas/"
  17. "http://fortune.com/2017/03/09/apple-siri-languages-voice-assistants-google-microsoft-amazon/"
  18. "https://gizmodo.com/here-are-all-of-the-new-upgrades-to-siri-1795824173"
  19. "https://support.microsoft.com/en-us/help/17214/windows-10-what-is"
  20. "https://support.microsoft.com/en-us/help/4026948/windows-10-cortanas-regions-and-languages"
  21. "https://play.google.com/store/apps/details?id=com.google.android.apps.googleassistant"
  22. "https://developer.amazon.com/alexa"
  23. "https://en.wikipedia.org/wiki/Machine_learning"
  24. "http://www.expertsystem.com/machine-learning-definition/"
  25. "https://www.forbes.com/sites/bernardmarr/2016/12/08/what-is-the-difference-between-deep-learning-machine-learning-and-ai/#6cc4e44926cf"
  26. "https://blog.algorithmia.com/introduction-natural-language-processing-nlp/"
  27. [Laan, Andres, "Tehisintellekt: loomadest ja masinatest", Koolibri, 2017 lk 123, ]
  28. "https://surveybot.io/"
  29. "https://chatfuel.com/"
  30. "https://flowxo.com/"
  31. "https://manychat.com/"
  32. "https://www.webopedia.com/TERM/A/API.html"
  33. "https://en.wikipedia.org/wiki/Access_token"