Area di ricerca in Informatica

La ricerca in Informatica condotta dal Dipartimento di Ingegneria dell’Impresa (DII) fa capo ai gruppi di professori, ricercatori e ai Laboratori che sostengono la Laurea Triennale e Magistrale in Informatica, il Dottorato di Ricerca in Data Science e che contribuiscono a numerosi progetti di ricerca applicativi, a supporto della Terza Missione del DII e al suo trasferimento Tecnologico. Tali attività sono di seguito descritte in base alle diverse tematiche e specializzazioni:

  • Artificial Intelligence & Big Data
  • Distributed Computing & Complex Networks
  • Ingegneria dei Sistemi Software
  • Systems & Data Security

ARTIFICIAL INTELLIGENCE & BIG DATA

Machine Learning e Agenti Intelligenti. I metodi di apprendimento automatico partono dal presupposto che i dati in ingresso, sotto forma di osservazioni su un fenomeno complesso, sono utili spunti per modellare diverse decisioni e inferenze sul fenomeno osservato. Queste tecniche consentono ai servizi intelligenti di IA, chiamati anche agenti, di imparare a risolvere i problemi con l’aiuto di dati di addestramento, sotto forma di esempi di soluzioni note a singole istanze del problema. Nell’elaborazione del linguaggio naturale (NLP), ad esempio, le annotazioni linguistiche nei dati testuali forniscono proprietà osservabili ad una learning machine che permettono di generalizzarle in modelli delle tipiche decisioni da prendere su un testo: la classificazione del contenuto testuale in categorie editoriali, il riconoscimento del sentiment del testo in ingresso o il ranking automatico delle pagine nell’output dei motori di ricerca.

Il Machine Learning permette quindi di generalizzare i dati di input in modelli predittivi che sono componenti software di un’applicazione più ampia: questi modelli quindi, indotti dagli esempi di addestramento, non sono oggetto di una codifica software diretta attraverso le pratiche di ingegneria del software procedurale ma costituiscono funzioni di decisioni accurate, emergenti dai dati. In (Mitchell, 1997), viene fornita una definizione ancora attuale della nozione di apprendimento automatico nel modo seguente:

Si dice che un programma informatico apprende dall’esperienza E rispetto a una classe di compiti T ed a una misura di performance P, se le sue prestazioni nella esecuzione dei compiti T, misurate da P, migliorano con l’esperienza E.

Le evoluzioni contemporanee del Machine Learning, in particolare le tecnologie di Deep Learning, consentono di applicare modelli generalizzati (spesso chiamati Foundation Models) attraverso forme di pre-addestramento che riducono al minimo la necessità di grandi insiemi annotati di esempi di addestramento, ma raccolgono automaticamente esempi positivi da dati grezzi, come le pagine Web (ad esempio Wikipedia) o dai segnali di ingresso nelle reti IoT. I risultati di tali evoluzioni dei metodi di Machine Learning corrispondono ai cosiddetti sistemi di IA generativa che, attraverso forme di multitask-learning e instruction learning, supportano la induzione di decisioni accurate anche verso nuovi compiti, senza il requisito di esempi di addestramento (0-shot learning, come negli agenti Chat GPT-like).

Le modalità di utilizzo dei sistemi di AI generativa, la loro messa a punto in domini specifici, come la medicina o l’industria manufatturiera, o il turismo, la verifica etica del loro impiego in rete ed infine la capacità di spiegare i modelli emergenti dai dati sono temi aperti su cui si concentra la ricerca di diversi gruppi del Dipartimento.

Raccolta, Elaborazione e Generazione Automatica Intelligente di Dati Multimediali.

