Intelligenza artificiale applicata ai prodotti BEEVOIP:

assistente virtuale centralino telefonico, traduttore da voce a testo

Incontro video tra Sabatino Vacchiano e Davide Cavezza
video inegrale

Video evento 20-21 gennaio 2023


In questo video Sabatino Vacchiano e Davide Cavezza parlano di Machine Learning, intelligenza artificiale nelle auto, TTS, NLP e ASR. Nell'occasione descrivono come l'intelligenza artificiale viene utilizzata per il prodotto "Arianna" (assistente virtuale del centralino telefonico).
Le stesse tecno

Testo preso dalla traccia audio del video tramite il nostro servizio TRANSCRIBER.

S) Allora davide. So che sei laureato in ingegneria informatica vero
D) si
S) è fatto due anni di dottorato di ricerca
D) cinque quasi
S) cinque anni sapevo due scusami all'imperial college di Londra giusto.
S) Hai pubblicato anche dei piper
D) si quattro lì e due in una attività di ricerca alla federico secondo prima di andare a riempire.
S) Visto che oggi parliamo di questa cosiddetta intelligenza artificiale c'entra qualcosa il dottorato di ricerca che hai fatto
D) diciamo che in realtà il dottorato di ricerca è stato più su metodi formali per l'ingegneria del software e per la specifica dei requisiti software. I machine learning e l'intelligenza artificiale vengono in realtà nell'attività che ho fatto in precedenza alla federico secondo dove ho pubblicato due paper sul'applicazione, un paper in realtà, sull'applicazione delle tecniche di machine learning per la de fact prediction cioe la predizione della presenza di bug nel codice utilizzando diverse features che ai tempi si utilizzavano e modelli come decision tree o bayesian network per effettuare la predizione.

S) Va bene allora cerchiamo di far capire un po' a casa questi termini un po' complessi tu hai nominato il machine learning suppongo vi sia una branca dell'intelligenza artificiale giusto?
D) si, l'intelligenza artificiale è quell'insieme di algoritmi generici utilizzati per far compiere alle macchine task che sono tipicamente umani come prendere decisioni in base a determinati dati oppure imparare a risolvere i problemi senza l'ausilio delle istruzioni fornite dall'uomo. Come avviene nella programmazione classica e machine learning riguarda proprio questo essenzialmente è un modello diverso di programmazione rispetto a quello a cui siamo abituati. Di solito, che vuol dire programmare vuol dire dare istruzioni a un computer su come risolvere un determinato problema, prendiamo un esempio dall'architettura in generale devo fare un software per architetti devo realizzare, devo programmare una funzionalità dell'area di una superficie come faccio scompongono questa superficie magari in superficie più semplici quali i rettangoli per dire calcolo l'area di ciascun rettangolo come base per altezza e poi sommo alla fine le aree di tutti questi singoli rettangoli. Programmare vuol dire dare queste istruzioni una per una a computer e il computer ne segue e mi calcola l'area. Nei modelli di machine learning l'approccio è completamente diverso tu fornisci esempi di comportamento desiderato ad un algoritmo generico di machine learning che permette alla macchina di adattarsi ai dati che tu gli fornisce e la macchina capisce da sola a partire da una serie di esempi per esempio di superfici e di aree ad esse associate come calcolare l'area di una superficie generica. Questo chiaramente un modello che non si applica bene al calcolo di aree di superficie si applica bene a problemi che sono difficili da codificare come sequenza di istruzioni ad esempio il riconoscimento di oggetti in un'immagine partendo da un'immagine definire che cosa è contenuto nell'immagine se c'è una persona se c'è un albero se c'è un cane è difficile definire un algoritmo che ti permette di determinare se e quali oggetti sono presenti nell'immagin invece l'approccio del machine learning ti permette di fornire tanti esempi alla macchina di immagini contenenti cani immagini contenenti persone immagini contenenti alberi e la macchina automaticamente impara a distinguere questi tipi di oggetti nelle immagini.

