Visualizzazione post con etichetta informatica. Mostra tutti i post
Visualizzazione post con etichetta informatica. Mostra tutti i post

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)

6 ottobre 2011

Rappresentazione della conoscenza nei chatbot

Con la nascita del Web, i chatbot di cui abbiamo parlato negli scorsi post sono stati usati a fini statistici per studi sul linguaggio naturale.
Molti sperimentatori hanno notato che, dato un fissato sito internet, la distribuzione delle richieste dei diversi files presenti non è uniforme. Indicando con x un arbitrario documento e con y il numero degli accessi a quel documento, la distribuzione delle richieste tende nel tempo alla curva y=1/x. Se questa curva viene tracciata su scala logaritmica su entrambi gli assi, è una retta con coefficiente angolare -1, cioè una distribuzione Zipf.
Come già accennato in precedenza, la Zipf è anche la distribuzione probabilistica dei linguaggi naturali. Se un linguaggio avesse tutte parole la cui occorrenza nelle frasi è equiprobabile, allora la distribuzione delle parole sarebbe una linea retta orizzontale, in realtà quello che si osserva è che ogni lingua ha parole più probabili e parole meno probabili, e la distribuzione è una Zipf.
La comparsa del web nel 1994 ha dato per la prima volta la possibilità di condurre esperimenti di intelligenza artificiale su milioni di clients; i precedenti esperimenti, tra cui anche ELIZA, usavano protocolli come il telnet, ma il web ha dato la possibilità di collezionare dati su una scala precedentemente inimmaginabile.
A differenza di ELIZA, scritto interamente il LISP, i progetti della famiglia di A.L.I.C.E. presentano tutti doppie realizzazioni in Java e in C/C++ con queste ultime usate mediante CGI nelle interfacce web. Inoltre tali progetti si avvalgono di un particolare XML realizzato ad hoc, chiamato AIML (Artificial Intelligence Markup Language) con il quale si implementa la personalità dell'entità.
Il progetto ILN (Interprete di linguaggio naturale), invece ha attualmente un'implementazione in Java e - per scelta implementativa - non si avvale di nessun XML o linguaggio di scripting di supporto, il progetto infatti intende dimostrare, tra le altre cose, anche la non necessità di nessuna struttura di scripting: tutta la definizione della personalità e della conoscenza dell'entità avviene mediante semplici files di testo.
Storicamente, ILN nasce nel marzo 2002 come semplice client telnet, poi nel maggio 2002, al fine di permettere il colloquio con più client in contemporanea, è stata implementata l'interfaccia IRC, attualmente è in fase di sviluppo e test una versione per la chat di Facebook. Anche la caratteristica di poter dialogare cohttp://www.blogger.com/img/blank.gifn più client contemporaneamente è unica, cioè non risulta implementata negli altri progetti come A.L.I.C.E. ed Ella.

ELIZA non prevedeva alcuna rappresentazione di conoscenza.
Nei sistemi della famiglia di A.L.I.C.E., tutta la conoscenza è inserita mediante AIML. L'unità di base di conoscenza viene chiamata "categoria". Una categoria è una coppia ordinata formata da un input e da un output. Ogni categoria può opzionalmente appartenere ad un "contesto". L'input (che spesso è una domanda) viene detto pattern, o anche stimolo la risposta viene detta template.
Non intendiamo addentrarci nei dettagli dell'AIML, rinviando i lettori interessati al manuale AIML.
L'AIML permette di usare due wildcards ("_" e "*") nei pattern, i caratteri sono case insensitive. I template sono le risposte da dare in corrispondenza dei pattern.
Il sistema ILN non fa uso di AIML.
Durante l'implementazione di ILN, si è preferito organizzare la conoscenza in semplici file ascii, ottenendo alla fine performance consistenti con quelle dei sistemi basati su AIML. L'unica limitazione di ILN rispetto ai sistemi AIML è al momento quello della mancanza di wildcards.
La conoscenza in ILN è implementata come segue.
Ogni elemento di conoscenza è una coppia ordinata (r,s) dove r è la risposta allo stimolo ed s è lo stimolo stesso. r ed s possono essere formati da tutti i caratteri alfanumerici con la sola limitazione:

