Professional Documents
Culture Documents
Architetture per
Assistenti Virtuali Emozionali
RELATORI:
Prof. Roberto Polillo
Leandro Agrò
CONTRO RELATORE:
Prof. Flavio DePaoli
3 Intelligenza Artificiale.................................................... 18
3.1 Input .................................................................................................. 19
3.2 Elaborazione ..................................................................................... 20
3.2.1 Keyword Based ....................................................................................... 21
3.2.2 Rule Based.............................................................................................. 23
3.2.3 Expert systems........................................................................................ 24
3.2.4 Neural Networks...................................................................................... 25
3.3 Output ............................................................................................... 26
3.4 Rappresentazione del Significato...................................................... 27
3.4.1 Requisiti .................................................................................................. 27
3.4.2 Modello ................................................................................................... 30
3.4.3 Alcuni Concetti Linguisticamente Rilevanti .............................................. 32
3.4.4 FOL: First-Order Logic............................................................................. 33
2
4 Agenti Intelligenti........................................................... 35
4.1 Razionalità ........................................................................................ 36
4.2 Struttura ............................................................................................ 38
4.3 Tipologie di Agenti............................................................................. 38
4.3.1 Agenti a Riflesso Semplice ...................................................................... 39
4.3.2 Agenti che Tengono Traccia del Mondo .................................................. 39
4.3.3 Agenti basati sullo Scopo ........................................................................ 40
4.3.4 Agenti basati sull’Utilità............................................................................ 40
4.4 Ambienti ............................................................................................ 41
4.5 Agenti di Interfaccia........................................................................... 41
5 Emozioni.......................................................................... 43
5.1 Utilità ................................................................................................. 43
5.2 Modelli Emozionali ............................................................................ 45
5.2.1 Paul Ekman............................................................................................. 45
5.2.2 Robert Plutchik ........................................................................................ 48
5.3 Interfaccia utente............................................................................... 50
5.3.1 Uncanny Valley ....................................................................................... 50
5.3.2 Facial Action Coding System (FACS) ...................................................... 51
6 Ambiti Applicativi........................................................... 53
6.1 Pro..................................................................................................... 53
6.2 Contro ............................................................................................... 54
6.3 Ambiti ................................................................................................ 55
6.3.1 Recupero Informazioni ............................................................................ 56
6.3.2 Guide ...................................................................................................... 56
6.3.3 Risoluzione Problemi............................................................................... 57
6.3.4 Insegnamento ......................................................................................... 57
6.3.5 Giochi ...................................................................................................... 58
6.3.6 Mobile ..................................................................................................... 58
6.4 Prodotti e architetture esistenti.......................................................... 59
6.4.1 Parametri di Osservazione ...................................................................... 60
6.5 Prodotti.............................................................................................. 61
6.5.1 A.L.I.C.E.................................................................................................. 62
6.5.2 Oddcast................................................................................................... 64
6.5.3 MeteoSam ............................................................................................... 66
3
6.5.4 Lingubot .................................................................................................. 67
6.5.5 H-Care .................................................................................................... 69
6.5.6 Freewalk ................................................................................................. 71
6.5.7 Colloquis ................................................................................................. 72
6.5.8 VirtuOz .................................................................................................... 74
4
8.2.2 Soluzione .............................................................................................. 100
8.2.3 Architettura Web.................................................................................... 100
8.2.4 Architettura Telefonia ............................................................................ 102
8.2.5 Gabi ...................................................................................................... 102
8.2.6 Esempi di Dialogo ................................................................................. 104
8.2.7 Risultati ................................................................................................. 107
8.2.8 Conclusioni............................................................................................ 109
8.3 Sviluppi Futuri ................................................................................. 110
9 Riferimenti..................................................................... 113
5
1 INTRODUZIONE
Quando Damasio pubblicò L’Errore di Cartesio (Damasio, 1994) venne
posta la pietra che segnò il momento nel quale il mondo scientifico tornava
a rendersi conto del ruolo cruciale delle emozioni sia nell’intelligenza
che nella vita umana.
Dopo secoli di indiscussa superiorità della razionalità sull’emozione, si è
riaperto il dibattito e sono ripresi gli studi che hanno evidenziato il legame
strettissimo tra queste due componenti della nostra natura: troppe poche
emozioni possono addirittura danneggiare in modo grave la capacità di
prendere decisioni.
1.1 OBBIETTIVI
Questa tesi vuole mostrare come sia già tecnologicamente fattibile la
realizzazione di assistenti virtuali specifici per un contesto, capaci di
interagire con l’uomo tramite il linguaggio naturale e le emozioni.
7
Vi è quindi una seconda parte applicativa, nella quale verranno esposti i
principali contesti di utilizzo e le offerte attualmente esistenti in rete (cap.6).
Il punto centrale dell’esposizione è quindi la definizione dell’architettura di
un assistente virtuale (cap.7).
L’ultimo obbiettivo viene soddisfatto con il case study dell’assistente
virtuale K-Human installato presso Gabetti (cap.8).
8
2 CONCETTI CHIAVE
2.1 HUMAN-LIKE INTERACTION
“To err is human, but to really foul things up requires a
computer”
– Farmers' Almanac, 1978
Qualunque manufatto creato dall’uomo per l’uomo deve contemplare nella
sua progettazione un’efficace ed efficiente interfaccia perché svolga
correttamente il suo lavoro.
9
In particolar modo questa tesi tratterà un ambito specifico, ovvero la
Human-Like Interaction:
La definizione è quindi:
Assistenti Virtuali sono agenti software che mostrano
intelligenza ed emozioni in grado di relazionarsi con
l’uomo in modo naturale (Human-Like Interaction) al fine
di agire o di rispondere in modo consistente alle sue
richieste.
11
2.3 INTELLIGENZA
“Within a generation the problem of creating 'artificial
intelligence' will substantially be solved”
– Marvin Minsky, 1967
Il termine proviene dal latino ‘intus’, dentro e ‘legere’, leggere e significa
quindi la capacità di “leggere dentro”, ovvero di mostrare curiosità attiva di
comprendere il funzionamento del mondo.
12
Intelligenza è la capacità di ragionare, apprendere,
risolvere problemi che vengono posti dall’ambiente.
13
Questa definizione appare piuttosto verticale, ma rimane la più citata dai
non addetti ai lavori per la sua semplicità.
Dare una definizione anche qui è difficile perché si posano le basi sulle
stesse ambiguità del termine intelligenza.
Si pensi ad esempio che nell’ambito dell’Intelligenza Artificiale, quello che
anni fa rappresentava un problema creduto risolvibile solamente da una
entità intelligente, oggi non è più tale. Si pensi in questo senso agli scacchi
o ai sistemi esperti.
Questo non significa però che un assistente virtuale deve per forza essere
una intelligenza artificiale: è sufficiente che soddisfi la definizione ridotta di
intelligenza in uno specifico campo, ovvero la capacità di ragionare,
apprendere e risolvere problemi in un determinato ambiente.
2.4 EMOZIONE
“Una piena comprensione della mente umana richiede una
prospettiva integrata”
– Antonio R. Damasio (1994)
14
Questo testo terrà in particolare considerazione le emozioni perché al
contrario che per l’intelligenza non c’è la percezione socialmente diffusa
che questa sia una caratteristica importante e che debba essere studiata di
pari passo con l’intelligenza.
Emozione deriva dal latino ‘ex’, uscire e ‘motio’, muoversi. Anche in questo
caso è difficile dare una definizione univoca. Esistono numerose ipotesi
differenti avallate da differenti approcci teorici.
15
2.5 ARCHITETTURE
“L'architettura è una scienza, che è adornata di molte cognizioni,
e colla quale si regolano tutti i lavori, che si fanno in ogni arte”
– Marco Vitruvio, 30AC
Il termine deriva dal greco ‘archè’, eccellenza, superiorità e ‘tèk-ton’,
artefice.
16
Architettura è la fondamentale organizzazione di un
sistema definito nei suoi componenti, nelle sue relazioni
e nei confronti dell’ambiente e i principi che guidano il
suo progetto e la sua evoluzione.
17
3 INTELLIGENZA
ARTIFICIALE
Questo capitolo tratterà l’ambito dell’intelligenza artificiale applicato agli
agenti intelligenti. E’ necessario quindi separare le tre fasi
dell’elaborazione:
1. Traduzione del linguaggio umano in un linguaggio intermedio (input).
2. Elaborazione del linguaggio intermedio.
3. Traduzione da linguaggio intermedio a linguaggio naturale (output).
3.1 INPUT
In questa fase, denominabile Natural Language Understanding (NLU), è
necessario comprendere cosa sta dicendo la persona che vuole interagire
con il sistema.
19
E’ abbastanza evidente questo processo mentale quando ci troviamo ad
ascoltare una lingua straniera, o in quelle situazioni ove capiamo ciò che
viene detto dopo un istante.
3.2 ELABORAZIONE
Tutti gli studi di AI sono centrati sulla fase di elaborazione, che è il
problema sicuramente più interessante su cui si fonda la disciplina (ricordo
le parole di Minsky del §2.3.1).
Questi studi han portato alla nascita di strumenti come i Motori a Regole,
Lisp e Prolog prima e i sistemi esperti (Expert Systems) poi. Vi sono state
anche correnti parallele evolutesi in strumenti come le Reti Neurali.
20
Indipendentemente da come venga elaborato, un ruolo cruciale viene dalla
rappresentazione del significato, perché significa avere un linguaggio
comune per fare comunicare i vari componenti.
21
Riporto un esempio di log di Eliza:
> Hello, I am Eliza.
* I'm a bit sad...
> Did you come to me because you are a bit sad?
* Exactly. But I don't know if it's related to something that
happened today...
> Does that trouble you?
* Yes. Yes. I can't find the reason of my current feelings...
> How do you know you can't find the reason of your current
feelings?
* Do you suppose there's a reason?
> We were discussing you, not me.
* Yeah.
> OK... "Do me suppose there's a reason". Tell me more.
Sistemi molto semplici di questo tipo sono definiti bot, una abbreviazione
di “robot”, ovvero degli agenti particolari che ripetono operazioni
automatiche in modo semplice (o stupido).
22
3.2.2 RULE BASED
I sistemi basati su regole dispongono di uno strumento aggiuntivo per
elaborare i messaggi in entrata.
Con sistemi di questo tipo è inoltre possibile eseguire una semplice analisi
grammaticale, in quanto i sistemi a regole presentano analogie con le
regole di produzione grammaticale.
L’efficienza di questo sistema non è però intrinseca nel modello, ma
dipende dalle regole che vengono caricate.
23
L’algoritmo RETE (Forgy, 1974) è una implementazione meno ingenua di
un sistema a regole (aumenta sensibilmente la velocità di esecuzione).
Rappresenta contemporaneamente una versione molto semplice di un
sistema esperto.
Alle loro radici sono comunque fondati su dei sistemi a regole (sia
forward chaining che backward chaining), ma il valore aggiunto è fondato
sulla base di conoscenza che possiedono internamente, ovvero sulla loro
programmazione interna.
24
Qui si entra nell’ambito dell’ontologia informatica, ovvero un modello dati
che rappresenta una serie di concetti e le loro relazioni all’interno di uno
specifico dominio di appartenenza.
Le ontologie in senso informatico non sono da intendersi nel senso
filosofico del termine, ma costituiscono una forma di astrazione molto
elevata in uno specifico contesto. Tale astrazione, se ben costruita, è di
fondamentale importanza per trarre deduzioni e conclusioni elaborandole
tramite un sistema esperto o tramite una serie di premesse iniziali.
La creazione della rete dei nodi e delle relazioni non è che una parte del
procedimento. Le reti neurali si basano fondamentalmente sull’auto-
apprendimento. Esistono diversi algoritmi e tre possibili approcci, ognuno
dei quali viene scelto in relazione al tipo di problema che si deve risolvere:
1. Apprendimento Supervisionato: vengono fornite coppie di valori in
input e output e si lascia che la rete si modifichi per generare quello
specifico valore in uscita presentato quel dato valore in entrata.
2. Apprendimento Non Supervisionato: viene fornita solamente una
funzione di costo, che deve essere minimizzata. In questo modo la
rete neurale cerca di modificarsi per produrre risultati che rendano il
più bassa possibile tale funzione.
25
3. Apprendimento Rinforzato: l’input viene fornito come conseguenza
delle azioni della rete neurale nell’ambiente in cui viene inserita, con
una funzione di costo non esplicitamente definita. In questo modo la
rete neurale apprende come interagire con la complessità delle
dinamiche dell’ambiente di riferimento, dinamiche spesso sconosciute
e/o troppo complesse.
Risulta evidente che le reti neurali siano molto efficaci, ma solamente per
certe categorie di problemi ed è difficile comprendere come potrebbero
essere utili nell’approccio linguistico che un assistente virtuale deve
possedere.
3.3 OUTPUT
In modo analogo all’input, anche la produzione dell’output si può
suddividere in due parti distinte:
1. Natural Language Generation (NLG), ovvero la produzione di un testo
in una lingua naturale, a partire dal linguaggio intermedio di
elaborazione.
2. Trasformazione del testo in una onda sonora equivalente.
La fase di NLG è una delle parti forse meno approfondite, in quanto una
volta raggiunta una forma di rappresentazione della risposta è solitamente
possibile fare una trasformazione fissa da questa al linguaggio
corrispondente. Infatti mentre la comprensione (NLU) implica dover gestire
tutte le possibili variazioni di significato e le ambiguità di una lingua, nel
caso dell’NLG si ha già una forma stabile e si tratta solamente di tradurla.
26
Quindi spesso si stabiliscono alcune formulazioni linguistiche stabili, con al
più delle variabili (i.e. “Ciao %s, come ti chiami?”) che vengono legate a
precise configurazioni del linguaggio intermedio uscente dalla fase di
elaborazione.
3.4.1 REQUISITI
Per poter definire quindi una rappresentazione del significato adeguata
bisogna esplicitare tutti i requisiti che tale formato dovrà soddisfare
(Jurafsky e Martin, 2007):
1. Computabilità
27
l primo fattore essenziale è quello di essere in grado di usare una
rappresentazione per determinare la relazione esistente fra il
significato di una frase e il mondo come lo conosciamo.
Nella filosofia del linguaggio è definito “valore di verità” la condizione
vera o falsa che una frase assume rispetto ai fatti del mondo.
Nel nostro caso è necessario che tale valore di verità sia calcolabile
da un algoritmo, in modo univoco.
2. Univocità:
Qualunque input linguistico che venga elaborato è soggetto
all’ambiguità: anche la frase più semplice è possibile che abbia più
interpretazioni possibili a partire dalla stessa costruzione simbolica.
Un esempio classico è “La vecchia porta la sbarra”, interpretabile sia
come una anziana signora che trasporta un’asta, sia come una porta
che impedisce l’accesso ad una donna.
Un concetto simile all’ambiguità è la vaghezza: esistono frasi che in
determinati contesti possono veicolare una quantità di significato
sufficiente a comunicare qualcosa, ma in altri contesti la stessa frase
può essere troppo generica perché sia di una qualche utilità.
Ad esempio “Voglio mangiare cibo italiano” può fornire indicazioni
sufficienti ad un ristoratore perché possa suggerire qualche piatto, ma
è del tutto inutile se si vuole specificare cosa si vuole mangiare.
3. Forma Canonica
Si intende per forma canonica una unica struttura soggiacente a
diverse espressioni superficiali. Ad esempio più frasi diverse
potrebbero esprimere lo stesso significato. In tale situazione, si può
preferire di ridurle ad una precisa forma canonica, comune a tutte.
Questo tipo di elaborazione è naturalmente più complessa perché
implica dover associare termini differenti (o intere frasi) per ricondurli
allo stesso significato.
Per farlo si deve ricordare che una parola ha più sensi differenti
(esattamente come appare sfogliando un dizionario) e che quindi si
28
possono disambiguare i vari sensi trovando quale sia quello comune
a tutti i termini utilizzati nello stesso contesto.
4. Inferenze e Variabili
Per alcune forme linguistiche, come per esempio le domande, la
forma canonica di per sé non riesce però a soddisfare tutte le
necessità. Quando chiediamo ad esempio “chi”, stiamo cercando un
soggetto: non è possibile quindi sapere chi sia prima di aver elaborato
una possibile risposta.
Diventano quindi necessarie le variabili, che permettono di esplicitare
elementi chiave di alcune frasi che non hanno una corrispondenza
fissata in fase di formulazione.
Al contrario, la presenza di una variabile implica che venga fatta una
inferenza su chi sia il soggetto ignoto referenziato dalla frase.
L’inferenza ha una strettissima connessione con la computabilità che
si citava prima: mentre in un caso si tratta di fare corrispondere una
rappresentazione del significato ad un background di conoscenza
interno per trovare un valore di verità, ora viene fatta la stessa
operazione per trovare però un singolo soggetto contenuto all’interno
della conoscenza.
5. Espressività
Sembra un requisito banale, ma è necessario che la struttura
selezionata per rappresentare il significato sia sufficientemente
espressiva.
Ovviamente l’ideale è che si riesca a coprire qualunque ambito del
linguaggio naturale umano, ovvero che qualunque formulazione abbia
una corrispondenza. Visto però che una struttura di questo tipo rischia
di essere troppo complessa, allora è bene considerare un sott’insieme
che riesca a comprendere il più ampio spettro di possibilità (principio
dell’80/20).
E’ anche da notare che una struttura troppo espressiva potrebbe
inficiare la canonicizzazione della frase (punto 3), perché se ogni
29
formulazione avesse una struttura differente per accomodare la
massima espressività, sarebbe difficile normalizzare le ambiguità.
3.4.2 MODELLO
Una struttura base comune a tutti i sistemi di rappresentazione del
significato è basata sull’abilità di rappresentare oggetti, proprietà degli
oggetti e relazioni tra di essi.
Un modello (model) è un costrutto formale che rappresenta un particolare
stato del mondo che stiamo rappresentando.
30
La struttura che si può così formare definisce una semantica vero-
condizionale (truth-conditional semantics), ovvero un metodo per
determinare il valore di verità di una espressione complessa a partire dal
significato delle parti (tramite la consultazione di un modello).
Il significato dei vari operatori è solitamente determinato da tavole di verità.
31
sia la distanza fra una struttura vicina al linguaggio e una invece vicina
all’elaborazione deduttiva.
Dato però che il NLP tratta in modo molto vicino la linguistica, un ambito
nel quale vi è una notevole ricchezza di eccezioni e casi, è utile definire
una serie di casistiche delle quali si deve tener conto:
1. Categorie: definendo le categorie come relazioni
(Ristorante(Morganti)) è difficile fare inferenze su di essi: è necessario
che siano degli oggetti. Per questo motivo si usa la tecnica della
reificazione (reification), ove la categoria è un oggetto a sua volta e
l’appartenenza è definita tramite due relazioni: IsA (is a, è un), che
definisce appartenenza, e AKO (a kind of, un tipo di), che definisce
inclusione.
2. Eventi: non è fattibile aumentare il numero di parametri in una
relazione per poter gestire tutti i suffissi che un predicato può avere.
Per risolvere questo problema si segmenta la frase facendo una
reificazione, ove IsA viene usato per definire che una certa persona
sta facendo una determinata azione (∃w·IsA(w, Eating)) e quindi
definendo tale persona (incognita o meno) in altre clausole legate da
un connettivo AND (Eater(w, Speaker) and Eaten(w, Pizza)…).
3. Rappresentazione del Tempo: il tempo è definito in modo relativo ad
altri eventi, lungo lo scorrere di una linea temporale, secondo un punto
di riferimento. La declinazione del verbo definisce la distanza nel
tempo dei soggetti rispetto a chi pronuncia una determinata frase.
32
4. Aspetti: gli eventi sono definiti anche da una modalità di azione
(concluso, in compimento, …). Per questo motivo tradizionalmente gli
eventi sono distinti in quattro classi: statives, activities,
accomplishments, achievements.
5. Rappresentazione delle Credenze: le credenze (beliefs) implicano
l’introduzione di operatori modali (modal operators) che quindi
definiscono una logica chiamata logica modale (modal logic). Non ci
stupisce però che questsa soluzione comporti notevoli problemi sia
teorici (Filosofia del Linguaggio) che pratici (Computabilità).
33
eseguite tutte le implicazioni che sono ora possibili. Questo processo
continua fino a quando non è più possibile eseguire alcuna
implicazione.
2. Backward Chaining: ove il modus ponens è applicato al contrario. In
questo caso inizialmente si verifica se il fatto è vero controllando se è
presente nella base di conoscenza. Se così non fosse, allora vengono
ricercate tutte le inferenze dove il secondo termine corrisponde al fatto
(la componente B di se A allora B). Se viene trovata una inferenza
corrispondente allora il fatto sarà vero nel momento in cui il primo
termine è vero (A). Si procede quindi in questo modo a ritroso,
ricorsivamente. Prolog lavora in questo modo.
Purtroppo c’è da dire che sia il forward che il backward chaining non sono
completi. Una tecnica alternativa è denominata resolution, che pur
essendolo risulta molto più pesante dal punto di vista computazionale,
riducendo la sua applicabilità.
34
4 AGENTI INTELLIGENTI
Abbiamo visto nel capitolo precedente che vi sono molti differenti livelli di
complessità nell’elaborazione dei dati in ingresso, ma la capacità di
elaborare dati o di gestire un flusso di informazioni non è sufficiente a
definire un agente software: l’intelligenza deve relazionarsi con un
ambiente di riferimento.
E’ bene anche notare che seppure il nostro accento sia sugli assistenti
virtuali, non è detto che un agente software debba utilizzare il linguaggio
naturale per interagire con il suo ambiente.
35
Proseguiamo quindi nell’analisi degli agenti intelligenti, come definita da
Russel e Norvig (1995), che costituiscono l’insieme entro il quale risiedono
anche gli assistenti virtuali.
4.1 RAZIONALITÀ
Un agente razionale è in grado di fare la cosa giusta. Per definire quale sia
bisogna però definire cosa significhi agire in modo razionale. In una prima
approssimazione si può definire una scelta razionale quella in grado di
ottenere il maggiore successo.
36
Per poter collegare le percezioni, gli obbiettivi alle azioni di risposta
bisogna effettuare un processo chiamato mapping.
Il mapping è la procedura interna degli agenti che associano ad ogni
sequenza di percezioni una azione, che nello specifico è quella più
razionale.
Questo non significa però che dovranno essere esplicitate tutte le possibili
combinazioni di input e le loro rispettive azioni in una tabella: anche per un
agente semplice questo tipo di elenco sarebbe troppo difficile da stilare.
Si realizzano quindi delle funzioni che elaborano di volta in volta la risposta
migliore a partire dagli input, in questo modo non solo si risolve il problema
di cui sopra, ma si riesce anche ad ottenere l’adattabilità dell’agente a
situazioni non calcolate a priori.
La sequenza di percezioni non è peraltro mai calcolata per intero. Nei casi
più comuni si utilizza l’ultima percezione singola che aggiorna lo stato
interno dell’agente istante per istante.
Anche nei casi in cui si utilizza una evoluzione cronologica degli input, non
viene mai considerata l’intera sequenza (che comporterebbe problemi di
spazio e di calcolo) ma solamente gli ultimi istanti, in una finestra
temporale grande a sufficienza per l’operazione che deve essere svolta.
37
4.2 STRUTTURA
Un agente intelligente è separabile in due parti distinte: l’architettura
(fisica o simulata) e il programma che crea il mapping fra percezioni e
azioni (agent program), in modo analogo alla distinzione fra hardware e
software.
38
4.3.1 AGENTI A RIFLESSO SEMPLICE
Avendo già escluso la possibilità di utilizzare una tabella di riferimento pre-
calcolata, un agente semplice dovrà utilizzare un altro sistema.
39
eventi. In altri termini, l’agente deve avere una qualche conoscenza delle
leggi del mondo in cui si trova.
Non solo, dovrà anche sapere gli effetti che la propria azione avrà
sull’ambiente.
Per certi versi, si tratta del grado di felicità che l’agente intelligente ha
seguendo una certa sequenza di azioni.
40
4.4 AMBIENTI
Russel e Norvig definiscono cinque proprietà che definiscono gli ambienti
all’interno dei quali possono muoversi gli agenti.
A. Accessibile / Inaccessibile
Un ambiente è definito accessibile quando tutte le caratteristiche che
lo definiscono sono disponibili all’agente.
B. Deterministico / Non Deterministico
Un ambiente è deterministico se il proprio stato successivo è
determinato dallo stato corrente e dalle azioni dell’agente. Se
subentrano altri fattori, altri agenti o se l’ambiente è inaccessibile,
l’ambiente potrebbe sembrare non deterministico, anche se non lo è.
Questa cosa è vera soprattutto nel caso di sistemi complessi. In tale
caso si deve sempre considerare il punto di vista dell’agente.
C. Episodico / Non Episodico
Se la coppia percezione-azione dell’agente è l’unico fattore che
determina la qualità della risposta dell’agente, si dice che l’ambiente è
episodico. Questo avviene quando lo stato successivo dell’ambiente
non dipende da quello precedente.
D. Statico / Dinamico
Se l’ambiente può trasformarsi nel tempo che l’agente impiega a
calcolare si dice che l’ambiente è dinamico. Gli ambienti statici sono
ovviamente più semplici perché non ci sono variazioni che devono
essere continuamente monitorate.
E. Discreto / Continuo
Un ambiente è definito discreto se ci sono una serie limitata e
chiaramente definita di percezioni e azioni.
41
L’ambiente di riferimento è quindi inaccessibile, non deterministico, non
episodico, dinamico e continuo, forse una delle situazioni più difficili per un
agente intelligente.
Il supporto può essere fornito sia tramite una pura alternativa di accesso
all’interfaccia o ai sistemi già esistenti, sia tramite l’apprendimento
automatico delle azioni preferite dell’utente (Lashkari, Metral e Maes,
1994).
In questo caso il periodo di apprendimento può essere un problema,
perché per un reale aiuto è necessario un periodo di apprendimento in
relazione con l’utente.
Minimizzare questo periodo può essere fatto inserendo delle conoscenze
generiche (che però non saranno mai calzate sull’utente) oppure, nel caso
migliore, cooperando con altri agenti già esistenti e già addestrati con
quell’utente.
42
5 EMOZIONI
Dovendo applicare le emozioni ad un sistema complesso, l’obiettivo del
nostro punto di vista su questi studi comprende la ricerca delle emozioni
primarie.
Le emozioni primarie (basic emotions) sono quelle che non sono
ulteriormente scomponibili in impulsi più semplici.
Queste sono molto utili perché una volta definite, è possibile utilizzarle
come metro di riferimento sia per la comprensione degli stati emotivi
umani, sia per la corretta espressione dell’assistente virtuale.
Inoltre, essendo primarie significa che sarà possibile comporle, in modo da
generare un più ampio spettro di emozione, a partire da pochi valori.
5.1 UTILITÀ
In primo luogo si può notare come l’analisi del funzionamento del cervello
umano è in grado di fornire ottimi indizi e strumenti per la realizzazione di
hardware e software anche non inseribili nel campo dell’Intelligenza
Artificiale.
Ne è un esempio la strutturazione a 3 livelli analizzata da Norman (Norman
et. al., 2003) ove l’inserimento di un livello proto-affettivo è in grado di
migliorare l’affidabilità di un sistema.
Gli stessi 3 livelli ricalcano in linee generali entità biologiche: un livello
reattivo (istinti, rapido), uno di routine (pensiero, lento) e uno riflessivo
(coscienza di sé, capace di incanalare il pensiero).
43
Il punto più interessante però nasce quando inseriamo nel contesto
dell’Intelligenza Artificiale l’elemento emozione. Damasio stesso afferma
quanto questo fattore sia importante nello sviluppo dell’intelligenza
(Damasio, 1995).
In una prima approssimazione, avendo capito che la ragione è
strettamente interconnessa con l’emozione, si può facilmente comprendere
come un sistema artificiale deve prendere in considerazione anche
l’emozionalità per poter funzionare meglio.
Oltre che offrire un modo addizionale di reagire agli stimoli interni o esterni,
le emozioni sono fondamentali per soddisfare lo scopo comunicativo,
soprattutto parlando di assistenti virtuali.
• Comprendere le Emozioni: è fondamentale in quanto permette
all’assistente virtuale di capire meglio quale sia la reazione
dell’utente e regolare quindi le risposte successive.
• Esprimere le Emozioni: anche semplici reazioni emotive, come
esprimere dispiacere nel caso in cui qualcosa non vada come ci si
aspetta dovrebbe andare è in grado di migliorare la soddisfazione
dell’utente.
44
Per poter esplicitare sia il processo di comprensione che quello di
espressione, oltre ad adeguati sistemi di riconoscimento (anche solo
testuali o situazionali) è necessario avere un modello teorico adatto ad
elaborare lo stato emotivo interno dell’assistente virtuale.
45
Ognuna delle 6 foto veniva mostrata a delle persone e queste dovevano
associare la foto del viso ad una delle 6 emozioni (ovviamente tradotte
nella loro lingua).
46
1. Segnali universali distintivi: la presenza di una serie di segnali, o
anche solo di impulsi nervosi, che si attivano in modo chiaro in
presenza di una particolar emozione. Una parziale evidenza di questo
fenomeno l’abbiamo nelle espressioni emotive involontarie (Ekman e
Davidson, 1990).
2. Fisiologia distintiva: ogni emozione dovrebbe essere associata ad
una risposta fisiologica specifica, includendo anche stati di alterazione
interni e configurazioni di attivazioni nervose.
3. Valutazione automatica: ovvero la capacità di distinguere una
emozione anche se non c’è l’attenzione conscia.
4. Eventi precedenti distintivi: se le emozioni si sono evolute nel
tempo, allora dovranno esserci certe configurazioni di stimoli esterni in
grado di scatenare specifiche emozioni.
5. Apparizione distintiva nella crescita: le emozioni dovrebbero
apparire in momenti differenti della crescita del bambino.
6. Presenza in altri primati: sempre avvalorando la natura evolutiva
delle emozioni, dovrebbero rivelarsi anche negli altri primati.
7. Attivazione rapida: l’espressione dell’emozione, o anche la sua sola
apparizione interiore, è così veloce da essere percepita solo dopo che
si è completamente manifestata.
8. Durata breve: la durata di una emozione è di minuti o secondi.
9. Attivazione non controllabile: non dovrebbe essere possibile
controllare consciamente l’apparizione di una emozione.
10. Pensieri e immagini distintive: dovrebbe esserci associazione fra
emozioni e certe tipologie di pensiero e di immagini mentali.
11. Esperienza soggettiva distintiva: ogni individuo è in grado di
distinguere le varie emozioni.
Tutti i punti di questa ipotesi non sono esclusivi: per esempio è possibile
che le emozioni primarie si rilevino anche in situazioni che non soddisfino
tutti i punti.
47
Inoltre, alcuni di questi punti sono stati già contestati, ma comunque
mantengono il loro interesse per guidare la ricerca, pur non essendo
universalmente accettati.
48
Come detto inoltre ad ogni emozione viene associato uno stimolo esterno
ed una risposta dell’animale.
In questa tabella vediamo sinteticamente queste relazioni:
Il primo pensiero che può sorgere è che la teoria di Plutchik sia stata
leggermente forzata per ottenere accoppiamenti di emozioni. Per quanto
questo sia possibile, rimane una base interessante proprio per questa
simmetria, risultando comunque una utile integrazione teorica all’approccio
di Ekman, che non è esclusivo.
49
5.3 INTERFACCIA UTENTE
Le tre componenti principali che costituiscono l’interfaccia di un assistente
virtuale ormai sono chiare: dialogo, aspetto esteriore, voce.
Avendo un modello emotivo adeguato, si è quindi in grado di veicolare
attraverso questi canali lo stato emotivo dell’assistente virtuale.
Vi sono però altri due elementi che devono essere presi in considerazione.
51
2002). Di queste, 32 sono ‘action units’, ovvero sono associate a specifici
muscoli, mentre 14 sono ‘action descriptors’, ovvero sono movimenti più
complessi che però si presentano coordinati.
Ad oggi rappresenta lo standard utilizzato per la categorizzazione delle
espressioni fisiche delle emozioni e si rivela utile sia a psicologi che ad
animatori.
52
6 AMBITI APPLICATIVI
Gli assistenti virtuali sono probabilmente ancora lontani dall’essere un
efficace sostituto del normale utilizzo dei dispositivi informatici, in quanto la
ricerca nell’ambito dell’Intelligenza Artificiale non ha ancora raggiunto
questo traguardo.
6.1 PRO
L’utilizzo di un assistente virtuale ha alcuni vantaggi:
A. Fiducia
Dovendo interagire con un essere simile all’uomo si favorisce la
nascita di un rapporto di fiducia (trust) fra l’utente e il sistema, fiducia
che può essere rinforzata memorizzando anche le informazioni
sull’utente in modo da poter personalizzare le risposte future.
E’ importante notare come però non è sufficiente la sola apparenza
umana a veicolare fiducia, ma è anche necessario il messaggio
comunicato e il contesto (Van Mulken et. al., 1999).
B. Comprensione del Linguaggio Naturale
Seppure non necessaria e non sempre presente, la comprensione del
linguaggio naturale, assieme all’espressione nello stesso, consente di
utilizzare una modalità di interazione che è già innata nel parlante di
una lingua.
53
In questo modo non c’è la necessità di fare capire all’utente in quale
modo siano strutturate le informazioni all’interno del sistema.
La comprensione del linguaggio naturale consente anche di
apprendere quali domande l’assistente non è stato in grado di gestire
in modo da migliorare nel tempo la sua efficacia.
C. Nessun Apprendimento Richiesto
Un sistema come un assistente virtuale che cerca di applicare la
human-like interaction consente anche di evitare praticamente
qualunque forma di apprendimento, che per ogni altro tipo di
interfaccia sarebbe necessario.
D. Stabili in contesti cross-mediali
Utilizzando lo stesso assistente virtuale in dispositivi web, vocali, e
testuali è possibile mantenere la stessa modalità di interazione
indipendentemente dal dispositivo che si sta utilizzando,
aumentandone l’efficacia.
E. Complemento Umano
L’assistente virtuale può essere utilizzato per complementare l’attività
umana ove questa non sia disponibile o ci siano necessità specifiche
per alleggerire il carico di lavoro.
6.2 CONTRO
Vi sono anche alcune controindicazioni nell’utilizzo di assistenti virtuali:
F. Informativamente non Denso
Facendo uso dei canali umani di comunicazione e soprattutto il
dialogo, è evidente che un assistente virtuale da solo sia più efficace
ma fornisca poche informazioni.
E’ quindi essenziale, nel caso in cui si richieda una maggiore densità
informativa, l’utilizzo di altri strumenti contestuali per realizzare questo
scopo. Ad esempio è possibile posizionare una pagina web, una
lavagna o un proiettore a fianco dell’avatar in modo da aumentare la
54
quantità di informazioni veicolate, esattamente come farebbe una
persona fisica.
G. Media Intensivo
Perché un assistente virtuale emozionale sia efficace al massimo
richiede un medium ricco (multimodalità, multimedialità). Seppure
possa venire utilizzato anche tramite medium monomodali o canali di
comunicazione più ristretti, è evidente che ne sarebbe limitato.
Al contrario la disponibilità di media più ricchi o anche solamente di un
maggiore feedback dell’utente verso l’assistente tramite dispositivi di
registrazione aumenta le possibilità dell’assistente virtuale. Ad
esempio sistemi la registrazione delle onde cerebrali o della risposta
galvanica cutanea riescono a dare all’agente una capacità superiore a
quella umana di rilevare determinate emozioni (Picard, 1998). Il costo
è però un disagio per l’utente che deve indossare una serie di
apparecchiature anche ingombranti.
H. Contestualmente Limitato
La limitazione ad un unico contesto è un elemento critico e
rappresenta il principale limite degli assistenti virtuali oggi: è
fondamentale che essi, per funzionare in modo idoneo, siano limitati
ad un preciso insieme di conoscenze, limitato.
In altri termini deve essere contemplato solamente un piccolo ambito
all’interno del quale l’assistente può dialogare e contemporaneamente
questo ambito deve essere chiarito preventivamente anche all’utente
(in alcuni casi è chiarito dal contesto, in altri no) per evitare che vi
siano aspettative troppo elevate (Koda e Maes, 1996).
6.3 AMBITI
Gli assistenti virtuali sono quindi idonei a interpretare soprattutto certi ruoli,
in virtù delle qualità che possiedono.
Indipendentemente dall’ambito applicativo, è fondamentale che il contesto
sia specifico, come espresso in precedenza.
55
6.3.1 RECUPERO INFORMAZIONI
Il primo ambito in cui un sistema di questo tipo può essere utile è quello del
recupero delle informazioni da una base dati, sia integrata che esterna.
Questo perché il linguaggio naturale ha un potere espressivo superiore
rispetto alle attuali “query” effettuate sui motori di ricerca e quindi è
possibile ricercare informazioni in modo più preciso.
6.3.2 GUIDE
Un assistente virtuale è anche un’ottima guida, in quanto può fornire la
giusta dose di informazioni, contestualizzate, a riguardo di un percorso
specifico o di un ambiente.
Sono soprattutto efficaci quelli strutturati per fornire assistenza nei siti web,
con il ruolo di assistenti alla navigazione. In parte sostituiscono il motore
di ricerca interno, vista la loro funzionalità. In ogni caso tendono a non
fornire direttamente informazioni, ma ad orientare l’utente verso la fonte
corretta.
56
6.3.3 RISOLUZIONE PROBLEMI
La risoluzione dei problemi è un processo solitamente iterativo composto
da una serie di bivi lungo cui procedere per arrivare a capire ove si possa
intervenire efficacemente.
6.3.4 INSEGNAMENTO
Il principale ostacolo all’apprendimento è legato alle emozioni: confusione,
frustrazione, irritazione, rabbia, odio, disperazione.
I risultati infatti influenzano la risposta emotiva della persona, che viene
motivata da eventi positivi e viene demotivata da quelli negativi (D’Mello,
2007).
57
Buoni risultati si ottengono anche solo con l’analisi del viso e della struttura
della frase, eventualmente supportati dall’analisi della postura (D’Mello,
2007).
6.3.5 GIOCHI
I videogiochi sono gli spazi ove un assistente virtuale potrebbe interagire
con la massima efficienza, in quanto sarebbe immerso in un mondo a lui
affine e non richiederebbe periferiche particolari per interagire.
Per questo motivo un eventuale agente interattivo potrebbe avere il ruolo
sia di guida all’interno del mondo, sia di supporto generico che di
elemento attivo nella trama.
6.3.6 MOBILE
Questo non è un ambito applicativo, ma un ambito modale. E’ però
interessante inserirlo qui perché un assistente virtuale presenta molti
aspetti positivi in questo contesto.
58
La telefonia mobile ha il grosso problema di essere limitata da uno
schermo piuttosto piccolo. Anche con l’evoluzione tecnologica, le
dimensioni richieste da questo tipo di dispositivi sono comunque ridotte.
59
6.4.1 PARAMETRI DI OSSERVAZIONE
Per effettuare una panoramica fra alcune delle implementazioni che si
possono trovare in rete serve avere almeno qualche criterio generico su
cui basare le proprie osservazioni.
60
C. Apparenza Grafica
Pur evitando gli ostacoli della Uncanny Valley, è importante che
l’agente sia piacevole alla vista. Anche nel caso in cui non si sia scelta
la verosimiglianza, non dovrebbe essere fastidioso o brutto a vedersi,
come insegnano numerosi film di animazione e fumetti.
Nell’apparenza grafica è anche contemplata l’integrazione nel suo
ambiente applicativo: un agente ben fatto, ma completamente
separato, avulso dal resto della pagina darebbe una cattiva
impressione.
D. Espressività
Un avatar di un agente intelligente potrebbe essere identico all’uomo
ma non essere per niente espressivo, o addirittura privo del tutto di
movimenti. In questo caso il canale comunicativo aperto dalla
presenza virtuale non è utilizzabile. L’espressività vuole valutare
proprio questo aspetto.
E’ un elemento distinto dalla grafica, infatti non è detto che
l’espressività e la piacevolezza estetica siano due elementi correlati.
E. Tecnologia
L’elemento tecnologico permette spesso di capire i limiti entro i quali
l’implementazione valutata è in grado di muoversi. Uno strumento
flessibile sarà naturalmente migliore di uno chiuso e limitato.
Diverse tecnologie sono abilitanti per differenti tipologie di
integrazione con i sistemi già esistenti: utilizzare un semplice motore
basato su keyword limiterebbe la capacità espressiva mentre un
plugin da installare creerebbe un muro con l’utente finale.
6.5 PRODOTTI
Esistono numerosi esempi in rete, soprattutto nell’ambito dei bot, ovvero
sperimentazioni portate avanti da singole persone a scopo ludico, per
interagire in un piccolo contesto.
61
Cercheremo quindi di presentare un ventaglio di esempi esistenti che
siano significativi, escludendo quelli più poveri per evidenti motivi e
tentando di coprire tutti i vari filoni di interazione e tecnologia.
6.5.1 A.L.I.C.E.
Il progetto A.L.I.C.E. (Artificial
Linguistic Internet Computer
Entity) nasce da un approccio
minimalista e prende origine
come evoluzione di Eliza. La
sua implementazione
opensource ha reso possibile
una diffusione piuttosto ampia.
62
In generale, non è propositiva. Eliza riesce a fingere meglio in quanto
incalza con le domande, piuttosto che lasciare aperto il campo
all’utente. Dovendo nel nostro caso porre noi le domande, il risultato è
che non riesce a seguire in modo adeguato alcun discorso.
B. Utilità
L’utilità del bot disponibile sul web è praticamente nulla, resta solo la
curiosità di verificare cosa riesca a rispondere. In generale questo è
un problema diffuso di qualunque applicativo basato su AIML: sembra
che nessuno lo utilizzi per alcuno scopo ben definito, ma solamente
per produrre bot generici.
C. Apparenza Grafica
Il software A.L.I.C.E. è costituito dal solo motore linguistico, mentre
l’interfaccia è fornita da un servizio esterno, in questo caso Oddcast
(che vedremo più avanti, §5.5.2).
D. Espressività
L’espressività è quella di Oddcast, ma non c’è alcun supporto da parte
del software per il controllo delle emozioni, quindi è per lo più casuale.
E. Tecnologia
Per la realizzazione di questo bot è stato realizzato un linguaggio
basato sullo standard XML, definito AIML (Artificial Intelligence
Markup Language, piuttosto esagerato come acronimo) che
essenzialmente è un motore di produzione di risposte Keyword
Based.
Esistono diverse implementazioni in vari linguaggi di programmazione
(PHP, Python, Ruby, …), fra cui la più supportata è Program D, in
Java.
63
6.5.2 ODDCAST
Oddcast (oddcast.com) è una
società specializzata nella
realizzazione e distribuzione di
avatar parlanti (“talking
avatar”).
Il suo obbiettivo principale è
quindi la parte di interfaccia. Il
loro prodotto infatti è venduto
come tale e solitamente non
presenta una componente
interattiva.
La società possiede anche un
sito parallelo chiamato SitePal,
per la realizzazione gratuita di
assistenti per la navigazione dei siti internet. E’ lo stesso servizio su cui si
basano molti bot del progetto A.L.I.C.E. e più in generale molti motori
sprovvisti di interfaccia.
Nel caso di Oddcast il vero problema è trovare un prodotto che non sia una
semplice faccia parlante ma sia supportata da un dialogo.
64
B. Utilità
Nonostante la non-interattività, l’azienda afferma di riuscire a
migliorare notevolmente l’efficacia di alcuni prodotti (pubblicità +29%,
vendite +10%).
Fra i loro case study c’è anche una applicazione di supporto per
l’apprendimento.
C. Apparenza Grafica
L’interfaccia di Oddcast spazia da uno stile simile ad un cartone
animato moderno ad uno più realistico creato probabilmente da foto di
persone. L’aspetto è solitamente piacevole e si integra piuttosto bene
nelle pagine in cui appare.
Il movimento è più meccanico e rappresenta la parte meno curata
dell’interfaccia.
D. Espressività
L’espressività è quasi assente. Seppure questi avatar parlino, sono
molto piatti e non mostrano praticamente alcuna emozione.
Nel caso in cui la voce utilizzata sia umana e non generata da un
TTS, è soprattutto questa a dare la percezione di sfumature emotive.
E. Tecnologia
La tecnologia su cui si basano questi avatar è integralmente Flash,
quindi si tratta di un utilizzo quasi strettamente orientato al web, dove
riescono ad ottenere un’ottima integrazione con i siti.
65
6.5.3 METEOSAM
Sam è un avatar di un sito
spagnolo (meteosam.com) ed
è dedicato alle previsioni del
tempo.
E’ presentato tramite un sito
web completamente suo e si
colloca all’interno di una
pagina costruita in modo da
rendere completa l’esperienza
delle previsioni del tempo.
66
La voce spagnola (castigliano) è molto enfatica e contribuisce nel dare
una sensazione molto confortevole all’utente.
I tratti del viso sono studiati apposta per esprimersi al meglio, anche
se le previsioni del tempo non siano esattamente un campo ideale in
cui le emozioni son rilevanti.
La regia, accurata a staccare dal viso al resto del corpo, e l’uso del
corpo a figura piena sono due notevoli vantaggi che mostrano una
particolare cura nella comunicazione prossemica di Sam.
Non solo: la versione su telefono rimane focalizzata sul viso, in modo
da enfatizzare le sue espressioni.
E. Tecnologia
Come già citato Sam viene presentato su tre media differenti. Sul web
in particolare fa uso di tecnologia Flash, che risulta essere una scelta
sempre ottima per la sua notevole diffusione.
Il modello 3D è fatto din 3DStudio Max con uno scheletro molto
completo ed è stato animato tramite motion capture, in modo da
renderlo più umano.
6.5.4 LINGUBOT
Lingubot è la tecnologia
sviluppata da Creative Virtual
(creativevirtual.com) per
realizzare agenti in grado di
dialogare.
L’utilizzo commerciale è
soprattutto legato a ruoli
informativi e di supporto ai
clienti come alternative di
telefono ed e-mail. Vi sono
anche alcune soluzioni (per
67
la BBC, ad esempio) che sono state piccole storie interattive con scopo
promozionale.
Considereremo due bot, il primo è Quark, presente sul loro sito ufficiale. Il
secondo è Ask Emma, sul sito British Telecom.
68
Quark è una serie di elementi animati che vengono sostituiti in
relazione alla frase che viene pronunciata. Il movimento è molto
limitato.
Emma presenta un viso cordiale, ma è puramente una immagine
senza alcuna funzionalità. Non si muove quasi.
D. Espressività
L’espressività di Quark è evidente e stereotipata, sorride e interagisce,
seppure in modo molto meccanico e schematico.
Emma invece è immobile e non ha alcun movimento seppure ogni
tanto chiuda gli occhi.
In generale, l’impressione fornita da entrambi è buona, anche se poco
animata.
E. Tecnologia
Lingubot è fondamentalmente un motore a regole che risponde su una
base di conoscenza prestabilita. Sembra non disporre di nessuno
strumento per gestire l’interazione con l’avatar, come se risposte e
interfaccia fossero due cose completamente separate.
6.5.5 H-CARE
H-Care (h-care.it) è una
azienda italiana che
realizza assistenti digitali
umani per fornire
assistenza alla navigazione
e informazioni.
Il loro scopo è fornire un
agente software in grado di
apparire come un
operatore umano, in grado
di integrarsi in infrastrutture
software esistenti e di
69
venire diffuso su più media (web, tv, telefono).
70
6.5.6 FREEWALK
FreeWalk (ai.soc.i.kyoto-
u.ac.jp/freewalk) è una
piattaforma 3D all’interno
della quale utenti e agenti
interattivi si muovono, alla
pari. Si tratta di un
simulatore interattivo di
interazioni sociali.
E’ un progetto
dell’università di Kyoto e
quindi non ha al momento
alcuna apertura verso il
pubblico, ma presenta
alcuni aspetti interessanti.
In particolare modo gli agenti al suo interno sono regolati secondo gli studi
delle interazioni sociali fra gli umani e quindi interagiscono utilizzando un
comportamento molto simile a quello umano, pur essendo un ambiente
simulato.
71
C. Apparenza Grafica
La grafica non è eccezionale ma sufficiente per fare comprendere il
luogo fisico di Kyoto in cui ci si trova. Le persone e gli agenti
possiedono avatar completi che però sono privi di espressione,
mancanza dovuta ad una figura che diventa troppo piccola sullo
schermo per possedere questi dettagli.
D. Espressività
L’espressività è piuttosto bassa, problema che si evidenzia anche a
causa della povera resa dei TTS che vengono utilizzati. La
prossemica è eccellente grazie alla base di studi sociali su cui si basa
il progetto.
L’interazione è comunque mediata, perché l’utente non è direttamente
interfacciato con l’agente ma passa attraverso il proprio avatar nel
mondo 3D.
E. Tecnologia
Vi sono moltissime tecnologie differenti in questo ambito, dal motore
3D OpenGL dedicato al motore di gestione spaziale degli agenti al
linguaggio per agenti interattivi, Q. In particolare modo quest’ultimo,
sviluppato per gli agenti 2D, risulta molto efficace nel garantire una
buona riusabilità del
contenuto sviluppato
per il sistema.
6.5.7 COLLOQUIS
Colloquis (colloquis.com) è
una società che realizza
agenti interattivi ed è stata
acquistata l’anno scorso da
Microsoft utilizzando la sua
tecnologia per bot da
72
interfacciare con Windows Live Messenger.
73
E. Tecnologia
La tecnologia si basa su un motore a regole realizzato internamente
da Comcast, probabilmente su tecnologie Windows, che però
apparentemente non viene usato al suo pieno potenziale, con risultati
dal punto di vista del dialogo inferiori al più povero AIML, pur
mantenendo una buona qualità dei contenuti.
6.5.8 VIRTUOZ
VirtuOz (virtuoz.fr) è una
società francese che realizza
agenti intelligenti di supporto
ad attività commerciali, di
informazione e in generale
per la gestione dei clienti.
74
L’impressione generale è buona e sembra rispondere anche su frasi
difficili, dando comunque spunti all’utente per proseguire,
eventualmente spingendolo a navigare internamente al sito.
Ovviamente l’azienda dichiara che la presenza del suo agente è in
grado di incrementare le vendite completate.
C. Apparenza Grafica
L’apparenza è generalmente piacevole. Fra i vari assistenti da loro
realizzati vi sono quelli in 3D, vicini ad un cartone animato di ultima
generazione e quelli filmati, come Bea, che utilizzano registrazioni di
persone vere.
D. Espressività
L’espressività è predefinita e fa affidamento sul video che di volta in
volta viene caricato. In questo senso Bea, essendo basata su filmati
di persone umane è molto più efficace perché riesce a comunicare
meglio.
Nessun agente fra quelli visti interagisce utilizzando la voce.
E. Tecnologia
Il background tecnologico rispetto ad altri bot sembra più consistente,
in quanto pare che l’azienda disponga di un motore a tre fasi, in grado
di analizzare il testo in una struttura logica e quindi darlo in pasto ad
un livello di elaborazione che cerca di capirne il senso ed
eventualmente apprendere da esso.
Questo motore sembra però attualmente tarato solamente sulla lingua
francese.
E’ un po’ carente sull’aspetto interattivo: il protocollo di comunicazione
utilizzato è quasi solamente testuale e l’interfaccia è piuttosto statica,
che non sfrutta le potenzialità offerte da Flash.
75
7 ARCHITETTURA DEL
SISTEMA
Avere ben chiari gli elementi teorici necessari alla realizzazione di un
sistema complesso di questo tipo non è sufficiente. E’ necessaria anche
una approfondita fase di progettazione del sistema nei suoi componenti
software e hardware.
76
In una realtà senza costrizioni come quella del mondo software questo
modello non solo è inadeguato, ma addirittura controproducente e porta
allo sviluppo di realtà anche funzionanti ma di breve durata e di complessa
manutenzione.
Fra i punti importanti della metodologia agile (Agile Alliance, 2001), quelli
più inerenti alla progettazione, ci sono:
• Attenzione continua ad eccellenza tecnica e buon design.
• La struttura deve assecondare il cambiamento, non opporsi ad
esso.
• Ogni aspetto deve essere realizzato con semplicità, evitando
pianificazioni a lungo termine che potrebbero cambiare in corso
d’opera.
• Cooperazione stretta e giornaliera fra tutte le persone implicate nel
software, cliente incluso.
• La conversazione faccia a faccia è il miglior modo di comunicare.
• I cambiamenti sono sempre accettati in qualunque punto dello
sviluppo.
77
7.2 DESCRIZIONE MACROSCOPICA
L’architettura da un punto di vista macroscopico è separabile in 3 distinti
livelli, che riguardano tre corrispondenti aree concettuali fortemente
interconnesse ed eventualmente tre team di lavoro distinti (per
competenze tecniche differenti):
1. Livello di Interazione (client side)
2. Livello di Elaborazione (server side)
3. Livello di Integrazione (server side)
78
Infatti chi lavora in questo ambito non è escluso che abbia abilità di
modellazione o programmazione, o abilità legate alla regia. Inutile dirlo, è
essenziale una forte base di conoscenza nell’interaction design.
L’integrazione con altri sistemi non è quindi solamente una semplice fonte
di conoscenza ma permette anche all’assistente di essere un mediatore
fra più entità, sempre più ricco all’aumentare dei servizi a cui viene
connesso.
80
L’approccio iniziale su tre livelli distinti si espande quindi a mostrare una
granularità maggiore.
81
sua modularità su un protocollo di comunicazione molto ricco, che richiede
un sistema centralizzato di gestione e instradamento.
7.4.1 CONCEPT
Per il funzionamento di un assistente virtuale il fulcro centrale è sono le
informazioni legate alla comunicazione interattiva, non ristretta al solo
testo.
82
espressive, esattamente come emotività ed espressività sono
caratteristiche intrinseche e fondamentali della natura umana.
83
Il formato di default per l’encoding dei caratteri è UTF-8. Altri encoding
sono possibili (da standard XML) ma sono sconsigliati nel caso di VAMP.
Se ve ne fosse la necessità è comunque consigliabile utilizzare un
encoding che sia un subset di UTF-8.
Il tag root del protocollo è <vamp>. Sarà utilizzata la sintassi XPath ogni
qual volta sarà necessario segnalare uno specifico tag e la sua posizione.
7.4.3 CONTROLLO
Il controllo della comunicazione viene fatto su alcuni tag:
/vamp/sessionID, /vamp/messageID e /vamp/userID.
Questi tag sono necessari per la gestione asincrona del canale di
comunicazione con un singolo utente, visto che il protocollo HTTP è
asincrono e chiude ad ogni contatto il canale.
84
7.4.4 MESSAGGIO
Il messaggio testuale rappresenta il segnale intorno al quale si fonda tutta
la comunicazione.
VAMP 1.1 infatti richiede l’esistenza di un campo di testo contenente la
parte esplicita del messaggio alla quale sono associate informazioni
metalinguistiche.
Tali tag non sono esplicitamente definiti dal protocollo, ma v’è una unica
restrizione che riguarda il tipo di contenuto: è necessario che tutti gli
elementi in <message> abbiano come contenuto la stessa informazione,
eventualmente arricchita, riguardante il messaggio veicolato da
/vamp/message/text.
In questo modo un software posizionato al livello 2 (§6.2.2) può restituire
un ampio ventaglio di informazioni che verranno selezionate al livello 1
secondo il tipo di interfaccia disponibile.
85
7.4.5 METADATI: CONTESTO
Una chiave piuttosto interessante fra i metadati – ovvero dati esterni alla
comunicazione strettamente linguistica – è quella che specifica il contesto.
Ad esempio, nel caso di una pagina web potrebbe essere utilizzato per
l’URL attuale, mentre nel caso di un discorso via cellulare potrebbero
essere le informazioni sul posizionamento spaziale. In altri casi ancora
potrebbe essere in numero di stanza o l’attuale posizione in una coda.
86
Questo campo potrebbe anche veicolare informazioni invisibili all’utente
ma utili per suggerire all’assistente virtuale predizioni su un possibile
comportamento futuro.
7.4.8 EMOZIONI
Le emozioni sono gestite tramite un altro tag separato oltre a
/vamp/message e /vamp/meta, ovvero /vamp/exml.
Questo tag può contenere un singolo livello di campi dal nome non
predefinito dalle specifiche, ognuno dei quali può contenere un valore da 0
a 100.
87
<vamp>
…
<exml>
<sadnessjoy>90</sadnessjoy>
<disgusttrust>100</disgusttrust>
<angerfear>50</angerfear>
<surpriseexpect>20</surpriseexpect>
</exml>
</vamp>
7.5 ARCHITETTURA
Il protocollo VAMP funziona quindi come ponte fra tutti i componenti che
sono presenti nell’architettura di riferimento.
88
Le funzionalità che tale livello dispone sono dettate dall’apparenza stessa
di un assistente virtuale e dalle capacità interattive che deve avere,
costrette all’interno del canale di comunicazione scelto.
7.5.1 ROUTING
Come abbiamo accennato questa architettura è basata sul messaggio ed il
suo componente centrale è il modulo di routing.
Esternamente questo componente costituisce l’interfaccia dell’assistente
virtuale, quella alla quale i vari client manderanno le loro richieste per
ricevere risposta.
Internamente gestisce il percorso del messaggio all’interno dei vari
componenti dell’assistente virtuale.
89
E’ interessante notare come già questo livello sia a sua volta modulare:
infatti dato che la comunicazione interna avviene anch’essa tramite VAMP
over HTTP, in modo standardizzato, ciascun componente è a sua volta un
server, separato e distinto.
90
7.5.2 UNDERSTANDING ENGINE
Questa fase rientra nel nome Natural Language Processing ma non è
necessaria l’esistenza di un motore di NLP vero e proprio. Infatti spesso è
sufficiente un componente molto più semplice, eventualmente basato su
keyword, che sia in grado di effettuare una semplice selezione.
91
7.5.3 TROUBLESHOOTING ENGINE
Questo componente è una componente AI dedicata alla risoluzione dei
problemi. Si tratta quindi della parte razionale dell’assistente virtuale,
quella che pesa i dati ricevuti ed elabora la risposta successiva.
92
Questo componente viene ovviamente limitato con un filtro, in quanto non
tutte le applicazioni richiedono il complesso spettro di output che un
modello emozionale è in grado di restituire.
Non sarebbe infatti molto efficace un assistente che si arrabbiasse in
seguito ad un cliente troppo invadente, o che sembrasse troppo felice in
una situazione problematica. Al contrario, una fidanzata virtuale è meglio
che abbia un ventaglio di emozioni ampio e ricco, potendosi giustamente
offendere o arrabbiare in certe situazioni.
Il filtro serve quindi a normalizzare la risposta emotiva in modo che
l’assistente svolga sempre il suo lavoro nel modo migliore possibile.
Questo sistema è poco flessibile in quanto deve essere variato ogni volta
che cambia l’assistente virtuale o si fa una nuova installazione, ma dato
l’attuale stato tecnologico ha due grossi vantaggi:
1. E’ semplice da realizzarsi.
2. Permette di avere risposte molto umane, in quanto comunque si
tratta di testi scritti da qualcuno.
93
7.6 ARCHITETTURA ESTESA
Al di fuori della pipeline di esecuzione principale dell’architettura esistono
comunque altri elementi importanti per il suo funzionamento, che svolgono
ruoli spesso critici per l’efficacia di un assistente virtuale.
7.6.1 INTEGRAZIONE
Questo è il terzo livello (§6.2.3), che come è ora chiaro non faccia parte
strettamente dell’architettura software dell’assistente virtuale ma
costituisce il ponte software verso tutti gli altri sistemi informatici con i quali
si integra.
94
Questo tipo di asimmetria garantisce che l’architettura si integri
perfettamente con qualunque tipo di infrastruttura hardware e software già
esistente.
95
parte di memorizzazione dello storico nel caso in cui sia necessario
l’anonimato.
7.6.3 AUDIO/VIDEO
E’ estremamente probabile che un assistente virtuale sia presentato nella
sua forma multimediale, con sia audio che video.
Questo tipo di servizio è dipendente dal client che si sta utilizzando e
quindi non fa parte della pipeline principale di esecuzione.
Questi flussi separati verranno poi aggregati e gestiti dal client per dare
una impressione fluida ed uniforme.
96
8 CASE STUDY
Il presente case study si basa su un software proprietario di Kallideas, che
implementa tutte le funzionalità descritte per un assistente virtuale
emozionale.
97
L’architettura client/server degli assistenti virtuali K-Humans si può
riassumere in quattro punti:
1. Client
Vi sono differenti tipologie di client, fra cui quello web, quello mobile e
quello video. Ognuno di questi si integra con la piattaforma utilizzando
le peculiarità del media su cui operano per ottenere il massimo
risultato nell’interazione con il cliente.
2. BlackBox (server)
Questo è l’elemento chiave che gestisce la parte di comprensione del
linguaggio e elaborazione delle risposte, oltre che l’integrazione con
gli altri sistemi eventualmente richiesti per il funzionamento (il
database utenti, la knowledge base, etc).
In altri termini, si tratta dell’assistente virtuale vero e proprio.
Il BlackBox si preoccupa di gestire tutti i vari componenti, incluso il
server di generazione audio/video.
Il software del server è completamente multipiattaforma.
3. Audio/Video (server)
E’ un server separato che viene contattato dalla BackBox e svolge la
funzionalità di generazione dell’audio (TTS) ed eventualmente dei
video corrispondenti.
Questo server può essere di qualunque genere, talvolta è necessario
creare un piccolo wrapper per rendere compatibili i protocolli.
4. Integratori
La Black Box si integra con svariati sistemi, che plausibilmente
saranno su server esterni dedicati.
8.2 GABETTI
Gabetti Agency SpA è una rete di agenzie distribuite sul territorio italiano,
attiva da anni nel mercato immobiliare come intermediatrice.
98
Attualmente la rete di vendita è composta da più di 800 agenzie sia dirette
che in franchising e 14 sedi, con contatti internazionali.
La sua rete informatica quindi garantisce la connettività e lo scambio dati
fra le varie agenzie.
8.2.1 PROBLEMA
Gabetti dispone di un servizio di assistenza tecnica che risponde alle
chiamate interne riguardanti problemi con il computer, la rete o in generale
il loro sistema informatico di gestione dei dati.
99
8.2.2 SOLUZIONE
Un assistente virtuale può sostituirsi con efficacia in questa prima serie di
domande, risparmiando lavoro al servizio di assistenza che si trova così
con più tempo libero da dedicare ad attività più qualificate.
101
traccia di tutta la discussione e alcune flag che segnalano che tipo di
problema sia.
8.2.5 GABI
Il componente di intelligenza che si è scelto di utilizzare è un motore a
regole sviluppato internamente, capace di svolgere troubleshooting e
semplici funzionalità di NLP.
102
Internamente utilizza 12.246 regole per effettuare le operazioni di analisi
testuale, elaborazione delle probabili risposte e formulazione della
risposta, all’interno di cinque macroaree.
2007-10-16 13:10:52
User: Il pc denominato GBMilano3 è stato sostituito con il pc
denominato GBMilano3 però ora non accetta nè l'una nè l'atra
password
Gabi: Controlla di inserire la password correttamente. Ti ricordo
di fare attenzione alle maiuscole, minuscole e di controllare di
non avere attivato il blocco maiuscole. Riscontri ancora il
problema?
104
User: Sì c'è ancora il problema
Gabi: Ok, ho appena aperto e passato un ticket al centro IT
contenente la nostra conversazione. Verrai ricontattato dai nostri
tecnici.
2007-10-17 17:02:51
User: ciao gabi
Gabi: Buongiorno a te. Dimmi pure.
User: la mia stampante non funziona
Gabi: Ti stai per caso riferendo alla stampante collegata
all'AS400?
User: no
Gabi: Hai controllato che la stampante del pc non sia spenta?
User: si
Gabi: Per caso sulla stampante c’è qualche spia accesa oltre
quella di accensione?
User: no
Gabi: Prova a controllare il cavo di collegamento: dietro la
stampante c’è un cavo piatto abbastanza spesso che finisce
dietro al pc. E’ collegato correttamente?
User: si
Gabi: Ok, ho appena aperto e passato un ticket al centro IT con
la nostra conversazione. Sarai ricontattato da un nostro tecnico
105
2007-10-25 09:36:00
User: come recupero l'username e la password della casella di
posta?
Gabi: Ti riferisci alla mail: tuamail@gabetti.it?
User: no xyz@gabetti.it
Gabi: Allora scrivimi a quale indirizzo ti riferisci, così faccio una
segnalazione al centro IT.
User: xyz@gabetti.it
Gabi: Ok! Ho appena segnalato al centro IT di farti riavere le
credenziali di accesso alla posta elettronica. Sarai ricontattato al
più presto. Arrivederci!
2007-10-29 12:40:13
User: problemi con il programma commerciale
Gabi: Ok, sto per aprirti un ticket al centro IT. Descrivimi
ulteriormente il problema in modo che chi leggerà il ticket capirà
a fondo la tua problematica.
User: ci sono difficoltà nell'aprire il programma della pubblicità
Gabi: Ok, ho appena mandato il ticket al centro IT. Sono
contenta di esserti stata di aiuto.
Questo è uno degli argomenti fra quelli noti, ma che non sono stati forniti
all’interno della base di conoscenza di Gabi. Viene comunque aperto un
ticket, e viene chiesto all’utente di descrivere il problema in dettaglio. Il
106
risultato non è sempre utile per l’assistenza tecnica, ma è comunque una
prima scrematura.
8.2.7 RISULTATI
Il ruolo di Gabi come assistenza tecnica ci permette di avere una metrica
piuttosto rilevante per misurare la sua efficacia.
La piattaforma di ticketing infatti consente di estrarre delle numeriche
piuttosto precise e univoche sui ticket chiusi (successo), aperti e se questi
sono stati inoltrati correttamente.
La semplice analisi dei ticket aperti e chiusi però sarebbe piuttosto parziale
e poco significativa. Si sono utilizzate le seguenti metriche:
• Ticket totali gestiti: il conteggio del numero di contatti che Gabi ha
avuto per richieste di risoluzione problemi nel periodo indicato,
indipendentemente dal loro risultato.
• Ticket gestiti con successo: un ticket viene considerato gestito
con successo nel momento in cui viene instradato al servizio di
assistenza tecnica corretto, riportando tutta la conversazione in
modo che siano già escluse tutte le possibilità contemplate dalle
domande standard.
• Ticket gestiti con successo e chiusi: se un ticket, oltre ad essere
instradato con successo, ha anche risolto correttamente il problema
dell’utente (i.e. l’utente alla fine della discussione ha risposto
affermativamente a problema risolto), questo è salvato come
“chiuso” e quindi non richiede nessun supporto aggiuntivo. Per
come è stato realizzato il sistema di regole dell’assistente virtuale,
non dovrebbero essere possibili errori in questa situazione.
• Ticket gestiti in modo errato: i ticket gestiti in modo errato sono
quelli che dipendono da incomprensioni. Vengono categorizzati
come errati i ticket aperti ma instradati in modo errato, chiusi a
causa di una incomprensione oppure apertura di un ticket quando
107
non avrebbe dovuto. In ogni caso riportano l’intera discussione con
l’utente, ma alla fine Gabi non è stata in grado di capire quale fosse
l’ambito del problema.
Inoltre, per evitare di avere dati sporchi, sono stati eliminati tutti i ticket di
prova e quelli aperti da persone che conoscevano il funzionamento del
sistema in modo preciso, perché avrebbero falsato i risultati.
108
La quantità era limitata, ma comunque si tratta di una modifica ai criteri
utilizzati che è bene sottolineare.
Tenendo conto della metrica leggermente variata possiamo fare una media
fra i due periodi, in modo da avere il quadro generale.
Complessivamente quindi:
• Ticket totali gestiti: 334
• Ticket gestiti con successo: 83,5% (279)
• Ticket gestiti con successo e chiusi: 11,7% (39)
• Ticket gestiti in modo errato: 16,5% (55)
8.2.8 CONCLUSIONI
L’utilizzo in questo specifico ambito, con un corpo di conoscenze ben
preciso e strutturato, ha portato a risultati notevoli.
109
Rappresenta un altro grosso risparmio di tempo, anche questo
quantificabile intorno alle 4/5 ore uomo considerando una ipotetica durata
media di 1 minuto a telefonata.
111
Le principali fonti dati saranno da un lato la conoscenza stessa che
l’assistente accumulerà nel corso dei dialoghi e dall’altro le basi dati
aziendali nelle quali ogni utente è solitamente presente.
112
9 RIFERIMENTI
Agile Alliance (2001) Agile Manifesto
— http://agilemanifesto.org (al 2007-10-15)
— http://www.agilealliance.org (al 2007-10-15)
Chomsky N. (1970) Remarks on nominalization
— Jacobs R. e Rosenbaum P. (editori) Reading in English
Transformational Grammar, pp.184-221
Chomsky N. (1994) Bare Phrase Structure
— MIT Occasional Papers in Linguistics, 5
Damasio R. A. (1994) L’errore di Cartesio
— Adelphi (9a ed. 2007) ISBN 88-459-1181-0
Darwin C. (1872) The Expression of the Emotions in Man and Animals
— Project Gutemberg http://www.gutenberg.org/etext/1227 (al 2007-10-20)
Ekman P. (1999a) Facial Expressions
— John Wiley & Sons (1999) Handbook of Cognition and Emotion
— http://www.paulekman.com/downloadablearticles.html (al 2007-10-20)
Ekman P. (1999b) Basic Emotions
— John Wiley & Sons (1999) Handbook of Cognition and Emotion
— http://www.paulekman.com/downloadablearticles.html (al 2007-10-20)
Ekman P., Friesen W. V., Ellsworth P. (1972) Emotion in the human
face: Guidelines for research and an integration of findings
— New York Pergamon Press
Ekman P., Friesen W. V., Hager J. C. (2002) Facial Action Coding
System (FACS)
— A Human Face (2002) ISBN 0-931835-01-1
113
— http://www.face-and-emotion.com/dataface/facs/manual/TOC.html (al
2007-10-21)
Forgy C. (1974) A network match routine for production systems
— Working Paper
Gateway Psychiatric (2005) Mood and Emotion
— http://www.gatewaypsychiatric.com/Patient%20Resources/Mood%20
Disorders%20Info/Mood%20and%20Emotion.htm (al 2007-10-20)
Gladwell M. (2002) The Naked Face
— The New Yorker (2002) Annal of Psychology
— http://www.gladwell.com/2002/2002_08_05_a_face.htm (al 2007-10-21)
Jackendoff R. (1977) X-bar-Syntax: A Study of Phrase Structure
— MIT Press (1977) Linguistic Inquiry Monograph 2. Cambridge, MA.
Jurafsky D., Martin J. H. (2007) Speech and Language Processing, 2nd
Edition Draft
— http://www.cs.colorado.edu/~martin/slp2.html (al 2007-10-17)
— Prentice-Hall (1a ed. 2000) ISBN 0-13-095069-6
Koda T., Maes P. (1996) Agent with Faces: The Effects of
Personification of Agents
— Proceedings of HCI'96, London, UK, August 20-23.
— http://agents.media.mit.edu/publications.html (al 2007-11-13)
Lashkari Y., Metral M., Maes P. (1994) Collaborative Interface Agents
— Proceedings of the Twelfth National Conference on Artificial
Intelligence (1994) vol.1.
— http://agents.media.mit.edu/publications/aaai-ymp/aaai.html (al 2007-11-
14)
McCarthy J., Minsky M. L., Rochester N., Shannon C. E. (1955) A
Proposal for the Dartmouth Summer Research Project on Artificial
Intelligence
— http://www-formal.stanford.edu/jmc/history/dartmouth/dartmouth.html
(al 2007-10-15)
Mori M. (1970) Bukini no tani – The Uncanny Valley
— Energy (1970), trad. MacDorman K. F. e Minato T.
114
— http://www.androidscience.com/theuncannyvalley/proceedings2005/u
ncannyvalley.html (al 2007-10-21)
Norman D. A., Ortony A., Russell D. M. (2003) Affect and machine
design: Lessons for the development of autonomous machines
— IBM Systems Journal (2003), n.1, vol.42
— http://www.research.ibm.com/journal/sj/421/norman.pdf (al 2007-10-21)
Norman D. (2004) Emotional Design
— Apogeo (1a ed. 2004) ISBN 88-503-2235-6
Picard R. (1998) Affective Computing
— The MIT Press
Plutchik R. (1980) A General Psychoevolutionary Theory of Emotion
— Emotion: Theory, research and experience: vol.1, Theories of
emotion, 3-33
Proctor R. W., Vu K. L. (2005) Handbook of Human Factors in Web
Design
— Lawrence Erlbaum Associates (2005) ISBN 0-8058-4612-3
Russel S, Norvig P. (1995) Artificial Intelligence: A Modern Approach
— Prentice Hall (1995)
SigCHI (2007) Curricula for Human-Computer Interaction
— http://sigchi.org/cdg/cdg2.html#2_1 (al 2007-10-15)
Sloman A. (1994) Explorations in Design Space
— Proc ECAI94, 11th European Conference on Artificial Intelligence
Edited by A.G.Cohn, John Wiley (1994) pp 578-582
— http://www.cs.bham.ac.uk/research/projects/cogaff/81-95.html#27
(2007-10-15)
— http://www.cs.bham.ac.uk/~axs/misc/aims-of-ai.txt (2007-10-15)
Van Mulken S, Andrè E., Müller J. (1999) An empirical study on the
trustworthiness of lifelike interface agents
— Bullinger & Zieger (1999) Human-computer interactions (Proceedings
of HCI-Inernational 1999)
— http://mm-werkstatt.informatik.uni-
augsburg.de/files/publications/45/hcii99vMAM.pdf (al 2007-10-21)
115
Wikipedia, Knowledge Navigator
— http://en.wikipedia.org/wiki/Knowledge_Navigator (al 2007-10-14)
— http://www.youtube.com/watch?v=drhgAfLFG7M (Professor, 1987)
— http://www.mprove.de/uni/asi/futureshock.html (Future Shock, 1988)
116