13 ottobre 2011

Chatbot che imparano: il learning

Nei sistemi basati sul AIML ci sono due approcci differenti alla creazione di nuova conoscenza. Il primo modo è anticipativo: il botmaster inserisce nell'insieme di conoscenze tutte le coppie (stimolo, risposta) che secondo lui saranno usate durante il funzionamento. Questo tipo di approccio si basa fortemente sugli studi statistici effettuati. Il secondo modo invece è posticipato: il botmaster esamina il log dei dialoghi, individua le situazioni in cui il software non è stato in grado di produrre risposte adeguate ed inserisce le opportune coppie (stimolo, risposta) che permetteranno al software di rispondere in maniera adeguata al lancio successivo; questo secondo approccio è scientificamente giustificato dal fatto che le frasi dette durante un dialogo sono distribuite secondo una curva Zipf. Non è previsto nessun meccanismo di learning automatico.
La principale innovazione presentata dal sistema ILN è la possibilità di inserire nuova conoscenza da parte di tutti e non del solo botmaster.
Sono attualmente salvaguardati due sistemi già messi a punto mediante AIML, ad essi si aggiunge un terzo sistema, mediante il quale chiunque dialoga con un'istanza di un ILN può inserire nuova conoscenza al file specifico di quell'istanza, non al file base comune a tutti; in pratica chiunque durante un dialogo può contribuire a far evolvere la personalità dell'istanza con la quale interagisce.
Al momento è in fase di analisi un meccanismo automatico di autolearning da parte degli ILN.

Turing non ha lasciato molti esempi circa il tipo di conversazione che la sua macchina avrebbe dovuto produrre. Un dialogo apparso nel suo testo del 1950 indica che lui pensava ad una macchina in grado di parlare, fare calcoli, giocare a scacchi:

  • C: Please write me a sonnet on the subject of the Forth Bridge.
  • R: Count me out on this one. I never could write poetry.
  • C: Add 34957 to 70764.
  • R: (Pause about 30 seconds and then gives as answer) 105621
  • C: Do you play chess?
  • R: Yes.
  • C: I have K at my K1, and no other pieces. You have only
  • R at K6 and R at R1. It is your move. What do you play?
  • C: (After a pause of 15 seconds) R-R8 Mate.

Un'attenta lettura di questo dialogo suggerisce che Turing potesse avere in mente qualcosa di simile a quanto reso possibile sia dai sistemi AIML sia dai sistemi ILN (come nel caso della prima battuta).
Nel secondo caso, il software fornisce una risposta errata, visto che quella corretta è 105721. Perchè Turing, un matematico, ha fatto dare alla sua macchina una risposta errata su una semplice addizione? Secondo alcuni, come ad esempio Wallace, l'autore di A.L.I.C.E., per dare una maggiore apparenza "umana" al programma.
La terza domanda è un esempio di quesito riguardante un finale di scacchi. I finali non sono problemi di scacchi come quelli generali, poichè spesso possono essere risolti mediante tabelle, piuttosto che con gli algoritmi di ricerca e analisi ordinari. In più, è dimostrato come i finali di scacchi possibili seguano una distribuzione Zipf. Certamente è possibile interfacciare un sistema AIML a molti programmi di scacchi.
Molti ricercatori ritengono che Turing avesse in mente una "general purpose learning machine", quando ha descritto il suo OIG, eppure dai suoi esempi sembra che pensasse a qualcosa di più semplice, come gli attuali sistemi AIML e ILN.
Consideriamo le proprietà di un ipotetico computer che gioca il ruolo del giocatore (A) nel OIG. Turing suggerisce una strategia di depistaggio per (A), uomo o macchina che sia. Se gli viene chiesto: "Are you a man or a woman?", (A) dovrebbe rispondere "I am a woman." Se invece viene chiesto ad (A): "Are you a man or a machine?"... Turing non menziona questo caso ma presumibilmente la macchina dovrebbe rispondere come un uomo che mente, quindi dovrebbe rispondere "machine".

Effettivamente al momento non c'è molta "comprensione" del linguaggio naturale, ma viene piuttosto creata l'illusione della comprensione, attraverso risposte "credibili", anche se non sempre vere. Questa strategia è attualmente la più importante nello sviluppo di dispositivi per OIG.
Tale capacità, quella cioè di "agire" intelligentemente, evidenzia una profonda differenza tra le comunicazioni umane ed aritificiali. Normalmente, tendiamo a pensare alle risposte di un computer come rapide, accurate, concise e sempre precise. La comunicazione umana invece è lenta, con errori, spesso ridondante e volte con bugie. Implementando il software proprio in questo secondo modo, si realizza l'illusione di una comunicazione "umana".

Bibliografia

  • Loebner, Hugh “Reflections on the Loebner Competition,” DARTMOUTH 2000
  • Sterrett, Susan “Turing’s Two Tests for Intelligence,” DARTMOUTH 2000
  • Turing, Alan M. “Computing Machinery and Intelligence,” MIND vol. LIX, 1950.
  • Weizenbaum, Joseph “ELIZA—A Computer Program for the Study of Naturaanguage Communication between Man and Machine,” Communications of the ACM, Vol. 9. No. 1 (January 1966)

1 commento:

  1. Non capisco perché un umano dovrebbe sbagliare una semplice addizione. E poi, perché il parlato (e non comunicazione) dovrebbe essere lento? Rispetto a cosa?
    ES

    RispondiElimina