MI-1
Legyen Ön is milliomos, kedves Számítógép!
Szeredi Péter
[email protected] BME Számítástudományi és Információelméleti Tanszék NJSZT Mesterséges Intelligencia Szakosztály
Futurisztikus retro-party Neumann János nyomában 2011. május 27.
Futurisztikus retro-party Neumann János nyomában
Legyen Ön is milliomos, kedves Számítógép!
MI-2
A gép és az ember vetélked˝oje A vetélked˝o: Jeopardy – Magyarországon „Mindent vagy semmit” néven ismert 1964 óta sugározzák (megszakításokkal) A legnagyobb össznyeremények: Ken Jennings – $2.520.700, Brad Rutter – $3.455.102 A kihívó: a Watson számítógéprendszer Hardver: 90 db IBM Power 750 szerver, egyenként 4 chip, chipenként 8 db 3.5 GHz mag; 16 Terabyte RAM Szoftver: A DeepQA (mély kérdés-válasz) természetes nyelv˝u tudáskezel˝o rendszer SUSE Linux Enterprise Server 11 operációs rendszer f˝o programozási nyelvek: Java, C++, de fontos részekben Prolog is A meccs: 2011 február 14-16, résztvev˝ok: Jennings, Watson, Rutter Az els˝o forduló eredménye: Jennings – $4.800, Watson – $35.734, Rutter – $10.400. Összesített végeredmény: Jennings – $24.000, Watson – $77.147, Rutter – $21.600. (2011 február 28-án 5 kongresszusi képvisel˝o ellen: Watson – $40.300, a képvisel˝ok – $30.000.) További információ: http://www.research.ibm.com/deepqa/deepqa.shtml Futurisztikus retro-party Neumann János nyomában
Legyen Ön is milliomos, kedves Számítógép!
MI-3
A DeepQA rendszer architektúrája
Futurisztikus retro-party Neumann János nyomában
Legyen Ön is milliomos, kedves Számítógép!
MI-4
A kérdés-válasz rendszerekr˝ol általában
A megoldandó feladatok A tudás ábrázolása – egyre inkább logikai alapokon (els˝orend˝u logika, leíró logika, stb.) Tények, adatok (adatdoboz): akár adatbázisban is tárolható Szabályok, háttértudás (terminológiai doboz): valamilyen logikai formalizmus Természetes nyelvi interfészek Szöveges információ nyelvtani elemzése → elemzési fa → logikai alak (mind az eltárolandó állítások, mind a kérdések esetén ) Eredmények szöveggé alakítása: logikai eredmény → szöveg Válasz kinyerése – logikai következtetés Példák – az el˝oadás fennmaradó részének tartalomjegyzéke Egy nagyon egyszer˝u magyar nyelv˝u kérdés-válasz rendszer Prologban („Beszélget˝o”) Hogyan végzik a nyelvtani elemzést a Watson rendszerben Tudáskezelés és következtetés leíró logikákban
Futurisztikus retro-party Neumann János nyomában
Legyen Ön is milliomos, kedves Számítógép!
MI-5
Egy kis RETRO: vissza 1977-be
A SZÁMOLÓGÉP c. folyóirat 1977. évi 3-4. számának 44. oldaláról:
Futurisztikus retro-party Neumann János nyomában
Legyen Ön is milliomos, kedves Számítógép!
MI-6
Egy kis RETRO: vissza 1977-be
A SZÁMOLÓGÉP c. folyóirat 1977. évi 3-4. számának 45. oldaláról:
Futurisztikus retro-party Neumann János nyomában
Legyen Ön is milliomos, kedves Számítógép!
MI-7
Egy párbeszéd a Prolog nyelv˝u „Beszélget˝o” rendszerrel
| ?- párbeszéd. |: Magyar legény vagyok én. Felfogtam. |: Ki vagyok én? Magyar legény |: Péter kicsoda? Nem tudom. |: Péter tanuló. Felfogtam. |: Péter jó tanuló. Felfogtam. |: Péter kicsoda? tanuló jó tanuló |: Boldog vagyok. Felfogtam.
Futurisztikus retro-party Neumann János nyomában
|: Én vagyok Jeromos. Felfogtam. |: Te egy Prolog program vagy. Felfogtam. |: Ki vagyok én? Magyar legény Boldog Jeromos |: Okos vagy. Felfogtam. |: Ki vagy te? egy Prolog program Okos |: Valóban? Nem értem |: Unlak. Én is.
Legyen Ön is milliomos, kedves Számítógép!
MI-8
A „Beszélget˝o” rendszer Prologban – a mondatszerkezet elemzése Ez a kóddarab a teljes kód kb. 25%-a, három további dián elfér a program fennmaradó része. % mondat(Alany, Áll, L0, L): L0-L kielemezhet˝ o egy Alany alanyból és Áll % állítmányból álló mondattá. Alany lehet els˝ o vagy második személy˝ u % névmás, vagy egyetlen szóból álló (harmadik személy˝ u) alany. mondat(Alany, Áll) --> {én_te(Alany, Ige)}, én_te_perm(Alany, Ige, Áll). mondat(Alany, Áll) --> szó(Alany), szavak(Áll). % én_te(Alany, Ige): % Az Alany els˝ o/második személy˝ u névmásnak megfelel˝ o létige az Ige. én_te("én", "vagyok"). én_te("te", "vagy"). % én_te_perm(Ki, Ige, Áll, L0, L): L0-L kielemezhet˝ o egy Ki % névmásból, Ige igealakból és Áll állítmányból álló mondattá. én_te_perm(Alany, Ige, Áll) --> ( szó(Alany), szó(Ige), szavak(Áll) ; szó(Alany), szavak(Áll), szó(Ige) ; szavak(Áll), szó(Ige), szó(Alany) ; szavak(Áll), szó(Ige) ). Futurisztikus retro-party Neumann János nyomában
Legyen Ön is milliomos, kedves Számítógép!
MI-9
Nyelvtani elemzés a Watson rendszerben – egy példakérdés Példa kérdésre a POETS & POETRY kategóriában: He was a bank clerk in the Yukon before he published „Songs of a Sourdough” in 1907. Az elemzési fa Prolog tényállítások formájában (a számok a fa csomópontjainak felelnek meg): lemma(1, "he"). lemma(2, "publish"). lemma(3, "Songs of a Sourdough").
partOfSpeech(1, pronoun). partOfSpeech(2, verb). partOfSpeech(2, noun).
subject(2, 1).
object(2, 3).
A „szerz˝oje” kapcsolat leírása Prolog szabályokkal (leegyszer˝usítve): authorOf(Author, Composition) :publishing(Verb), subject(Verb, Author), author(Author), object(Verb, Composition), composition(Composition).
% % % % % %
Az Author a Composition m˝ u szerz˝ oje ha Verb egy publikálást kifejez˝ o ige egy állításban, Author ennek az állításnak az alanya, Author egy szerz˝ o, Composition ennek az állításnak a tárgya, Composition egy szerzemény.
publishing(Verb) :% Verb egy publikálást kifejez˝ o ige ha partOfSpeech(Verb, verb), % Verb szófaja ige lemma(Verb, VerbLemma), % Verb (lemmaként rögzített) szöveges alakja VerbLemma member(VerbLemma, ["write","publish",...]). % VerbLemma szerepel az adott listában.
Futurisztikus retro-party Neumann János nyomában
Legyen Ön is milliomos, kedves Számítógép!
MI-10
Nyelvtani elemzés a Watson rendszerben – a tények kezelése Tegyük fel, hogy a Watson rendszer háttértudásában szerepel ez a mondat: Songs of a Sourdough by Robert W. Service. Az authorOf Prolog predikátumhoz több szabály is tartozik, köztük ez: authorOf(Author, Composition) :% Az Author a Composition m˝ u szerz˝ oje ha composition(Composition), % Composition egy szerzemény. argument(Composition, Preposition), % Composition a Preposition argumentuma, lemma(Preposition, "by"), % a Preposition szöveges alakja "by", objectOfPreposition(Preposition, Author), % Author ennek az elöljárószónak a tárgya, author(Author), % Author egy szerz˝ o.
A fenti példamondat elemzését ezzel a szabállyal elvégezve egy olyan állítást nyerünk, amellyel a "Robert W. Service" egy plauzibilis válasznak bizonyul. A keresési fák illesztésére az IBM-nél korábban többféle saját mintailleszt˝ot fejlesztettek. „ These frameworks tend to end up replicating some of the features of Prolog but lack the full feature set of Prolog or the efficiency of a good Prolog implementation. Using Prolog for this task has significantly improved our productivity in developing new pattern matching rules and has delivered the execution efficiency necessary in order to be competitive in a Jeopardy! game.” Futurisztikus retro-party Neumann János nyomában
Legyen Ön is milliomos, kedves Számítógép!
LEIRÓ LOGIKÁK
MI-12
Leiró logikák mint a tudásreprezentáció eszközei
TBox Leiro Nyelv
Kovetkez− tetesek
ABox Tudasbazis
Tudásbázis (KB, knowledge base) = T-doboz (TBox) + A-doboz (ABox): T-doboz = terminológiai doboz = terminológiai axiómák halmaza: fogalmakról (és szerepekr˝ol) szóló állítások (anya az aki n˝onem˝u és van gyereke) A-doboz = adatdoboz = adataxiómák halmaza: tudásunk az objektumokról (Éva anya)
Futurisztikus retro-party Neumann János nyomában
Legyen Ön is milliomos, kedves Számítógép!
MI-13
Példa leiró logikai következtetésre
Tudásbázis T-doboz anya = ember és nõnemû és gyereke van A-doboz Éva ember Éva nõnemû Éva gyermeke Miklós
Ki anya? Éva kicsoda?
Futurisztikus retro-party Neumann János nyomában
Következtetõ
Éva ember nõnemû anya ...
Legyen Ön is milliomos, kedves Számítógép!
MI-14
Példa tiszta T-doboz következtetésre
Tudásbázis T-doboz anya = ember és nõnemû és van gyereke. nõ = ember és nõnemû férfi = ember és nem nõnemû szülõ= ember és van gyereke apa = férfi és szülõ
(1) Konzisztens-e a T-doboz? (2) Minden anya szülõ? (3) Minden szülõ férfi? (4) Lehet-e férfi anya? (5) Mi a fogalmak hierarchiája?
Futurisztikus retro-party Neumann János nyomában
Következtetõ
Igen. Igen. Nem. Nem. ember nõ szülõ férfi anya apa
(1) (2) (3) (4) (5)
Legyen Ön is milliomos, kedves Számítógép!
MI-15
Példák terminológiai axiómákra ˝ Az Anya nem más, mint olyan Ember aki Nonem u˝ és van gyereke. ˝ Anya ≡ Ember ⊓ Nonem u˝ ⊓ ∃gyereke.⊤ ˝ Minden Tigris Emlos. ˝ Tigris ⊑ Emlos A boldog emberek gyerekei is boldogak. Boldog ⊓ Ember ⊑ ∀gyereke.Boldog A gyermektelen emberek boldogak ∀gyermeke.⊥ ⊓ Ember ⊑ Boldog A gyereke viszonyban lev˝ok egyben leszármazottja viszonyban is vannak. gyereke ⊑ leszármazottja ˝ kapcsolat a gyereke kapcsolat megfordítottja (inverze). A szüloje ˝ ≡ gyereke− szüloje A leszármazottja reláció tranzitív Trans(leszármazottja)
Futurisztikus retro-party Neumann János nyomában
Legyen Ön is milliomos, kedves Számítógép!
MI-16
Nyílt és zárt világ szemantikák Legyen egy egyetlen adatállítást tartalmazó adatdobozunk: gyereke(PÉTER,PÁL) Adatbázis esetén (zárt világ szemantika): Péternek egyetlen gyermeke van, Pál A-doboz esetén (nyílt világ szemantika): Péternek van egy Pál nev˝u gyermeke. Ha emellett még azt is közölni szeretnénk, hogy Pál az egyetlen gyermeke, akkor pl. kijelenthetjük, hogy Péternek pontosan egy gyermeke van. Az Oidipusz példa: gyereke(IOKASZTÉ,OIDIPUSZ) gyereke(IOKASZTÉ,POLÜNEIKÉSZ) gyereke(OIDIPUSZ,POLÜNEIKÉSZ) gyereke(POLÜNEIKÉSZ,THERSZANDROSZ) Apagyilkos(OIDIPUSZ) ¬ Apagyilkos(THERSZANDROSZ) Erre az AOI A-dobozra vonatkozóan az alábbi kérdést szeretnénk feltenni: Van-e Iokaszténak olyan gyermeke, aki apagyilkos, és akinek van egy gyermeke, aki nem apagyilkos? azaz: AOI |= (∃gyereke.(Apagyilkos ⊓ ∃gyereke.¬Apagyilkos))(IOKASZTÉ)? A válasz: igen, de a bizonyításhoz eset-szétválasztás szükséges! Futurisztikus retro-party Neumann János nyomában
Legyen Ön is milliomos, kedves Számítógép!
MI-17
Összefoglalás
A jöv˝o: intelligens, emberközeli, tudásalapú informatika a tudásábrázolás régen jelen lev˝o formája: (matematikai) logika a tudáskezelés: (logikai) következtetés Logika a jelenben – néhány példa: Logikai programozás magasszint˝u, jól párhuzamosítható (többmagos processzorok) korlát-kiterjesztései (constraint) kiugróan er˝os következtetést adnak (pl. ILOG – IBM) Szemantikus technológiák Szemantikus világháló – a keres˝ok, ne csak olvassák, értsék is a világhálót! Szemantikus integráció – alkalmazások automatikus összeépítése Tudásalapú (szakért˝o) rendszerek – pl. az orvostudományban (Watson javasolt alkalmazása) Végül egy kis retro: hogyan is álltunk ez ügyben a 70-es években?
Futurisztikus retro-party Neumann János nyomában
Legyen Ön is milliomos, kedves Számítógép!
MI-18
Összefoglalás - retro
Egy rövid idézet a „KNOWLEDGE BASED SYSTEMS –Overview and Selected Examples” c. tanulmányból (E. Weigkricht és L. Winkeibauer, IIASA, December 1987)
Futurisztikus retro-party Neumann János nyomában
Legyen Ön is milliomos, kedves Számítógép!
MI-19
Példa: „természetes” nyelv˝u beszélgetés — szavak elemzése % szó(Sz, L0, L): L0-L egy Sz bet˝ usorozatból álló (nem üres) szó. szó(Sz) --> bet˝ u(B), szómaradék(SzM), {illik([B|SzM], Sz)}, köz. % szómaradék(Sz, L0, L): L0-L egy Sz kódlistából álló (esetleg üres) szó. szómaradék([B|Sz]) --> bet˝ u(B), !, szómaradék(Sz). szómaradék([]) --> []. % illik(Szó0, Szó): Szó0 = Szó, vagy a kezd˝ o kis-nagy bet˝ uben különböznek. illik([B0|L], [B|L]) :( B = B0 -> true ; abs(B-B0) =:= 32 ). % köz(L0, L): L0-L nulla, egy vagy több szóköz. köz --> ( " " -> köz ; "" ). % bet˝ u(K, L0, L): L0-L egy K kódú "bet˝ u" (különbözik a " .?" jelekt˝ ol) bet˝ u(K) --> [K], {\+ member(K, " .?")}. % szavak(SzL, L0, L): L0-L egy SzL szó-lista. szavak([Sz|Szk]) --> szó(Sz), ( szavak(Szk) ; {Szk = []} ). Futurisztikus retro-party Neumann János nyomában
Legyen Ön is milliomos, kedves Számítógép!
MI-20
Példa: „természetes” nyelv˝u beszélgetés — párbeszéd-szervezés % :- type mondás ---> kérdez(szó) ; kijelent(szó,list(szó)) ; un. % Megvalósít egy párbeszédet. párbeszéd :repeat, read_line(L), % beolvas egy sort, L a karakterkódok listája ( menet(Mondás, L, []) -> feldolgoz(Mondás) ; write(’Nem értem\n’), fail ), Mondás = un, !. % menet(Mondás, L0, L): Az L0-L kielemzett alakja Mondás. menet(kérdez(Alany)) --> {kérd˝ o(Szó)}, mondat(Alany, [Szó]), "?". menet(kijelent(Alany,Áll)) --> mondat(Alany, Áll), ".". menet(un) --> szó("unlak"), ".". % kérd˝ o(Szó): Szó egy kérd˝ oszó. kérd˝ o("mi"). kérd˝ o("ki"). o("kicsoda"). kérd˝
Futurisztikus retro-party Neumann János nyomában
Legyen Ön is milliomos, kedves Számítógép!
MI-21
Példa: „természetes” nyelv˝u beszélgetés — válaszok el˝oállítása :- dynamic tudom/2. % feldolgoz(Mondás): feldolgozza a felhasználótól érkez˝ o Mondás üzenetet. feldolgoz(un) :write(’Én is.\n’). feldolgoz(kijelent(Alany, Áll)) :assertz(tudom(Alany,Áll)), write(’Felfogtam.\n’). feldolgoz(kérdez(Alany)) :tudom(Alany, _), !, válasz(Alany). feldolgoz(kérdez(_)) :write(’Nem tudom.\n’). % Felsorolja az Alany ismert tulajdonságait. válasz(Alany) :tudom(Alany, Áll), ( member(Szó, Áll), format(’~s ’, [Szó]), fail ; nl ), fail. válasz(_).
Futurisztikus retro-party Neumann János nyomában
Legyen Ön is milliomos, kedves Számítógép!