Võrgurobotid ja nende kasutusalad: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Trmold (talk | contribs)
Trmold (talk | contribs)
Line 119: Line 119:


Siia vaja tekst lisada
Siia vaja tekst lisada


==Millised tehnoloogiad on veebirobotite taga ning kuidas nad õpivad?==
==Millised tehnoloogiad on veebirobotite taga ning kuidas nad õpivad?==

Revision as of 23:45, 9 December 2017

Sissejuhatus

Mis on bot?

Interneti robot (Internet bots, web robots) või lihtsamalt öeldes bot, on algoritmide kogum, mis täidab automaatseid, korduvaid ning eelnevalt määratletud ülesandeid internetis. Praegused veebirobotid teostavad suhteliselt lihtsaid ülesandeid, mis oleksid inimeste jaoks tüütud ja aeganõudvad.

Veebirobot 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äivitakse 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 indekseerimiserobotid, mida IT žargoonis kutsutakse ka ämblikeks (web-spiders) või internetis roomajateks (crawlers).  Nende ülesandeks on koguda automaatselt infot näiteks 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. Bot’i eesmärgiks on simuleerida inimtegevust, pakkudes vahendajana teenuseid või teavet boti loonud autori(te)le [1].

Enamik veebiroboteid on ohutud ja nende eesmärk on muuta Interneti info väärtuslikuks ning kasulikuks. Samas on levinud ka nn pahad robotid, mida kasutatakse pahatahtlikel eesmärkidel.

Pahad botid

Pahatahtlik robotvõrgustik ehk botnet (robot network) on kräkkerite hallatav automaatselt levitatav pahatahtlik tarkvararobot, mis otsib internetist monitoorimise teel haavatavaid ja kaitsmata arvuteid, et neid nakatada pahavaraga. Nakatatud arvuti ehk zombie-arvuti abil saab küberkurjategija (botmaster) haarata kaugjuhtimise teel kontrolli kasutaja arvuti üle ja võib seda kasutada nt hajutatud teenusetõkestamise (DDoS) rünnakuteks ja Interneti abil teile teadmata automaatsete toimingute tegemiseks. Näiteks vastavalt eesmärgile salvestatakse klahvivajutusi, kogutakse paroole või finantsteavet, teostatakse identiteedivargust, saadetekse rämpsposti või levitatakse kontrolli all olevast arvutist arvutiusse, viiruseid, troojaid jm pahavara teiste kasutajate arvutitesse. Samuti püütakse nakatada nn zombie-arvuti abil servereid ja internetivõrku ühendatud teisi arvuteid, luues sellise rünnaku abil botnet-võrgustik. Tavaliselt arvutikasutaja ei oska kahtlustada seesuguse tarkvara olemasolu oma arvutis, sest pahavara toimetab arvutis märkamatult ega anna endast ekraanil kuidagi teada.

Head botid

Headest bot’dest on levinud vestlusrobotid. Ehk nagu heale lapsele kohane, siis neid nimetatakse lisaks järgmiste nimega: chatbot, talkbot, chatterbot, Bot, IM bot, interactive agent või Artificial Conversational Entity. Lihtsamalt öeldes on vestusrobotid automaatsüsteemid, mis saavad aina paremini inimkeelest aru. Botid suhtlevad klientidega läbi vestlusrakenduste ja esitatud küsimusele otsib süsteem välja kõige tõenäolisema vastuse, mida klient ootab. Samas ei saa me öelda, et kõik robotid on seotu AI ja ML’ga ning võime öelda, et need on masinad, mis vastavad küsimustele inimhäälega (“if this, then that”) Kui app’i kastutamine on enamasti teie sisendi põhjal ühel suunal põhinev kommunikatsioon, siis praeguse aja botid võimaldavad küsimuste esitamist suuliselt nt toidu tellimisel, broneeringute tegemisel, lähima restorani leidmisel jne.

Erinevate chatbotide võrdlus

Selleks, et võrrelda nutikaid abimehi vaatame neid natuke lähemalt ja tegime 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.[2]

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. [3]


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. [4] 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. [5]


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 [6]:

  • 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." [7]

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.


Chatbotidega läbi viidud testid

Selleks, et kõige paremini mõista erinevate chatbots'ide funktsionaalsust ja töövõimekust viisime Siri, Cortana, Google Assistanti ja Alexaga läbi järgmised testid. 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

Siia vaja tekst lisada


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 [8]. 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 [9].


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 [10].


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 [11]. 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 [Laan, Andres. Tehisintellekt: loomadest ja masinatest. 2017 lk 123]