Human-computer interaction

Natural Language Processing: i chatbot protagonisti delle aziende di successo

I chatbot sono gli assistenti virtuali, sempre più utilizzati per diverse esigenze aziendali: le previsioni di mercato, come progettarli, le differenze tra il Natural Language Generation (NLG) e il Natural Language Understanding (NLU), gli esempi pratici

Pubblicato il 30 Set 2022

piattaforme conversational AI

I chatbot, o assistenti virtuali, sono strumenti progettati per semplificare l’interazione tra uomo e computer che hanno conquistato un’ampia una fetta di mercato. La crescita esponenziale dei sistemi di messaggistica digitale spinge il web marketing a puntare sempre di più su questa tipologia di strumenti.

Che cos’è un chatbot o un assistente virtuale? Perché è importante? In che modo aiuta ad accelerare il rendimento di un’azienda? Come si può costruire il proprio bot personale? Sono solo alcune delle domande che sorgono nel momento in cui si pensa di implementare un chatbot.

Il mercato dei chatbot

Secondo Forbes, si prevede che il mercato dei chatbot raggiungerà 1,25 miliardi di dollari entro il 2025.

Ai giorni nostri l’esperienza utente fornita da un’azienda è importante tanto quanto i suoi prodotti o servizi: questo giustifica quanto sia importante investire in strumenti quali chatbot basati su intelligenza artificiale.

I Bot semplificano le interazioni tra persone e servizi, migliorando l’esperienza utente e, allo stesso tempo, offrono alle aziende nuove opportunità per migliorare il processo di coinvolgimento della clientela e l’efficienza operativa, riducendo i costi tipici del servizio clienti.

Tuttavia, a adottare la soluzione chatbot sono le grandi organizzazioni, mentre le Piccole e Medie Imprese (PMI) ancora faticano a usare i Bot a causa dei costi di mantenimento e per la mancanza di figure tecniche altamente specializzate. La prospettiva, suggerisce, però un rapido accorciamento del gap.

A beneficare maggiormente della presenza dei chatbot sarà il segmento verticale del retail, il commercio al dettaglio e dell’e-commerce e più in particolare l’Internet banking, IT, telecomunicazioni, sanità, trasporti e logistica, governo, viaggi e ospitalità, media e intrattenimento, istruzione, energia e servizi pubblici, produzione.

Il maggiore sviluppo è previsto nel segmento retail ed eCommerce grazie ai costi che gravano in maniera minore sul marketing con l’opportunità di ampliare la gamma di servizi, come offrire consigli di acquisto personalizzati.

Nello studio How AI Can Revive Retail di Juniper Research è stato stimato che le interazioni basate su chatbot  saranno 22 miliardi nel 2023 e che per questo possano incrementare le vendite al dettaglio che passerebbero dai 7,3 miliardi nel 2019 ai 112 miliardi di dollari entro il 2023.

In un progetto di chatbot di successo il supporto umano svolge un ruolo chiave: indipendentemente dal tipo di approccio e piattaforma, l’intervento umano è fondamentale per configurare, addestrare e ottimizzare il sistema.

Che cos’è un chatbot o assistente virtuale

Un chatbot è un software di intelligenza artificiale (AI) in grado di simulare una conversazione (o una chat) con un utente in linguaggio naturale, attraverso l’utilizzo di applicazioni di messaggistica, siti Web, app mobile o smartphone.

Strumenti come Siri, Google Assistant, Alexa e Cortana rappresentano gli assistenti vocali più diffusi sul mercato, a cui ci rivolgiamo quotidianamente per ricevere informazioni e per accedere alle più disparate funzionalità, ma essenzialmente la loro tecnologia e l’implementazione dei diversi flussi conversazionali è simile a quella di un chatbot.

Un chatbot è spesso descritto come una delle espressioni più avanzate e promettenti dell’interazione tra uomo e macchina, tuttavia, da un punto di vista tecnologico, rappresenta solo la naturale evoluzione di un sistema di Question Answering che sfrutta il Natural Language Processing (NLP). La formulazione di risposte a domande in linguaggio naturale, è uno degli esempi più tipici di Natural Language Processing.

Anche se spesso si attribuiscono loro definizioni e ruoli differenti, chatbot e assistenti virtuali sono noti come assistenti digitali che comprendono le capacità umane, entrambi interpretano ed elaborano le richieste dell’utente e forniscono risposte rapide e pertinenti.

Al tempo stesso, esistono anche agenti conversazionali che non funzionano attraverso l’intelligenza artificiale, limitandosi a operare secondo un algoritmo ben preciso. Proprio la presenza o l’assenza di intelligenza artificiale permette di distinguere tra chatbot rule-based e A.I chatbot.

