Legyen Ön is milliomos, kedves Számítógép!...MI-1 Legyen Ön is milliomos, kedves...

21
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!

Transcript of Legyen Ön is milliomos, kedves Számítógép!...MI-1 Legyen Ön is milliomos, kedves...

Page 1: Legyen Ön is milliomos, kedves Számítógép!...MI-1 Legyen Ön is milliomos, kedves Számítógép! Szeredi Péter szeredi@cs.bme.hu BME Számítástudományi és Információelméleti

MI-1

Legyen Ön is milliomos, kedves Számítógép!

Szeredi Pé[email protected]

BME Számítástudományi és Információelméleti TanszékNJSZT 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!

Page 2: Legyen Ön is milliomos, kedves Számítógép!...MI-1 Legyen Ön is milliomos, kedves Számítógép! Szeredi Péter szeredi@cs.bme.hu BME Számítástudományi és Információelméleti

MI-2

A gép és az ember vetélkedoje

A vetélkedo: 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 Watsonszá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 nyelvu tudáskezelo rendszer

SUSE Linux Enterprise Server 11 operációs rendszerfo programozási nyelvek: Java, C++, de fontos részekben Prolog is

A meccs: 2011 február 14-16, résztvevok: Jennings, Watson, Rutter

Az elso 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épviselo ellen:Watson – $40.300, a képviselok – $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!

Page 3: Legyen Ön is milliomos, kedves Számítógép!...MI-1 Legyen Ön is milliomos, kedves Számítógép! Szeredi Péter szeredi@cs.bme.hu BME Számítástudományi és Információelméleti

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!

Page 4: Legyen Ön is milliomos, kedves Számítógép!...MI-1 Legyen Ön is milliomos, kedves Számítógép! Szeredi Péter szeredi@cs.bme.hu BME Számítástudományi és Információelméleti

MI-4

A kérdés-válasz rendszerekrol általában

A megoldandó feladatok