S) Ok abbastanza chiaro spero anche a casa, sento spesso parlare di reti neurali cosa c'entra, è una branca dell'intelligenza artificiale?
D) sì, le reti neurali sono uno dei tanti modelli che si possono applicare nel machine learning, in particolare il machine learning che utilizza le reti neurali è comunemente definito come learning profondo. Perché learning profondo, per la struttura particolare che hanno le reti neurali in genere. Le reti neurali per introdurle in maniera molto generale sono modelli ispirati al comportamento del cervello umano sono composte da una serie di unità dette neuroni che sono organizzate a strati nel modello più generale. Uno strato di neuroni e connesso a uno strato successivo di neuroni e questi strati sono organizzati in maniera tale che gli strati più superficiali ricevano gli input e l'input fluisce in un determinato modo verso gli strati più profondi e un'output viene prodotto che dovrebbe essere l'output della rete desiderato ad esempio nel caso delle immagini gli oggetti contenuti nell'immagine stessa. Perché deep learning, perchè di solito queste architetture sono profonde, hanno molti strati e gli strati terminali sono parecchio profondi essenzialmente.
S) Quindi dipende dalla complessità, dal risultato che vogliamo ottenere mi stai dicendo, se voglio discriminare per esempio una fotografia di un cane e un gatto avrà un certo modello di reti neurali, se voglio discriminare più oggetti avrò un diverso modello più profondo immagino.
D) Si. tante più sono le classi tante più sono le categorie di oggetti che vogliamo discriminare tanto più complessa dovrà essere la rete quindi tanti più neuroni e più strati saranno necessari per risolvere il problema.

S) Quindi mi stai dicendo che più o menofunziona un po' come il nostro cervello dove abbiamo tutti questi neuroni collegati tra di loro e quindi c'è un percorso piuttosto che un altro e questo dipende dall'intensità del collegamento che c'è tra il ruolo giusto, questo mi sembra di capire perché da come lo stai spiegando e come se fossero tanti neuroni tutti collegati uno al altro
D) Sì esattamente, il modello di funzionamento delle reti neurali e completamente ispirato al funzionamento del cervello umano, chiaramente il cervello umano è molto più complesso e non è possibile schematizzare interamente gli effetti che ha sulla sulle nostre decisioni in questo modo, però c'è da dire che l'ispirazione è quella. Nel cervello umano che cosa avviene, il cervello umano è composto da una serie di neuroni tutti interconnessi tra loro con connessioni di diversa intensità, degli impulsi elettrici si rigenerano in alcuni neuroni e si propagano in altri in base alla forza delle connessioni tra questi neuroni. Ciò determina essenzialmente il nostro pensiero le nostre azioni. Nella rete neurale artificiale avviene la stessa cosa, un input per esempio un'immagine da classificare viene fornita una serie di neuroni. L'input si propaga poi nei neuroni interni della rete a seconda della forza delle connessioni che si sono instaurate tra i neuroni.
S) Scusami se ti interrompo tu mi dici della forza, ma questa forza chi la decide?
D) La decide una fase preliminare di training, è la fase in cui delle immagini vengono fornite alla rete insieme alle etichette del contenuto dell'immagine stessa e nel fluire attraverso la rete neurale in questa fase di training le immagini provocano un cambiamento una modifica dei pesi della forza delle connessioni. In questo modo con queste modifiche la rete si adatta a produrre in output esattamente le etichette che vengono fornite alle immagini.

S) scusa se ti interrompo, quando si capisce che il modello che sto allenando è arrivato alla fine, nel senso che ho trovato quel peso giusto di interconnessione tra questi neuroni quand'è che lo capisco?
D) Esiste una o più definizioni matematiche di quella che viene definita la funzione di loss.
Ovvero una funzione che è in grado di misurare la distanza tra l'output della rete corrente come interconnessioni così come sono definite in un determinato momento e l'output desiderato in ciascuna immagine. Quando la funzione di loss sulle immagini fornite nel training set si abbassa entro un certo livello, diventa abbastanza vicina a zero, si può dire che la rete con alta probabilità commetterà pochi errori sulle immagini che sono out of sample fuori da campione proposto nella fase di training
S) Quindi diciamo custodire due dataset diversi uno per allenare il modello è uno per fare dei test?
D) Si, in generale nei modelli di machine learning in particolare nel deep learning si adopera quella che è la suddivisione del dataset che si ha a disposizione in training e test set. Il pezzo di training viene utilizzato effettivamente per modificare i pesi della rete neurale. È il pezzo che viene detto dei test invece viene utilizzato solo per testare la rete finale. E si aspetta che dopo la fase di training se la rete è organizzata correttamente, gli errori effettuati dalla rete sul data set di test siano al di sotto di una certa percentuale. Tipicamente abbiamo un accuracy del novantotto per cento delle reti sui problemi come la classificazione di oggetti quindi con errori molto piccoli spesso trascurabili.

S) Quindi quando sentiamo parlare di macchine che guidano autonomamente, che riconoscono pedoni, segnali, stiamo parlando di questo?
D) Stiamo parlando di queste tecnologie. Oramai sono diventate abbastanza sicure da poter essere anche testate su strada. Ci sono meccanismi di controllo in quei casi in cui in caso di errore l'utente umano in qualsiasi momento può sempre intervenire per evitare incidenti fatali, in generale però le reti neurali riescono a raggiungere livelli di accuratezza molto elevati in maniera tale che l'intervento umano sia quanto più raro possibile.