Nel corso degli anni gli sviluppatori hanno fatto passi da gigante nello sviluppo di chatbot, che attualmente sono in grado non solo di comprendere il linguaggio conversazionale, ma anche di apprendere autonomamente dalle interazioni attraverso il machine learning, incrementando così la propria intelligenza. Questo processo è detto anche continuous learning.

Come progettare un chatbot di successo

Prima di entrare nel dettaglio della progettazione a livello tecnologico di un chatbot è necessario individuare e definire uno o più use case, avendo chiari i propri obiettivi aziendali e quindi le funzioni che dovranno essere automatizzate.

Per questo motivo, è fondamentale creare una struttura di partenza stabile ed essenziale: tracciare una mappa dei principali flussi di conversazione che il chatbot dovrà essere in grado di gestire autonomamente, progettare e disegnare un vero e proprio schema di un automa a stati finiti. Su questi flussi saranno successivamente implementati nuovi dialoghi e casistiche, per rendere il chatbot più smart e funzionale.

Possiamo individuare tre componenti principali che caratterizzano la struttura di un chatbot:

  • Natural Language Understanding (NLU)
  • Dialog Manager
  • Contenuto (messaggi conversazionali)
I tre componenti principali che caratterizzano la struttura di un chatbot

Natural Language Understanding (NLU): comprendere le richieste dell’utente

Il modulo di NLU si occupa dell’analisi e della comprensione delle richieste dell’utente: sostanzialmente, trasforma una frase non strutturata in dati strutturati.

Si distinguono due parti fondamentali che riguardano questo modulo:

  • Intent Classification: l’intento è la classe di operazioni o richieste che possono essere gestite dal chatbot per fornire una risposta. Un intento viene solitamente creato definendo una classe di richiesta e associando a esso delle frasi di training. Se un impiegato o un assistente in generale accoglie un cliente, la sua prima azione sarà il tentativo di individuare l’intenzione della persona entrata nell’attività (negozio, banca, società). Gli intenti possono essere considerati come scopi o obiettivi espressi nell’input della finestra di dialogo di un cliente; dopo averli identificati, l’assistente può selezionare un’azione successiva applicabile.
  • Named Entity Recognition: le entità sono rappresentate da tutte le informazioni rilevanti all’interno dell’input, che sono pertinenti alle intenzioni dell’utente. Gli intenti possono essere considerati come verbi (l’azione che un utente vuole eseguire), mentre le entità rappresentano nomi (la città, la data, l’ora, il marchio, il prodotto). Ad esempio, quando l’intento è quello di ottenere una previsione meteorologica, le entità di posizione e data pertinenti sono richieste, prima che l’applicazione possa restituire una previsione accurata.

È possibile creare il componente di NLU attraverso modelli di deep learning specializzati ma in molti contesti è possibile utilizzare un servizio offerto da terze parti. Sul mercato attualmente esiste un’ampia scelta di moduli di NLU sia open source, come ad esempio il più noto Rasa, oppure servizi di NLU offerti dai principali attori del mercato come LUIS di Microsoft, Wit.ai di Facebook, Watson di IBM, Dialogflow di Google e Lex di Amazon.

Gli strumenti che si trovano sul mercato per il Natural language

Dialog Manager: cosa comunicare

Dopo aver individuato e definito uno o più use case, si realizza una rappresentazione grafica di un automa a stati finiti, attraverso cui viene creato un modello dei diversi flussi conversazionali. Questo modello viene gestito e implementato in un linguaggio di programmazione, con la possibilità di utilizzare o meno un particolare framework, oppure, anche in questo caso, tramite l’ausilio di servizi terzi.

Il dialog manager, sulla base del suo input, delle interazioni passate e dei dati che possono essere estratti da altre fonti, decide cosa comunicare all’utente. Ogni stato è associato ad uno o più intenti e/o entità, questi ultimi costituiscono la condizione tramite la quale si accede a un determinato stato all’interno del flusso conversazionale.

Un altro compito fondamentale del Dialog Manager è quello di tener traccia del contesto corrente, ovvero di tutte quelle informazioni necessarie per riuscire a comprendere in quale stato del flusso conversazionale si trova l’utente e quindi quali saranno i prossimi stati a cui l’utente potrà accedere.

Come per il modulo di NLU, anche per il Dialog Manager è possibile creare una soluzione custom o utilizzare una soluzione standard. In questo caso è spesso più efficace l’utilizzo di una soluzione custom, per una maggiore flessibilità nella gestione del flusso, potendo ottimizzare il più possibile le diverse operazioni, nonostante nella maggior parte dei servizi di terze parti citati precedentemente, sia presente anche la possibilità di gestire un flusso conversazionale articolato.

Contenuto: messaggi conversazionali

