Negli ultimi mesi, la mia società Stamplay ha lavorato insieme con IBM per realizzare un progetto pilota di chat bot per un piccolo comune della Toscana, Poggio a Caiano. L’iniziativa è stata promossa dal vice-sindaco Francesco Pugelli, IBM ha messo a disposizione la sua tecnologia di natural language processing e gestione delle conversazioni, mentre il team di Stamplay ha usato la nostra piattaforma per sviluppare la logica dell’applicazione e l’integrazione con Facebook Messenger. Durante il progetto abbiamo imparato alcune cose che vale la pena condividere.
Il problema delle aspettative
Quando si usa la parola intelligenza artificiale, l’immaginazione delle persone corre subito ai film di fantascienza. L’aspettativa ricorrente è che un chatbot sia un software in grado di ricevere in input qualsiasi documentazione, elaborarla magicamente o addirittura capirla, e rispondere a qualunque domanda che riguardi i documenti che ha processato. Ahimè, non funziona così. La tecnologia che abbiamo a disposizione oggi è molto più semplice: le macchine non capiscono, sono in grado di classificare dei brani di testo ma non capiscono. Inoltre addestrare un macchina richiede molte ore di lavoro manuale di un umano. Tenendo conto di questi vincoli, abbiamo deciso di lavorare al chatbot di Poggio a Caiano facendo tre scelte fondamentali:
1. rispondere solamente alle domande frequenti
Abbiamo abbandonato da subito l’idea di gestire delle conversazioni complete (perché non esiste un sistema in grado di farlo efficacemente) e ci siamo concentrati su scambi domanda/risposta. Il sistema riceve in input una domanda da parte dell’utente, la classifica e, quindi, individua la risposta corrispondente. Scenari più complessi di un semplice botta e risposta nella pratica non producono un’esperienza soddisfacente per l’utente, quindi oggi non sono percorribili.
2. affrontare un servizio comunale alla volta
In un sistema di domande e risposte, l’obiettivo è ricondurre qualsiasi domanda che viene posta a una domanda nota di cui si conosce la risposta. Ipotizziamo che io sappia rispondere alla domanda «dove posso consultare i menu della mensa scolastica?» Un utente può esprimere questa domanda in molti modi diversi, quindi in questo caso l’attività di addestramento di un sistema di natural language processing come quello di IBM Watson consiste nel fornire al sistema un certo numero di varianti della domanda. Il vantaggio dell’usare una soluzione di intelligenza artificiale è che, una volta forniti gli esempi, la macchina dovrebbe essere in grado di classificare correttamente tutte le richieste con una formulazione simili.
I classificatori di testo hanno diversi limiti. Nel caso che abbiamo preso in considerazione, il più importante è che non riescono a lavorare su insiemi molto grandi di domande. In altri termini, ci si può aspettare che un sistema di natural language processing riesca a lavorare con un centinaio di domande diverse (e relative varianti), ma al crescere dell’insieme la sua precisione tenderà inevitabilmente a diminuire. E quindi la sua utilità.
3. lanciare in più step e apprendere
Poiché non sapevamo come si sarebbero comportati gli utenti, abbiamo deciso di adottare un percorso a step successivi. Abbiamo costruito un primo set di una trentina di domande sulla scuola pubblica di Poggio a Caiano, abbiamo messo on line il chat bot e l’abbiamo fatto usare a un numero ristretto di cittadini con figli piccoli. Quindi, abbiamo raccolto le domande, controllato che fossero classificate correttamente, e corretto gli errori. È un lavoro tedioso che viene spesso sottovalutato. La realtà che è l’attività di fine tuning dell’apprendimento deve essere costante e implica delle scelte, tra cui decidere di non rispondere ad alcune formulazioni di una domanda.
I prossimi passi
Da pochi giorni siamo online pubblicamente e stiamo raccogliendo ulteriori dati sulle interazioni con gli utenti. Il passaggio successivo sarà quello di aggiungere un albero di navigazione per cominciare a gestire domande che riguardano più uffici pubblici. In questo modo, l’utente potrà scegliere prima l’argomento e poi porre una domanda in linguaggio naturale.
Grazie alla partnership con IBM, intendiamo esplorare le opportunità di automatizzare le richieste che vengono fatte agli uffici relazioni con il pubblico (URP) della Pubblica Amministrazione, con l’obiettivo di aiutare i cittadini a districarsi più facilmente nei meandri della burocrazia italiana 🙂
Se volete fare qualche domanda a Filippo, trovate nella pagina Facebook del comune di Poggio a Caiano.