Good old-fashioned AI* autor: Riccardo Tommasini
* Vana hea tehisintellekt või hea vanakooli tehisintellekt
Teksti on tõlkinud Asko Seeba
Mis on GOFAI?
GOFAI on lühend inglise keelsetest sõnadest Good Old-Fashioned Artificial Intelligence, mis otsetõlkes võiks kõlada kui “vana hea tehisintellekt” või “vanakooli tehisintellekt”. GOFAI-d tuntakse ka kui sümbolismi, kuna ta üritab intelligentseid süsteeme kirjeldada sümbolite abil.
Mida sümboli all õieti mõeldakse? Sümbol on miski, mida inimene tajub, ning millele on antud mingi tähendus. Sümbolid on näiteks liiklusmärgid, mis tähistavad mingit keeldu või ohtu. Või ka allolev Magritte’ kuulus maal, millel kujutatud piip on sümbol, mis tähistab päris objekti.
Ka tähed ja numbrid on sümbolid. Neid kombineerides saab moodustada sõnu (või suuremaid arve). Samuti saab sõnu kombineerida. Keel ongi intuitiivselt sümbolite süsteem, kuna ta koosneb mõtete väljendamiseks sõnade ja lausete konstrueerimise reeglitest.
GOFAI algideed pärinevad filosoof Thomas Hobbes’ilt, kes käsitles mõtlemist kui sümbolitega manipuleerimist ja arutluskäike kui arvutusi. GOFAI termin ise pärineb John Haugland’ilt, kes tähistas sellega kõiki tehisintellekti tehnikaid ja uurimusi, mis sama filosoofiat järgivad. Oma kuulsas raamatus “Tehisintellekti idee” (“Artificial Intelligence: the very idea”), keskendus Haugland Allen Newelli ja Herbert A. Simoni sümbolsüsteemi hüpoteesile:
“Sümbolsüsteemil on tarvilikud ja piisavad vahendid üldiseks intelligentseks tegutsemiseks.” [2] — Allen Newell ja Herbert A. Simon
See hüpotees, kui see tõestada, sätestab universaalse intelligentse sümbolsüsteemi eksisteerimise.
GOFAI järgib sümbolite, mõtete ja reaalsustaju vaheliste seoste uurimisel Noam Chomsky teooriaid. Chomsky järgi eksisteerivad sümbolid juba enne, kui me maailma tajume ja sellest mõtleme. Teatav lingvistiliste reeglite hulk on inimestel juba kaasasündinud ja ei sõltu tajutavast kogemusest. Isiku psüholoogilise arengu käigus aset leidvate täiendavate lingvistiliste stimulatsioonidega omandab laps lisaks ka spetsiifilised süntaksireeglid. Chomsky nimetab seda kaasasündinud reeglite hulka universaalseks grammatikaks.
Alan Turing lõi oma teedrajava töö käigus sümbolmanipulaatori (ehk esimese arvuti), millel on võimalik esitada suvalist teist sümbolite süsteemi, ning mis sillutas tee sümbolite matemaatiliseks interpreteerimiseks. Turing’i töö selgitab, kuidas arvutid võivad käitada programme, mis võivad teha mida iganes, ning kuidas iga arvutit saab panna käituma mõne teise arvutina. Arvutisüsteemis kasutatavad 0-id ja 1-d on sümbolid ning 0-ide ja 1-de jadad võivad moodustada sõnu ja lauseid.
Hobbes’ist Chomsky’ni ja Chomsky’st Turing’ini näeme GOFAI ajaloos mitmeid katseid luua intelligentseid süsteeme. Kõige silmapaistvamad neist on targa andmestiku abil omavahel suhtlevate tarkade masinate teadmistemahukad ökosüsteemid. Selliste süsteemide näitena võib tuua Google otsingumootori, mis kasutab otsingute, nagu “What are Galileo’s discoveries?” tulemuste järjestamiseks algoritme ja tulemuste mõtestamiseks semantilisi annotatsioone. Siin toodud näide on ingliskeelne, kuna efekt on parem, aga ka eestikeelne otsing “mis on Galileo avastused?” annab häid tulemusi.
Käesoleva loengu ülejäänud osades kaevume tarkade masinate ja targa andmestiku põhimõistetesse. Uurime tehnoloogiaid, mis hõlmavad endas teadmistemahukate infosüsteemide loomist. Eriti vaatleme teadmiste esitamist ja nendega teostatavaid arutluskäike, ning kuidas need aitavad infosüsteeme kujundada. Selle tulemusel tekib parem arusaamine GOFAI-st ja selle praktilisest rakendamisest.
Targad masinad vs tark andmestik
Tehisintellekti (edaspidi kasutame ingl. artificial intelligence lühendit AI) tehnoloogiate eesmärgiks on täita nn. semantika lünk -- loogiline seos reaalsuse tajumise ja sümbolsüsteemi vahel, mida arutluskäikudeks kasutame. Seda seost me kutsume “arusaamiseks” ning inimestel on see kaasasündinud. Teiste olendite puhul tuleb see lünk täita selleks, et saada stiimulile sobiv reaktsioon. Selliste tehnoloogiate abil, nagu loomuliku keele töötlemine (ingl. natural language processing, NLP), pildianalüüs/pilditöötlus (image analysis / image processing, IP) ja helitöötlus (audio processing), saame disainida tarku masinaid, mis täidavad lünga (tajutud) andmestiku ning sümbolitel põhineva kirjelduse vahel. Paraku targad masinad ei saa täita semantika lünka ise. Need meetodid põhinevad andmetel ja võivad tihti anda erinevaid tulemusi sõltuvalt vaadeldavate andmete kontekstist või tüübist. Näiteks, kujutage ette kaht tegelast, kellest üks on loomuliku keele töötlemise süsteem (NLP), ning teine on pilditöötlussüsteem (IP), aga kellel on juhtumisi ka võime pidada omavahel hääl-verbaalset dialoogi:
NLP: “Mida su silmad näevad?” IP: “Ma näen teed.” NLP: “Sa näed ‘t’-d?” IP: “Jah, mis see muud veel olla saaks?”
Allikas: NLP-teemaline meelelahutus -- https://www.cl.cam.ac.uk/research/nl/amusement.html
Ülalolev näide illustreerib semantika lünka, mis on kahe targa masina arusaamiste vahel. Pilditöötlussüsteem pole võimeline mõistma sõna “t”-d muul viisil kui kas tee nagu autotee või tee nagu jook. Samas on keeletöötluse süsteemi jaoks “t” lihtsalt tähemärgi või häälikuna ülimalt tavaline mõiste ning kui keegi räägib “teest”, siis on tema jaoks loomulik arvata, et räägitakse “t”-st.
Peame endilt küsima, kuidas seda semantika lünka täita? Selleks peame disainima integreeritud infosüsteemi, mille abil targad masinad saaksid koos töötada. Osa, mis on puudu sellest, et rakendused saaksid omavahel toimida, on tark andmestik (ingl. smart data). Semantikatehnoloogiad (ingl. Semantic technologies) aitavad meil jäädvustada andmete tähendust masinloetaval kujul selliselt, et rakendused saaksid omavahel infot ja teadmisi vahetada. Näiteks, kasutades wordnet-vormingus sõnastikku, mis jäädvustab tavakeele sõnade tähendusi, muutuks ülalolev dialoog järgmiseks:
NLP: “Mida su silmad näevad?” IP: “Ma näen wordnet:word-tee 'd.” NLP: “Sa näed wordnet:word-t ’d?” IP: “Ma arvan, et meil on maailmast erinev arusaamine...” NLP: “Ma arvan sama.”
Teadmiste graafid
Teadmiste graafid (edaspidi kasutame ingl. knowledge graphs lühendit KG) on andmete graafid, mille eesmärgiks on koguda ja edastada pärismaailma kohta teadmisi. Selle graafi tipud tähistavad meid huvitavaid olemeid (sotsiaalvõrgustiku puhul näiteks inimesed), ning graafi servad (tippe ühendavad “jooned”, sotsiaalvõrgustiku puhul näiteks inimestevahelised tutvused) tähistavad nende olemite vahelisi seoseid [1].
Teadmiste graafe koostatakse tihti paljude erinevate allikate põhjal, ning seetõttu võib andmestik olla väga mitmekesine nii vormi kui detailsuse mõttes. Näiteks, kui integreerime paljudest erinevatest sensoritest tulevaid andmeid, võivad erinevad sensorid meile andmeid edastada XML, JSON või CSV vormingus. Lisaks võivad mõned sensorid edastada “tühjasid null-väärtuseid” või lihtsalt mingeid andmepunkte nö “vahele jätta”. Lisaks võib erinevatel sensoritel olla erinev tundlikkus ja erinev proovivõtu sagedus, edastades andmeid kas iga sekundi, minuti või isegi tunni tagant.
Sellise varieeruvuse käsitlemisel on kolm kriitilist aspekti [1]:
- Struktuur, mis defineerib, kuidas andmed on üldiselt organiseeritud;
- Identiteet, mis aitab tuvastada sümbolid, mis kirjeldavad sama tegeliku maailma olemit;
- Kontekst, mis määrab, millal mingid faktid on tõesed.
Andmetest tarkuseni
Vastavalt GOFAI-le, nõuab tehisintellekt piisavalt väljendusrikka keele kasutamist selleks, et tegeliku maailma objekte, sündmusi ja nendevahelisi seoseid kujutada. Lisaks tuleb sümboleid tõlgendada vastavalt teatavatele järeldusreeglite hulgale. Tehisintellektisüsteemi definitsiooni iseloomustavad järgmised sammud (mida omakorda illustreerib ülalolev pilt):
- Meid huvitava maailma või valdkonna kohta andmestiku kogumine
- Sarnasuste ja erinevuste põhjal andmete klassifitseerimine
- Andmeklasside vaheliste seoste süsteemi loomine
- Meid huvitavatesse klassidesse kuuluvate andmete tuvastamine
- Erinevatesse klassidesse kuuluvate andmete vahel varjatud seoste avastamine.
Andmestik: graafid
Teadmiste graaf põhineb graafi andmestikul. Graafid on mugav abstraktsioon, millel abil saame jäädvustada selle maailma keerukust, milles elame. Seetõttu võetakse üha enamates rakendusvaldkondades andmete, koostoimete ja seoste esitamiseks kasutusele just graafe.
Üldistatult koosneb graaf kahest hulgast (V, E), kus V on graafi tippude (ingl. vertices) hulk ja E on graafi tippe ühendavate servade (ingl. edges) hulk. Informatsioon kodeeritakse tippude ja servade terminites selliselt, et graafi tippudena kujutatakse mingeid olemeid ning graafi servadena kujutatakse nendevahelisi seoseid. Näiteks võivad tippudeks olla linnad ja servadeks neid linnu ühendavad teed. Öeldakse, et graaf on suunatud graaf, kui servadele omistatakse ka suund. Näiteks võime kaht linna ühendavale teele omistada liikumissuuna.
Olemasolevatest graafi andmemudelitest soovitab W3C kasutada Resource Description Framework’i (RDF, ressursikirjeldusraamistik). RDF võimaldab defineerida suunatud graafe ning on disainitud andmete vahetamiseks veebis. RDF-i minimaalseim infoühik on kolmik <alus> <öeldis> <sihitis> (vt. ülalolevat pilti). Graafi tipud ja servad on üheselt määratavad URI (Unified Resource Identifier -- unikaalne ressursi identifikaator) abil, näiteks, <John>, <livesIn>, <Tartu>. Literaale, millega tähistatakse väärtusi, nt. numbrid ja sõned (strings), saab kasutada ainult objektidena, st. nad on teatavad spetsiifilised graafi tipud.
Tarkvaravahendeid, mis on loodud RDF andmestiku talletamiseks, kutsutakse triplestores (triple -- viide ülalkirjeldatud kolmikutest koosnevale andmestruktuurile, “kolmikute ladu”), nt. Jena ja Virtuoso. Nad salvestavad RDF-andmestiku ja võimaldavad sellele ligipääsu. Graafi andmete serialiseerimisel (andmete vormindamine salvestamiseks või transpordiks) kasutatakse mitmeid andmeformaate. W3C poolt on vaikimisi RDF-andmete serialiseerimiseks kasutusel RDF/XML. Teisalt, Turtle (TTL) on inimeste jaoks kergemini loetav.
Graafi andmemudelid on väga paindlikud. Nende abil saab kergesti kujutada teisi andmestruktuure. Näiteks saab graafina esitada relatsioonilist andmestikku (“relatsiooniline andmestik” ei ole midagi muud, kui tabel-kujul andmed -- relatsiooniline andmebaas on tabelitest koosnev andmebaas). Relatsioonilist andmestikku saab teisendada RDF-struktuuri, kasutades esmast võtit (esmane võti on tunnus, mille abil leitakse tabelist otsitavaid kirjeid ehk ridu, nt. isikukood inimeste tabelis) subjektina, veeru pealkirja predikaadina, mis kirjeldab omadust, ja väärtust objektina (vt juuresolevat pilti).
Näide 1: tabelkujul andmestiku graafi kujule viimine
Järgmine andmebaas sisaldab kahte tabelit. Skulptuuride tabelis Sculptures on kolm veergu: ID, mis tuvastab üheselt skulptuuri, skulptuuri autor (Creator) ja teose loomise kuupäev (Date). Kunstiteoste nimede tabelis Artwork Names on samuti kolm veergu, skulptuuri ID, skulptuurile antud nimi ehk pealkiri (Name) ja keel (Language), milles see pealkiri on antud.
Järgnev joonis esitab ülalolevad tabelid graafina. Kandilised tipud on literaalid, st. numbrid ja sõned (string’id). Teised tipud on ressursid (olemid) ja servad on omadused, mis ühendavad ressursse ja literaale.
Ülalolev on inimese jaoks graafi intuitiivne visualiseerimine, aga kuidas kirjeldatakse graafi arvuti jaoks? Üks võimalik viis on teha seda Turtle vormingus. Turtle vormingus on kolmiku elemendid teineteisest eraldatud tühikuga, kolmikud on teineteisest eraldatud punktiga ja kolmiku elementidele vastavad ressursi URI-d on kolmnurksulgudes. Üks kolmik võiks välja näha näiteks (pane tähele kolme URI-d ja punkti nende järel):
<http://dbpedia.org/resource/The_Kiss_(Rodin_sculpture)> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://dbpedia.org/ontology/Artwork> .
Et vältida pikkade URIde kirjutamist, saab prefikseid spetsifitseerides kasutada lühemat vormingut, nagu näiteks:
@prefix dbo: <http://dbpedia.org/ontology/> .
Nüüd saab
<http://dbpedia.org/ontology/Artwork>
asemel kirjutada
dbo:Artwork
Tühja prefiksit kasutatakse tüüpiliselt “kohalike” klasside ja klassiesindajate jaoks, nagu näiteks:
@prefix : <http://example.org/> .
Nüüd saab
<http://example.org/example>
Asemel kirjutada
:example
Spetsifitseerime mõned prefiksid ülalpool oleva näite jaoks:
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix dbr: <http://dbpedia.org/resource/> . @prefix dbo: <http://dbpedia.org/ontology/> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix sc: <http://schema.org/> . @prefix : <http://example.org/>
Nüüd saame kirjutada kogu seost kirjeldava kolmiku lühemalt, see mahub ühele reale:
dbr:The_Kiss_(Rodin_sculpture) rdf:type dbo:Sculpt .
Turtle süntaks lubab meil sama subjektiga kolmikuid grupeerida, eraldades erinevad predikaadid (öeldised) semikooloniga, nagu näiteks:
dbr:The_Kiss_(Rodin_sculpture) rdf:type dbo:Artwork ;
:creator August_Rodin ; sc:dateCreated "1889"^^xsd:gYear . Ehk Suudlus on kunstiteos, on loodud Rodini poolt ja on loodud aastal 1889.
Samuti lubab Turtle süntaks sama predikaadi (öeldise) objektid (sihitised) grupeerida, eraldades erinevad objektid komaga, nagu näiteks:
dbr:The_Kiss_() rdfs:label "The Kiss"@en , "Il Bacio"@it , "Suudlus"@esti .
Harjutus: esita järgmine andmebaas joonisena graafi kujul ja turtle süntaksis.
Kontrolli korrektsust siin: http://www.easyrdf.org/converter
Vihje: kasuta rdf:type, et öelda “on tüüpi” ja rdfs:label, et öelda “nimi on”.
Joonis 12.
Lahenduse leiate siit lingilt.
Informatsioon ja teadmised
Joonis 13.
Käesolevas alapeatükis vaatleme lähemalt samme 2 ja 3, mis annavad meile võime andmetest saada informatsiooni ning informatsioonist teadmisi. Need kaks sammu viitavad vajadusele lisada andmetele täiendav struktuur ja kontekst selleks, et meil saaks hakata tekkima mõtestatud arusaamine.
Teadmiste esitus (knowledge representation, KR) on tehisintellekti alamvaldkond, mis uurib, kuidas modelleerida maailma kohta käivat infot selliselt, et see oleks masinale arusaadav.
Põhjus, miks see on oluline, on see, et üldine intellekt (general intelligence) põhineb tüüpiliselt nn. “tervel mõistusel”. Inimesed ühendavad oma eelnevad teadmised vaatlusandmetega ning tuletavad sellest uue info. Sel põhjusel sa näiteks ei imestu iga kord, kui sa näed tooli, kuigi sa võibolla ei ole varem just täpselt sellist tooli näinud. Su aju on õppinud mingi üldise tooli printsiibi ja sobitades seda vaatlusandmetega loob teadmise, et nähtav objekt on tool.
Ilmselgelt masinatel ei ole ligipääsu “terve mõistuse” teadmistele. Seega, et võimaldada masinal teha järeldusi, peame teadmisi modelleerima selliselt, et masin neid oma arvutusi tehes kasutada saaks. Need mudelid on tüüpiliselt valdkonnaspetsiifilised ja neid saab koostada kasutades loogilisi keeli või rakendades õppimistehnikaid.
Neid mudeleid uurides räägime taksonoomiatest, sõnastikest ja ontoloogiatest, st maailma mudelitest, mis järgivad teatavat formaalset spetsifikatsiooni.
Ontoloogiate ehitamiseks kasutatakse loogilisi keeli nagu RDFS, SKOS, Web Ontology Language (OWL) [29] ja Open Biomedical Ontologies Format (OBOF) [30]. Juuresolev joonis näitab, kuidas erinevad ontoloogilised keeled ja semantilised struktuurid sobivad erinevate analüüsitegevuste, nt. küsimustele vastamise, jaoks.
Üldistatult, ontoloogia toob sisse valdkonna, nagu näiteks anatoomia, jaoks relevantse sõnavara. Lisaks spetsifitseerib ta mõistete tähendused (semantika) vastavalt sobivale formalismile, nt. esimest järku loogikale (First Order Logic, FOL). Näiteks lause “süda on lihaseline organ, mis on vereringe osa” vastab järgmisele esimest järku loogika aksioomile: ∀x.[ Süda(x)→ LihaselineOrgan(x)∧ ∃y.[onOsa(x,y )∧ Vereringe(y)]]
Kahjuks, mida väljendusrikkam on ontoloogiline keel, seda raskemini käsitletav ta on, st. sellel keelel põhinevad järeldusalgoritmid muutuvad arvutuslikult kulukaks (vt. eelmine joonis).
Näide Järgnev joonis kujutab varasema näite hulkade põhist esitust. Sammu 2 täitmiseks organiseerime andmestiku hierarhiatesse (taksonoomia). Hulkadepõhine esitus annab implitsiitselt edasi informatsiooni, nagu “kõik maalid on kunstiteosed ja kõik maalijad on kunstnikud”.
Neid hulki nimetatakse klassideks ja mingi hulga liikmeid vastava klassi esindajateks või isenditeks. Nt RDF-i kasutades:
Rodin rdf:type Sculptor.
Rdf:type omistab ühe indiviidi ühte või mitmesse klassi.
Ülalolev teine joonis lisab ka kunstiteoste jaotuse klassideks. Lisaks toob see ära ka mõned nooled erinevate klasside vahel. Hulkade vahelisi servasid (nooled) kutsutakse ka omadusteks. Seni oleme vaadelnud omadusi, mis seovad erinevate klasside esindajaid, nt. “Leonardo paints MonaLisa” (“Leonardo maalib MonaLisa”). Samas, omadused saavad siduda ka klasse ja moodustada hierarhiaid, nt. “paints (maalib) ja sculpts (skulpteerib) on creates (loob) alamomadused.”
Lisaks saab spetsifitseerida, et teatava omaduse kõik subjektid ja/või objektid kuuluvad teatavasse klassi. Selliseid aksioome kutsutakse vastavalt domeeni ja vahemiku aksioomideks, nt. “Igaüks, kes skulpteerib, on skulptor” või “Kõik, mida keegi maalib, on maalid.”
Me kutsume joonisel toodud graafi ontoloogia graafiks, kuna ta kirjeldab valdkonna teadmisi, ning me saame seda aluseks võttes koostada teadmistebaasi talletava tegeliku graafi.
Harjutus: koostage harjutusele 1 (arstide ja patsiendidega näide) vastav ontoloogia graaf ning täitke see tegelike andmetega.
Lahenduse leiad siit linglit.
Arusaamine: graafipäringud
Siin alapeatükis räägime sammust 4, ehk sellest, kuidas meie teadmiste graafist uut analüütilist arusaamist saada. Graafide omapäraks on andmete ja päringute omavaheline seotus. Päringute sooritamiseks on meil vaja väljendusrikast keelt, ehk graafi päringukeelt (graph query language, GQL), mille abil tuvastada andmetest meid huvitavaid isendeid.
Hiljutisele uuringu [1] kohaselt eksisteerib palju keeli graafipäringute sooritamiseks [3]. W3C standardiks on SPARQL, mis on nii protokoll kui päringukeel RDF graafide jaoks [4].
Iga graafi päringukeele aluseks on sama mudelit järgivad graafimustrid andmetest, mida pärida soovime. Graafimuster on graaf, mis sisaldab muutujaid (markeeritud küsimärgi abil), mis tähistavad kas tippusid või servasid. Päringule vastamine töötab vastavalt graafi homomorfismile. Graafimustri rakendamisel andmetele genereeritakse kujutus graafimustri muutujatest andmegraafis leiduvatele konstantidele selliselt, et graafimustri kujutus (kus muutujad on asendatud konstantidega) sisaldub andmegraafis [1]. Paneme tähele, et graafipäringu vastus ei ole graaf, vaid hoopis tabel.
Harjutus 1: Kuidas leida, kes lõi skulptuuri nimega “The Kiss”?
Vihje 1. Küsimuse saab formuleerida kui: Kes (x) lõi skulptuuri (s) nimega “The Kiss”?
Vihje 2. Vaata vihjeks kogu andmegraafi.
Kujutame esmalt küsimust graafimustri kujul, siis saame visuaalselt andmegraafis sarnast mustrit otsida (selle jaoks on muidugi olemas ka algoritmid, mis seda automatiseerivad).
Vastuse ja lahenduskäigu leiate siit: link
Harjutus 2: mis on selle doktori nimi, kes ravib Davidi nimelist patsienti?
Vihje 1. Küsimuse saab formuleerida kui: mis on selle doktori nimi (x), kes ravib patsienti (p) David?
Vihje 2. Vaata vihjeks kogu seoste graafi.
Vastus ja lahenduskäik: link
Tarkus: tuletusreeglitel põhinevad arutluskäigud
Lõpetuseks oleme jõudnud viienda sammuni, kus räägime arutlusprotsessidest ja spetsiifilisemalt järelduste tegemisest.
Nagu ka eelnevalt mainisime, põhineb järelduste tegemine eelteadmistel, mis võivad olla kas tervemõistuslikud üldteadmised või valdkonnaspetsiifilised teadmised. Kahjuks masinatel ei ole eelteadmisi, kui need just ei ole mingil formaalselt defineeritud viisil (loogikaga) neisse kodeeritud.
Tuletusreeglid on kõige intuitiivsem automaatsete järelduste tegemise viis. Reeglid, mis on kodeeritud “kui-siis” (if-then) stiilis, on kõikides programmides levinud. Praktikas on reeglitepõhised keeled heaks raamistikuks järelduste disainimiseks. Näiteks “kui tulekahju häire saadab hoiatuse, siis lukusta liftid”. Järeldamise protsess järgib lihtsat modus ponens struktuuri [5]:
Kui P=>Q on meie eelteadmine, et “P-st järeldub Q”, ning täiendav eelteadmine ütleb, et P on tõene, siis saame järeldada, et ka Q on tõene. Q on siin fakt, mille P-st tuletamine meid huvitab.
Näiteks, P=>Q = “kui Säutsu on lind, siis ta lendab”; P = “Säutsu on lind”; Q = “Säutsu lendab”.
Modus ponens on väga üldistatud viis inimeste poolt kasutatava loogilise tuletuse kirjeldamiseks ning osutub, et seda on lihtne ka masinatele üle kanda. Kui P ja Q on defineeritud loogiliste aksioomidena, saame anda masinale järelduse tegemise korralduse.
Loogikud on uurinud erinevaid spetsiifilisi modus ponens rakendusi teatud aksioomide hulgal. Need rakendused samuti formaliseerivad vastavaid loogilisi järeldusi, mis tulenevad antud aksioomide hulgast.
Intuitiivne sellise rakenduse näide on alamklass. Näiteks: “Skulptorid on teatud liiki kunstnikud. Rodin on skulptor, järelikult on ta ka kunstnik.”
Näide
Allolev tabel sisaldab ontoloogilisest keelest RDFS reegleid:
Intuitiivselt, need reeglid annavad meile eelteadmiste ja järelduste vormi, mida saame oma teadmiste graafil rakendada.
Eelmistest näidetest ontoloogiat ja andmegraafe kombineerides saame järgmist:
Ontoloogia graaf ja andmegraaf koos moodustavad eelteadmised meie järeldussammude tegemiseks. Meie lõppeesmärgiks on graafide sisu interpreteerides tuletada kaudseid seosesid, mis kehtivad graafi olemite vahel.
Harjutus: kirjuta järeldused Doktori ontoloogia graafi jaoks
Lahenduse leiate siit.
Kokkuvõtteks
Käesoleva mooduli käigus me uurisime GOFAI (Good Old-Fashioned Artificial Intelligence) valdkonda ning tuvastasime loogikapõhiste tehisintellekti vormide ja teadmiste graafide vahelisi seoseid.
Kokkuvõtvalt tasub välja tuua, mil määral need tehnoloogiad on juba kasutusele võetud. Terminit “seotud avaandmed” (Linked Open Data) [28] on viimastel aastatel palju populariseeritud semantilise veebi (Semantic Web) kontekstis.
Avatud teadmiste graafe nagu DBpedia [6], Freebase [7], Wikidata [27], YAGO [9] on arendavad kogukonnad loonud kättesaadavana kõigi jaoks. Lisaks on loodud ka valdkonnaspetsiifilisi teadmiste graafe erinevates valdkondades, nagu meedia [22], valitsussektor [8, 23] ja turism [11, 10, 17].
Teisalt, ettevõtetesisesed teadmiste graafid ei ole avalikud. Need on ligipääsetavad ainult firmadele endile ja nende klientidele. Silmapaistvamad ettevõtted, milledest mõned on ülaloleval pildil toodud, kasutavad ettevõtte sisemiste teadmiste organiseerimiseks graafe. Nende hulgas väärivad mainimist Microsoft Bing [25] ja Google Knowledge Graph [24] rakendused veebiotsinguteks; Airbnb [15], Amazon [14, 13], eBay [21] ja Uber [11] e-kaubanduseks; Facebook [26] ja LinkedIn [12] sotsiaalvõrkudeks ning nt. Accenture [20], Bloomberg [18], Capital One [16] ja Wells Fargo [19] finantsvaldkonna jaoks.
Lõpetuseks sooviksime esile tuua hiljutise uurimuse [1], mis oli käesolevate loengumärkmete kirjutamisel märkimisväärseks allikaks ning on sobivaks lähtepunktiks teadmiste graafide huvitava maailma edasiseks avastamiseks.
Tänud ja tunnustus
Käesoleva konspekti sisu põhineb Emanuele Della Valle (Politecnico di Milano, Italy) loengutel ja materjalil. Lisaks on [1] sisu olnud äärmiselt kasulik käesolevate loengumärkmete teemaderingi määramisel.
Viited
[1] https://arxiv.org/abs/2003.02320
[2] https://www.cs.swarthmore.edu/~eroberts/cs91/projects/ethics-of-ai/sec3_1.html
[3] Bonifati, Angela, et al. "Querying graphs." Synthesis Lectures on Data Management 10.3 (2018): 1-184.
[4] https://www.w3.org/TR/sparql11-query/
[5] https://en.wikipedia.org/wiki/Modus_ponens
[6] Jens Lehmann, Robert Isele, Max Jakob, Anja Jentzsch, Dimitris Kontokostas, Pablo N. Mendes, Sebastian Hellmann, Mohamed Morsey, Patrick van Kleef, Sören Auer, and Christian Bizer. 2015. DBpedia - A large-scale, multilingual knowledge base extracted from Wikipedia. Semantic Web Journal 6, 2 (2015), 167–195
[7] Kurt Bollacker, Patrick Tufts, Tomi Pierce, and Robert Cook. 2007. A platform for scalable, collaborative, structured information integration. In Intl. Workshop on Information Integration on the Web (IIWeb’07), Ullas Nambiar and Zaiqing Nie (Eds.). 6
[8] James A. Hendler, Jeanne Holm, Chris Musialek, and George Thomas. 2012. US Government Linked Open Data: Semantic.data.gov. IEEE Intelligent Systems 27, 3 (2012), 25–31.
[9] Johannes Hoffart, Fabian M. Suchanek, Klaus Berberich, Edwin Lewis-Kelham, Gerard de Melo, and Gerhard Weikum. 2011. YAGO2: Exploring and Querying World Knowledge in Time, Space, Context, and Many Languages. In Proceedings of the 20th International Conference on World Wide Web, WWW 2011, Hyderabad, India, March 28 - April 1, 2011 (Companion Volume), Sadagopan Srinivasan, Krithi Ramamritham, Arun Kumar, M. P. Ravindra, Elisa Bertino, and Ravi Kumar (Eds.). ACM Press, 229–232.
[10] Elias Kärle, Umutcan Simsek, Oleksandra Panasiuk, and Dieter Fensel. 2018. Building an Ecosystem for the Tyrolean Tourism Knowledge Graph. CoRR abs/1805.05744 (2018), 8. http://arxiv.org/abs/1805.05744
[11] Ferras Hamad, Isaac Liu, and Xian Xing Zhang. 2018. Food Discovery with Uber Eats: Building a Query Understanding Engine. Uber Engineering Blog. https://eng.uber.com/uber-eats-query-understanding/.
[12] Qi He, Bee-Chung Chen, and Deepak Agarwal. 2016. Building The LinkedIn Knowledge Graph. LinkedIn Blog. https://engineering.linkedin.com/blog/2016/10/building-the-linkedin-knowledge-graph.
[13] Arun Krishnan. 2018. Making search easier: How Amazon’s Product Graph is helping customers find products more easily. Amazon Blog. https://blog.aboutamazon.com/innovation/making-search-easier.
[14] Xin Luna Dong. 2019. Building a Broad Knowledge Graph for Products, pages 25–25 in ICDE 2019 2019. 35th IEEE International Conference on Data Engineering, ICDE 2019, Macao, China, April 8-11, 2019. IEEE Computer Society.
[15] Spencer Chang. 2018. Scaling Knowledge Access and Retrieval at Airbnb. AirBnB Medium Blog. https://medium.com/airbnb-engineering/scaling-knowledge-access-and-retrieval-at-airbnb-665b6ba21e95.
[16] Patricia Branum and Bethany Sehon. 2019. Knowledge Graph Pilot Improves Data Quality While Providing a Customer 360 View. In Knowledge Graph Conference. (Invited talk).
[17] Chun Lu, Philippe Laublet, and Milan Stankovic. 2016. Travel Attractions Recommendation with Knowledge Graphs, See [45], 416–431. https://doi.org/10.1007/978-3-319-49004-5_27
[18] Edgar Meij. 2019. Understanding News using the Bloomberg Knowledge Graph. Invited talk at the Big Data Innovators Gathering (TheWebConf).
Slides at https://speakerdeck.com/emeij/understanding-news-using-the- bloomberg-knowledge-graph.
[19] David Newman. 2019. Knowledge Graphs and AI: The Future of Financial Data. In Knowledge Graph Conference.(Invited talk).
[20] Ekpe Okorafor and Atish Ray. 2019. The path from data to knowledge. Accenture Applied Intelligence Blog. https://www.accenture.com/us-en/insights/digital/data-to-knowledge.
[21] R. J. Pittman, Amit Srivastava, Sanjika Hewavitharana, Ajinkya Kale, and Saab Mansour. 2017. Cracking the Code on Conversational Commerce. eBay Blog. https://www.ebayinc.com/stories/news/cracking-the-code-on-conversational- commerce/.
[22] Yves Raimond, Tristan Ferne, Michael Smethurst, and Gareth Adams. 2014. The BBC World Service Archive prototype. Journal of Web Semantics 27-28 (2014), 2–9.
[23] Nigel Shadbolt and Kieron O’Hara. 2013. Linked Data in Government. IEEE Inteternet Computing 17, 4 (2013), 72–77.
[24] Amit Singhal. 2012. Introducing the Knowledge Graph: things, not strings. Google Blog. https://www.blog.google/ products/search/introducing-knowledge-graph-things-not/.
[25] Saurabh Shrivastava. 2017. Bring rich knowledge of people, places, things and local businesses to your apps. Bing Blogs. https://blogs.bing.com/search-quality-insights/2017-07/bring-rich-knowledge-of-people-places-things-and- local-businesses-to-your-apps
[26] Natasha F. Noy, Yuqing Gao, Anshu Jain, Anant Narayanan, Alan Patterson, and Jamie Taylor. 2019. Industry-scale Knowledge Graphs: Lessons and Challenges. ACM Queue 17, 2 (2019), 20.
[27] Denny Vrandečić and Markus Krötzsch. 2014. Wikidata: A Free Collaborative Knowledgebase. Communications of the ACM 57, 10 (2014), 78–85.