Questo modulo riguarda il testo, ovvero i messaggi che verranno visualizzati dall’utente nel corso della conversazione. I messaggi conversazionali vengono spesso trascurati, in quanto considerati come la parte “semplice” del processo di sviluppo del chatbot, forse perché sono parte della fase finale del processo o perché non hanno una natura tecnica.

Sottovalutare questo modulo è un gravissimo errore, poiché il contenuto testuale di una conversazione è molto importante per ottenere un buon risultato sull’esperienza utente, per evitare interruzioni durante il flusso e per aiutare l’utente a raggiungere l’obiettivo che l’ha spinto all’utilizzo del chatbot.

Prima di stabilire cosa dirà il chatbot, è indispensabile decidere chi sarà. Avrà un nome? Come si rivolgerà agli utenti? Risponderà in maniera informale o più distaccata?

Ogni persona con cui dialoghiamo infatti ha un suo carattere, una sua personalità, perché il chatbot dovrebbe essere diverso? Oltre che dai contenuti infatti, l’utente sarà spinto a utilizzare nuovamente il chatbot anche dal piacere stesso della conversazione.

Avendo chiaro fin dall’inizio quale sarà l’approccio e il tone of voice del chatbot, sarà possibile lavorare in modo costante e coerente all’elaborazione dei testi, così che l’utente abbia sempre l’impressione di dialogare con lo stesso assistente virtuale, anche quando le conversazioni saranno scritte a più mani.

Non c’è da stupirsi, quindi, che così tante risorse vengano impiegate per costruire la “voce” dei chatbot: l’idea è di caratterizzarli, dando loro qualità umane e rendendoli quindi affini al target di riferimento con cui dovranno entrare in contatto.

Siri di Apple, ad esempio, è stata orgogliosamente descritta dai suoi creatori di aver “un atteggiamento leggero… amichevole e umile”, mentre Cortana di Microsoft è stata progettata per essere “competente, premurosa, fiduciosa e leale, sempre pronta ad aiutare, non prepotente, desiderosa di imparare”.

Perché i chatbot sono importanti per un’azienda

I chatbot aumentano l’efficienza operativa e apportano risparmi sui costi aziendali, offrendo allo stesso tempo comodità e servizi aggiuntivi per i clienti. Essi consentono di risolvere facilmente molti tipi di richieste e problemi dei clienti, riducendo al contempo la necessità di interazione umana.

Di seguito vengono elencati alcuni dei principali valori apportati dall’utilizzo di una tecnologia chatbot:

  • Riduzione dei tempi di attesa dei clienti: secondo il Chatbot Report, il 21% dei consumatori vede i chatbot come il modo più semplice per contattare un’azienda. Essi sono un modo più intelligente per garantire che i clienti ricevano la risposta immediata che stanno cercando, senza far loro subire eventuali tempi di attesa.
  • Disponibilità 24 × 7: il 68% dei clienti, nel caso non noti interesse da parte di un’azienda, si rivolgerà a un concorrente. I bot sono sempre disponibili per coinvolgere gli utenti con risposte immediate alle domande più comuni. Il principale potenziale vantaggio nell’utilizzo dei chatbot è il servizio clienti 24 ore su 24.
  • Maggiore coinvolgimento dei clienti: i bot conversazionali possono avviare una conversazione proattiva e offrire consigli personalizzati che miglioreranno l’esperienza del cliente.
  • Facile scalabilità: i bot possono essere facilmente scalabili durante le ore di punta o gestire un numero “n” di conversazioni senza costi aggiuntivi per il servizio clienti.
  • Risparmio sui costi del servizio clienti – Juniper Research stima che i chatbot aiuteranno le aziende a risparmiare oltre 8 miliardi di dollari all’anno entro il 2022 su salari, formazione e costi di infrastruttura.
  • Automatizzazione della qualificazione e delle vendite: con i chatbot è possibile canalizzare la vendita per prequalificare le categorie e indirizzarle nel team giusto per un ulteriore supporto.
  • Riduzione del tasso di abbandono dei clienti – Coinvolgere i visitatori è senza dubbio il modo più sicuro per ridurre le frequenze di rimbalzo del cliente

Chatbot: alcuni esempi pratici

In questa sezione vengono elencati alcuni esempi pratici di use case ai quali chi scrive ha lavorato per conto di un’azienda del gruppo Reply specializzata in Machine Learning e intelligenza artificiale.

  • Il primo esempio riguarda proprio l’assistente virtuale interno, chiamato Ray, utilizzato da tutti i dipendenti per svolgere operazioni ricorrenti, come prenotare una meeting room, caricare note spese o compilare il proprio timesheet. Questo assistente virtuale è stato sviluppato in tutte le sue componenti, dal front-end, ovvero la finestra di chat vera e propria, al componente di Dialog Manager connesso con Dialogflow, che funge da NLU.
