“Ok Google, ordinami una pizza quattro stagioni”
No, questa non è una presa in giro dell’assistente di Google che troviamo sulla maggior parte dei nostri telefoni Android ma quello che sta già succedendo in questo momento negli USA.
In questo articolo cercheremo di fare il punto sulla situazione dello sviluppo dell’Intelligenza Artificiale e sui Chatbots e sulle sue applicazioni pratiche nella vita di tutti i giorni
Intelligenza Artificiale: nozioni di base
Prima di tutto cerchiamo di capire cosa sia l’Intelligenza Artificiale e come viene impiegata nei Chatbots. Innanzi tutto cosa intendiamo per intelligenza; “non abbiamo bisogno di una laurea in filosofia per capire che l’intelligenza è la capacità di adattarsi ai problemi del mondo circostante e trovare la soluzione migliore possibile” (nda). Se questo è quello che facciamo tutti i giorni senza accorgercene, per esempio quando guidiamo la macchina o ci facciamo la barba alla mattina, è perché abbiamo l’esperienza che ci guida.
Abbiamo già affrontato questo problema nel passato e lo abbiamo risolto, una tecnica che è comunemente chiamato inferenza. Anche i computer possono utilizzare l’inferenza per ottenere risposte a semplici problemi come per esempio fare canestro con un pallone di basket ed elaborare risposte sempre più precise dagli errori del passato, come fanno gli umani.
Ok, ma a cosa serve una macchina pensante?
L’Intelligenza Artificiale (AI in breve) non è fantascienza ma è una branca della scienza che ha applicazioni quotidiane già in questo momento. Un esempio pratico sono le reti neurali computerizzate che analizzano le lenti gravitazionali 10 milioni di volte più velocemente di quanto farebbe un semplice computer. Utilizzando sofisticati algoritmi di analisi delle lenti gravitazionali l’AI riesce a risolvere le complesse formule derivanti dalle teorie di Einstein in maniera molto più rapida ed efficiente.
Oppure pensiamo al Computer Oncologo della IBM, il Dottor Watson: un supercomputer nutrito a testi di medicina e articoli scientifici. Il suo utilizzo potrebbe aiutare i medici che si trovano a dover lavorare in strutture che non hanno risorse adeguate per sconfiggere la terribile malattia.
Un’altra applicazione pratica della AI è sicuramente la guida autonoma delle autovetture. Google, Uber ma anche tutti i maggiori costruttori di automobili stanno sperimentando progetti avanzatissimi per permetterci di leggere il giornale o lavorare sul nostro pc mentre ci spostiamo sulla nostra auto, magari elettrica, per andare al lavoro o fare la spesa. Le automobili con guida autonoma sono dotate di sofisticate telecamere che analizzano e riconoscono in tempo reale gli oggetti circostanti grazie a delle tecnologie chiamate Machine Learning e Deep Learning.
Machine Learning nella vita di tutti i giorni: il gioco del tris.
Quando pensiamo ad un computer che impara non dobbiamo immaginare un supercomputer connesso alla rete mondiale come quello di Skynet nei vari film della saga Terminator.
La realtà è molto più semplice, si tratta di insegnare al computer uno o più istruzioni, come per esempio nel gioco tris dove si tratta di fare tre segni (croce o cerchio) in fila per poter vincere la partita:
- Se qualcuno ha due segni in fila, prendi il quadrato rimanente.
- Se una mossa crea due opportunità contemporanee, fai quella mossa altrimenti,
- Prendi il quadrato centrale se è libero, altrimenti
- se il tuo avversario ha preso un angolo, prendi l’angolo opposto, altrimenti
- prendi un angolo libero, altrimenti
- prendi un quadrato libero
Questo semplice algoritmo permetterà al nostro cyber-utente di vincere o almeno pareggiare tutte le partite che giocherà.
Ma non sempre la realtà che ci circonda è così semplice. Molto spesso le variabili sono migliaia, a volte milioni e non è così facile costruire un algoritmo vincente. Ci viene incontro la Machine Learning, un processo computazionale che trae linfa vitale dai dati. Più dati abbiamo a disposizione, più facile sarà per il computer, o per i software da esso utilizzati, dedurre una correlazione tra i dati e la realtà che lo circonda.
Il Machine Learning è in definitiva una struttura di algoritmi matematici che, sotto la supervisione di un amministratore, o in completa autonomia, aiuta a comprendere l’intima struttura dei dati che gli vengono sottoposti.
Per esempio può comprendere se sta ricevendo un attacco hacker durante transazioni molto veloci su carte di credito, oppure segmentare i clienti di un social network per creare campagne targetizzate, o ancora creare diagnosi personalizzate partendo da anamnesi e diagnosi simili di altri pazienti.
Lo step successivo: il Deep Learning
La Machine Learning ci consente risultati eccezionali sicuramente, ma non è in grado di sviluppare più di un problema alla volta. Pensiamo al solito esempio della guida autonoma: il computer non deve solo riconoscere gli oggetti che la circondano ma deve anche relazionarsi con le altre autovetture, con il traffico, con gli agenti atmosferici e con molte altre variabili.
Per risolvere questi problemi ci si è affidati ad un processo conosciuto come Deep Learning, che non è altro che una versione amplificata della Machine Learning.
Ogni dato analizzato dalla macchina è rappresentato da un livello di dati, che interagisce con gli altri livelli della macchina in base ai dati ottenuti dai livelli precedenti. In termini matematici possiamo pensare a questo schema come ad una matrice di dati a più dimensioni, cioè ad un tensore. Una piccola divagazione: il calcolo tensoriale è stato perfezionato dal matematico, lughese come il sottoscritto, Gregorio Ricci Curbastro agli inizi dello scorso secolo per poi essere utilizzato da Albert Einstein per sviluppare la sua Teoria della Relatività Ristretta.
Ecco che è facile paragonare questo metodo di calcolo ad una rete neurale che imita la struttura biologica del nostro cervello. Ogni livello di dati corrisponde ad un neurone, il quale si interfaccia con gli altri livelli tramite una correlazione matematica. La Rete Neurale è quindi in definitiva una struttura di algoritmi.
Il Deep Learning è in grado quindi di dare risultati molto più complessi e capace quindi di risvegliare in noi quel senso di meraviglia che ci fa sgranare gli occhi di fronte a risultati che ci sembrano incredibili e che ci fa gridare alla “Intelligenza Artificiale”.
Uno dei software più utilizzati in questo ambito è TensorFlow, originariamente sviluppato da Google, ma poi diventato “una libreria software open source per l’apprendimento automatico che fornisce moduli testati ed ottimizzati, utili nella realizzazione di algoritmi per diversi tipi di compiti percettivi e di comprensione del linguaggio”.(cit. Wikipedia).
TensorFlow divenne relativamente famoso qualche mese fa quando alcuni utenti lo utilizzarono in una maniera alla quale sicuramente nessuno aveva mai pensato: realizzare finti video hard di attrici famose sovrapponendo i loro volti ai corpi di attrici hard.
All’epoca si parlò addirittura di “pornostar a tua insaputa”, ipotizzando che tale metodologia potesse venire applicata anche agli utenti comuni, per esempio a quelli di Facebook. Per fortuna non è così semplice realizzare tali video (occorrono a volte giga di immagini per costruirne uno) ma ci dà lo spunto per ragionare sulle incredibili potenzialità che simili software ci permettono di realizzare.
L’Intelligenza Artificiale per le imprese
Abbiamo compreso grazie ad un succinto excursus che cosa sia l’Intelligenza Artificiale. Veniamo ora alle applicazioni pratiche che possono interessare alle piccole e medie aziende che lavorano su internet nella vita di tutti i giorni.
Uno degli utilizzi più innovativi di queste pratiche è sicuramente il riconoscimento del linguaggio. Grazie a potentissimi computer e all’utilizzo massiccio del Deep Learning, alcune piattaforme forniscono applicativi web-based che offrono servizi che pochi anni fa erano esclusivamente al servizio di poche grandi imprese: conversare in maniera automatica con un cliente.
Non siamo ancora giunti alla abilità conversazionale di Samantha, la voce femminile del computer di cui si innamora Joaquin Phoenix nel film di grande successo “Lei”, ma possiamo sicuramente sfruttare questa tecnologia (chiamata comunemente Natural Language Processing) a nostro vantaggio.
Possiamo cioè risolvere in automatico le necessità del cliente che si rivolge al nostro customer care senza l’intervento di un assistente in carne e ossa, ma utilizzando sofisticati pattern (modelli) di risposta in base a quanto richiesto dal cliente.
Le Piattaforme di Natural Language Processing a nostra disposizione
Come tutte le grandi evoluzioni del mondo scientifico, non appena viene introdotta una metodologia di grande successo, questa viene replicata (e migliorata) dai più grossi player del settore.
Anche la Natural Language Processing (NLP) ha subito, e continua a subire, questo processo: Google non appena ha compreso l’importanza del settore, ha acquistato a caro prezzo una delle piattaforme più utilizzate dagli sviluppatori, DialogFlow.com, la IBM sviluppa da anni il progetto Watson, che permette di riconoscere il testo che gli viene proposto ed eventualmente rispondere vocalmente.
Anche Amazon, il colosso dei servizi informatici, ha creato Alexa, un assistente vocale che presto entrerà nelle nostre case. Non poteva mancare Facebook con il suo servizio Wit.ai, comodo e pratico strumento per gli sviluppatori del noto Social Network.
Che cosa sono i Chatbots?
Abbiamo la tecnologia, abbiamo gli strumenti per capire cosa ci sta dicendo il cliente ma manca ancora uno strumento essenziale: l’interfaccia con il cliente.
Lo strumento più utilizzato per comunicare con il cliente sul web è da sempre la e-mail. Sappiamo tutti quanto sia costoso il rapporto cliente-azienda via mail: oneroso in termini di tempo, denaro e soprattutto non efficace quanto una chat, per esempio come quelle che facciamo abitualmente su WhatsApp.
Per fortuna abbiamo la soluzione, i chatbots. Cosa sono i chatbots? Per una spiegazione più approfondita vi rimando a un nostro articolo sull’argomento, ma per il momento sappiate che sono utenti virtuali di una chat che rispondono all’utente grazie alla loro Intelligenza Artificiale. I chatbots purtroppo non possono essere utilizzati su WhatsApp (sono bannati non appena identificati come tali dalla piattaforma) ma questo non significa che non possano interagire con i clienti sul nostro sito web grazie ad apposite interfacce grafiche chiamate plugin.
Di sicuro vi sarà capitato molte volte, all’interno di un sito, di cliccare sopra ad un’icona con un testo del tipo “chatta con noi”. Questo è un plugin grafico, che permette di aprire una piccola finestra di chat con un incaricato commerciale. Vi svelo un segreto: molte volte, soprattutto all’inizio della vostra conversazione, state parlando con un chatbot, il quale capisce il tono e l’oggetto della vostra richiesta, indirizzandovi al più corretto agente di Customer Care disponibile in quel momento.
Integrazione con Facebook
Spingiamoci ancora più in là: non sarebbe bellissimo avere questo chatbot anche sulla nostra pagina Facebook?
Ovviamente Facebook non sta a guardare e ha capito che questa tecnologia è veramente dirompente per gli anni a venire, difatti ha creato dei propri chatbots, cioè assistenti virtuali, installati sulla nostra pagina, che interagiscono con i nostri clienti grazie alla funzionalità chat di Messenger (sia web che mobile).
Ma non è finita qui! Gli sviluppatori di Facebook hanno sviluppato anche un plugin in grado di far interagire i clienti del nostro sito web come se stessero chattando su Facebook, fornendo loro assistenza automatica.
Tale plugin ci permette di replicare l’esperienza che hanno gli utenti sulla nostra pagina Facebook con le medesime risposte e interazioni, fantastico no? In questa maniera non dovremo creare due assistenti virtuali, ma potremo sempre utilizzare il medesimo modello di dati (detto anche “agente”).
L’arma finale: l’Assistente Google
Come in ogni film di fantascienza che si rispetti, anche in questa storia sull’Intelligenza Artificiale sfoderiamo l’arma finale più poderosa di tutti: l’Assistente Google.
Google ha lanciato su tutti i telefoni Android dalla versione Marshmallow in su (quindi i due terzi dei device attualmente in circolazione) il proprio assistente virtuale, L’Assistente Google è in grado di riconoscere i nostri comandi vocali (ma anche testuali, cliccando l’apposita icona in basso) e di mandare per esempio messaggi via WhatsApp, cercare sul web, aprire video su YouTube etc.
Ma l’aspetto interessante è che oltre a fare molte delle cose che vengono create dagli stessi sviluppatori di Google, è in grado di integrare il nostro Agente!
Per esempio, basterà dire “Vorrei acquistare un biglietto per la Scala” che il nostro eroe ci risponderà dicendo per esempio “per questa richiesta posso aprire Mr.Biglietto” (un’agente di pura fantasia). Se siamo un’azienda di ticketing (vendita biglietti) a questo punto potremo vendere biglietti su tutti i device android abilitati con pochi comandi vocali. Fantastico no?!
Google Duplex
A quanto pare però il gigante di Mountain View non si è fermato quì. All’ultima conferenza dello scorso maggio dedicata agli sviluppatori, Google I/O, il nuovo CEO Sundar Pichai (di origini indiane) ha svelato il nuovo giocattolo: Google Duplex.
Si tratta di una comoda funzione dell’Assistente Google per demandare a Google piccole mansioni quotidiane che possono però portare via molto tempo ed essere frustranti; pensiamo a prenotare un ristorante oppure ordinare una pizza. Come possiamo notare dal video qui sopra basterà semplicemente chiedere a Google Duplex in quale orario ci interessa prenotare un tavolo e il nostro assistente farà tutto in background e ci avviserà quando otterrà il risultato.
Sorprendente vero? Ovviamente questa funzione è ancora in fase di test negli USA ma in molti si chiedono se e quando verrà rilasciata in tutto il mondo. Come si può notare dalla inflessione di tono e dalla estrema capacità di riconoscimento vocale, Google Duplex è sicuramente l’applicazione più vicina alla Intelligenza Artificiale per come è comunemente intesa.
Come costruire un Agente
Per chi volesse provare a costruire il proprio agente personale proviamo a spiegare per sommi capi quali sono gli step fondamentali:
- Analisi dei bisogni: in questa fase si evidenziano tutte le possibili richieste a cui deve rispondere l’agente e si identificano le risorse a disposizione (p.es. FAQ già predisposte)
- Implementazione su una piattaforma NLU
- Test su un panel di utenti (interni e/o esterni)
- Affinamento della User Experience tramite i feedback degli utenti
Ovviamente tutto ciò è molto complesso e viene svolto solitamente da sviluppatori specializzati nel settore, ma con un po’ di tempo e, soprattutto, molta perseveranza si può riuscire a creare un chatbot partendo dalla documentazione e dagli strumenti forniti dalla piattaforma NLU più evoluta (secondo me): DialogFlow.
Infatti la creatura di Google, grazie ad una comoda interfaccia web, è in grado di fornirci tutti gli strumenti per creare un corretto flusso di interazione con il cliente.
Inoltre la comoda funzione Training permette di affinare le abilità dell’agente grazie alla supervisione di un umano.
Da notare l’integrazione automatica con l’Assistente Google: cliccando un semplice bottone avremo a disposizione tutta la potenza del riconoscimento testuale e del linguaggio naturale della nuova creatura di Mountain View.
I vantaggi degli Assistenti Virtuali attraverso i chatbots
Esistono migliaia di pagine web che già spiegano dettagliatamente i vantaggi di questo approccio al customer care quindi ne elencheremo semplicemente alcuni:
- Scalabilità: il nostro ufficio customer care non è più in grado di rispondere a tutte le richieste degli utenti? La risposta non è assumere più personale ma automatizzare il più possibile il processo di analisi della domanda e rispondere di conseguenza.
- Efficienza: stop agli estenuanti scambi di email; il cliente non deve più aspettare le nove del mattino per avere una risposta, il servizio è disponibile 24/7
- Modularità: creato un agente, basterà implementare poche righe di codice in più per soddisfare i nuovi bisogni, generati per esempio da un nuovo prodotto che si vuole lanciare.
- Multilingue: fino a 25 lingue disponibili.
- Marketing automation: una volta che l’utente ha chattato sulla nostra pagina Facebook siamo in grado di inviare promozioni mirate agli utenti in base alle loro richieste.
- Integrazione con Messenger e le altre chatapps: chi chatta con il nostro assistente virtuale è diventato un nostro contatto Messenger (o Facebook che dir si voglia) e possiamo interagire con lui con tutti gli strumenti che Facebook ci mette a disposizione (rilevamento posizione GPS, condivisione di dati e foto, messaggi vocali, campagne Messenger, etc). Non dimentichiamo che lo stesso si può applicare a Telegram, Skype e molte altre piattaforme di messaggistica.
Questa è stata solo una rapida divagazione sull’argomento Intelligenza Artificiale e sulle sue applicazioni concrete. Molto altro ci sarebbe da approfondire e studiare. Se hai qualche dubbio o vorresti più informazioni su un argomento che ti ha interessato, lascia il tuo commento, sono a tua disposizione.