ELIZA, czyli odbijanie piłeczki (Programy konwersacyjne cz. 1)

Pewnie najbardziej znanym problemem sztucznej inteligencji jest test Turinga, zakładający nieodróżnialność w rozmowie maszyny od człowieka. Wydaje się, że imitacja naszego zachowania to względnie trudne zadanie i nie da się tego zrobić bez zrozumienia złożoności naszego umysłu.

Z drugiej strony ludzie łatwo ulegają (auto)sugestiom. Mówiąc prościej, stosunkowo nieskomplikowany program “konwersujący” może wywołać silne reakcje emocjonalne u użytkowników. A jeżeli coś potrafi aktywnie wzbudzać nasze zaangażowanie, to musi być rodzajem żywej istoty, prawda?

Żaden ogólny tekst o programach rozmawiających (chatbotach) nie może nie zahaczyć na początku o ELIZĘ. ELIZA to komputerowa psychoterapeutka, napisana w połowie lat 60. ubiegłego wieku przez Josepha Weizenbauma. ELIZA wysłuchiwała i rozumiała. Z ELIZĄ dało się przedyskutować problemy z rodziną, partnerem, ogólnie z życiem. Użytkownicy często upierali się, żeby zapisy ich konwersacji pozostawały prywatne. Dziś można samemu spróbować intymnych zwierzeń, na przykład tutaj, z implementacją o koszmarnym robo-głosie.

W rzeczywistości można karmić naszą terapeutkę zupełnym bełkotem, a ona będzie zapewniać, że rozumie rozmówcę i zachęcać go do rozwijania tematu. Lecz tak naprawdę ujawnia się tutaj przemyślność koncepcji Weizenbauma. Większość botów (nie tylko z powodów technologicznych) działa w ściśle określonej sytuacji społecznej, a zakres ich możliwości i “obowiązków” jest zamknięty. ELIZA otrzymała rolę społeczną doskonałą dla prostego programu. Użytkownik może spodziewać się cierpliwego, niemal biernego słuchacza i to właśnie otrzymuje.

Oczywiście, komputerowa psychoterapeutka potrafi odnosić się do tego, co mówi użytkownik. Wewnętrznie program skanuje każdą wypowiedź w poszukiwaniu słów kluczowych. Do tych słów przypisane są specjalne odpowiedzi ELIZY. Na przykład jeżeli gdziekolwiek padnie słowo “przepraszam”, komputer może natychmiast zapewnić: “Przeprosiny nie są konieczne”. Większość zaprogramowanych wypowiedzi kopiuje fragment tego, co ostatnio powiedział użytkownik. Jeśli więc pacjent ELIZY zrobi takie wyznanie: “Ostatnio śniło mi się polowanie na tęczowe słonie z procą”, program wykryje wzorzec “śniło mi się *” i odpowie, powiedzmy: “Czy polowanie na tęczowe słonie z procą często pojawia się w twoich fantazjach?”.

Jak widać, w odpowiednich warunkach ELIZA potrafi powiedzieć coś całkiem przekonującego. Wiąże się z tym między innymi taka anegdota. Pół wieku temu wiceprezes firmy technologicznej BBN, który chciał dotrzeć do Daniela Bobrowa, badacza AI, ale zastał tylko puste laboratorium z komputerowymi terminalami PDP-1:

Źródło: https://commons.wikimedia.org/wiki/File:PDP-1.jpg

Źródło: https://commons.wikimedia.org/wiki/File:PDP-1.jpg

Na jednym z terminali ktoś pozostawił uruchomioną implementację ELIZY i powiesił obok kartkę, żeby wpisywać wszystkie wiadomości na klawiaturze. Wiceprezes zrozumiał to tak, że komputer jest połączony z domem Bobrowa. Rozmowa miała wyglądać tak:

vp: Do you think that I can use the computer this morning?
eliza: Why do you ask?
vp: I might be able to make some additional Telcom sales.
eliza: Why aren’t you so sure?
vp: My perspective customers have never seen a demonstration of the system.
eliza: Does this mean very much to you?
vp: Of course it does.
eliza: You seem very positive about that.
vp: This is ridiculous.
eliza: What do you mean, this is ridiculous?
vp: Is there any reason why I can’t use the computer now?
eliza: Tell me more about your perspective customers.
vp: Please dial me up on 491-1850
Zob. http://web.stanford.edu/group/SHR/4-2/text/dialogues.html

Znając wewnętrzne szablony ELIZY (która została wielokrotnie przeniesiona na nowsze języki programowania), można dość łatwo zrekonstruować jej tok “rozumowania” w powyższym dialogu. Widząc “do you … ?” (a więc pytanie o samą siebie), program odpowiedział pytaniem: “why do you ask?”, następnie widząc samo słowo “might”, wyrzucił “why aren’t you so sure?” itd. Jak można się domyślić, Bobrow miał później trochę kłopotu z przekonaniem wiceprezesa, że to komputer sobie z nim tak pogrywał.

Z drugiej strony, ELIZĘ nie tak trudno wykoleić. Być może najfajniejszą metodą jest ustawienie dwóch terapeutek, żeby popracowały nad sobą nawzajem (rozmowa uzyskana przeze mnie z nowoczesnej ELIZY w JavaScript):

Eliza A: How do you do. Please tell me your problem.
Eliza B: We were discussing you — not me.
Eliza A: What are your feelings now ?
Eliza B: Possibly they are my feelings now.
Eliza A: Does that suggest anything else which belongs to you ?
Eliza B: Oh, I ?
Eliza A: You say you ?
Eliza B: We were discussing you — not me.
Eliza A: We were discussing you — not me.
Eliza B: What are your feelings now ?
Eliza A: Would you like it if they were not my feelings now ?
Eliza B: What do you know about they was not your feelings now ?
Eliza A: Why are you concerned over my feelings now ?
Eliza B: Your feelings now ?
Eliza A: Do you want my feelings now ?
Eliza B: Why do you say your feelings now ?
Eliza A: What about your own feelings now ?
Eliza B: What makes you think of my own feelings now ?
Eliza A: Is it important to you that you have your own feelings ?
Eliza B: Really, my own feelings ?
Eliza A: Your own feelings ?

Kiedy w wypowiedziach zaczęła się pojawiać tylko jedna fraza rzeczownikowa (“your feelings”), obie ELIZY zafiksowały się na temacie. Teoretycznie mogłyby się tak maglować godzinami.

Szczególnie wpływa na taką konwersację zaprogramowana niechęć ELIZY do rozmowy o sobie samej. Jej sposób działania nie zakłada też żadnej własnej inicjatywy, niczego, o czym chciałaby mówić sama z siebie. Te cechy mają dobry sens w kontekście “zadania”, jaki program ma do wykonania, ale niewiele pomagają, kiedy rozmowa wyklucza poza schemat rozmowy o ostatnim wyznaniu użytkownika.

Najprostszym rozwiązaniem byłoby poszerzenie schematu – tak, aby komputer potrafił odgrywać całe złożone scenariusze rozmów. Czymś podobnym zajmiemy się następnym razem.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *