Machine learning on graphs
A.A. 2025/2026
Obiettivi formativi
1. Conoscenza e capacità di comprensione
Acquisire una solida comprensione teorica delle principali tecniche di machine learning applicate a dati strutturati come grafi, incluse le basi delle Graph Neural Networks, gli algoritmi di embedding e i modelli per reti eterogenee e temporali.
2. Conoscenza e capacità di comprensione applicate
Saper implementare, utilizzare e valutare algoritmi di apprendimento su grafi mediante librerie software moderne (NetworkX, DGL, PyTorch Geometric) e applicarli a problemi reali nei settori dell'informatica, biologia computazionale, economia dei dati e scienze sociali.
3. Autonomia di giudizio
Sviluppare la capacità critica di selezionare e adattare metodi di machine learning su grafi in funzione del contesto applicativo, del tipo di grafo e degli obiettivi analitici; essere in grado di valutare i risultati ottenuti e proporre miglioramenti ai modelli.
4. Abilità comunicative
Essere in grado di presentare in modo chiaro ed efficace le scelte progettuali, le metodologie adottate e i risultati ottenuti, sia in forma scritta sia orale, anche mediante la discussione di articoli scientifici.
5. Capacità di apprendimento
Sviluppare l'autonomia nello studio di metodologie avanzate e nell'aggiornamento continuo tramite letteratura scientifica, promuovendo la capacità di apprendere nuovi modelli e tecnologie emergenti nel campo dell'apprendimento automatico su grafi.
Acquisire una solida comprensione teorica delle principali tecniche di machine learning applicate a dati strutturati come grafi, incluse le basi delle Graph Neural Networks, gli algoritmi di embedding e i modelli per reti eterogenee e temporali.
2. Conoscenza e capacità di comprensione applicate
Saper implementare, utilizzare e valutare algoritmi di apprendimento su grafi mediante librerie software moderne (NetworkX, DGL, PyTorch Geometric) e applicarli a problemi reali nei settori dell'informatica, biologia computazionale, economia dei dati e scienze sociali.
3. Autonomia di giudizio
Sviluppare la capacità critica di selezionare e adattare metodi di machine learning su grafi in funzione del contesto applicativo, del tipo di grafo e degli obiettivi analitici; essere in grado di valutare i risultati ottenuti e proporre miglioramenti ai modelli.
4. Abilità comunicative
Essere in grado di presentare in modo chiaro ed efficace le scelte progettuali, le metodologie adottate e i risultati ottenuti, sia in forma scritta sia orale, anche mediante la discussione di articoli scientifici.
5. Capacità di apprendimento
Sviluppare l'autonomia nello studio di metodologie avanzate e nell'aggiornamento continuo tramite letteratura scientifica, promuovendo la capacità di apprendere nuovi modelli e tecnologie emergenti nel campo dell'apprendimento automatico su grafi.
Risultati apprendimento attesi
Al termine del corso, lo studente sarà in grado di:
Descrivere e spiegare i principali algoritmi di machine learning su grafi, incluse tecniche senza feature learning e modelli di graph representation learning.
Implementare e applicare tecniche di embedding per grafi utilizzando librerie Python specializzate.
Valutare le prestazioni degli algoritmi su dataset reali, identificando metriche appropriate e ottimizzando i modelli.
Progettare soluzioni a problemi pratici che richiedano l'analisi e la modellazione di dati a grafo, comprese reti eterogenee e temporali.
Analizzare criticamente articoli scientifici e implementare i metodi descritti, discutendone vantaggi, limiti e applicabilità.
Comunicare in modo chiaro le scelte metodologiche e i risultati ottenuti, sia in forma scritta che orale.
Descrivere e spiegare i principali algoritmi di machine learning su grafi, incluse tecniche senza feature learning e modelli di graph representation learning.
Implementare e applicare tecniche di embedding per grafi utilizzando librerie Python specializzate.
Valutare le prestazioni degli algoritmi su dataset reali, identificando metriche appropriate e ottimizzando i modelli.
Progettare soluzioni a problemi pratici che richiedano l'analisi e la modellazione di dati a grafo, comprese reti eterogenee e temporali.
Analizzare criticamente articoli scientifici e implementare i metodi descritti, discutendone vantaggi, limiti e applicabilità.
Comunicare in modo chiaro le scelte metodologiche e i risultati ottenuti, sia in forma scritta che orale.
Periodo: Terzo quadrimestre
Modalità di valutazione: Esame
Giudizio di valutazione: voto verbalizzato in trentesimi
Corso singolo
Questo insegnamento può essere seguito come corso singolo.
Programma e organizzazione didattica
Edizione unica
Responsabile
Periodo
Terzo quadrimestre
Programma
Introduzione al Machine Learning su Grafi
- Fondamenti di teoria dei grafi: definizioni di base (nodi, archi, grado, cammini, connettività, centralità), tipi di grafi (orientati, pesati, multigrafi, bipartiti, ecc.), rappresentazioni computazionali (liste di adiacenza, matrici).
- Terminologia e notazione standard usata nella letteratura e nelle implementazioni.
- Motivazioni e contesto: perché i grafi sono una struttura dati naturale per il machine learning.
- Applicazioni: esempi da biologia (reti di interazione proteica), scienze sociali (reti sociali), finanza (rilevamento frodi), industria (manutenzione predittiva), rappresentazione della conoscenza.
Machine Learning su Grafi senza Feature Learning
- Compiti principali:
-- Classificazione dei nodi basata su proprietà strutturali.
-- Predizione degli archi basata sulla topologia del grafo.
- Metodi basati sulla topologia:
-- Similarità strutturali (Common Neighbors, Jaccard, Adamic-Adar).
-- Random walk e PageRank per ranking e inferenza.
- Graph Kernel e Graph SVM:
-- Kernel tra grafi e sottostrutture (basati su cammini, sottoalberi, graphlet).
-- Uso dei kernel nei classificatori SVM.
- Tecniche di clustering su grafi:
-- Metis (partizionamento basato sulla minimizzazione dei tagli).
-- Leiden e Infomap (rilevamento di comunità).
- Casi di studio: classificazione e clustering su dataset reali (es. reti di citazioni, reti sociali).
Graph Representation Learning con Shallow Networks
- Motivazioni per l'embedding dei grafi: ridurre la complessità strutturale, mappare nodi/archi/grafi in spazi vettoriali.
- Metodi shallow (non end-to-end):
-- DeepWalk: random walk + modello Skip-gram.
-- node2vec: estensione di DeepWalk con esplorazione guidata (BFS/DFS).
-- LINE: preservazione della prossimità di primo e secondo ordine.
- Valutazione degli embedding:
-- Metriche per link prediction, classificazione dei nodi e clustering.
-- Benchmark su dataset standard.
Graph Representation Learning con Deep Feature Learning
- Introduzione alle Graph Neural Networks (GNNs)
-- Concetti fondamentali: message passing, aggregazione, aggiornamento.
-- Differenze tra GNN e MLP/CNN tradizionali.
- Architetture principali:
-- Graph Convolutional Networks (GCNs): convoluzione spaziale su grafi.
-- Graph Attention Networks (GATs): meccanismi di attenzione per aggregazione pesata.
-- GraphSAGE: campionamento dei vicini e aggregazione differenziabile.
- Aspetti avanzati del training:
-- Tecniche di mini-batching e sampling.
-- Over-smoothing e regolarizzazione.
-- Negative sampling per training efficiente.
- Implementazione e valutazione:
-- Framework (PyTorch Geometric, DGL).
-- Pipeline di addestramento e validazione.
Graph Representation Learning per Reti Eterogenee e Knowledge Graphs
- Definizione di reti eterogenee: grafi con tipi multipli di nodi e archi.
- Knowledge graphs: grafi con relazioni tipate e semantica esplicita (triplette soggetto-predicato-oggetto).
- Metodi di embedding per reti eterogenee:
-- metapath2vec: random walk guidato da meta-path.
-- HERec: decomposizione di meta-path + embedding personalizzati.
-- R-GCN: estensione delle GCN per dati relazionali.
-- HAN: attenzione gerarchica su meta-path.
- Metodi di embedding per knowledge graphs:
-- Metodi traslazionali: TransE, TransH.
-- Metodi basati su fattorizzazione: DistMult, ComplEx.
- Applicazione:
-- Sistemi di raccomandazione basati su knowledge graph.
Graph Representation Learning per Reti Temporali
- Introduzione ai grafi temporali:
-- Definizioni: grafi che evolvono nel tempo (eventi, nodi/archi dinamici).
-- Classificazione: basati su snapshot (tempo discreto) vs. basati su eventi (tempo continuo).
- Metodi per grafi temporali discreti:
-- Varianti di GCN basate su snapshot.
-- Random walk temporali e adattamenti di node2vec/DeepWalk.
- Metodi per grafi dinamici in tempo continuo:
-- TGN (Temporal Graph Networks): rappresentazione di nodi/eventi con memoria.
-- TGAT (Temporal Graph Attention Networks): meccanismi di attenzione temporale.
- Casi di studio:
-- Evoluzione di reti sociali.
-- Predizione di eventi in reti di comunicazione o finanziarie.
- Fondamenti di teoria dei grafi: definizioni di base (nodi, archi, grado, cammini, connettività, centralità), tipi di grafi (orientati, pesati, multigrafi, bipartiti, ecc.), rappresentazioni computazionali (liste di adiacenza, matrici).
- Terminologia e notazione standard usata nella letteratura e nelle implementazioni.
- Motivazioni e contesto: perché i grafi sono una struttura dati naturale per il machine learning.
- Applicazioni: esempi da biologia (reti di interazione proteica), scienze sociali (reti sociali), finanza (rilevamento frodi), industria (manutenzione predittiva), rappresentazione della conoscenza.
Machine Learning su Grafi senza Feature Learning
- Compiti principali:
-- Classificazione dei nodi basata su proprietà strutturali.
-- Predizione degli archi basata sulla topologia del grafo.
- Metodi basati sulla topologia:
-- Similarità strutturali (Common Neighbors, Jaccard, Adamic-Adar).
-- Random walk e PageRank per ranking e inferenza.
- Graph Kernel e Graph SVM:
-- Kernel tra grafi e sottostrutture (basati su cammini, sottoalberi, graphlet).
-- Uso dei kernel nei classificatori SVM.
- Tecniche di clustering su grafi:
-- Metis (partizionamento basato sulla minimizzazione dei tagli).
-- Leiden e Infomap (rilevamento di comunità).
- Casi di studio: classificazione e clustering su dataset reali (es. reti di citazioni, reti sociali).
Graph Representation Learning con Shallow Networks
- Motivazioni per l'embedding dei grafi: ridurre la complessità strutturale, mappare nodi/archi/grafi in spazi vettoriali.
- Metodi shallow (non end-to-end):
-- DeepWalk: random walk + modello Skip-gram.
-- node2vec: estensione di DeepWalk con esplorazione guidata (BFS/DFS).
-- LINE: preservazione della prossimità di primo e secondo ordine.
- Valutazione degli embedding:
-- Metriche per link prediction, classificazione dei nodi e clustering.
-- Benchmark su dataset standard.
Graph Representation Learning con Deep Feature Learning
- Introduzione alle Graph Neural Networks (GNNs)
-- Concetti fondamentali: message passing, aggregazione, aggiornamento.
-- Differenze tra GNN e MLP/CNN tradizionali.
- Architetture principali:
-- Graph Convolutional Networks (GCNs): convoluzione spaziale su grafi.
-- Graph Attention Networks (GATs): meccanismi di attenzione per aggregazione pesata.
-- GraphSAGE: campionamento dei vicini e aggregazione differenziabile.
- Aspetti avanzati del training:
-- Tecniche di mini-batching e sampling.
-- Over-smoothing e regolarizzazione.
-- Negative sampling per training efficiente.
- Implementazione e valutazione:
-- Framework (PyTorch Geometric, DGL).
-- Pipeline di addestramento e validazione.
Graph Representation Learning per Reti Eterogenee e Knowledge Graphs
- Definizione di reti eterogenee: grafi con tipi multipli di nodi e archi.
- Knowledge graphs: grafi con relazioni tipate e semantica esplicita (triplette soggetto-predicato-oggetto).
- Metodi di embedding per reti eterogenee:
-- metapath2vec: random walk guidato da meta-path.
-- HERec: decomposizione di meta-path + embedding personalizzati.
-- R-GCN: estensione delle GCN per dati relazionali.
-- HAN: attenzione gerarchica su meta-path.
- Metodi di embedding per knowledge graphs:
-- Metodi traslazionali: TransE, TransH.
-- Metodi basati su fattorizzazione: DistMult, ComplEx.
- Applicazione:
-- Sistemi di raccomandazione basati su knowledge graph.
Graph Representation Learning per Reti Temporali
- Introduzione ai grafi temporali:
-- Definizioni: grafi che evolvono nel tempo (eventi, nodi/archi dinamici).
-- Classificazione: basati su snapshot (tempo discreto) vs. basati su eventi (tempo continuo).
- Metodi per grafi temporali discreti:
-- Varianti di GCN basate su snapshot.
-- Random walk temporali e adattamenti di node2vec/DeepWalk.
- Metodi per grafi dinamici in tempo continuo:
-- TGN (Temporal Graph Networks): rappresentazione di nodi/eventi con memoria.
-- TGAT (Temporal Graph Attention Networks): meccanismi di attenzione temporale.
- Casi di studio:
-- Evoluzione di reti sociali.
-- Predizione di eventi in reti di comunicazione o finanziarie.
Prerequisiti
Non sono richieste conoscenze preliminari aggiuntive rispetto a quelle necessarie alla laurea magistrale, tuttavia sono suggerite conoscenze di base acquisibili
mediante gli insegnamenti del percorso "ARTIFICIAL INTELLIGENCE, DATA ANALYTICS AND BIG DATA".
mediante gli insegnamenti del percorso "ARTIFICIAL INTELLIGENCE, DATA ANALYTICS AND BIG DATA".
Metodi didattici
Il docente utilizzerà: a) lezioni frontali; b) codice Python per i metodi presentati; c) discussione di paper scientifici e relativi repository di codice inerenti gli
argomenti caratterizzanti l'insegnamento.
argomenti caratterizzanti l'insegnamento.
Materiale di riferimento
I materiali didattici verranno resi disponibili sulla piattaforma Deepnote e sul sito web MyAriel dell'insegnamento.
Modalità di verifica dell’apprendimento e criteri di valutazione
L'esame consiste in una discussione orale sul progetto: uno studente seleziona uno dei paper scientifici assegnati dal docente implementando e analizzando il
metodo proposto nella pubblicazione assegnata. Il codice verrà testato su alcuni benchmark condivisi dalla comunità scientifica.
La valutazione complessiva è espressa in trentesimi. Il voto finale è assegnato in base ai seguenti criteri: conoscenza degli argomenti, abilità nell'applicare le
conoscenze acquisite in pratica, l'abilità di risolvere problemi in modo autonomo, e chiarezza nell'esprimere i concetti.
metodo proposto nella pubblicazione assegnata. Il codice verrà testato su alcuni benchmark condivisi dalla comunità scientifica.
La valutazione complessiva è espressa in trentesimi. Il voto finale è assegnato in base ai seguenti criteri: conoscenza degli argomenti, abilità nell'applicare le
conoscenze acquisite in pratica, l'abilità di risolvere problemi in modo autonomo, e chiarezza nell'esprimere i concetti.
Docente/i