S) Come in beevoip avete utilizzato questa tecnologia, per fare cosa per arrivare a cosa.
D) In BeeVoip siamo specializzati in soluzioni legate al Voip e alla telefonia quindi ci siamo concentrati su task che siano relativi alla comunicazione vocale con le persone, in particolari le tre task fondamentali sono il riconoscimento vocale, Natural language processing e il text-to-speech. Nel riconoscimento vocale noi adoperiamo tecniche di machine learning per riconoscere le parole che vengono pronunciate. Il riconoscimento vocale in inglese asr automated speech trasmission consiste nel trasformare stream audio in tempo reale in parole scritte in maniera tale che tali parole possono essere interpretate come comandi dai nostri sistemi e possano scatenare delle operazioni. Per fare un esempio nel nostro sistema ad doctorin delle prenotazioni dei pazienti presso gli studi medici un paziente può chiedere una prenotazione per una determinata data, il nostro sistema come prima cosa deve riconoscere i comandi pronunciati dal cliente e utilizza un sistema di speech recognition traducendo le parole in audio e in comandi. Nel natural language processing invece abbiamo una seconda fase in cui questi comandi vengono interpretati e capiti. Vengono distinte per esempio le date e le ore per cui l'utente effettua la prenotazione oppure si distinguono comandi di prenotazione da altri tipi di comandi come ad esempio richieste informazioni e il natural language processing consiste proprio nel comprendere le parti del discorso e di scatenare una certa reazione in un determinato modo a seconda di quello che si è detto.
S) Scusa se ti interrompo giusto per capire meglio quindi mi stai dicendo che il sistema capisce l'intenzione della persona con cui si sta parlando, è così?
D) Si, su questa parte poi si concentrerà meglio il mio collega che si occupa direttamente di questa fase. Nella terza fase invece di text-to-speech si ha l'opposto di quello che si è spiegato nel asr, ovvero gli output testuali dei comandi vengono convertiti in una voce simile a quella umana per intonazione, per pronunciare le parole, per prosodia. Anche nella fase di text-to-speech si hanno modelli come reti neurali che eseguono proprio questa traduzione da parole a voce sintetica che sembra molto simile a una voce umana. Queste sono le applicazioni principali.

S) Molto interessante, so anche che state mettendo su un sistema che si chiama Arianna mi puoi descrivere in modo semplice cosa fa questo sistema.?
D) Questo sistema è un sistema basato sul machine learning. Per comprendere appunto le intenzioni dell'utente e scatenare con lui un dialogo simile a quello che avverrebbe con un interlocutore umano, in questo caso però arianna è un interlocutore virtuale che capisce le intenzioni e ti rispondere in base all'intenzione espressa.
S) Ma questo vale in generale, voi fate comunicazione quindi su centrali telefoniche quindi stiamo parlando di una soluzione applicata a centrali telefoniche giusto? ha chiamate che provengono dall'esterno da comuni cellulari da telefoni fissi
D) Si esattamente, un utente che deve parlare ad esempio con un'azienda di assistenza informatica come la nostra invece di digitare un numero per avere un certo tipo di servizio chiede ad arianna di risolvere un determinato problema, Arianna comprendendo le intenzioni dell'utente capirà da sola quale operatore può soddisfare la sua richiesta o se può può attingere a banche dati che hanno la risposta effettiva all'informazione richiesta dall'utente
S) Quindi mi stai dicendo che tra poco quegli odiosi menu vocali che ascoltiamo quando chiamiamo qualche azienda tipo digitare uno scompariranno?
D) Scompariranno e saranno sostituiti da un meccanismo che è in grado proprio di capire le intenzioni. E può anche risolvere in realtà problematiche relative ai dipendenti stessi dell'azienda che possono utilizzare sistemi come arianna per chiedere informazioni sulle fatture sullo stato dei pagamenti da parte dei clienti o funzionalità che di solito vengono demandate a una segreteria umano.
S) Quindi l'intenzione è quello di sostituire un operatore umano?
D) Diciamo di affiancare operatori umani in parte delle loro attività che sono più ripetitive Come il ritrovamento di fatture, la determinazione dello storico, delle fatture pagate da un determinato cliente.
S) Molto molto chiaro. Bene allora per me va bene così, sei stato molto esplicativo è molto chiaro grazie davide per averci accompagnato in questa tappa evolutiva che è intelligenza artificiale e ci vediamo presto grazie.


NOTA: ricordiamo che i prodotti Transcriber, Doctorin e "Arianna" (assistente virtuale del centralino telefonico) di BEEVOIP si basano su intelligenza artificiale.