lunghezza(r) + lunghezza(s) < 65535

A livello implementativo, ogni elemento di conoscenza è scritto su una riga, l'elemento separatore tra stimolo e risposta è la sequenza di caratteri " --- ". Di conseguenza, ogni riga ha la forma:

risposta allo stimolo --- stimolo

Possono esistere anche più risposte in corrispondenza di uno stesso stimolo:

risposta 1 allo stimolo --- stimolo

risposta 2 allo stimolo --- stimolo

...

risposta n allo stimolo --- stimolo

In tal caso la risposta che verrà effettivamente data durante un dialogo viene selezionata casualmente al momento dell'esecuzione; di conseguenza, sottoponendo due volte lo stesso stimolo, si possono ottenere risposte differenti.
Tutti gli elementi di conoscenza sono organizzati in due file. Un primo file, chiamato base viene caricato ad ogni esecuzione di un qualunque ILN, di conseguenza, gli elementi di conoscenza presenti nel file base sono comuni a tutti gli ILN. Un secondo file, il cui nome varia da ILN a ILN, viene caricato al momento dell'esecuzione di una particolare istanza di ILN, di conseguenza, ILN diversi avranno il secondo file diverso. Tale secondo file contiene gli elementi di conoscenza che servono a fissare gusti e personalità di un particolare personaggio realizzato mediante ILN. E' possibile realizzare nuove personalità semplicemente costruendo una nuova istanza di questo secondo file e modificando le risposte ai diversi stimoli.
Con l'AIML si implementa la ricorsione mediante un apposito tag. Anche con ILN è possibile la ricorsione all'interno della base di conoscenza.
La ricorsione viene usata per molteplici scopi, nel settore dell'intelligenza artificiale, all'interno del sistema ILN viene usata in particolare per:

Symbolic Reduction: una frase grammaticalmente complessa viene ridotta ad una frase più semplice.
Mappatura dei sinonimi: per ottenere la stessa risposta ad input che dicono la stessa cosa ma con parole diverse.
Correzione di errori di ortografia o di digitazione nello stimolo.
Una qualunque combinazione dei tre casi precedenti.

La ricorsione viene implementata mediante la sequenza di caratteri "REC" posizionata in testa ad una riga; la sintassi di REC è:

REC stimolo al quale rivolgersi --- stimolo

Se c'è una riga del tipo:

risposta --- stimolo uno

si può forzare la stessa risposta anche ad un nuovo stimolo inserendo una riga come la seguente:

REC stimolo uno --- stimolo due

Il rischio nell'uso della ricorsione è che essa permette di cadere in errori durante la costruzione di una personalità che possono generare dei loop, per cui è necessario fare attenzione ad evitare di inserire righe come le seguenti:

REC stimolo uno --- stimolo due
REC stimolo due --- stimolo uno

Symbolic Reduction
Per Symbolic reduction si intende il processo di semplificazione di forme grammaticali complesse in forme più semplici. Si tratta di un processo che a livello subconscio viene eseguito costantemente dal cervello umano; per esempio se qualcuno chiede ad una persona "chi è Socrate?" ottiene in generale la stessa risposta all'eventuale domanda: "conosci chi fu Socrate?", questo avviene perchè il nostro cervello effettua una riduzione da un'espressione più complicata ad una più semplice, riconoscendo che si tratta di frasi che presentano gli stessi contenuti. La riduzione simbolica può essere realizzata in un ILN senza lavorare a livello di codice, ma semplicemente inserendo nel file di conoscenza una riga del tipo:

REC espressione semplice --- espressione complessa

Nel caso del nostro esempio:

REC conosci chi fu Socrate --- chi è Socrate