A tudás ábrázolása – egyre inkább logikai alapokon (elsorendu 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 eloadás fennmaradó részének tartalomjegyzéke

Egy nagyon egyszeru magyar nyelvu kérdés-válasz rendszer Prologban („Beszélgeto”)

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!

Page 5: Legyen Ön is milliomos, kedves Számítógép!...MI-1 Legyen Ön is milliomos, kedves Számítógép! Szeredi Péter szeredi@cs.bme.hu BME Számítástudományi és Információelméleti

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!

Page 6: Legyen Ön is milliomos, kedves Számítógép!...MI-1 Legyen Ön is milliomos, kedves Számítógép! Szeredi Péter szeredi@cs.bme.hu BME Számítástudományi és Információelméleti

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!

Page 7: Legyen Ön is milliomos, kedves Számítógép!...MI-1 Legyen Ön is milliomos, kedves Számítógép! Szeredi Péter szeredi@cs.bme.hu BME Számítástudományi és Információelméleti

MI-7

Egy párbeszéd a Prolog nyelvu „Beszélgeto” 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.

|: Én vagyok Jeromos.Felfogtam.|: Te egy Prolog program vagy.Felfogtam.|: Ki vagyok én?Magyar legényBoldogJeromos|: Okos vagy.Felfogtam.|: Ki vagy te?egy Prolog programOkos|: Valóban?Nem értem|: Unlak.Én is.

Futurisztikus retro-party Neumann János nyomában Legyen Ön is milliomos, kedves Számítógép!

Page 8: Legyen Ön is milliomos, kedves Számítógép!...MI-1 Legyen Ön is milliomos, kedves Számítógép! Szeredi Péter szeredi@cs.bme.hu BME Számítástudományi és Információelméleti

MI-8

A „Beszélgeto” rendszer Prologban – a mondatszerkezet elemzése

Ez a kóddarab a teljes kód kb. 25%-a, három további dián elféra 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élyu% névmás, vagy egyetlen szóból álló (harmadik személyu) al any.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élyu 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ó mondat tá.é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!

Page 9: Legyen Ön is milliomos, kedves Számítógép!...MI-1 Legyen Ön is milliomos, kedves Számítógép! Szeredi Péter szeredi@cs.bme.hu BME Számítástudományi és Információelméleti

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 aSourdough” 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"). partOfSpeech(1, pronoun).lemma(2, "publish"). partOfSpeech(2, verb).lemma(3, "Songs of a Sourdough"). partOfSpeech(2, noun).

subject(2, 1). object(2, 3).

A „szerzoje” kapcsolat leírása Prolog szabályokkal (leegyszerusítve):

authorOf(Author, Composition) :- % Az Author a Composition mu szerz oje hapublishing(Verb), % Verb egy publikálást kifejez o ige egy állításban,subject(Verb, Author), % Author ennek az állításnak az alan ya,author(Author), % Author egy szerz o,object(Verb, Composition), % Composition ennek az állítás nak a tárgya,composition(Composition). % Composition egy szerzemény.

publishing(Verb) :- % Verb egy publikálást kifejez o ige hapartOfSpeech(Verb, verb), % Verb szófaja igelemma(Verb, VerbLemma), % Verb (lemmaként rögzített) szöv eges alakja VerbLemmamember(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!

Page 10: Legyen Ön is milliomos, kedves Számítógép!...MI-1 Legyen Ön is milliomos, kedves Számítógép! Szeredi Péter szeredi@cs.bme.hu BME Számítástudományi és Információelméleti

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 mu szerz oje hacomposition(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égezveegy olyan állítást nyerünk, amellyela "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 mintaillesztot fejlesztettek.

„ These frameworks tend to end up replicating some of the features of Prolog but lack the fullfeature set of Prolog or the efficiency of a good Prolog implementation. Using Prolog for thistask has significantly improved our productivity in developing new pattern matching rules andhas delivered the execution efficiency necessary in order tobe competitive in a Jeopardy! game.”

Futurisztikus retro-party Neumann János nyomában Legyen Ön is milliomos, kedves Számítógép!

Page 11: Legyen Ön is milliomos, kedves Számítógép!...MI-1 Legyen Ön is milliomos, kedves Számítógép! Szeredi Péter szeredi@cs.bme.hu BME Számítástudományi és Információelméleti

LEIRÓ LOGIKÁK

Page 12: Legyen Ön is milliomos, kedves Számítógép!...MI-1 Legyen Ön is milliomos, kedves Számítógép! Szeredi Péter szeredi@cs.bme.hu BME Számítástudományi és Információelméleti

MI-12

Leiró logikák mint a tudásreprezentáció eszközei

TBox

ABox

LeiroNyelv

Kovetkez−

tetesek

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 szerepekrol) szóló állítások (anya az aki nonemu é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!

Page 13: Legyen Ön is milliomos, kedves Számítógép!...MI-1 Legyen Ön is milliomos, kedves Számítógép! Szeredi Péter szeredi@cs.bme.hu BME Számítástudományi és Információelméleti

MI-13

Példa leiró logikai következtetésre

T-dobozanya = ember és nõnemû

és gyereke van

Éva emberÉva nõnemûÉva gyermeke Miklós

Tudásbázis

Ki anya?

Éva kicsoda?

Kö-vet-kez-te-tõ

Éva

embernõnemûanya...

A-doboz

Futurisztikus retro-party Neumann János nyomában Legyen Ön is milliomos, kedves Számítógép!

Page 14: Legyen Ön is milliomos, kedves Számítógép!...MI-1 Legyen Ön is milliomos, kedves Számítógép! Szeredi Péter szeredi@cs.bme.hu BME Számítástudományi és Információelméleti

MI-14

Példa tiszta T-doboz következtetésre

T-dobozanya = ember és nõnemû és van gyereke.nõ ember és nõnemûférfi ember és nem nõnemûszülõapa

Tudásbázis

Kö-vet-kez-te-tõ

emberz

és van gyerekeférfi és s ü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?

Igen.Igen.Nem.Nem.

(1)(2)(3)(4)(5)ember

nõ szülõ férfi

anya apa

Futurisztikus retro-party Neumann János nyomában Legyen Ön is milliomos, kedves Számítógép!

Page 15: Legyen Ön is milliomos, kedves Számítógép!...MI-1 Legyen Ön is milliomos, kedves Számítógép! Szeredi Péter szeredi@cs.bme.hu BME Számítástudományi és Információelméleti

MI-15

Példák terminológiai axiómákra

Az Anya nem más, mint olyanEmber aki Nonemu és vangyereke.

Anya ≡ Ember ⊓ Nonemu ⊓ ∃gyereke.⊤

MindenTigris Emlos.

Tigris ⊑ Emlos

A boldog emberek gyerekei is boldogak.

Boldog ⊓ Ember ⊑ ∀gyereke.Boldog

A gyermektelen emberek boldogak

∀gyermeke.⊥ ⊓ Ember ⊑ Boldog

A gyereke viszonyban levok egybenleszármazottja viszonyban is vannak.

gyereke ⊑ leszármazottja

A szüloje kapcsolat agyereke kapcsolat megfordítottja (inverze).

szüloje ≡ gyereke−

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!

Page 16: Legyen Ön is milliomos, kedves Számítógép!...MI-1 Legyen Ön is milliomos, kedves Számítógép! Szeredi Péter szeredi@cs.bme.hu BME Számítástudományi és Információelméleti

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 nevu gyermeke. Ha emellettmég azt is közölni szeretnénk, hogy Pál az egyetlen gyermeke, akkor pl. kijelenthetjük, hogyPé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 azAOI 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 nemapagyilkos?

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!

Page 17: Legyen Ön is milliomos, kedves Számítógép!...MI-1 Legyen Ön is milliomos, kedves Számítógép! Szeredi Péter szeredi@cs.bme.hu BME Számítástudományi és Információelméleti

MI-17

Összefoglalás

A jövo: intelligens, emberközeli, tudásalapú informatika

a tudásábrázolásrégen jelen levo formája: (matematikai) logika

a tudáskezelés: (logikai) következtetés

Logika a jelenben – néhány példa:

Logikai programozás

magasszintu, jól párhuzamosítható (többmagos processzorok)korlát-kiterjesztései (constraint) kiugróan eros következtetést adnak (pl. ILOG – IBM)

Szemantikus technológiák

Szemantikus világháló – a keresok, ne csak olvassák, értsék is a világhálót!Szemantikus integráció – alkalmazások automatikus összeépítéseTudásalapú (szakérto) rendszerek – pl. az orvostudományban (Watson javasoltalkalmazá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!

Page 18: Legyen Ön is milliomos, kedves Számítógép!...MI-1 Legyen Ön is milliomos, kedves Számítógép! Szeredi Péter szeredi@cs.bme.hu BME Számítástudományi és Információelméleti

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!

Page 19: Legyen Ön is milliomos, kedves Számítógép!...MI-1 Legyen Ön is milliomos, kedves Számítógép! Szeredi Péter szeredi@cs.bme.hu BME Számítástudományi és Információelméleti

MI-19

Példa: „természetes” nyelvu beszélgetés — szavak elemzése

% szó(Sz, L0, L): L0-L egy Sz betusorozatból álló (nem üres) szó.szó(Sz) -->

betu(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ó (esetl eg üres) szó.szómaradék([B|Sz]) -->

betu(B), !, szómaradék(Sz).szómaradék([]) --> [].

% illik(Szó0, Szó): Szó0 = Szó, vagy a kezd o kis-nagy betuben 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 ; "" ).

% betu(K, L0, L): L0-L egy K kódú "betu" (különbözik a " .?" j elekt ol)betu(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!

Page 20: Legyen Ön is milliomos, kedves Számítógép!...MI-1 Legyen Ön is milliomos, kedves Számítógép! Szeredi Péter szeredi@cs.bme.hu BME Számítástudományi és Információelméleti

MI-20

Példa: „természetes” nyelvu 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").kérd o("kicsoda").

Futurisztikus retro-party Neumann János nyomában Legyen Ön is milliomos, kedves Számítógép!

Page 21: Legyen Ön is milliomos, kedves Számítógép!...MI-1 Legyen Ön is milliomos, kedves Számítógép! Szeredi Péter szeredi@cs.bme.hu BME Számítástudományi és Információelméleti

MI-21

Példa: „természetes” nyelvu beszélgetés — válaszok eloá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!