Lo smartphone mezzo privilegiato per l'uso di chatbot
  • Per un cliente della grande distribuzione è stato sviluppato un chatbot che guida gli operatori delle varie sedi nella creazione di possibili segnalazioni per eventuali problematiche (errori di prezzo in cassa, codice articolo errato, ecc). In questo caso si è scelto di utilizzare una tecnologia basata su Rasa.
  • Per un’azienda leader del campo energetico è stato implementato un sistema di help desk che supporta i dipendenti nella “giungla” delle politiche, delle procedure e dei progetti dell’azienda, fornendo ai dipendenti risposte brevi e precise (ad es. un F.A.Q o un paragrafo specifico di un documento). In questo caso è stato utilizzato sia Dialogflow come modulo di NLU ma anche modelli di machine learning per trovare le migliori risposte tra le F.A.Q.
  • Per un’importante azienda nel campo delle telecomunicazioni è stato creato un assistente virtuale rivolto al cliente finale. Uno dei punti chiave di questo assistente virtuale è quello di fornire un’interazione vocale oltre che testuale. Il servizio è infatti pensato per essere utilizzato attraverso Google Assistant, per poter fornire un’ottima copertura verso i clienti finali in quanto Google Assistant è ormai disponibile su tutti i cellulari, smart speaker come Google Home, TV smart, orologi smart, etc. Inoltre, questo virtual assistant fa qualcosa di più sofisticato dal punto di vista del supporto, è infatti in grado di rispondere in autonomia alle domande di carattere generale poste dal cliente (ad esempio informazioni su spedizioni, resi, recessi da un contratto), quindi quella che può essere chiamata di assistenza di primo livello.
L'esperienza dell'utente con i chatbot deve aiutarli a risolvere problemi
  • Per un’importante banca è stato creato un chatbot utile agli impiegati in filiale per essere indirizzati velocemente verso una soluzione, rispetto a problematiche poste dal cliente. Nella maggior parte dei casi, l’impiegato in pochi passaggi, molto spesso anche in uno solo, riesce a raggiungere la soluzione finale. Questo chatbot è stato sviluppato sfruttando interamente tutte le potenzialità di Dialogflow, dalla gestione del flusso conversazionale al modulo di NLU.
  • Per un’altra importante banca è stato creato un’assistente umanoide, raffigurato come un ologramma, in grado di accogliere in filiale il cliente e di avviare una relazione personale ed empatica con lui, per aiutarlo a svolgere le principali operazioni bancarie. A guidare l’assistente virtuale un motore di intelligenza artificiale per l’interazione con l’utente, ma non solo. L’utilizzo di tecniche di computer vision permettono di osservare i movimenti del suo interlocutore nella stanza e capire quando la sta guadando o vuole interagire con lei. L’intelligenza è basata su un framework conversazionale che funge da Dialog Manager e guida la conversazione basandosi su ciò che dice l’utente, integrando sia il componente di NLU, in questo caso Dialogflow, sia i servizi della banca necessari per applicare e rendere effettive le richieste del cliente.

Conclusioni: pro e contro dell’uso dei chatbot per le aziende

Esistono diversi approcci e strumenti che è possibile utilizzare per sviluppare un chatbot: a seconda del caso d’uso che si desidera affrontare alcune tecnologie di chatbot sono più appropriate di altre.

La progettazione di un chatbot non è un qualcosa di semplice e se non ci si affida a professionisti del settore si può incorrere in errori e in progetti errati che renderebbero vani tutti i benefici apportati dall’utilizzo di questi strumenti.

I bot di intelligenza artificiale sono diventati una parte vitale di una strategia di coinvolgimento dei clienti. Grazie all’IoT e al Deep Learning, ora abbiamo un numero enorme di possibilità da sfruttare, dallo Speech-to-Text, all’helpdesk online ai famosi strumenti come Google Home o Alexa.

Ultimamente si iniziano a sviluppare i primi chatbot che sfruttano il processo di Natural Language Generation (NLG), che può essere visto come l’opposto del Natural Language Understanding (NLU).

Con il NLU il sistema deve strutturare e interpretare una frase di input dell’utente per produrre una rappresentazione automatica, mentre nel NLG il sistema deve prendere decisioni su come esprimere un concetto in parole, scegliendo una rappresentazione testuale specifica e coerente. Il NLG può essere paragonato al processo mentale che gli umani applicano quando trasformano le idee in parole.

La direzione della ricerca in quest’ambito è sicuramente quella di creare un bot che segua il meno possibile degli schemi prefissati nel relazionarsi con l’utente, ma che abbia una coscienza propria, sempre più simile e vicina a quella umana.

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Articoli correlati

Articolo 1 di 3