06
03
08

Architetture per Assistenti Virtuali Emozionali

01:10 Writings

Kallideas VA K-Humans (Gabi for Gabetti)

La mia tesi di laurea in Teoria e Tecnologia della Comunicazione si apre in questo modo:

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.
[...]
anche senza la necessità di considerare una intelligenza artificiale pienamente sviluppata – sulla quale si sta ancora lavorando – l’emozione si rivela di cruciale importanza per più semplici agenti che devono comunicare con l’uomo (Picard, 1998 e Norman, 2004). La comprensione e l’espressione di emozioni rendono possibile una migliore interazione con l’uomo.

La mia tesi tratta il progetto su cui lavoravo in Kallideas, ovvero la realizzazione di Assistenti Virtuali Emozionali, che nella fattispecie si chiamano K-Humans.

Dopo due mesi dalla laurea ho finalmente avuto tempo di completare questo post, in quanto ritengo che l’accessibilità della tesi nelle biblioteche universitarie sia un conto, mentre renderla disponibile in rete è un altro. L’informazione deve circolare. :)
Se qualcuno fosse interessato a questo documento per trovare qualche informazione sulla struttura interna del prodotto di Kallideas comunque credo rimarrà deluso: l’approccio che ho dato è teorico e architetturale, ma non scende abbastanza nei dettagli.

La tesi è separata in tre parti distinte:

  1. Teoria: quali sono i fondamenti teorici per questo tipo di assistenti virtuali. Una discussione che spazia fra human-like interaction, intelligenza umana e virtuale, natural language processing, teoria e modelli dell’emozione.
  2. Architettura: come l’approccio teorico è stato strutturato in una architettura hardware e software specifica, modulare ed estremamente flessibile e come è stato definito il protocollo VAMP dedicato agli assistenti virtuali (il più possibile indipendente dalla nostra implementazione).
  3. Case Study: l’assistente virtuale è stato realizzato concretamente ed installato, portando vantaggi sensibili all’interno di Gabetti, ove ha il ruolo di primo livello dell’help desk interno. Una sorta di Malaussène della situazione che gestisce con successo l’83.5% delle chiamate, risparmiando 44 ore/uomo al mese.

La tesi “Architetture per Assistenti Virtuali Emozionali” è scaricabile in PDF, 3.5Mb (licenza by-nc-sa 2.5), mentre la presentazione che ho realizzato per la discussione di tesi è qui (su SlideShare).

Vi segnalo anche il post di Matteo Penzo in merito all’installazione di Gabi presso Gabetti.

Un enorme ringraziamento a tutta la squadra del Virtual Assistant di Kallideas (Dario, Alessandro, Mattia, Alberto… Samuel, Gabriele, Thomas, Giovanni… Ricardo, Giorgio), ma soprattutto a Leeander e Roberto, che sono miei punti di riferimento sia professionalmente che umanamente.

[update|2008.03.06] Guardavo poco fa i log, e mi è nato un sorriso nel trovare qualcuno di H-Care fra i lettori di questo post. Per chi non lo sapesse, anche loro fanno assistenti virtuali, seppure con un approccio differente. Vi porgo il mio saluto sincero, come è d’uso fra uomini d’onore, anche se contendenti. :)

19 comments Add yours below

1

Roberto Ostinelli 2008 03 09 at 15:20

un'ottima tesi, che non dubito illuminerà più di un curioso sulle effettive possibilità di implementazione di queste tecnologie ;)

r.
2

Intense Minimalism • Nuove avventure: maison,the 2008 03 11 at 12:30

[...] Ostinelli on Architetture per Assistenti Virtuali Emozionali and 1 more, last on 2008-03-09 [...]
3

daniele 2008 03 19 at 12:05

Salve
Sono Daniele Mingarelli, titolare di www.Pizzut.it il portale informatico italiano. Ho avuto modo di leggere la sua tesi e non posso che complimentarmi con lei.
Volevo chiederle se era disposto a pubblicarla nel nostro portale ovviamente indicando tutti i riferimenti del caso, dedicheremo una sezione apposita.

A presto
Daniele
4

markingegno 2008 03 25 at 10:53

La presentazione è molto interessante, mi ha fatto venir voglia di leggere anche la tesi.
Complimenti.
5

Folletto Malefico 2008 03 25 at 11:34

Grazie :D
6

» Tesi di laurea, servizio condivisione | Il blocco-note di Markingegno 2008 03 26 at 09:55

[...] con la presentazione di Davide Casali sulle Architetture per Assistenti Virtuali [...]
7

Appunti in un mondo digitale - Il blog di Roberto Ostinelli » Blog Archive » L’Intelligenza Composita degli Assistenti Virtuali 2008 03 28 at 17:46

