Via Ferrata 5, 27100 Pavia - ITALY
web-vision@unipv.it
+39 0382 98 5372/5486

Studio di modelli probabilistici causali in relazione ai metodi di Deep Reinforcement Learning applicati alla gestione del dialogo online

L’attività di ricerca del laboratorio si è svolta nell’ambito di un più ampio progetto che prevede l’impiego di tecniche di Deep Reinforcement Learning (DRL) nell’effettuare la profilazione psicologica di un individuo al fine di adattare e migliorare le modalità di interazione, in collaborazione con il Dipartimento di Psicologia dell’Università Cattolica di Milano.
Nella fattispecie, tale profilazione psicologica consiste nell’inquadrare e calcolare l’effetto di modalità (o framing) dei messaggi nei soggetti riceventi, in particolare l’influenza della percezione di sé e i fattori esterni socio-demografici (come la famiglia o la propria età). Lo scopo dello studio del framing è capire come formulare una serie di messaggi in modo che questi siano più persuasivi, a seconda del soggetto che li riceve. Infatti, è ormai comune nella letteratura scientifica lo studio dell’influenza che le stesse informazioni possono avere sul processo decisionale, a seconda che queste siano inquadrate in termini di guadagni o di perdite.
Un punto debole dell’adattamento del framing ai singoli soggetti è la grande quantità di domande necessarie per effettuare la profilazione psicologica, cosa di difficile applicazione in contesti pratici (p.es.: banche, assicurazioni). All’esigenza derivante, di sviluppare un questionario veloce ma comunque efficace (fast profiling), si applica il DRL: è questo il campo di azione del progetto.

Obiettivi
Punto di partenza un’implementazione già esistente di DRL, che segue la logica dell’algoritmo denominato AlphaZero: utilizzo di un metodo Monte Carlo Tree Search (MCTS) affiancato da una rete neurale che elabora e memorizza i risultati dei processi di ricerca stocastica. Interfaccia verso gli utenti: un bot dispiegato in cloud collocato su una chat del servizio di messaggistica Telegram. Bot realizzato in collaborazione con un’azienda terza parte, utilizzando strumenti proprietari di Microsoft.
Tre macro-obiettivi:
  1. avere un’interfaccia di interazione indipendente, che possa essere facilmente modificata, aggiornata e dispiegata su pagine web online;
  2. sviluppare una modalità di somministrazione del questionario che permetta di favorire anche l’apprendimento della rete, vale a dire la cosiddetta exploration delle possibilità e non solo l’exploitation di quanto imparato dagli esperimenti controllati (= avere una Smart Mode);
  3. avere la possibilità di dispiegare in cloud l’interfaccia di interazione, in modo che possa essere raggiunta da numerosi utenti.
