Chatterbots - Sprachliche Informationsverarbeitung

Transcription

Chatterbots - Sprachliche Informationsverarbeitung
Veranstaltung: Künstliche Intelligenz - Prolog
Dozent: Stephan Schwiebert
Seminar: Sprachliche Informationsverarbeitung
Semester: Sommersemester 2010
Chatterbots
Seminarprojekt von Jan Bigalke, Jannes Ganzel,
Xaver Hetzenegger
1. Bestandteile eines Chatterbots
Ein Chatterbot besteht aus 3 Teilen. Dem Programm, der Wissensbasis und dem Avatar.
Während das Programm und die Wissensbasis wirklich in Form von Algorithmen und Einträgen in
eine Datenbank existieren, ist der Avatar im Grunde nur eine Konstruktion innerhalb dieser beiden
Bestandteile.
Das Programm selbst hat die Aufgabe dafür zu sorgen das der Chatterbot läuft, der Algorithmus
sorgt dafür das der Chatterbot die Eingabe einliest in einzelne Worte zerlegt und und diese mit der
Wissensbasis abgleicht, schließlich gibt er das Ergebnis als Antwort aus.
Die Wissensbasis ist eine Datenbank in der das Wissen des Chatterbots gespeichert ist. Sie enthält
verschiedene Schlüsselworte unter der Antwortsätze angegeben sind.
Der Avatar ist wie schon gesagt nur ein Konstrukt innerhalb der beiden anderen Teile, er ist nicht
wie bei der Wissensbasis und dem Programm notwendig damit der Chatterbot läuft, doch gibt er im
eine Art Persönlichkeit, wenn es vom Programmierer erwünscht ist, es kann sich nur um eine
Herkunftsangabe handeln, jedoch auch weitaus Komplexer sein, wie zum Beispiel Animationen
eine richtige Hintergrundgeschichte und wenn sie nur vom Entwickler erdacht wurde.
2. Entstehung/Entwicklung von Eliza
- wurde 1966 vom Psychologen und Programmierer Joseph Weizenbaum entwickelt um die
Möglichkeiten der Kommunikation zwischen einem Menschen und einem Computer über
natürliche Sprache aufzuzeigen
Joseph Weizenbaum:
- 1923 in Berlin geboren und wanderte mit seiner Familie, welche jüdischer Abstammung war, in
die USA aus
- studierte dort Mathematik an der Wayne Universität
- war nach Beendigung des Studiums Assistent an der Wayne Universität und war führend am
Entwurf und Bau eines Computers beteiligt
- 1963 wurde er als Professor zum MIT (Massachusetts Institute of Technology) berufen, um dort
Computerwissenschaften zu lehren.
- Zwischen 1964 und 1967 arbeitete Weizenbaum an Sprach-Analyse-Programmen und entwickelte
dabei Eliza
- Weizenbaum wurde damit durch die oberflächliche Simulation eines Psychotherapeuten bekannt
Namensgebung:
Der Name ELIZA wurde wegen der Ähnlichkeit mit dem später als „MyFairLady“ bekannten
Schauspiel gewählt. Dort geht es um eine einfache Frau von der Straße, Eliza Doolittle, die von
einem Professor für Linguistik die Sprache der gehobenen Gesellschaft beigebracht bekommt.
→ Ebenso „lehrt“ Weizenbaum dem Computer mit einem menschlichen Benutzer zu
kommunizieren
Entwicklung und Reaktionen:
ELIZA wurde mit dem MAC time-sharing system realisiert, das es ermöglichte, eine Konversation
zwischen Mensch und Maschine mittels Tastatur zu führen und kontrollierte Verzögerungen bei der
Ausgabe mittels Parametern zu erzeugen
- das Programm sollte über Skripte verschiedene Gesprächspartner simulieren
- Weizenbaums Skript bestand damals als eines der ersten KI-Programme einen eingeschränkten
Turingtest
→ trotz seiner einfachen Programmstruktur nahm die Öffentlichkeit Eliza außerordentlich
euphorisch auf.
- Ein amerikanischer Psychiater sah mit Eliza den Beginn der automatisierten Therapie gekommen,
KI-Experten sprachen vom entscheidenden Durchbruch beim maschinellen Verstehen natürlicher
Sprache
- Joseph Weizenbaum hatte sein Programm nie für den Einsatz als Ersatzpsychiater
erschaffen, sondern nur um zu demonstrieren, wozu eine Maschine fähig sein kann und es
eigentlich als eine Art Parodie gesehen, um zu zeigen, wieviel “Intelligenz” ohne das geringste
semantische Verständnis vorgetäuscht werden kann
- er war erschüttert über die Reaktionen auf sein Programm, vor allem, dass praktizierende
Psychiater ernsthaft daran glaubten, damit zu einer automatisierten Form der Psychotherapie
gelangen zu können. Er entwickelte sich nicht zuletzt aufgrund dieser Erfahrungen zu einem
Gesellschaftskritiker
3. Funktionsweise von Eliza
Grundmuster:
Grundmuster von Eliza ist die Simulation eines Gesprächs zwischen einem (computergenerierten)
Psychotherapeuten auf der einen und einem menschlichen Patienten auf der anderen Seite
- Wie im folgenden Beispiel wird dieses Konzept einer klientzentrierten Gesprächsführung mit
Techniken der aktiven Gesprächsführung im Sinne des Spiegelns und des Paraphrasierens von
Aussagen des Patienten durch den Therapeuten verknüpft:
1)Eliza: Hello. I am ELIZA. How can I help you?
2)NUTZER: My best friend hates me.
3)Eliza: Why do you say your best friend hates you?
4)NUTZER: He's not happy to see me any more.
5)Eliza: Can you elaborate on that?
6)NUTZER: She steals my lunch money.
7)Eliza: Why do you say your lunch money?
8)NUTZER: Because that's what she takes from me.
9)Eliza: Do any other reasons not come to mind?
10)NUTZER: Bla.
11)Eliza: I see.
- Hier wird das einfache Reiz-Reaktionsschema deutlich
-Der „Therapeut“ bewegt im Dialog das Gegenüber zum fortgesetzten Sprechen über seine Fragen
und Probleme und entwickelt keine eigene Gesprächsinitiative
- Äußerungen Elizas (3) und (7) zeigen, dass hier der Antwortrumpf "Why do you say irgendwas?"
vorliegt
- Im Gegensatz dazu war bei der Nutzeräußerung (10) "Bla" die Musterabfrage nicht erfolgreich, da
das Programm keine Entsprechung im Skript finden konnte
→ Als Reaktion auf solche Lücken generiert das Programm eine seiner zufällig ausgewählten
Auffangantworten, wie etwa Äußerung (11) "I see" → soll einem möglichen Gesprächsabbruch auf
Nutzerseite vorbeugen und den Nutzer zu einer erneuten Eingabe bewegen
grundlegende Funktionsweise des Programms:
→ Programm liest zunächst die Nutzereingaben ein und durchforstet sie nach Schlüsselwörtern,
welche nach ihrer Wichtigkeit in Ranglisten definiert sind
→ wenn welche Schlüsselwörter gefunden werden,wird die neue Antwort nach festgelegten
Transformationsregeln gebildet und ausgegeben
Beispiel: Erzeugung der Antwort auf Benutzereingabe „My best friend hates me“ durch Eliza:
- Eliza untersucht die Eingabe des Nutzers zuerst auf im Skript abgelegte Schlüsselwörter, wie etwa
auf das Wort „hate”
-Im Anschluss lösen Ersatzschlüssel einen Austausch der ersten und zweiten bzw. ersten und dritten
Person aus
- Um die Aussage des Nutzers durch das Programm zu spiegeln, werden das Possessivpronomen
my und das Reflexivpronomen me in ihre Entsprechungen your und you für die Antwort des
Programms verwandelt
→ Auf diese Weise erfolgt eine Überführung der Aussage "My best friend hates me" des Nutzers in
die Frage Elizas "Why do you say your best friend hates you?
- per Zufallsgenerator wird ein passender Antwortstumpf aus der Gesamtmenge der für das
entsprechende Muster möglichen Antwortstümpfe ausgewählt.
→ Durch diese zufällige Auswahl der Antwortmuster sollen Wiederholungen seitens des
Programms während des Dialogs vermieden werden
Grundlegende Probleme, mit denen Eliza konfrontiert ist:
1. Erfassung von Schlüsselwörtern
2. Erfassung des Inhalts
3. die Wahl der geeigneten Transformation
4. Erzeugung von Antworten, wenn keine Schlüsselwörter gefunden werden
5. Kapazität der Elizascripts
4. Psychologische Ansätze zur Erzeugung von KI?
- Erfolg von ELIZA als „Künstliche Intelligenz“ lag daran, dass man sich durch Nachahmung
eines Therapeuten um die perfekte Simulation einer KI herumdrücken konnte
→ Wenn der menschliche Gesprächspartner den Satz „Ich bin mit dem Auto gefahren“ äußert und
der Computer antwortet darauf „Erzählen Sie mir etwas über Autos“, wird der Mensch nicht
annehmen, dass sein Gesprächspartner kein Wissen über Autos besitzt.
→ Die Versuchspersonen in den Experimenten waren zu einem großen Teil sogar überzeugt, dass
der „Gesprächspartner“ ein tatsächliches Verständnis für ihre Probleme aufbrachte.
Auch als sie mit der Tatsache konfrontiert wurden, dass das Computer-Programm, mit dem sie
„gesprochen“ hatten, auf Basis einiger simpler Regeln einfach gegebene Aussagen in Fragen
umwandelte, weigerten sie sich oft, dies zu akzeptieren.
→ Experiment zeigt, dass es tatsächlich, zumindest teilweise gelungen ist, eine künstliche
Intelligenz vorzutäuschen, trotz Fehlverhaltens des Programms in bestimmten Situationen
- Heute würde sicherlich von Testpersonen solch ein Programm kritischer bewertet werden, es gibt
aber nun auch Vielzahl von Adaptionen und Weiterentwicklungen in unterschiedlichen
Programmiersprachen, die sich menschlichen Verhalten stärker annähern wollen
aus KI 1: 4 Typen von „Künstlicher Intelligenz“ definiert:
1.Systeme, die wie Menschen denken
2. Systeme, die rational denken
3. Systeme, die rational agieren
4. Systeme, die wie Menschen agieren
„Die Kunst, Maschinen zu schaffen, die
Funktionen erfüllen, die, werden sie von
Menschen ausgeführt, der Intelligenz bedürfen.“
(Kurzweil, 1990)
„Die Studie, wie man Computer dazu bringt,
Dinge zu tun, bei denen ihnen momentan der
Mensch noch überlegen ist.“ (Rich und Knight,1991)
=> Eliza täuscht KI durch Simulation eines sich unwissend stellenden Psychologen vor. Nur so
funktioniert die Illusion, und nur solang sich der Benutzer auf diese Art von Gespräch
einlässt, funktioniert das Programm!
5. Der Turing Test
Alen Turing entwickelte 1950 ein Versuch um zu untersuchen ob eine Maschine ein gleichwertiges
Denkvermögen wie ein Mensch besitzen kann.
Der Versuch findet in 3 verschiedenen Räumen statt, und ein PC und eine Versuchsperson
versuchen eine zweite Person davon zu überzeugen das sie menschlich sind.
Abbildung 1: PC A und Person B versuchen Person C davon zu überzeugen, das sie
menschlich sind.
Wenn Person C am Schluss nicht genau sagen kann wer der Mensch ist und wer die Maschine hat
der PC den Test bestanden.
Es gibt jedoch einige Kritik an dem Versuch von Alen Turing, Eine Seite zweifelt Intelligenz bei
Maschinen an, sie sagen zum Beispiel, das eine Simulation einer Unterhaltung nicht direkt
Intelligenz bedeutet, sondern nur einen kleinen Teil davon. Außerdem würde ein Turing-Test auch
das durchsuchen von riesigen Datenbanken als Intelligenz werten. Eine andere Position spricht dem
Test die Fähigkeit Intelligenz festzustellen ab. Sie sagen das Intelligenz nicht direkt menschliche
Kommunikation bedeuten muss. Und das Kinder oder beeinträchtigte Menschen den Test nicht
bestehen würden.
Allgemeine Kritik an dem Test sagt aus das man ihn nicht verallgemeinern kann, da jeder Mensch
unterschiedlich ist und der Test somit nicht Gültigkeit erlangen kann.
6. Loebner-Preis
Seit 1991 führt der amerikanische Soziologe Hugh Gene Loebner, den Loebner-Contest aus, hierbei
müssen verschiedene Chatterbots den Turing-Test bestehen, dem Sieger winken dabei eine
Goldmedaille und 100.000$ wenn sie die gesamte Jury davon überzeugen menschlich zu sein.
Dabei dürfen die Juroren so lange und so oft wie sie wollen mit den Teilnehmern über ein
bestimmtes Thema reden. Da niemand den Loebner Preis gewann wurde im Jahr 1999 die
Silbermedaille eingeführt, um sie zu gewinnen muss man nur 50% der Jury davon überzeugen ein
Mensch zu sein. Aber auch die Silbermedaille konnte bisher noch kein Chatterbot für sich
beanspruchen. Die Chatterbots die sich heute Gewinner des Loebner Preises nennen haben als
Chatterbots nur am ehesten von den Teilnehmern überzeugt und als Preis eine Bronzemedaille und
2000$ gewonnen. Über die Zeit wurden auch die Anforderungen, 1995 wurde die ThemenRestriktion aufgehoben, die Juroren dürfen seitdem über alles was sie wollen mit den Bots reden.
Im Jahr 2000 wurde der Totale-Turingtest eingeführt, von da an müssen die Chattebots Audio
Datein verstehen und wiedergeben gleiches gilt für Visuelle Dateien. Der erste Chatterbot der den
Contest gewann ist der PC-Therapist, von Joseph Weintraub, der auf Eliza basiert. Einer der
Erfolgreichsten ist ALICE.
Um die Chatterbots zu enttarnen wendet die Jury verschiedene Tricks an, von denen ich hier
Beispielsweise ein paar aufführe.
Sie fragen nach Wissen das für einen Menschen leicht zu erfassen ist, wie zum Beispiel nach dem
Wetter, für einen Menschen genügt ein Blick aus dem Fenster, für einen PC wird die Beantwortung
der Frage erheblich komplizierter. Auch stellt die Jury absichtlich falsche Behauptungen auf und
Begrüßen den z.b Chatterbot mit einem guten Abend. Sie erfragen Namen von Personen die in dem
Gespräch schon mal gefallen sind, zum Beispiel den Namen der Mutter der Jury um zu schauen ob
der Chatpartner ob Mensch oder Bot ein Gedächtnis hat.
Auch Fragen die spezielleres Wissen benötigen, aber vom Juroren schon während die gefragt wird
beantwortet wird, sind ein Mittel um Chatterbots zu enttarnen. In welchen Jahr sind die Siedler von
1820 gelandet, ist für jeden der den Satz sich genau anschaut zu beantworten, ein Chatterbot kann
jedoch die 1820 nicht in den Kontext setzen da er die Frage streng genommen gar nicht versteht,
sonder nur einzelne Wörter nimmt um sie mit der Wissensbasis abzugleichen.
Es gibt sicherlich noch mehr Tricks der Juroren um Chatterbots zu enttarnen und sicherlich werden
immer neue entwickelt, da sich auch Chatterbots weiterentwickeln.
Während die Juroren versuchen Chatterbots zu enttarnen, versuchen die Entwickler von Chatterbots
diese menschlicher wirken zu lassen, auch hier gibt es eine Methoden von denen ich wieder ein paar
als Beispiel aufführen möchte. Der allererste Schritt ist wohl immer der Avatar, Einem Chatterbot
eine Art Lebenslauf zu geben erfordert nur eine Erweiterung der Wissensbasis. Ein Chatterbot der
am Loebner-Contest teilnahm, erzählte den Juroren wie arm er doch sei und das sein Arbeitgeber,
ein gewisser Mister Schmitt, ihn nicht leiden kann und er deswegen befürchtet, gefeuert zu werden.
Eine weiter recht triviale wirkende Möglichkeit ist das Einbinden von mehreren
Antwortmöglichkeiten unter ein Schlüsselwort, so ist die Gefahr öfters mal gleiche Sätze als
Antwort auszugeben geringer, dieses Verfahren nutzt schon Weizenbaums Eliza, eine kleine
Erweiterung davon ist es eine Randomfunktion einzubauen und die unter einem Schlüsselwort
gelisteten Antworten zufällig ausgeben zu lassen. Ein Trick der Juroren ist es schwierige
Matheaufgaben zu stellen. Für einen Menschen sind diese nur schwer zu lösen und benötigen eine
gewisse Zeit, für einen Chatterbot der eine Rechenfunktion besitzt ist es kaum ein Aufwand und so
bekommt der Jurore sehr schnell ein Ergebnis präsentiert, was den Chatterbot enttarnt. Um das zu
verhindern gibt es Funktionen die das Rechnen des Chatterbots verlangsamen, ihm falsche
Antworten geben lässt oder wenn es sich um wirklich schwierige Aufgaben handelt einfach ausgibt
das er das nicht berechnen kann. Immer wichtiger wird die Audioaussage für Chatterbots und auch
die visuelle Darstellung. Doch heute wirken sie meist noch sehr unnatürlich und verraten direkt das
sich vor einem eine Maschine befindet. Kleine möglichkeiten sind noch Tippfehler in den
Antworten der Wissensbasis, sowie das Simulieren von Emotionen auf bestimmte Eingaben.
Sicher gibt es noch sehr viel mehr Möglichkeiten einen Chatterbot menschlich wirken zu lassen; bis
sie aber wirklich vollständig menschlich wirken, müssten sie feine Nuancen in der menschlichen
Kommunikation wie zum Beispiel Ironie erkenne und verstehen lernen und davon sind sie noch
heute weit entfernt.
7. A.L.I.C.E (Artificial Linguistic Internet Computer Entity)
•
•
•
•
•
•
•
•
•
Chatbot für natürliche Sprachen
3 x den Loebner – Preis gewonnen
bisher nicht in der Lage den Turing-Test zu bestehen
entwickelt von Dr. Richard Wallace
"open-source"
basiert auf dem Verfahren des "pattern-matching"
durchsucht die Wissensbasis in umgekehter Reihefolge, um spezifischte Antwort zuerst zu
finden
A.L.I.C.E ist der ursprüngliche Interpret der XML-basierenden Auszeichnungssprache
AIML
Aufbau einer AIML (Artificial Intelligence Markup Language):
◦ <alice>
<category>
<pattern>GUTEN MORGEN *</pattern>
<template>
Hallo und schönen guten Tag. Wie geht es Ihnen heute?
</template>
</category>
</alice>
◦ Einzelne Statements werden mit <category> </category> makiert
◦ das <pattern> - Tag makiert den Eingabeteil des Statements und darf folgende
Bestandteile aufweisen:
▪ Wörter einer beliebigen natürlichen Sprache (in Upper Case)
▪ * : entspricht einer beliebigen Folge von Wörtern
-> Beispiel: "Hello, how are you?" für AIML "HELLO "
◦ das <template> - Tag ist der Antwort- oder Ausgabeteil:
▪ einfachste Ausgabe: unmakierter Text
▪ Tags, die die Antwort auf entsprechende Eingabe zuschneiden
• <srai>:
▪ Nimmt Bezug auf <template> eines anderen Statements
▪ Beispiel: <template><srai>HELLO <star/></srai></template>
übernimmt die Antwort auf dem <pattern> HELLO *
• <star/>:
▪ ist das Korrelat des * aus dem <pattern>
▪ Übernimmt die Eingabe aus dem <pattern>:
▪ Beispiel: <pattern> KANNST DU *? </pattern>
<template>
<star/>? Nein, willst du es mir erklären?
</template>
▪ Kannst du fliegen? -> Fliegen? Nein, willst du es mir erklären?
• <that>:
▪ eine Art Variable, die sich die vorherrige Frage merkt
▪ kann in der nächsten Ausgabe verwendet werden
• <random>:
▪ gibt eine zufällige Auswahl aus, die mit <li> makiert sind
• <think>:
▪ A.L.I.C.E merkt sich das <template>, ohne es auszugeben
8. REA (real estate engine):
•
•
•
•
•
ein ECA (Embodied Conversational Agent)
Ziel: möglichst natürlicher Kommunikationspartner
erkennt und tätigt verbale und nonverbale Äußerungen
beherrscht "turn-taking" und "turn-giving" – Funktionen
Architektur:
◦ Input-Manager:
▪ übernimmt Erkennung der sprachlichen Äußerungen
▪ Informationen, wie die Position des Nutzers, werden direkt (hardwired) an den
Action Scheduler weitergegeben
◦ Understanding Module:
▪ Benutzereingaben bekannte Funktionen zuzuordnen
▪ Texthypothesen werden Einträgen einer Wissensbasis zugeordnet
▪ Diskursmodell:
• reagiert auf Sprachzustand des Nutzers und gibt eine Reaktion darauf weiter
◦ Decision Module:
▪ interaktionale Berechnung:
• berechnet aus Zustand des Dikursmodells alle möglichen folgenden Zustände
▪ propositionale Berechnung:
• umfaßt Sprache und unterstützende Gestiken
• Sprechakt (von REA) wird mit Wissensbasis abgeglichen
◦ Generation Module:
▪ Hauptkomponente: SPUD – Server (Sentence Planer Using Descriptions):
• nutzt Gramatik (LTAG), die Syntak und Semantik der einzelnen Wörter definiert
und durch Ersetzung einen Satz erzeugt
◦ Action Scheduler:
▪ Umsetzung der Verhaltensbeschreibungen in Bild und Ton
▪ wiederum 3 Unterheiten:
• externer Spracherzeuger
• Aktionsplaner: welche Aktion zu welcher Zeit
• Motor Skill: Berechnung der Animation
◦ Beispiel:
▪ Lee approaches the projection screen. Rea is currently turned side on and is gazing
idly about. As Lee moves within range of the two cameras mounted above the screen,
Rea turns to face him and says:
▪ REA> Hello. How can I help you?
▪ LEE> I´m looking to buy a place near MIT.
▪ Rea nods, indicating that she is following.
▪ REA> I have a house to show you.
▪ A picture of a house appears on-screen behind Rea who blinks and looks at the
house and then at Lee.
▪ REA> It´s in Somerville.
▪ LEE> Tell me about it.
▪ Rea looks up and away while she plans what to say.
▪ REA> It´s big.
▪ Rea makes an expansive gesture with her hands.
▪ Lee brings his hand up as if he is about to speak and so Rea does not continue;
instead, she is waiting for him to speak.
▪ LEE> Tell me more about it.
▪ REA> Sure thing. It has a nice garden.
▪ Rea sketches a curve gesture with her hands indicating that the garden extends
along two sides of the house.
Quellen:
http://de.wikipedia.org/wiki/Eliza (Stand: 06.06.2010)
www.logic.at/lvas/185170/11-Nowak.pdf (Stand: 06.06.2010)
www.ib.hu-berlin.de/~kumlau/handreichungen/h222/h222.pdf (Stand: 06.06.2010)
http://www.uniklinik-freiburg.de/augenklinik/live/homede/mit/bach/ops/turi-d.html?
raw=true&layout=weiss&szsrc= (Stand: 06.06.2010)
AIML Overview - Dr. Richard S. Wallace:
http://www.pandorabots.com/pandora/pics/wallaceaimltutorial.html
AIML Reference Manual – Thomas Ringate:
http://www.alicebot.org/documentation/aiml-reference.html
Don't Read Me – A.L.I.C.E and AIML Documentation – Dr. Richard S. Wallace:
http://alicebot.org/articles/wallace/dont.html
Clive Thompson: Approximating Life, The New York Times Magazine, July 7, 2002
[Cassell et al. 2000] J. Cassell, J.Sullivan, S. Prevost, E. Churchill, Embodied Conversational
Agents, Kap. 2. The MIT Press, 2000.
Die Homepage von Matthew Stone (SPUD):
http://www.cs.rutgers.edu/~mdstone/nlg.html (Stand: 04.06.2010)
Seite des Loebner Preis:
http://www.loebner.net/Prizef/loebner-prize.html
Anne Christensen, Virtuelle Auskunf mit Mehrwert: Chatbots in Bibliotheken in Berliner
Handreichungen zur Bibliotheks- und Informationswissenschaft Heft 222

Documents pareils