Le crescenti collezioni di dati prodotte in rete propongono oggi numerose sfide alla efficienza ed accuratezza con cui tali dati possono essere tradotti in informazioni utili e conoscenze strategiche per le organizzazioni. Le tecnologie di Intelligenza Artificiale, ampiamente studiate nella ricerca in Informatica del DII, oggi consentono la valorizzazione dei dati sia per ciò che concerne la loro raccolta che per ciò che riguarda i metodi di Apprendimento Automatico che ne consentono l’impiego, a supporto delle decisioni e delle applicazioni complesse: la medicina personalizzata, la diagnostica per immagini, la ricerca di informazione in rete, l’analisi delle reti sociali o la cyber-sicurezza. I gruppi di ricerca hanno studiato negli anni e proposto numerose tecnologie per la elaborazione dei dati multimediali, costituiti dal testo, cioè da unità informative linguistiche, alle immagini o video, che rappresentano, in forma codificata ed implicita, gli elementi del mondo da cui essi derivano, quali le radiografie mediche, le telecamere degli ambienti oggetto di monitoraggio o i sensori robotici. Tali sistemi di trattamento dei dati multimediali integrano dunque modelli di elaborazione del linguaggio naturale (o Natural Language Processing, NLP) con sistemi di Deep Learning dedicati al testo o agli aspetti visivi. I sistemi di AI generativa risultanti sono oggetto di studio perché consentono la creazione di metadati da testi ed immagini, utili a migliorare la qualità di modelli predittivi degli agenti, le funzioni decisionali ed i processi creativi (quali quelli della generazione automatica di immagini o video dell’AI generativa.

 

Ingegneria della Conoscenza, Semantic Web e Linked Data

L’ingegneria della conoscenza (KE) si occupa di tradurre l’esperienza umana su un certo campo o dominio in artefatti noti come le basi di conoscenza. L’accezione del termine è ampia e comprende tutti gli aspetti – scientifici, tecnici e sociali – legati al processo complesso di scoperta di nuova conoscenza e soprattutto al supporto alle decisioni richiesto dagli agenti dell’IA.

Nell’era del Web, è emersa la necessità di raccogliere, rappresentare ed esporre i dati in modo che le informazioni possano essere consumate non solo dagli esseri umani, ma anche dalle macchine in modi convenienti, promuovendo un sistema globale di agenti in grado di recuperare, scambiare e comprendere i dati e di cooperare per risolvere compiti complessi. Questa estensione del Web è denominata Web Semantico. I dati pubblicati in rete, rappresentati secondo standard ben definiti e interconnessi ad altri nel Web, sono chiamati Linked Data. Da diversi anni, i ricercatori del DII studiano le innovazioni tecnologiche sugli standard del Web Semantico, i processi della modellazione accurata di tali conoscenze, il supporto alla interoperabilità di conoscenze sviluppate in sottoreti diverse e, infine, l’uso di tali tecnologie in servizi intelligenti di AI avanzata.

 

Web Mining & Information Retrieval. I moderni sistemi di Information Technology devono accedere all’enorme quantità di informazioni immagazzinate e costantemente prodotte nel Web. La maggior parte della conoscenza umana è rappresentata ed espressa utilizzando il linguaggio naturale nei dati liberi della rete ma anche nelle fonti semi-strutturate. La corretta applicazione delle tecniche di elaborazione del linguaggio naturale (NLP) è stata ampiamente studiata come strumento fondamentale per lo sfruttamento di tali dati nelle applicazioni quali la ricerca di informazioni in rete, la risposta automatica a domande negli agenti autonomi, il dialogo uomo-robot e l’apprendimento senza esempi nell’AI generativa, in cui un nuovo task può essere oggetto di istruzione on-the-fly tramite descrizioni linguistiche. Lo ricerca su queste metodologie innovative dell’AI e sul loro utilizzo negli scenari applicativi dei sistemi odierni di Information e Communication Technology è attiva da diversi anni presso il DII.

DISTRIBUTED COMPUTING & COMPLEX NETWORKS

Distributed Algorithmic Processes in Complex Networks

Guardandoli attraverso una lente algoritmica, sono oggetto della nostra ricerca fenomeni intelligenti e auto-organizzanti su reti complesse e sistemi multi-agente. In genere questi fenomeni emergono come risultato dell’interazione di semplici algoritmi locali eseguiti su una rete formata da agenti computazionalmente limitati e spesso producono forme sorprendenti di Swarm Intelligence, come la capacità di risolvere un compito globale computazionalmente difficile (clustering, consenso, sincronizzazione).

In questo contesto, da una parte abbiamo sviluppato modelli che descrivono reti complesse e sistemi multi-agente e ne abbiamo studiamo la evoluzione nel tempo, dall’altra progettiamo e analizziamo algoritmi distribuiti (o protocolli) per risolvere compiti di rete fondamentali.

Questo tipo di indagine è motivata da un’ampia gamma di applicazioni e fenomeni di interesse che spesso possono essere descritti attraverso uno stesso modello distribuito. Per esempio, l’adozione di un’idea o di un pettegolezzo attraverso una rete sociale, la decisione di acquistare un nuovo prodotto in un mercato, il rischio di ricevere un virus informatico attraverso il World Wide Web o la diffusione di una malattia in una popolazione sono tutti fenomeni che possono essere modellati come protocolli di diffusione delle informazioni in reti complesse. Altri esempi popolari sono i processi di calcolo nelle reti di computer, i compiti di sincronizzazione e ricerca nei sistemi biologici, la formazione delle opinioni, la polarizzazione e il consenso nelle reti sociali: tutte attività fondamentali che hanno dimostrato di seguire protocolli di diffusione dell’informazione di base come i modelli epidemici, il flooding probabilistico, i meccanismi push-pull, gli algoritmi di propagazione delle etichette e le regole di maggioranza. In particolare, la corretta modellazione e analisi dei processi epidemici è un’area di ricerca di lunga data. Negli ultimi anni si è assistito a una rinascita dell’interesse per questi argomenti, poiché il concetto di reti complesse sta diventando sempre più prevalente nella modellazione di molti aspetti del mondo attuale.

 

Algorithms and Data Structures for Network Problems

La ricerca del DII si è concentrata sul progetto e sulla analisi di algoritmi e strutture dati per problemi su reti, con particolare attenzione ai problemi che emergono dalle reti complesse e dagli scenari di tolleranza ai guasti. Alcuni dei temi di ricerca su cui il DII si è concentrato sono:

  • Spanners & oracles. Uno spanner è una sottorete sparsa di una rete che conserva alcune proprietà di interesse, come la raggiungibilità o le distanze tra i vertici, mentre un oracolo è una struttura di dati compatta che risponde rapidamente a interrogazioni su tali proprietà. Un esempio è il problema di trovare una sottorete di piccole dimensioni (cioè con pochi archi) che preservi la distanza tra qualsiasi coppia di vertici entro un fattore di stretch moltiplicativo. Un obiettivo tipico è quello di capire quali trade-off tra stretch e numero di archi della sottorete si possono ottenere. Gli spanner e gli oracoli hanno ricevuto un’enorme attenzione da parte della comunità di ricerca, grazie alla loro applicabilità nei problemi di base delle reti di comunicazione, nei sistemi distribuiti, nella robotica e altro ancora. Abbiamo lavorato molto su spanner/oracoli fault-tolerant, ovvero spanner/oracoli che preservano certe proprietà anche quando alcune componenti della rete possono fallire.

  • Un altro tema di ricerca emergente oggetto di indagine presso il DII è lo studio degli aspetti algoritmici legati ai grafi temporali. I grafi temporali sono grafi in cui nodi e archi sono presenti/disponibili solo in alcuni istanti di tempo specifici. I grafi temporali permettono di modellare reti che evolvono nel tempo come le reti di trasporto, reti di interazioni di componenti biologiche, reti di computer in cui non tutte le risorse sono sempre disponibili. Alcune tematiche su cui la comunità algoritmica si è concentrata includono: algoritmi efficienti per il calcolo di buoni cammini temporali, sparsificazione di grafi temporali, progettazione di strutture dati in grado di riportare efficientemente informazioni di interesse (distanze temporali, proprietà di connettività temporali) di reti che evolvono nel tempo.

 

Algorithms and Data Structures for Big Data.

In certe applicazioni moderne, la quantità di dati da processare è spesso così grande che l’input del problema che si vuole risolvere non può essere memorizzato esplicitamente nella memoria del computer e/o può essere acceduto solo in certe modalità limitate (per esempio in streaming, ovvero come flusso enorme di dati che l’algoritmo deve processare, elemento dopo elemento, senza poter memorizzare l’intera sequenza di input). In questo contesto, il modo standard di progettare e analizzare gli algoritmi è in qualche modo insufficiente e gli unici algoritmi funzionali sono quelli con complessità lineare o quasi lineare.

Problematiche che ricadono in questo scenario sono il calcolo di statistiche su quantità enormi di dati, individuazione degli elementi più frequenti in uno stream di dati (per esempio le query utente più popolari in un motore di ricerca in una data finestra temporale), individuazione di documenti/immagini/utenti simili, calcolo del diametro di reti con milioni di nodi e decine di milioni di archi.

La comunità scientifica ha sviluppato tecniche e strumenti sofisticati per progettare e analizzare algoritmi e strutture dati in questo contesto. Per citarne alcuni: rappresentazione probabilistica di dimensione sublineare che preserva proprietà di interesse (data sketch), tecniche di hashing per individuare elementi simili (Locality Sensitive Hashing), filtri probabilistici e altro.   

In questo contesto sono state progettate presso il DII soluzioni algoritmiche che, da un lato, garantiscono approssimazioni teoriche dimostrabili e, dall’altro, esibiscono in pratica performance che ben si confrontano con lo stato dell’arte su data set sintetici e reali di grandi dimensioni.

INGEGNERIA dei SISTEMI SOFTWARE

L’area della sicurezza dei sistemi e dei dati è cruciale perché organizzazioni, istituzioni e persone possano affrontare le sfide della trasformazione digitale in corso. I sistemi di cybersicurezza e la diffusione delle tecniche della blockchain in applicazioni diverse in rete, come le criptovalute, sono diventate uno strumento fondamentale per la sicurezza informatica delle organizzazioni e degli individui.

L’uso di algoritmi crittografici è divenuto una prassi ampiamente applicata alla gestione sicura di sistemi distribuiti, in grado di supportare tecnologie di protezione delle informazioni digitali critiche, e determinare i comportamenti di protocolli avanzati, quali SSL e HTTPS. Questo si traduce in sistemi avanzati per la gestione sicura delle identità digitali.  La automazione dei processi di monitoraggio e di riconoscimento di attacchi informatici infine combina in modo sempre più sofisticato i principi di sicurezza con algoritmi di Intelligenza Artificiale.

I principali temi di Ricerca condotti dal DII si sviluppano lungo le seguenti direzioni:

  • Bitcoin, ethereum, hyperledger fabric, indy. Permesso vs assenza di permesso vs privato vs pubblico. Consenso, contratti intelligenti, token non fungibili. Problemi di velocità e dimensione dei dati.
  • Sicurezza delle informazioni. Piani di sicurezza informatica, cybersecurity, attacchi e difese.
  • Sistemi cooperativi distribuiti. Problema delle transazioni elementari. Modelli concettuali e logici per transazioni elementari e complesse. Accordo di cooperazione, autorità di convalida, osservazione e tracciamento delle transazioni, regole di convalida e regole di accesso.
  • Generazione di numeri casuali, algoritmi crittografici simmetrici e asimmetrici, numeri di Blum e cifratura, aritmetica modulare, scambio sicuro di chiavi, protocolli SSL e HTTPS.
  • Gestione dell’identità. Il modello AAAA e le sue evoluzioni, autenticazione vs autorizzazione, gestione degli accessi a più livelli/multiorganizzazione, architetture e problematiche dei token di identità, gestione e costruzione della catena di identità.
  • AI per la sicurezza. Sistemi di Machine Learning ed AI per la gestione delle proprietà di sicurezza di ambienti digitali complessi (organizzazioni, dati e persone). Monitoraggio attivo e Riconoscimento automatico tempestivo di attacchi informatici. Apprendimento di Modelli accurati del comportamento operativo di sistemi digitali complessi o di reti di sensori. AI per la Edge-Security.
  • Sicurezza dei sistemi di AI. Il pervasivo utilizzo dei servizi di Intelligenza Artificiale apre anche il fianco a nuove minacce alla sicurezza dei sistemi, con la ulteriore complessità introdotta dalla autonomia dei sistemi di AI. La conseguenza è che la automazione del monitoraggio attivo dei sistemi di AI è necessario per rendere il loro uso non rischioso e la loro conoscenza dei dati non vulnerabile alla diffusione di informazioni riservate (legate ad esempio alla vita delle persone) e/o critiche (ad esempio, proprie di sistemi di controllo ad alto rischio). La applicazione di tecniche di offuscamento dei modelli di AI, o crittografia asimmetrica, così le metodologie di apprendimento federato in modelli distribuiti di AI sono oggetto di studio dei ricercatori del DII.
  • Sistemi e strumenti per il GDPR
    • Analisi e progettazione di soluzioni architetturali di supporto alla privacy by design, che richiedano un intervento minimo da parte dello sviluppatore.
    • Analisi e progettazione di soluzioni infrastrutturali per la privacy by default, che richiedano un intervento minimo da parte dell’utente e minimizzino gli interventi di adeguamento dei sistemi di servizio da parte degli sviluppatori e dei progettisti.
    • Tecniche di Transaction mining per la estrazione delle transazioni che preservano l’anonimato dell’utente pur consentendo l’analisi dei dati.
    • Progettazione di minimization layers, cioè infrastrutture e architetture di sistema che riducano al minimo la raccolta dati, concentrandosi sui soli dati essenziali per la funzionalità.
    • Infrastrutture incentrate sulla privacy: progettazione di sistemi che supportano nativamente la privacy nell’esperienza utente e nell’elaborazione dei dati.