Un chatbot è un software progettato allo scopo di simulare una conversazione più o meno intelligente con un essere umano; interagendo con un utente umano mediante tecnologie che utilizzano diversi tipi di input (voce, testo, movimento o touch), un chatbot è in grado di rispondere e di eseguire delle azioni.

Sebbene i primi sviluppi di chatbot comincino a partire già dagli anni ’60 (ELIZA – 1966), è negli ultimi 10 anni che l’attenzione su questi strumenti è notevolmente aumentata.

chatbot1

Oggi la maggior parte dei chatbot sviluppati si basano su approcci di tipo rule-based, AI (Artificial Intelligence) o hybrid.

Rule-based chatbot

I chatbot rule-based utilizzano la logica if-then per creare dei flussi conversazionali.

Si basano sul pattern matching, ossia sul riconoscimento di parole o espressioni chiave all’interno del testo di input dell’utente umano, restituendo delle risposte predefinite in base a regole fisse, per garantire che domande uguali o molto simili ricevano la stessa risposta.

In poche parole, sono una soluzione front-end per rispondere a delle FAQ standard.

Tuttavia, data la loro modalità di implementazione, questi chatbot risultano molto rigidi e lenti nello sviluppo.

Esempi classici sono i chatbot messi a disposizioni su molti siti di E-Commerce o su Facebook Messenger.

AI Chatbot

Con lo sviluppo della tecnologia e degli algoritmi di Intelligenza Artificiale, è oggi possibile progettare chatbot in grado di ricreare artificialmente il linguaggio naturale.

L’elaborazione e generazione del linguaggio naturale si articola in diverse fasi:

  • Natural Language Processing (NLP): l’input testuale viene suddiviso in frasi e parole; queste vengono sottoposte a un processo di operazioni di normalizzazione, quali ad esempio la riduzione in caratteri minuscoli, rimozione di stopword, POS Tagging e lemmatizzazione.
  • Natural Language Understanding (NLU): è un insieme di tecniche volte a comprendere e interpretare il significato del testo ricevuto in input. In questa fase il testo inviato dall’utente viene analizzato al fine di comprendere il motivo della richiesta (intent categorization) ed estrarre eventuali informazioni utili (entity detection) al fine di soddisfare l’utente.
  • Natural Language Generation (NLG): è la parte finale del processo e si occupa di trasformare dati strutturati (a seguito delle precedenti elaborazioni tramite le tecniche di NLP e NLU) in linguaggio naturale, fornendo così una risposta comprensibile all’utente umano che ha avviato l’interazione.

Questi modelli di chatbot imparano da schemi ed esperienze precedenti e per questo hanno bisogno di una grande quantità di dati da utilizzare nel training dei modelli.

Purtroppo questo bisogno rappresenta la prima causa di fallimento di un progetto di AI, in quanto non sempre i dati necessari sono disponibili oppure la loro qualità non è adeguata allo scopo (si prenda ad esempio il caso del bot Microsoft Tay, che apprendendo dalle interazioni con gli utenti di Twitter, è diventato ben presto razzista e xenofobo).

Interessante il risultato di una survey di Dimensional Research, nella quale i rispondenti (in larga parte business project manager e data scientist) segnalano quasi all’unanimità come, in un progetto di AI, la fase di training (intesa anche come raccolta e organizzazione dati) si sia rilevata più difficile di quanto ci si aspettasse in partenza.

Hybrid Chatbot

Alla luce dei limiti delle due modalità prese singolarmente, un approccio ibrido offre la possibilità di fornire soluzioni di chatbot più complesse ed efficienti.

Con questa soluzione è possibile effettuare, grazie alle tecniche di  machine learning, delle inferenze complesse in aree linguistiche in cui un approccio puramente rule-based presenta pesanti limitazioni.

Rispetto ai chatbot AI, invece, questo approccio consente la creazione di sistemi conversazionali anche senza dati e garantisce il mantenimento di una personalità coerente e l’allineamento del suo comportamento con le aspettative iniziali.

In questa tipologia rientrano gli assistente virtuali sviluppati dalle principali company informatiche:

  • IBM Watson (2006): famoso ai più per aver sconfitto nel programma televisivo americano “Jeopardy!” due degli ex campioni, Watson utilizza in numerosi campi di applicazione (ad esempio nell’ambito Health) l’elaborazione del linguaggio naturale e apprendimento automatico per trarre informazioni da grandi moli di dati.
  • Siri – Apple (2010): lanciata nel febbraio 2010 come nuova app per iPhone, è diventata in seguito l’assistente vocale nell’iPhone 4S alla sua uscita nell’ottobre 2011, portando le applicazioni vocali nel mercato di consumo tradizionale.
  • Google Now (2012): Google Now è stato sviluppato da Google, creato appositamente per l’app per dispositivi mobili di ricerca di Google. Utilizza un’interfaccia utente in linguaggio naturale per rispondere a domande, formulare raccomandazioni ed eseguire azioni inviando richieste a un set di servizi Web.
  • Amazon Alexa (2015): forse il più famoso degli assistenti vocali insieme a Siri, ha lanciato l’ormai immenso mercato degli assistenti domestici intelligenti.
  • Cortana – Microsoft (2015): Cortana è un assistente personale intelligente sviluppato da Microsoft. Cortana riconosce i comandi vocali naturali, può impostare promemoria e rispondere alle domande utilizzando il motore di ricerca Bing.
  • Google Assistant (2016): è l’evoluzione di Google Now e consente interazioni con l’utente tramite conversazioni naturali; è sostanzialmente l’equivalente di Amazon Alexa.

chatbot2

Applicazioni e vantaggi

Questi software, indipendentemente dal loro campo di applicazione, presentano i seguenti vantaggi:

  • disponibilità 24/7
  • multicanalità
  • gestione contemporanea di richieste multiple

Sono particolarmente utilizzati come canale di supporto ai propri clienti in numerosi ambito di business, dall’home banking all’e-commerce: grazie a questi strumenti, un cliente può ottenere facilmente informazioni relative ai servizi di proprio interesse oppure essere guidato in alcune operazioni standard (ad esempio gestione del conto bancario).

chatbot3

Il valore aggiunto dei chatbot sta quindi nella sua integrazione con i sistemi interni di backend (quali ad esempio CRM, Billing, Provisioning); in questo modo il chatbot può accedere a informazioni e funzionalità di dettaglio che rendono autonomo il cliente.

I sistemi di chatbot consentono alle aziende di ottimizzare anche i processi aziendali e di aumentare la produttività senza incrementare il personale, grazie all’automazione di processi ad alto volume (RPA); ciò comporta un beneficio anche per il cliente interno di un’azienda, il dipendente, consentendogli di concentrarsi su attività più complesse, mentre un chatbot gestisce attività ripetitive o dispendiose in termini di tempo.

Next…

Questa è stata una breve introduzione al mondo dei chatbot e al loro utilizzo.
Prossimamente seguiranno altri approfondimenti sul tema, in particolare vedremo qualche applicazione pratica che possa consentire di poter sviluppare in autonomia un proprio chatbot.

CC BY-NC-SA 4.0
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.