Chatbot, software che sfruttando l’intelligenza artificiale permette di dialogare e richiedere informazioni virtualmente, quasi come se si stesse conversando con una persona.
Nel 1950 Alan Turing, considerato il padre dell’informatica teorica e dell’intelligenza artificiale, propose un modo per verificare la capacità di qualsiasi software di esibire un comportamento intelligente simile a quello umano. Questo test è conosciuto oggi come il Test di Turing dal nome del suo ideatore.
Ad oggi le chatbots sono lontane dal completamento del test ma stanno diventando sempre più intelligenti.
Joseph Weizenbaum un decennio dopo creò a Boston Eliza, nel 1966, un software probabilmente precursore delle successive chatbots. Il programmatore tedesco gettò le basi per una delle più importanti rivoluzioni tecnologiche degli ultimi decenni. Il termine “chatterbot” fu inventato da Michael Mauldin nel 1994 per descrivere questi programmi di conversazione.
Questo contatto non umano permette agli utenti che vi interagiscono un dialogo strutturato in base all’obiettivo per il quale è stato pensato. Come funziona tutto questo?
Come funziona una Chatbot AI “FAQ”?
Esistono diversi tipi di chatbots. Alcune sono estremamente sofisticate come Alexa di Amazon o Google Assistant, altre invece non così sofisticate in quanto sono state costruite per uno scopo specifico come ad esempio le chatbots FAQ.
Queste ultime sono in grado di rispondere all’utente solo rispetto a ciò per cui sono state “addestrate” a rispondere. L’intelligenza del bot però risiede proprio in questo, nonostante l’utente formuli la stessa domanda in modo semanticamente diverso, la chatbot sarà in grado di rispondere comunque.
Vediamo come avviene questo processo di domanda-risposta.
FASE 1– Generazione dei dati per l’allenamento
Come prima cosa è importante preparare i dati che andranno ad addestrare il modello per poter rispondere alle domande dell’utente. Per raggiungere questo obiettivo si crea un file in cui classificare i probabili “intenti ” dell’utente dietro la pubblicazione di una domanda.
Linguaggio
Una lista di dati per l’addestramento comprenderà tutte le parole in tutti i modelli e tag in un unico elenco. Questo sarà l’insieme degli input con i quali avremo a che fare.
Stemming
Per mantenere il modello più “pulito” va effettuato il processo di Stemming per ridurre qualsiasi parola alla sua forma più “naturale”. Il processo rimuove tutti i caratteri extra di punteggiatura e segni per non complicare il modello.
Codifica a caldo
La rete neurale comprende solo i numeri, ed è per questo che la lista di dati (parole) che è stata precedentemente creata deve essere tradotta in numeri. Se la parola esiste nella lista verrà codificata con 1 (bit caldo) altrimenti sarà codificata con 0 (bit freddo).
Facciamo un esempio.
Supponiamo di avere un vocabolario totale di cinque parole
“Ciao”, “buono”, “prezzo”, “sera”, “peso”
Richiesta dell’utente: “Buonasera”
Generazione del codice per la risposta: 0, 1, 0, 1, 0, 0.
Insieme di parole
Alla rete neurale non interessa la posizione della parola all’interno della richiesta dell’utente. Per generare la risposta è puramente necessario che esista all’interno della lista per l’allenamento del bot.
Memorizzazione nella cache
Una fase importante è che quella di memorizzare i dati che sono stati elaborati precedentemente nella cache per evitare che il bot ripeta l’intero processo ogni qualvolta l’utente compie una richiesta.
FASE 2- Addestramento della rete neurale
Una rete neurale è una rete di neuroni disposti a strati. Ai neuroni di ogni strato viene attribuito un compito specifico: attivare i neuroni dello strato successivo.
Lo strato di input è la lista di parole dei modelli, il numero di neuroni sarà la dimensione della lista di vocaboli. Il livello di output sarà la lista di parole degli intenti corrispondenti a quei modelli, il numero di neuroni sarà la dimensione della nostra lista di intenti.
Quando il modello viene addestrato sui nostri dati quello che ne uscirà sarà l’output in termini di probabilità. Quanto è probabile ogni intento, in base al modello di domanda posto dall’utente, verrà scelto l’intento con la più alta probabilità.
FASE 3- Dialogo tra utente e bot
L’utente nel momento in cui chatterà con il bot effettuerà delle richieste in un linguaggio naturale e la rete neurale dovrà essere in grado di comprenderle, per questo le query verranno tradotte in una codifica a caldo rispetto alla dimensione della nostra lista di vocaboli. Questi nuovi codici verranno inseriti nella rete e il bot li utilizzerà o meno in base alla probabilità di ogni intento.
Le chatbots dei nostri giorni
Questa tecnologia è tra le più innovative degli ultimi decenni, soprattutto da quando player del mercato IT come Microsoft e Facebook hanno iniziato ad investire in questa tecnologia.
Apple nel 2010, con Siri, ha realizzato il primo assistente vocale della storia segnando una svolta epocale nella storia delle chatbots. Tre anni dopo nei dispositivi Microsoft arriva Cortana e successivamente Alexa per Amazon, Watson per IBM e Slack per Facebook Telegram.
Sempre più perfetti, sempre più “umani”
Grazie all’integrazione con i social networks e le chats questi software sono in grado di acquisire infinite informazioni sulle preferenze, gusti, ma anche informazioni personali dell’utente come genere, età e molto altro. Questa profonda conoscenza dell’utente permette alle chatbots di fornire risposte sempre più pertinenti e in linea con le richieste dell’utente.
La vera innovazione rispetto a qualche tempo fa è che oggi le chatbots sono in grado di imparare dai propri “sbagli” e dal comportamento dell’utente grazie alle funzioni di Machine Learning.
Un vantaggio per le aziende
Le aziende che interagiscono in modo diretto con i propri clienti e fornitori possono ricorrere a questo tipo di tecnologia per offrire un servizio di CRM sempre disponibile e presente laddove il personale non riesce.
Nel marketing e nella relazione con il cliente le chatbots possono:
- Comunicare notizie in tempo reale;
- Offrire promozioni mirate;
- Permettere l’acquisto di prodotti;
- Dare supporto.