Correzione errori
L'errore più comune di chi dialoga con un ILN è il commettere errori di digitazione, cosa frequente in una chat, ad esempio al posto di "ciao" l'utente digita spesso "cia".
Un piccolo numero di errori di questo tipo può essere corretto a livello di ricorsione nelle righe di conoscenza, ad esempio:

REC ciao --- cia

In certi casi è possibile anche fare in modo che sia l'ILN a correggere l'utente.
I sistemi AIML supportano anche un complesso sistema per il calcolo dei predicati unari. Tale meccanismo negli ILN è ancora in fase di analisi e sviluppo.

29 settembre 2011

Il premio Loebner

Hugh Loebner oltre ad essere un noto sociologo, è anche uno dei più controversi personaggi della cultura americana contemporanea, a causa della sua eccentricità e delle sue opinioni politiche controcorrente e senza dubbio originali. Nel 1990 il Dott. Loebner ha acconsentito a sponsorizzare una gara annuale tra programmi ed umani, basata sul Test di Turing. La gara premia con medaglie, e finanzia ulteriori sviluppi, i programmi "più umani".
Fin dalla sua istituzione, il premio è stato una vera calamita di controversie e polemiche, come tra l'altro tutte le attività organizzate da Loebner. Una delle dispute principali è stata circa la decisione di Loebner di assegnare la medaglia d'oro ed un premio di 100.000 dollari al primo programma che supererà un Test di Turing "audio-visuale". Fino ad ora nessuno è riuscito a vincere, e visto lo stadio attuale della tecnologia, non è previsto che nessuno ci riesca nel prossimo futuro.
Le medaglie d'ergento e di bronzo sono basate invce sullo Standard Turing Test (STT) di cui si è parlato nei precedenti post. Partecipano otto programmi e due umani. Un gruppo di 10 giudici ruota su tutti e 10 terminali chattando 15 minuti con ciascuno, senza sapere a quali terminali sono collegati i due umani e a quali gli otto programmi. Dopodichè ogni giudice assegna un punteggio al "quanto sia umana" l'entità con la quale ha comunicato. Nel 2000 il premio (medaglia d'argento) è andato ad A.L.I.C.E., nel 2001 ad Anna, un'evoluzione di A.L.I.C.E., nel 2002 ad Ella un progetto in sviluppo da parte di Kevin Copple che vuole andare in direzione di un Test di Turing audio visuale.
La medaglia di bronzo viene assegnata al programma che totalizza più punti, se i due umani presenti totalizzano punteggi maggiori dei programmi. L'importanza della medaglia d'argento sta nel fatto che essa viene assegnata al programma che totalizza più punti di almeno un umano.

Per approfondire, c'è la voce Wikipedia di A.L.I.C.E., che ancora oggi è ritenuto il miglior chatterbot in termini di assomiglianza al comportamento di un umano.
Interessante è anche la pagina web del Premio Loebner.

Alessandro Iacuelli

22 settembre 2011

Dal Robot Professore ai PNAMBIC

Focalizziamo l'attenzione non sul professore che effettua una lezione senza interruzioni, processo che può essere completamente automatizzato e che pertanto non richiede alcuna forma di intelligenza, quanto piuttosto sul professore che risponde alle domande poste dagli studenti, attività che invece richiede interazione.
Fino a poco tempo fa, in base ad alcuni studi statistici, si reputava che la distribuzione probabilistica delle domande seguisse una distribuzione di probabilità o una distribuzione di Pareto . Solo di recente è stato matematicamente dimostrato che invece anche tale distribuzione è una Zipf, cosa che suggerisce di nuovo una strategia precisa per la realizzazione di un programma in grado di rispondere alle domande degli studenti riguardo una lezione o un corso.

La domanda più comune è naturalmente universale: "Questo argomento sarà nel compito?", domanda che ovviamente tralasciamo.
Il compito del professore è quello di memorizzare le risposte a tutte le domande più frequenti, essere in pratica un FAQ-robot, e ricondurre ogni domanda ambigua ad una già nota. Nel raro caso in cui non ha risposta, il professore fornisce una risposta di default che indica che ha comunque capito la domanda, e fornirà una risposta a tempo debito. Nei programmi di questo tipo realizzati, la classica risposta di default era: "That is not my area of expertise".

Una ulteriore diminuzione della ricerca nel settore dell'intelligenza artificiale è avvenuta con il termine della guerra fredda, quando governi ed aziende hanno ridotto i fondi stanziati per tale tipo di tecnologia. Quello che era considerato un settore promettente, si è trovato ad affrontare una specie di selezione darwiniana causa diminuzione di risorse. Il pregio di quanto avvenuto è stato l'avvento della ricerca nel settore del "robot minimalism", una filosofia di progettazione basata su parti a basso costo, computer di basse prestazioni, comunicazioni a banda stretta ed una generale semplicità di design. E' stato il momento in cui è stato possibile far girare progetti di intelligenza artificiale anche su personal computer.
Verso la metà degli anni '90 anche il "robot minimalism" è passato di moda, ma si rileva come abbia comunque avuto una grossa influenza sullo sviluppo di A.L.I.C.E.
Infatti A.L.I.C.E. (ed anche un robot successivo chiamato Anna) non usa tecniche avanzate di intelligenza artificiale: non presenta reti neurali, nessuna rappresentazione della conoscenza, nessuna deep search, nessun algoritmo genetico.
Gli stessi sviluppatori di A.L.I.C.E. hanno scoperto l'esistenza di una teoria circolante in alcuni ambienti accademici legati all'intelligenza artificiale, chiamata Case-Based Reasoning (CBR), che assomiglia molto da vicino alla struttura stimolo-risposta di A.L.I.C.E. Ma arriviamoci per gradi, poichè si tratta di tecniche della famiglia dei Pnambic


"PNAMBIC—(acronym) Pay No Attention to that Man Behind the Curtain [from The Wizard of Oz]. Denoting any supposedly fully automated system that in fact requires human intervention to achieve the desired result." — New Hacker’s Dictionary

PNAMBIC è il nome del primo prototipo di A.L.I.C.E., in omaggio ai trucchi ed ai piccoli imbrogli che hanno fatto la storia dell'intelligenza artificiale, ma la macchina che forniva hosting si chiamava Alice, per merito di un dimenticato amministratore di sistema, per cui gli utenti iniziarono a chiamare "Alice" il software. Solo a quel punto fu forzatamente coniato l'acronimo A.L.I.C.E.: Artificial Linguistic Internet Computer Entity. Quindi A.L.I.C.E. è la prima tecnologia di intelligenza artificiale ad abbracciare apertamente questa tradizione di trucchi.
La tradizione risale al XVIII secolo, in particolare al barone von Kempelen ed alla sua macchina in grado di giocare a scacchi chiamata "il turco".
Questo celebre dispositivo mostrava di giocare a scacchi in modo decente contro ogni avversario umano, battendo anche personaggi all'epoca famosi come l'imperatrice di Russia e lo stesso Napoleone Bonaparte. Kempelen usò un trucco classico da prestigiatore: il turco aveva alla base due sportelli, con dentro i meccanismi che gli consentivano di muovere i pezzi. Dopo la performance della sua macchina Kempelen apriva uno sportello, poi lo richiudeva, e solo allora apriva il secondo, dando il tempo di saltellare dall'altro lato al nano polacco campione di scacchi che era in realtà nascosto dentro la macchina.

Nel 1984, un libro di fantasia e di poesie, scritto interamente secondo l'editore da un software di I.A. chiamato RACTER, causò minori sensazionalismi al momento della sua pubblicazione e passò quasi completamente inosservato. Solo nel 1993 Barger dimostrò come si trattasse di una presa in giro.
Il seguente esempio mostra il livello delle storie scritte da RACTER:
"Bill sings to Sarah, Sarah sings to Bill. Perhaps they will do other dangerous things together. They may eat lamb or stroke each other. They may chant of their difficulties and their happiness. They have love but they also have typewriters. That is interesting."
RACTER è un PNAMBIC perchè ottiene questi risultati solo con un considerevole intervento umano.

Secondo una leggenda metropolitana dell'I.A., che non sembra essere documentata, un famoso ricercatore in linguistica si ritrovò molto in imbarazzo durante una sua conferenza in Texas, durante la quale un robot iniziò a rispondere alla successiva domanda che lui stava per fare, e senza sbagliare, tra l'altro. In realtà il ricercatore aveva a che fare con un PNAMBIC.
Proprio per contrastare la diffusione dei PNAMBIC, e per evitare la confusione che si trattasse di esperimenti scientifici, nel 1991 fu organizzato a boston il Premio Loebner, il primo Test di Turing reale.
In tale occasione nessuno dei programmi in competizione si è avvicinato lontanamente alle performance umane, basta pensare che il dispositivo che ha ottenuto un più elevato punteggio è stato proprio ELIZA, lo psichiatra di cui si è parlato qualche post fa.


Alessandro

15 settembre 2011

Il robot politico

  • Client: Do you think President Clinton should be impeached?
  • Robot: It depends what you mean by “thinking.”
I politici, almeno quelli presenti nella nostra società, non sembrano mai dare risposte dirette ad una domanda. Se un giornalista pone una domanda specifica, il politico risponde con qualcosa di precedentemente memorizzato, che è vagamente collegato alla domanda, ma non necessariamente la risposta precisa. Se gli si chiede della scuola, ad esempio, il politico replica con qualche frase riferita alla politica riguardante la scuola decisa dal suo partito di appartenenza, la sua risposta è controllata solo dall'aver rilevato la parola chiave "scuola" nella domanda. In definitiva, per parlare da politico non è richiesta nessuna attivita creativa o di pensiero spontaneo.
Alla luce di queste ovvie considerazioni, molti sviluppatori si sono dedicati nei decenni scorsi allo sviluppo di robot "politici", che in presenza di determinate parole chiave generano risposte di default che simulano una "comprensione" della domanda, senza offendere nessuno.
Questo aspetto, che è stato chiamato un po' umoristicamente "aspetto democratico", è stato integrato e sfruttato in pieno nel sistema A.L.I.C.E. e successivi.
Nato dalla frustrazione riguardante l'apatia del pubblico nei confronti dei tentativi esistenti di costruire intelligenza artificiale, A.L.I.C.E. è un sistema progettato per rispondere a delle domande, che è poi la cosa principale che ci si aspetta dall'intelligenza artificiale. I progettisti hanno ipotizzato (correttamente) che le domande poste dalle persone al robot sono probabilisticamente distribuite secondo una distribuzione Zipf. Il fatto che appaia una distribuzione Zipf delle domande, conduce ad una strategia molto naturale per la soluzione del problema: la scrittura delle risposte alle domande più frequenti.
Una conversazione del primo prototipo di A.L.I.C.E. inizia selezionando a caso una "linea di dialogo", un argomento da seguire. E' stato possibile misurare la lunghezza media di un dialogo inziato con ogni specifica linea. I risultati degli esperimenti hanno mostrato che il dialogo medio più lungo è quello che ha come linea inziale "What is your favorite movie?" Quelli invece con lunghezza più bassa, corrispondente cioè e dialoghi di lunghezza media nulla o comunque brevissima, sono quelli che iniziano con "What do you think caused World War I?" e con "Are you a man or a woman?", il che è molto ironico, poichè quest'ultima frase è quella con cui inizia la maggior parte dei discorsi in una normale sessione chat umana.
A dispetto dell'evidente semplicità di questo approccio, tra l'altro ereditato da ELIZA, per molti anni il pregiudizio prevalente nel mondo accademico è stato il considerare ELIZA e tutti i suoi derivati come un "giocattolo", e quindi troppo semplice per formare la base scientifica per un sistema di riconoscimento del linguaggio naturale.
Un'intera scuola di pensiero, tra gli anni '70 e gli anni '80 ha sostenuto un approccio basato su un dominio limitato di argomenti, in cui il sistema può conversare solo di un argomento. Oltre al robot politico sono stati costruiti robot che parlano di rocce lunari, di edilizia o di Star Trek. Una seconda scuola ha invece favorito lo sviluppo di riconoscimento di sole frasi di senso comune, pensando che questo fosse necessario per la comprensione del linguaggio quotidiano. Infine, una terza scuola ha sperimentato la costruzione di qualcosa di simile ad una macchina generale in grado di imparare, come la GLM (General Learning Machine) ipotizzata da Turing, in grado di apprendere il linguaggio come farebbe un bambino.
E' stata proprio questa scuola di ricerca, guidata dal Dr. Richard S. Wallace, ad aver prodotto una nuova generazione di macchine, egregiamente rappresentata da Anna e A.L.I.C.E., in grado di far buona figura nell'OIG di Turing.
Tali macchine ereditano non solo le caratteristiche di ELIZA, ma anche quelle del robot politico.
Gli esperimenti condotti con A.L.I.C.E. dai suoi stessi sviluppatori, mostrano che in generale una conversazione è "priva di stato" (stateless), cioè dipende solo dalla domanda corrente e non c'è alcuna necessità di conoscere tutta la parte di conversazione precedente per poter generare la risposta. Infatti, nelle conversazioni umane si ha spesso l'impressione di avere la risposta "sulla punta della lingua" ancora prima che l'interlocutore abbia completato la propria frase. Solo occasionalmente un dialogo richiede una memoria di livello superiore, che tenga conto di una parte delle cose già dette. Questa caratteristica è stata implementata in A.L.I.C.E.
Alessandro Iacuelli

8 settembre 2011

ELIZA, lo psichiatra

Nel 1966, 16 anni dopo lo scritto di Turing, appare sulla scena il primo tentativo di realizzazione di un interprete di linguaggio naturale, ad opera di Joseph Weizenbaum.
La storia di Weizenbaum è per certi versi interessante quanto quella di Alan Turing, anche se meno tragica.
Di solito Weizenbaum viene immaginato come un luddista dei nostri tempi, che distrugge l'intelligenza artificiale come il celebre commerciante inglese distuggeva le fabbriche per reazione alla rivoluzione industriale. Ma a differenza dei luddisti, Weizenbaum fu anche il costruttore della macchina che distrusse.
Da questo punto di vista, può essere paragonato ai fratelli Wright, che distrussero il prototipo di aereo dopo il primo volo affermando che: "questa tecnologia è troppo pericolosa, meglio rimettere il genio nella bottiglia".

Una tipica conversazione con ELIZA è la seguente (C = Client; R = Robot):
C: Well, my boyfriend made me come here.
R: Your boyfriend made you come here.
C: I am unhappy.
R: Do you think coming here will help you not to be unhappy?
C: I need some help, that much seems certain.
R: What would it mean to you if you got some help?
C: Perhaps I could learn to get along with my mother.
R: Tell me more about your family.
C: You are like my father in some ways.
R: What resemblance do you see?
C: My father is afraid of everybody.
R: What else comes to mind when you think of your father.
C: Bullies.
R: Does that have anything to with the fact that your boyfriend made you come here?


Uno dei trucchi fondamentali di Eliza è l'inversione dei pronomi mostrata già nella prima battuta. Mediante una mappatura che trasforma "my" in "your" e "me" in "you", il robot risponde al client essenzialmente con un semplice echo dell'input ma scambiando i pronomi dalla prima alla seconda persona singolare.
Gli altri reply sono dei default generici, che danno l'illusione di una qualche comprensione dell'input. Se il client dice qualcosa con il prefisso "I need some X", il robot replica con "What would it mean to you if you got some X?". Non importa se X sia aiuto, soldi, cibo, acqua, amore o tempo libero: la stessa risposta copre tutti gli input di questo tipo.
Le altre repliche di ELIZA sono basate su un semplice riconoscimento di alcune parole chiave, come nella precedente battuta riguardante la madre del client, quando il robot dice: "Tell me more about your family". L'apparire della parola chiave "mother" in un qualsiasi punto dell'input controlla questo tipo di risposta. ELIZA ha una memoria molto limitata dello stato della conversazione: quando incontra l'input sconosciuto "Bullies", risponde con l'argomento (topic) precedentemente memorizzato.

A differenza di quel che si crede oggi, Weizebaum smise di perfezionare ELIZA, trovando terrificante che alcune persone non avessero compreso che ELIZA fosse un dispositivo automatico. Weizebaum racconta nel 1976 di come rimase shockato dall'esperienza di testare ELIZA, noto anche come "il dottore", facendolo usare dal personale non tecnico del MIT. Decine di segretarie e impiegati amministrativi pensarono che la macchina fosse un "reale" terapista, e spesero ore a rivelare i loro problemi personali al programma. Quando Weizenbaum informò una segretaria del fatto che lui avesse accesso ai log di tutte le conversazioni, la donna reagì andando su tutte le furie per questa "invasione della privacy". Per il ricercatore fu traumatico l'ammettere che un semplicissimo programma potesse sviare degli utenti ingenui fino a far rivelare loro delle informazioni personali.
Ciò che stupì profondamente Weizenbaum fu che i "pazienti" ritenevano che il programma realmente comprendesse i loro problemi. Anche alcuni psichiatri hanno reputato che il robot terapista potesse essere davvero un aiuto costruttivo per alcuni tipi di pazienti. La reazione di Weizenbaum può essere compresa meglio se la si confronta con quella di un astronomo nei confronti dell'astrologia.
Il retro di copertina del libro di Weizenbaum, Computer Power and Human Reason (1976) fornisce un'idea delle reazioni suscitate dal volume all'epoca della sua pubblicazione:
"Dare I say it? This is the best book I have read on the impact of computers on society, and on technology, and man’s image of himself."—Keith Oakley, Psychology Today
"A thoughtful blend of insight, experience, anecdote, and passion that will stand for a long time as the definitive integration of technological and human thought."—American Mathematical Monthly
"Superb ... the work of a man who is struggling with the utmost seriousness to save our humanity from the reductionist onslaught of one of the most prestigious, and richly funded technologies of our time."—Theodore Piszak, The Nation."

Computer Power and Human Reason ci appare oggi come un testo un po' ingenuo, appare evidente che Weizenbaum percepì come propria la missione di informare un pubblico disinformato che confonde fantascienza e realtà: la maggior parte del libro è dedicata allo spiegare come funziona un computer, cosa necessaria nel 1976, ma oggi un titolo appropriato per il volume potrebbe essere "Computers for Dummies". Due capitoli del testo sono dedicati ad un attacco violento nei confronti dell'intelligenza artificiale, specificamente contro ELIZA, e nei confronti della ricerca informatica in generale.
Quasi tutti i ricercatori dell'epoca non ebbero bisogno di altri incoraggiamenti per pensare che ELIZA fosse solo un trucco ed in ogni caso non un "serio" progetto di intelligenza artificiale; nonostante questo, ELIZA è di sicuro il programma più diffuso ed utilizzato, nella breve storia dell'intelligenza artificiale.
Il maggiore danno creato da Joseph Weizenbaum sta nell'aver voluto non promuovere la sua tecnologia, ma di aver invece stimolato la sua critica. In tal modo ha bloccato ogni successiva investigazione nel settore.
Negli anni successivi, sono stati messi a punto altri dispositivi, intesi come miglioramento ed evoluzione di ELIZA.