4. Chatbot, cosa sono?
Un agente conversazionale (chatting robot)
che è in grado di condurre conversazioni via
testo o tramite comandi vocali.
○ Goal oriented
○ General conversation
4
5. Chatbot, a cosa servono?
Lo scopo principale dei chatbot è quello di
ottimizzare le interazioni tra persone e
servizi.
Possono essere utilizzati come servizio o come un tool di
marketing per fare engagement. Forniscono contenuti,
facilitano acquisti e si connettono ai consumatori
(Content Marketing).
5
6. Chatbot, perchè ora?
○ Nella comunicazione online si stanno
affermando con prepotenza interfacce di
tipo conversazionale
○ Evoluzione del Machine Learning che ha
dato nuovo impulso al mondo del Natural
Language Processing (NLP)
6
7. Rule-based
Comportamento viene
dettato da flussi e script
di risposta definiti by
design.
Rule Based Chatbot o
Smartbot?
Smart
Il motore decisionale del
comportamento è basato
su tecniche di machine
learning.
7
AI
ML DL
8. Retrieval-based
Il chatbot accede a un
repository di risposte
predefinite. L’euristica
può essere più o meno
sofisticata : si va da
sistemi rule-based basati
su semplice
corrispondenza testuale
a classificatori complessi
di machine learning.
Chatbot Retrieval Based o
Generativi?
Generativi
Analogo a quello
utilizzato nei sistemi di
traduzione automatica,
cioè si ‘traduce’ da una
domanda ad una
risposta. E’ questo
l’ambito in cui le
tecniche del deep
learning sembrano dare i
loro frutti migliori.
8
9. Dove prendere l’AI?
Propria
implementazione
Necessarie
competenze di
programmazione e (se
si vuole) di machine
learning
Piattaforme ad hoc
per lo sviluppo di
chatbot
Abe, Trim, Kasisto ..
Kasisto, in particolare,
è uno spin off di SRI
International, la
società che ha creato
SIRI.
AI aaS di grandi
fornitori
Integrazione del
chatbot con natural
language API fornite
dai big del cloud
computing (IBM con
Watson, Microsoft con
LUIS e Bot Framework,
Google con Natural
Language API e AWS
con Alexa Skills Kit).
9
11. Approccio NLP Classico
11
Segmentazione
frase
Tokenizzazione PoS Tagging
(Part of Speech)
NER
(Named Entity Recognition)
Intent Extraction
DB
Script
risposta &
action
● Metodi Classici
(regex, rule, KB…)
● Metodi Statistici
(HMM, MaxEnt,
Custom Random
Field)
● Metodi Neurali
(molte architetture,
molto usate le
LSTM bi-direzionali)
12. Approccio NLP Neurale
12
Segmentazione
frase
Tokenizzazione Sequenza di Input
Sequenza di
Output
Metodi Neurali (rete
seq2seq di LSTM
aumentate con
meccanismo
dell’attenzione).
Knowledge Base
(cattura porzioni
di frasi che
potrebbero far
scattare funzioni
di business logic.)
14. Rete Neurale
Modello matematico che ad ogni input xi associa un
peso wi con valore positivo o negativo per eccitare o
inibire il valore. L’output è il risultato di una
funzione di attivazione (generalmente non lineare)
applicata alla somma pesata degli input.
14
15. RNN
Le RNN sono reti neurali con una struttura ‘a
catena’. Esse si ripetono in cicli che, ad ogni istante
temporale, possono processare componenti
differenti di input sequenziali.
15
16. Speciale tipo di RNN aumentate dalla presenza di
unità di memoria che permettono il salvataggio delle
informazioni acquisite nel tempo.
16
LSTM
17. Architettura neurale progettata appositamente per
lo studio delle sequenze di frasi basato sul
paradigma encoder-decoder.
17
Seq2Seq
18. Framework rilasciato in modalità open-source da
Google a fine 2015 per la realizzazione di algoritmi
di Machine Learning e di architetture di Deep
Learning. Consente il calcolo distribuito anche su
GPU.
18
TensorFlow
19. Data Gathering e Normalizzazione del testo scritto,
creazione di un vocabolario in fase di training
ottimizzando dimensione e pulizia, formattazione
dati input per la rete neurale.
19
Preprocessing
21. Inferenza - Epoca 1
21
D: Ciao
R: Ciao
D: Salve
R: Buonasera
D: Come ti chiami?
R: V codicecliente1234
D: Come stai?
R: Si
D: Buongiorno mi chiamo Elena
R: Si
D: Ho un problema con l’abbonamento
R: Buongiorno
22. Inferenza - Epoca 12
22
D: Ciao
R: Ciao
D: Buongiorno
R: Buongiorno
D: Come ti chiami?
R: ?
D: Da dove vieni?
R: Da Roma
D: Dove vivi?
R: Sul contratto
D: Come stai?
R: Tramite raccomandata
D: Buongiorno mi chiamo Elena
R: Buongiorno
D: Elena Gagliardoni codicefiscale1234
R: Buonasera Elena
D: Ho un problema
R: Dimmi pure
D: Quale è il tuo codice fiscale?
R: codicefiscale1234
D: Voglio disdire il mio abbonamento
R: Sei ancora in linea?
D: Voglio chiudere il mio abbonamento
R: Ok
D: Non mi funziona il servizio
R: Che problema riscontri?
23. Inferenza - Epoca 30
23
D: Ciao
R: Ciao
D: Buongiorno
R: Buongiorno
D: Come ti chiami?
R: Roberta
D: Da dove vieni?
R: Dal decoder
D: Dove vivi?
R: In un pc
D: Come stai?
R: Tramite raccomandata
D: Buongiorno mi chiamo Elena
R: Buongiorno Elena
D: Elena Gagliardoni codicefiscale1234
R: Salve Elena
D: Ho un problema
R: Dimmi pure
D: Quale è il tuo codice fiscale?
R: codicefiscale1234
D: Voglio disdire il mio abbonamento
R: Posso chiederti come mai vuoi disdire?
D: Voglio chiudere il mio abbonamento
R: Buongiorno, facciamo subito una verific
D: Non mi funziona il servizio
R: Che problema hai?
24. Evidenze e Conclusioni
24
○ DeepChatbot è un sistema di QA puramente neurale e generativo, non
fa compromessi con quelli che sono gli approcci classici. QUesta sua
‘pulizia’ teorica non lo rende adatto a compiere azioni di business logic
o di profilazione delle risposte. Inoltre, i modelli generativi non
consentono alcun controllo sulle risposte.
○ Lo stato dell’arte dei Chatbot ‘smart’ prevede l’utilizzo di alcuni
algoritmi neurali di Deep Learning per la fase di Information Extraction
(da POS Tagging fino ad arrivare all’Intent Extraction). Una volta
ottenuti gli intent, sistemi a regole o blocchi di codice assegnano dei
template proattivi.
N.B. sto parlando dei chatbot goal oriented e non quelli di conversazione generale!!
I Chatbot rientrano a pieno titolo nel concetto del Content Marketing
Il fatto che di chatbot si parli molto oggi dipende dalla convergenza di due tendenze. Da un lato sappiamo che nella comunicazione online si affermano con prepotenza interfacce di tipo conversazionale. Il successo di piattaforme di messaggistica istantanea come WhatsApp, WeChat, Telegram e Facebook Messenger, soprattutto presso il pubblico più giovane, è un dato di fatto. Da qui l’idea di integrare in questo tipo di interfacce una quantità crescente di servizi B2C.
La seconda tendenza è legata all’evoluzione del machine learning, che ha dato nuovo impulso al mondo del natural language processing (NPL). Quando parliamo di NPL intendiamo qualunque processo di trattamento automatico delle informazioni espresse in linguaggio naturale. Ma non tutto l’NPL è intelligenza artificiale. Ed è proprio il machine learning che sta offrendo nuove possibilità all’ambito delle applicazioni conversazionali. Un fronte ancora più avanzato è costituito dalle interfacce conversazionali che sfruttano tecniche di deep learning, ovvero machine learning basato sull’impiego di reti neurali.
Ci sono due approcci per lo sviluppo dei Chatbot.. Uno definito Rule Based e uno, per così dire, ‘smart’
Rule Based
Comportamento dettato da flussi e script di risposta definiti by design.
In linea di principio si può parlare di chatbot – o, ancora meglio, di smartbot – solo nel caso in cui il bot sia equipaggiato con un motore di machine learning. Eppure nel vasto panorama dei chatbot in circolazione ce ne sono molti – forse la maggioranza – che non sono affatto ‘smart’.
Un altro modo di distinguere le applicazioni di chatbot è facendo riferimento al modello in base al quale il software produce le risposte alle domande all’interlocutore umano.
L’euristica, ovvero la metodologia di ricerca della risposta migliore, può essere più o meno sofisticata: si va da sistemi rule-based basati sulla semplice corrispondenza testuale a classificatori complessi di machine learning
analogo a quello utilizzato nei sistemi di traduzione automatica. Nei chatbot che applicano questo modello, anziché tradurre da una lingua all’altra, si ‘traduce, da un input (domanda) a un output (risposta). È questo l’ambito in cui le tecniche di deep learning sembrano dare i loro frutti migliori
Alla fine, però, la scelta più delicata è un’altra. Se un chatbot propriamente detto ha bisogno di intelligenza artificiale, dove è più opportuno andarla a reperire? In linea di principio sono possibili tre strade: 1) implementazione in proprio, 2) utilizzo di piattaforme ad hoc concepite per lo sviluppo di chatbot, 3) consumo di AI messa a disposizione as a service dai soliti grandi fornitori: Amazon, Google, Microsoft, IBM e Facebook.
Abe, Trim, Kasisto, Kore, Abe e Ernest. Kasisto, in particolare, è uno spin off di SRI International, la società che ha creato SIRI. ed è specializzato per applicazioni FINANZIARIE.
integrazione del chatbot con natural language API fornite dai big del cloud computing
Infine ci sono Google, con Natural Language API, e AWS, con Alexa Skills Kit.
Cerco di darvi dei Big Concept che sono alla base delle tecniche neurali per sistemi conversazionali
Modello matematico molto semplificato del neurone biologico. Ad ogni input xi è associato un peso wi con valore positivo o negativo per eccitare o inibire il neurone. L’output del neurone è il risultato di una funzione di attivazione (generalmente non lineare) applicata alla somma pesata degli input.
Problema dipendenze a lungo termine!!
Cerco di darvi dei Big Concept che sono alla base delle tecniche neurali per sistemi conversazionali
Le reti LSTM sono uno speciale tipo di RNN in grado di apprendere le dipendenze a lungo termine.
Invece di avere una singola processazione ad ogni livello, l’architettura delle LSTM è aumentata dalla presenza di unità di memoria che permettono il salvataggio delle informazioni acquisite nel tempo della singola sequenza.
Un blocco LSTM contiene dei gate che hanno il compito di decidere quando un valore è abbastanza significativo per essere ricordato, quanto a lungo deve essere mantenuto e quando deve essere emesso.
Nella fine del 2014, un gruppo di ricercatori del progetto Google Brain, guidati da Ilya Sutskever, presentarono un articolo dal titolo ‘Sequence to Sequence Learning with Neural Network’ .
In questo articolo viene presentata una nuova architettura neurale (Seq2Seq) progettata appositamente per lo studio delle sequenze di frasi.
Lo scopo originario di questa tipologia di rete era il Machine Translation, ma studi successivi dimostrarono la sua applicabilità anche per la realizzazione di sistemi di Q&A.
The Seq2Seq framework si basa sul paradigma encoder-decoder. The encoder encodes the input sequence, while the decoder produces the target sequence
l’encoder non produce output, ci si porta dietro quello che ad ogni istante viene prodotto dall’ultimo hidden layer della LSTM per produrre infine il vettore a dim fissa che è la rappresentazione dell’input.
Nel paper si si presentava un’architettura (che mappa una sequenza in una sequenza, come il nome può far intuire) composta da due reti neurali LSTM, una
chiamata Encoder il cui compito era quello di rappresentare in un vettore finale a
dimensione fissa (non dipende dalla lunghezza della frase in ingresso) una frase (o sequence) in input elaborata parola dopo parola, e
l’altra, chiamata Decoder, che prendeva in input il vettore generato dall’Encoder e
produceva parola per parola la frase di risposta. Come si sceglie la parola di output all’istante t? Non è altro che una distribuzione di probabilità su tutto un repository di parole possibili condizionata dalle parole emesse in precedenza nell’output e dal vettore generato dall’encoder.
IMPORTANTE: spiega la softmax cioè che in fase di decoder immaginate un filtro che agisce su tutto il vocabolario facendo una distribuzione di probabilità spalmata su tutte le parole possibili, quella che ottiene la probabilità maggiore è l’output prescelto.
TensorFlow è un framework, rilasciato in modalità open-source da Google a fine 2015, per la realizzazione di algoritmi di Machine Learning e di architetture di Deep Learning. Consente il calcolo distribuito, anche se GPU. Oggi espone anche API in Java, R, Python e Go per eseguire i modelli addestrati.
DeepChatbot è un Sistema di Question-Answering puramente neurale e generativo, non fa compromessi con quelli che sono gli approcci classici. Questa sua “pulizia” teorica non lo rende adatto a compiere azioni necessarie in una complessa realtà aziendale. Non riesce, infatti, a compiere azioni di business logic o, in generale, di profilazione delle risposte. Inoltre, modelli generativi non consentono alcun controllo sulle risposte.
Lo stato dell’arte nel mondo dei Chatbot AI-based prevede l’utilizzo di algoritmi neurali di Deep Learning per la fase di Information Extraction (da POS Tagging fino ad arrivare all’ Intent Extraction) . Una volta ottenuti gli intent, sistemi a regole o blocchi di codice assegnano dei template proattivi.
Ultimi sviluppi (Ottobre 2017) riescono, con una grande manipolazione dei dati in fase di pre e post processing, a far compiere azioni ad un sistema di Q&A neurale ma, per ora, potrebbe ben performare solo per pochi e semplici task.