Czy maszyny myślą? Alan M. Turing
Test Turinga historia i osiągnięcia czyli: jak tworzy się chat-boty teraz, a jak robiło to kiedyś? autor: Michał Richter
Test Turinga Rok 1950 Alan Turing określa zdolności maszyny do posługiwania się językiem naturalnym pośrednio ma dowodzić opanowania przez nią umiejętności myślenia w sposób podobny do ludzkiego
Test Turinga jak wygląda Przebieg: sędzia (człowiek) prowadzi rozmowę w języku naturalnym z pozostałymi stronami Wynik: jeśli sędzia nie jest w stanie wiarygodnie określić, czy któraś ze stron jest maszyną czy człowiekiem, wtedy mówi się, że maszyna przeszła test Założenie: zarówno maszyna jak i człowiek starają się test zdać
Test Turinga wątpliwości symulowanie ludzkich zachowań konwersacyjnych to może być znacznie mniej niż prawdziwa inteligencja maszyna może być inteligentna nie posiadając ludzkiej umiejętności prowadzenia rozmowy wielu ludzi mogłoby nie być w stanie zaliczyć takiego testu niekiedy, aby zaliczyć test maszyna musiałaby symulować brak wiedzy: np. pytanie: Ile wynosi 98754 * 8.93?
Żaden komputer nie zaliczył tego testu ale wciąż próbujemy
Nagroda Loebnera polega na napisaniu chatbota, z którym rozmowa zostanie uznana za najbliższą rozmowie z człowiekiem sędziowie rozmawiają przez terminal nie wiedząc, czy po drugiej stronie jest chatbot, czy człowiek sędziowie oceniają, czy dany terminal obsługiwał człowiek, czy chatbot. Jeśli bot, to oceniają stopień zachowania się po ludzku
Nagroda Loebnera Są dwie nagrody specjalne (jednorazowe): $25.000 dla chatbota, którego sędziowie nie odróżnią od człowieka $100.000 dla bota, który przejdzie pełny test Turinga, tzn. będzie rozumiał i odpowiadał na zapytania i wskazówki dźwiękowe, wizualne oraz tekstowe
Nagroda Loebnera konkurs coroczny w różnych miejscach na świecie zapoczątkowany w 1990 przez Hugh Loebnera zwycięzca otrzymuje pozłacany brązowy medal oraz 3000 dolarów zdobycie nagrody głównej definitywnie kończy konkurs
Nagroda Loebnera Wyniki od roku 2000: 2000 Richard Wallace Artificial Linguistic Internet Computer Entity (A.L.I.C.E.) 2001 Richard Wallace Artificial Linguistic Internet Computer Entity (A.L.I.C.E.) 2002 Kevin Copple Ella 2003 Juergen Pirner Jabberwock 2004 Richard Wallace Artificial Linguistic Internet Computer Entity (A.L.I.C.E.) 2005 Rollo Carpenter George (based on Jabberwacky) 2006 Rollo Carpenter Joan (based on Jabberwacky) 2007 Robert MedekszaUltra Hal 2008 Fred Roberts Elbot 2009 David Levy Do-Much-More 2010 Bruce Wilcox Suzette (based on ChatScript) 2011 Bruce Wilcox Rosette (based on ChatScript) 2012 Mohan Embar Chip Vivant
Chatboty - historia początki lata '60 Joseph Weizenbaum @ MIT, USA chatbot ELIZA - symuluje psychoanalityka ludzie z MIT, którzy nie wiedzieli o ELIZIE (np. sekretarki) myśleli, że rozmawiają z człowiekiem i angażowali się w rozmowę Weizenbaum początkowo chciał zaprzestać rozwijania tego bota (a wręcz wyrzucić go)
Chatboty - historia lata '70 Kenneth Colby @ Stanford University, USA chatbot PARRY symuluje człowieka chorego na schizofrenię paranoidalną PARRY bazował na pomysłach, wierzeniach i sformułowaniach. Używał osądzania sformułowań (akceptacja, odrzucenie, stosunek neutralny) PARRY kilkukrotnie rozmawiał z ELIZĄ efekty czasem śmieszne, czasem bezsensowne
Sposoby działania - ELIZA 1. Główny schemat działania ELIZY: I am <statement>. -> How long have you been <statement>? 2. Zamiana pierwszej na drugą osobę: I am depressed -> you are depressed my boyfriend made me come here -> your boyfriend made you come here
Sposoby działania - ELIZA 3. Wyrażenia regularne: I AM (depressed + sad + other adjective) -> WHY DO YOU THINK YOU ARE \1 * all * -> IN WHAT WAY * always * -> CAN YOU THINK OF A SPECIFIC EXAMPLE 4. Każdej możliwej odpowiedzi nadaje wagę i wybiera najlepszą.
Dodatkowe PROSTE (!) możliwe ulepszenia opowiadanie żartów przytaczanie cytatów nawiązywanie wypowiedzi do słów kluczowych zarzucenie rozmówcy pytaniami odpowiadanie wymijająco częsta zmiana tematu rozmowy
I troszkę trudniejsze: przypominanie początkowych wypowiedzi rozmówcy
Jabberwacky jego historia zaczyna się w latach '80 autor: brytyjczyk Rollo Carpenter w Nagrodzie Loebnera startował 4-krotnie, wygrał w 2005 i 2006 w 2008 zmienia nazwę i sposób działania powstaje Cleverbot
Jabberwacky z czego korzysta metody statystyczne metody probabilistyczne archiwizacja wszystkich rozmów przytwarzanie dużej ilości danych porównuje kontekst obecnej wypowiedzi z przeszłymi rozmowami przez chat na stronie internetowej możemy pomóc w jego rozwoju oceniając jego i nasze wypowiedzi
A.L.I.C.E Richard Wallace @ Lehigh University, USA powstaje od 1995 otrzymał nagrodę Loebnera w latach 2000, 2001 i 2004 używa heurystycznych reguł obecnie A.L.I.C.E zawiera ok. 120k reguł do określania reguł odpowiedzi stworzono AIML (Artificial Intelligence Markup Language), czyli język XML-owy
A.L.I.C.E język AIML Prostu język znacznikowy, w miarę łatwy do zrozumienia. Umożliwia rekursję, którą można wykorzystać na kilka sposobów: 1. Redukcja symboliczna. Wolimy pytania w stylu: "WHO IS SOCRATES" zamiast "DO YOU KNOW WHO SOCRATES IS". W takim celu piszemy regułę: <category> <pattern>do YOU KNOW WHO * IS</pattern> <template><srai>who IS <star/></srai></template> </category>
A.L.I.C.E język AIML 2. Dziel I zwyciężaj. Zdania złożone możemy redukować do wielu krótszych, I składać odpowiedź. Np. dla zdania rozpoczynającego się słowem Yes, możemy odpowiedzieć: Yes..... Reguła to wykonująca: <category> <pattern>yes *</pattern> <template><srai>yes</srai> <sr/></template> </category> <sr/> oznacza <srai><star/></srai>
A.L.I.C.E język AIML 3. Synonimy Jedne wyrażenia zastępujemy innymi: <category> <pattern>hi</pattern> <template><srai>hello</srai></template> </category>
A.L.I.C.E język AIML 4. Słowa kluczowe Definiujemy konkretne odpowiedzi na dane słowa kluczowe: <category> <pattern>mother</pattern> <template> Tell me more about your family. </template> </category> <category> <pattern>_ MOTHER *</pattern> <template><srai>mother</srai></template> </category>
A.L.I.C.E język AIML 5. Definiowanie tematu rozmowy: Gdy nie wiemy, co powiedzieć (a znamy temat rozmowy), wybieramy coś z danego tematu. <topic name="cars"> <category> <pattern>*</pattern> <template> <random> <li>what s your favorite car?</li> <li>what kind of car do you drive?</li> <li>do you get a lot of parking tickets?</li> <li>my favorite car is one with a driver.</li> </random> </template>
A.L.I.C.E język AIML niestety w bazie reguł mogą tworzyć się pętle w sieci można znaleźć wiele implementacji AIML w różnych językach programowania dostępne są też bazy reguł w języku AIML tym sposobem bardzo łatwo można stworzyć własnego bota wiele botów opartych na AIML działa w sieci. Niektóre potrafią rozmawiać w innych językach niż angielski
A.L.I.C.E To wszystko już było w latach '60 (ELIZA) Teraz mamy po prostu więcej reguł.
Suzette (silnik ChatScript) autor: Bruce Wilcox początki rok 1998 silnik ChatScript boty oparte na silniku ChatScript wygrały nagrodę Loebnera dwukrotnie: Suzette (2010) i Rosette (2011) silnik dostępny jako Open Source
ChatScript reguły posiada własną składnię reguł, bardzo łatwą w czytaniu i rozszerzaniu zwraca uwagę na interpunkcję prosty przykład: s: ( I love meat ) Do you really? wzorzec jest w nawiasie; dopasowanie następuje gdy podane słowa występują w tej kolejności (niekoniecznie obok siebie); odpowiedź za nawiasem.
ChatScript reguły osobne reguły piszemy dla pytań, osobne dla twierdzeń rozpoczynają się odpowiednio od?: oraz s: definiujemy zbiory słów synonimów: concept: ~meat ( bacon ham meat flesh chicken pork steak cow pig ) poprzednią definicję mozna teraz poprawić: s: ( I love ~meat ) Do you really? I am a vegan. operatory logiczne AND / OR wyszukiwanie słów ze wzorca w niekoniecznie określonej kolejności
ChatScript reguły wyrażenia * (wildcards) na sterydach definiowanie zmiennych (np. płci rozmówcy) definiowanie faktów definiowanie funkcji, np. dla wszelkich pytań typu what-is rozszerzenia powyższych i inne fajne opcje *~2 znaczy: 0-2 słowa *3 znaczy: dokładnie 3 słowa
ChatScript silnik, zanim przejdzie do generowania odpowiedzi, przekształca zdanie wejściowe do postaci kanonicznej, przekształca m.in.: liczby ze słownych na numeryczne liczbę mnogą na pojedynczą czasowniki na bezokoliczniki przymiotniki i przysłówki do formy podstawowej i kilka innych korzysta ze słownika WordNet
ChatScript - działanie 1)dzielenie na zdania, korekta błędów, znaków interpunkcyjnych 2)oznaczanie słów i synonimów (concepts), tworzenie kanonicznej postaci zdania (opisane wcześniej) 3)właściwy pattern matching reguł
ChatScript dodatkowe funkcje definiowanie tematów w regułach pomaga w radzeniu sobie z rozmówcą odpowiadacym krótko (Tak, Nie, Może, Ok). Wtedy można nawiązać rozmowę nie zmieniając za bardzo tematu Control Script sprawdza czy rozmówca odpowiada na bytanie bota. Np. po pytaniu How many people? oczekujemy w odpowiedzi liczby / słowa few / etc. Jeżeli rozmówca nie odpowiedział tak jak chcieliśmy, to na podstawie jego wypowiedzi zaczynamy nowy wątek.
Ciekawostki Po zapytaniu Siri (z urządzeń Apple'a): -"Who would you vote for - Mitt Romney or Barack Obama?" Siri odpowiada: -"I can't vote. But if I did, I would vote for ELIZA. She knows all." Przykładowe rozmowy z historycznymi chatbotami: http://www.stanford.edu/group/shr/4-2/text/dialogues.html Początkowo Bruce Wilcox miał bota, który odpowiedzi brał z Googla, ale z czasem jego zapytania były blokowane.
Chatboty online ELIZA: http://jerz.setonhill.edu/if/canon/eliza.htm Jabberwacky: http://www.jabberwacky.com/ A.L.I.C.E: http://alice.pandorabots.com/ Suzette: http://ai.bluemars.com/chat/ Cleverbot: http://www.cleverbot.com/
Źródła ELIZA: http://www.cse.buffalo.edu/~rapaport/572/s02/weizenbaum.eliza.1966. pdf Jabberwacky: http://csdl.computer.org/comp/mags/ex/2006/01/x1004.pdf A.L.I.C.E: http://www.alicebot.org/documentation/ Dr. Richard Wallace (autor bota A.L.I.C.E) odpowiada na pytania: http://news.slashdot.org/story/02/07/26/0332225/alicebot-creator-drrichard-wallace-expounds Historia Bruca Wilcoxa I jego silnika ChatScript: http://www.gamasutra.com/blogs/brucewilcox/20110623/89684/suzett e_the_most_human_computer.php Jak działa ChatScript: http://sourceforge.net/projects/chatscript/files/pattern_matching_for_ Natural_Language_Applications.doc/download
Lite 18-karatowe złoto + 100.000 dolarów Złoty Medal Loebnera ciągle czeka!