IBM Watson

- autor: tsissput

Zapewne większość czytelników tego bloga słyszała już o historycznym wydarzeniu, jakie miało miejsce kilka miesięcy temu, podczas specjalnej edycji amerykańskiego turnieju Jeopardy! (polski odpowiednik nazywa się VaBanq). Wtedy to po raz drugi w pojedynku komputer – człowiek, zwycięzcą okazała się sztuczna inteligencja. Wcześniej, w 1997 roku dokonał tego również komputer stworzony przez IBM wygrywając pojedynek szachowy z mistrzem Garri Kasparovem (3 wygrane komputera, 2 człowieka i jeden remis). Podczas gry w szachy wystarczyło nauczyć komputer wszystkich znanych partii mistrzów szachowych i zaimplementować algorytmy analizujące i oceniające kolejne posunięcia. Tym razem jednak zadanie było znacznie trudniejsze.

Gra w Jeopardy! w dużym uproszczeniu polega na tym, że zawodnicy wybierają pytanie spośród możliwych 30 (po 5 w 6 kategoriach). Jeśli odpowiedzą dobrze, otrzymują kwotę pieniężną przypisaną do pytania, jeśli błędnie – tracą. Dodatkowo odpowiedzi należy udzielać w formie pytającej np. „Jakiego odkrycia dokonał Mikołaj Kopernik?”. Co więcej pytania w grze mogą dotyczyć praktycznie wszystkiego.

Widać już teraz podstawową różnicę pomiędzy wygraną w szachy, a Jeopardy! Przede wszystkim, komputer musiał zrozumieć pytanie podane w formie przyjaznej dla ludzi, a z całą pewnością nienaturalną dla niego. Pytania mogą być przecież bogato sformułowane, zawierać wiele różnych struktur gramatycznych, składać się z wyrażeń odnoszących się niebezpośrednio do różnych wydarzeń, rzeczy. Kolejną ważną kwestią jest to, że trzeba mieć przekonanie o tym, że odpowiedź którą chce się udzielić jest poprawna. Nie wystarczy przeszukać wielkiej bazy danych i wybrać przykładowo najczęściej pojawiającą się odpowiedź, ponieważ jeśli okaże się błędna to tracimy pieniądze. Należy więc nie tylko odpowiadać poprawnie ale też wiedzieć kiedy się wycofać.

Kolejną istotną kwestią jest szybkość odpowiedzi. Jest niewiele czasu na to by wyszukać odpowiednie informacje, znaleźć odpowiedz i ocenić z jaką pewnością jest ona poprawna. W tym celu Watson został stworzony jako samowystarczalny komputer. Nie został podłączony do żadnych zewnętrznych źródeł informacji takich jak internet, gdyż spowolniłoby to jego działanie. Cały sprzęt jest wielkości 8 lodówek i składa się z 3000 rdzeni, 48 dysków twardych o łącznej pojemności ok 20 TB, z czego 3TB zajmują sam system operacyjny i aplikacje oraz wykorzystuje podczas pracy ponad 10 TB pamięci RAM! Dla porównania gdyby zadać pytanie zwykłemu komputerowi odpowiedź zajęłaby ponad 2h, podczas gdy Watson dokona tego w 2 sekundy!

Powróćmy jednak do problemów jakie napotkali naukowcy tworzący Watsona. Najważniejszy z nich, już przeze mnie wspomniany to język naturalny. Cechuje go często nieprecyzyjność, bardzo ważny jest w nim kontekst i często można napotkać na dwuznaczności, bądź trzeba się czegoś domyślić. Możemy sobie teraz wyobrazić pytanie: „Gdzie urodził się X?”. Aby komputer mógł udzielić tej odpowiedzi oczywiście najprościej byłoby mieć jakąś tabelę, nazwijmy ją „miejsca narodzin” zawierającą 2 kolumny – osobę i miejsce urodzenia. Taki sposób przechowywania danych nazywamy ustrukturalizowanym. Komputer w pewnym sensie rozumie jakie dane przechowuje. Wyobraźmy sobie teraz, że w naszej bazie danych znajdują się informacje nieustrukturalizowane jak całe książki, artykuły itd.

