Machine learning on graphs

A.A. 2025/2026
6
Crediti massimi
48
Ore totali
SSD
INF/01
Lingua
Inglese
Obiettivi formativi
Non definiti
Risultati apprendimento attesi
Non definiti
Corso singolo

Questo insegnamento non può essere seguito come corso singolo. Puoi trovare gli insegnamenti disponibili consultando il catalogo corsi singoli.

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