Machine learning on graphs

A.A. 2025/2026
6
Crediti massimi
48
Ore totali
SSD
INF/01
Lingua
Inglese
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.
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.
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.
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".
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.
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.
INF/01 - INFORMATICA - CFU: 6
Lezioni: 48 ore
Docente: Zignani Matteo
Docente/i