Załóżmy, że pytanie o miejsce urodzenia dotyczyło Alberta Einsteina i że komputer podczas poszukiwań natrafił na następujące zdanie: „Pewnego dnia, z wielu widoków na miasto Ulm, Otto wybrał kolor wody i wysłał Einsteinowi jako pamiątkę po jego miejscu urodzenia.” Skąd komputer miałby wiedzieć, że odpowiedź kryje się w tym zdaniu? Nie ma tutaj mowy o rodzeniu się, tylko o miejscu urodzenia. Komputer musiałby wiedzieć jaki jest związek pomiędzy tymi wyrażeniami. Skąd miałby o tym wiedzieć? Trzeba by jakoś nauczyć komputer wszystkich możliwych związków między wyrażeniami i gramatyki języka.

Inną ważną kwestią jest ilość informacji jakie może zgromadzić komputer. Na przykład patrząc na pytania przyrodnicze można by pomyśleć, że wystarczy zbudować wiele tematycznych baz danych odpowiadających na pytania z tej dziedziny. Rzeczywistość jest jednak taka, że udałoby się pokryć ok 0.001% wszystkich informacji. W odpowiedzi na to zbadano pytania padające podczas teleturnieju. W losowej próbce 20.000 odkryto 2.500 różnych typów pytań. Najczęstsze występowały rzadziej niż w 3% przypadków, a rozkład ma bardzo długi ogon. Skupiono się więc na reużywalnej technologii NLP analizującej wielkie wolumeny czystego tekstu, natomiast ustrukturalizowane źródła danych takie jak bazy danych dostarczały tylko wiedzę podstawową niezbędną do zrozumienia tekstu.

Watson posiada wiele programów, dzięki którym ma zrozumieć czytany tekst. Stara się rozłożyć zdanie na czynniki pierwsze i odkryć w nim rzeczowniki, czasowniki itd. Mając już tą wiedzę stara się zebrać informacje z tekstu i ocenić ich poprawność. Na przykład to, że wynalazcy patentują wynalazki nie jest dla komputera oczywiste. Musi to zostać obliczone, z wykorzystaniem statystyk i w wyniku otrzymujemy z jaką pewnością można stwierdzić, że dane wyrażenie jest prawdziwe.

Jedną z wykorzystanych technologii jest wordnet –  specjalna baza danych grupująca wyrażenia powiązane ze sobą semantycznie i leksykalnie (taksonomia). Pozwala on Watsonowi zrozumieć, że np. o płynie można także powiedzieć, że jest cieczą. Dzięki temu może wykorzystać większą liczbę źródeł informacji ponieważ rozumie te same informacje przedstawione w różny sposób.

Kolejny przykład pozwoli mi powiedzieć coś więcej na temat szczegółów działania Watsona. Przykład pochodzi z filmu dostępnego na stronie IBM.

Widać tutaj z lewej strony pytanie typowe dla Jeopardy! natomiast z prawej znaleziony tekst podczas szukania odpowiedzi. Watson potrafi poradzić sobie nawet z takimi informacjami. Algorytmy temporal reasoning umożliwiają mu porównanie dat i stwierdzenie, że jeśli w 1898 roku obchodzono 400-lecie to wydarzenie to miało miejsce w roku 1498. Dzięki innym algorytmom dowiaduje się, że landed in oraz arrival in mają bardzo podobne znaczenie, a także że Kappad Beach znajduje się w Indiach, więc jeśli ktoś tam dotarł to znaczy że dotarł również do Indii. Myślę, że ten przykład bardzo dobrze pokazuje jak bardzo skomplikowany jest Watson. Tego typu algorytmów musi tu być przecież wiele, by uzyskać tak skuteczne działanie.

Teraz pora na kilka słów o architekturze. Rdzeniem Watsona jest DeepQA.