Attività svolte e risultati ottenuti
Per quanto concerne lo sviluppo di un’interfaccia di interazione per l’utente, si è optato per un chatbot analogo a quello allocato su Telegram ma realizzato in locale e con tool open source, per ottenere una chatroom dotata di una finestra web che può essere trattata come un oggetto indipendente e dispiegabile su qualsiasi pagina web, dell’università o di terze parti. In questa chatroom, le domande del questionario vengono presentate all’utente come messaggi provvisti di risposte chiuse (sotto forma di bottoni), tra le quali il soggetto deve scegliere.
L’attività è stata quella di full-stack development: progettazione, sviluppo e test dell’applicazione web del chatbot, sia lato front-end che back-end. Dal lato front-end, la resa della chatroom è stata ottenuta con un’implementazione in Vue e Javascript, opportunamente integrata con tecnologie adatte alla comunicazione anche con un software server scritto in linguaggio Python (i.e.: Axios). Sul lato back-end, invece, è ospitata la componente di Intelligenza Artificiale (IA) che elabora in real time le risposte dell’utente. Per poter collezionare correttamente i dati raccolti dalla chat e fornirli alla IA, è stato sviluppato un software server che si avvale della tecnologia Flask (oltre a molteplici script che si occupano di un corretto trattamento del dato, prima che questo sia passato alla IA). Inoltre, nell’ottica di futuri usi pratici di tale chatbot (i.e.: allocarlo su una pagina web), sono stati aggiornati front-end e back-end in modo tale da rendere possibile gestire l’interazione con più utenti nello stesso momento: è stata dunque implementata una logica a sessioni, in cui ciascun utente ha la propria.
Il secondo macro-obiettivo è consistito nello sviluppo di una cosiddetta Smart Mode: poste determinate risposte date da un utente, la scelta delle dimensioni psicologiche da esplorare e del tipo di messaggio da formulare non è più effettuata in modo deterministico (in contrapposizione alla “Simple Mode”, già esistente, in cui le decisioni venivano prese in base al suggerimento più probabile secondo la rete neurale). Per quanto concerne la scelta delle dimensioni psicologiche da esplorare (e quindi il set di domande da somministrare), questa viene effettuata stocasticamente: si utilizza la rete neurale in inferenza, la quale ritorna la probabilità di ciascuna dimensione di essere esplorata. Anche il tipo di messaggio persuasivo da inviare è scelto stocasticamente; questa volta, invece, la probabilità di mandare un certo messaggio è ottenuta dalla rete bayesiana. Posto un certo stato della rete (determinato dalle risposte dell’utente alle domande), si calcola l’utilità associata a ciascun tipo di messaggio. Tale utilità viene poi opportunamente normalizzata, avvalendosi anche di un iperparametro che regola la pseudo-casualità della scelta. Infine, viene somministrato un ulteriore set di domande, per valutare l’effetto che i messaggi mandati hanno avuto sull’utente. In questo caso, la scelta del set di domande è guidata da una global sensitivity analysis, effettuata calcolando l’indice di Sobol (metrica nota in letteratura per realizzare tale tipo di analisi). Questo indice viene poi normalizzato seguendo la stessa logica adottata nel caso precedente, relativo all'utilità dei messaggi.

I primi due obiettivi sono stati perseguti con successo, con risultati di buona qualità, sia dal punto di vista implementativo che metodologico. È disponibile un chatbot che comunica correttamente con la IA posta sul lato back-end; inoltre, i dati forniti da ciascuna interazione con un utente vengono opportunamente elaborati e catalogati, congiuntamente ad un time-stamp che permette di effettuare eventuali operazioni di filtering con facilità. Tale chatbot offre anche la scelta tra Simple Mode e Smart Mode, la quale è stata dovutamente testata e rifinita. Inoltre, è stata correttamente implementata e testata anche la logica a sessioni, per la gestione delle interazioni: il chatbot è in grado di comunicare con diversi utenti contemporaneamente, senza il rischio di sovrapposizioni durante lo svolgimento dei questionari. Infine, a seguito di diversi refactoring, il codice è stato notevolmente ottimizzato sia dal punto di vista della code quality (codice snello e leggibile) che dei tempi di risposta (sono stati ridotti al minimo possibile gli accessi al disco).

Il chatbot non è stato allocato su una risorsa online, ma potrebbe portare a sviluppi futuri interessanti. Una volta online, rappresenterebbe una fonte di dati non trascurabili, i quali potrebbero essere sfruttati per applicare migliorie all'IA, che pùo apprendere mentre interagisce. In tale contesto, risulta evidente che la natura di questi dati è molto diversa rispetto a quella dei dati da cui l’IA ha avuto origine: questionari effettuati in un ambiente controllato (dati bilanciati e assenza di missing values). Pertanto, prima di poter sfruttare l’aprendimento online dell’IA sarebbe opportuno allenarla in modo che questa riesca ad interfacciarsi con “dati perturbati”. A tale proposito, è possibile perseguire il task creando delle perturbazioni artificiali, seguendo alcuni esempi che troviamo in letteratura, ed effettuando nuovamente il training della rete. Ne conseguirebbe, come scopo finale, di rendere la rete capace di apprendere diverse strutture probabiblistice, e tale apprendimento sarebbe giustificato dal modello casuale, su cui già poggia le basi il progetto di ricerca.
PROJECT INFO
Duration: December 2021 - May 2022
Funded by: PWC-PricewaterhouseCoopers Advisory S.p.A.
Project type: Research Contract
Get In Touch

Laboratorio di Visione Artificiale e Multimedia
Dipartimento di Ingegneria Industriale e dell'Informazione
Università di Pavia
Via Ferrata 5, 27100 Pavia - ITALY

+39 0382 98 5372/5486

web-vision@unipv.it