[...] segnalare, in relazione a questo mio articolo, la tesi di Davide “Folletto” Casali, preziosissimo membro del team della divisione tecnologica del lab di Kallideas che ho gestito nel [...]
8

Alessandro 2008 04 24 at 10:03

Buongiorno Davide, da una veloce ricerca su Google sembra che il tuo articolo sia una delle migliori fonti italiane sugli assistenti virtuali. Ti volevo chiedere, rispondi direttamente alla mia mail se preferisci, se puoi darmi un'idea dei costi di implementazione di una tale soluzione (nel tuo articolo parli di risparmi mensili). La mia azienda sta appunto valutando un progetto web che richiede questo tipo di tecnologia.
Ti ringrazio e complimenti per il blog.
9

Marco Ciofalo 2008 06 15 at 20:49

Salve,

sebbene quello che stò per segnalarvi sia totalmente privo di riconoscimento semantico e non implementi alcun modello emozionale, credo però che dal punto di vista prettamente visivo possa definirsi una "novità" nel campo degli assistenti digitali online

Serena, è l'assistente virtuale di Digispace.it ed ha un database di circa 20.000 domande/risposte

Stando ai log (che occasionalmente leggo) i visitatori rimangono molto stupiti alla sua vista.

Spesso, dopo due o tre domande risposte correttamente, il visitatore chiede : "ma sei in diretta" ?

Le domande non risposte vengono aggiornate costantemente e quindi il database di conoscenza cresce giorno dopo giorno

Vi lascio il link al sito che è http://www.digispace.it

E' una tecnologia basata su un codice creato dal sottoscritto e che chiaramente ha ancora moltissimi margini di miglioramento.

Grazie per l'attenzione

Saluti

Marco Ciofalo
10

Folletto Malefico 2008 06 16 at 00:37

Beh, la mia tesi dovrebbe darti ottimi spunti per proseguire nel tuo progetto. ;)
11

Marco Ciofalo 2008 06 20 at 08:54

Sulla mia scrivania ci sono dei bei "malloppi" di Intelligenza Artificiale, ma ho già provveduto a stampare anche la tua tesi! ;)

Purtroppo, utilizzando la maggior parte del tempo per il lavoro "vero", ovvero quello che mi permette di "campare", ne avanza ben poco per permettermi di studiare e approfondire tutto quello che vorrei e che sicuramente potrebbe far "crescere" il mio progetto.

Il mio scopo è quello di creare un engine capace di "comprendere" realmente il significato della domanda (anche con errori). Non voglio utilizzare il codice di programmi come ad esempio Lingubot ma farne uno tutto mio.

Anche se non ti nascondo che mi piacerebbe poter sbirciare in qualche software del genere per poter prendere spunti. Tu hai qualche consiglio da darmi?

Ciao!!
marco
12

Folletto Malefico 2008 06 20 at 14:42

Posso solo dirti che fra le soluzioni opensource non ho trovato niente di utile. Lo stesso AIML (e relativi ProgramD, ProgramE...) che è annoverato il migliore tool in commercio, in realtà è ben lontano dall'essere interessante e permette manipolazioni piuttosto banali. Fa matching di keyword in modo triviale e poco altro.
Noi internamente avevamo sviluppato un engine di analisi e generazione dei testi molto evoluta, fondamentalmente keyword based ma dotata di una notevole flessibilità che consentiva di formare risposte non lineari e nonostante i limiti tecnologici anche apparentemente non keyword based.
La modularità del progetto consentiva la sostituzione di questo modulo e l'aggancio di altri sistemi anche di derivazione dalle AI, come reti neurali e simili. :)

Per la comprensione del significato attento, perché è facile pensare che sia una cosa alla portata ma ha implicazioni molto, molto profonde. :)

In ogni caso, buon lavoro.
13

Marco Ciofalo 2008 06 20 at 19:34

Si lo immagino.

Ho letto la trascrizione di un'intervista ad un dirigente di ExpertSystem (produttrice di Cogito) dove si parla di web semantico, e dove si fa riferimento ad una sorta di taggatura evoluta. Ma chiaramente la "comprensione" è ben altra cosa e - come dici tu - ha implicazioni molto, molto profonde.

Questo è il link all'articolo : http://www.ilmac.net/macopinioni/websemantico.htm

Cambiando argomento, ti segnalo che nel mio piccolo (e sottolineo piccolo) stò cercando di migliorare il "riconoscimento" delle domande poste (e contemporaneamente limitare parte dei problemi legati agli errori di scrittura) grazie ad un mix composto da un database (corposo) di sinonimi e l'algoritmo di levenstein. Per adesso i primissimi risultati non sono proprio malvagi!! :-) Ma chiaramente più leggo articoli e più mi rendo conto che stò cercando di fare da solo quello che aziende cercano di fare da almeno un decennio o forse più... :-(

ps. mi piacerebbe chiederti una cosa (ma non in pubblico) puoi contattarmi?

Grazie e buon lavoro a te.

Ciao

Marco Ciofalo
14

Marco Ciofalo 2008 06 20 at 20:32

Ciao,

ti ho risposto ma la mail mi è tornata indietro

Questo è il messaggio:

----- The following addresses had permanent fatal errors -----

reason: 550-5.1.1 The email account that you tried to reach does not exist. Please

Strano!!
15

Alessandro 2008 10 18 at 14:00

Molto interessante come lettura, ma per chi vuole scendere nel tecnico non trova grandi informazioni.
16

Folletto Malefico 2008 10 19 at 01:44

Vero Alessandro, ma il motivo è che si pone ad un livello differente, come in parte è intuibile anche dal titolo. ;)

Il problema che affronta la tesi è quello del design e delle teorie che ne han guidato lo sviluppo. Seppure ho lavorato al livello più tecnico dell'implementazione del sistema, non mi interessava a conclusione degli studi che stavo facendo portare quella parte.

Anche perché, di fatto, per poter funzionare da un punto di vista commerciale, i K-Humans sono un lavoro di design e di sintesi, più che di tecnica: nel senso che questa esiste ed è anche una mole di lavoro notevole, ma da un punto di vista teorico è un subset rispetto allo stato dell'arte nel campo della linguistica, del riconoscimento del linguaggio, della sintesi delle risposte. L'importante è che l'architettura consenta l'espansione e l'inclusione anche di elementi di più alta raffinatezza tecnologica (vedi Expert Systems): visto che come l'abbiamo progettata questo è possibile, direi che il risultato è più che valido, no? :D
17

guana 2009 02 10 at 12:12

ciao, ho letto gran parte della tua tesi e devo dire che ho trovato degli spunti interessanti per quello che devo fare io. Dovrei implementare un assistente virtuale online per la ASL. Sto ancora in fase di ricerca di codice open source che potrebbe fare al caso mio. Fino ad ora ho trovato programD di ALICEBOT. Comunque il mio assistente virtuale dovrebbe aiutare un utente che si collega al sito della ASL, assistere al logging di ogni utente, aiutare nelle domande ecc...Ho già detto che sto ancora in fase iniziale e sinceramente open source ho trovato solo ALICE. Ecco, potresti darmi delle dritte su qualche codice opensource in rete che sai tu? Mi converrebbe andare a toccare il codice di alice? Sto un po in alto mare. Se mi fai sapere al piu presto un tuo punto di vista ne sarei davvero grato.
Grazie.
ciao ciao
18

Folletto Malefico 2009 02 10 at 12:26

Alice purtroppo quando ci ho dovuto lavorare l'ho trovato di qualità troppo bassa e troppo poco potente per realizzare qualcosa di utile e flessibile, anche senza scendere nelle problematiche di analisi di linguaggio con qualche background semantico.

Alternative efficaci non ne trovai, ma mi riferisco sempre a quando feci le analisi, è passato oltre un anno. ProgramD (e affini) rimane una alternativa a basso costo (perché già esistente) e l'unica forse utilizzabile in ambito commerciale e non come sperimentazione accademico-teorica.

Considera che fra i vari quirks che incontrai ai tempi fu che a parità di grammatica la versione PHP riusciva a gestire le risposte, ma con limitazioni su altre funzionalità e di contro la versione Java andava in overflow a causa di un sistema interno a grafo che consumava tutte le risorse su grammatiche troppo strutturate. Questo per dire l'entità di problemi che potresti incontrare.

Capisco anche che l'effort di scrivere un engine implichi una ricerca teorica e del tempo che probabilmente non hai a disposizione, quindi ProgramX (nelle varie declinazioni) rischia di essere l'unica alternativa possibile.
19

guana 2009 02 10 at 13:03

grazie della risposta. Sinceramente cercando online di opensource non ho torvato niente, solo chatbot semplici e non implementabili online. Ho inizato a mettere mano al codice java di programD ALICE (aime mi sembra l'unica alternativa possibile). Ci sono degli errori pure al codice ( ma sicuro si tratta di librerie che non riconosce). Per il momento non ho idea da dove potrei iniziare a modificare il codice di programD. Magari delle dritte mi sarebbero davvero utili visto che tu già c'hai lavorato. Scusami per il disturbo, ma sto ancora in fase iniziale.
grazie di nuovo.

Leave your Comment

required

required, hidden, never shared

Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackback this post ~ Subscribe to the comments via RSS Feed