Zadaniem tej technologii jest wyszukanie wielu potencjalnych źródeł odpowiedzi, wyszukanie w nich możliwych odpowiedzi i ich ocena. Na tym etapie powstają setki tysięcy par możliwa odpowiedź – ocena. Na końcu następuje ostateczne porównanie i wybranie tej najbardziej prawdopodobnej.

Jeden z pracowników tworzących Watsona powiedział, że dla niego inspiracją był komputer z serialu Star Trek. Kapitan zadawał tam pytanie w języku naturalnym, tak jakby pytał drugą osobę, komputer analizował dane i odpowiadał ludzkim głosem. Inżynierowie IBM nie wyobrażają sobie przyszłości bez takiej technologii, a Watson jest ich pierwszym krokiem w tym kierunku.

Już teraz myślą oni o przyszłości Watsona i mają plany na jego wykorzystanie w aplikacjach biznesowych. Watson mógłby pomóc lekarzom podczas diagnostyki i leczenia chorych. Informacje jakie posiada i sposób w jaki potrafi się nimi dzielić pomógłby we wszelkiego rodzaju help-deskach. Przydałby się także rządom, czy dużym firmom w analizie danych i pomagając podejmować ważne decyzje.

Szukając informacji o Watsonie natknąłem się na pewien blog  gdzie przez pewien czas ludzie mogli zadawać pytania i na część z nich została zamieszczona odpowiedź z IBM. Szczególnie ciekawa wydała mi się prośba o analizę logiki działania Watsona na konkretnym przykładzie i na koniec chciałbym go zaprezentować. Celowo zostawiłem tekst w oryginale, ponieważ podczas tłumaczenia znikają pewne drobne sformułowania niezbędne dla zrozumienia całości.

Pytanie: „The antagonist of Stevenson’s Treasure Island”(antagonist – główny bohater negatywny). Odpowiedź w stylu VaBanq: „Who is Long John Silver?”

1) parsowanie zdania w celu wydobycia pewnej struktury logicznej opisującej odpowiedź

X is the answer.

antagonist(X).

antagonist_of(X, Stevenson’s Treasure Island).

modifies_possesive(Stevenson, Treasure Island).

modifies(Treasure, Island)

2) generowanie założeń semantycznych

island(Treasure Island)

location(Treasure Island)

resort(Treasure Island)

book(Treasure Island)

movie(Treasure Island)

person(Stevenson)

organization(Stevenson)

company(Stevenson)

author(Stevenson)

director(Stevenson)

person(antagonist)

person(X)

3)  Stworzenie wielu róznych semantycznie zapytań opartych na zwrotach, wyrazach kluczowych I założeniach semantycznych

4) Wygenerowanie setek możliwych odpowiedzi opartych na informacjach zdobytych w poprzednim punkcie. Ważne aby na tym etapie jedną z możliwości była właściwa odpowiedź.

5) Dla każdej z odpowiedzi tworzone są nowe zapytania w celu znalezienia dowodów na jej poparcie, bądź odrzucenie. Ocena odpowiedzi.

Przykłady pozytywne:

Long-John Silver the main character in Treasure Island…..

The antagonist in Treasure Island is Long-John Silver

Treasure Island, by Stevenson was a great book.

One of the great antagonists of all time was Long-John Silver

Richard Lewis Stevenson’s book, Treasure Island features many great

characters, the greatest of which was Long-John Silver.

6) wygenerowanie, zebranie dowodów I ocean nowych założeń

Przykłady pozytywne:

Stevenson = Richard Lewis Stevenson

„by Stevenson” –> Stevenson’s

main character –> antagonist

7) Porównanie wszystkich znalezionych odpowiedzi i ich ocen. Na tej podstawie obliczana jest pewność. Poprawność Watsona zależy od zbioru dowodów, analizy i algorytmach oceny a także uczeniu maszynowym  wykorzystanym do ustalenia wag i łączenia ocen.

 

Marek Bachorski (84772)

Reklamy

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s

%d blogerów lubi to: