Algorithms for massive datasets

A.A. 2020/2021
6
Crediti massimi
48
Ore totali
SSD
INF/01
Lingua
Inglese
Obiettivi formativi
L'insegnamento si propone di descrivere il quadro complessivo dei processi per l'elaborazione dei big data, sia per quanto riguarda le metodologie e le tecnologie applicate in tale contesto.
Risultati apprendimento attesi
Gli studenti:
- saranno in grado di utilizzare le tecnologie per la memorizzazione distribuita dei dati;
- apprenderanno il framework dell'elaborazione distribuita map-reduce e le sue principali estensioni;
- apprenderanno i principali algoritmi utilizzati per problemi classici relativi ai big data, e ad implementarli in un ambiente di elaborazione distribuito;
- saranno in grado di scegliere i metodi appropriati per risolvere problemi caratterizzati da big data.
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
Secondo semestre
Metodi didattici: le lezioni si terranno in videoconferenza e potranno essere seguite sia in modo sincrono sulla base dell'orario delle lezioni, sia in modo asincrono perché saranno registrate e lasciate a disposizione degli studenti sulla pagina Web dell'insegnamento.

Programma e materiale di riferimento: Non ci saranno variazioni.

Modalità di verifica dell'apprendimento e criteri di valutazione: a seconda delle direttive vigenti al tempo dell'appello le modalità di verifica dell'apprendimento potranno essere svolte a distanza. I criteri di valutazione non subiranno variazioni.

Programma
L'insegnamento tratterà le principali tecniche di elaborazione che permettono di trattare dati su larga scala, unitamente alle loro implementazioni su framework di computazione distribuita. Le lezioni considereranno i contesti applicativi tipicamente caratterizzati da quantità di dati tali da non permettere il loro trattamento utilizzando architetture e tecniche di elaborazione classiche. Per questi contesti verranno quindi analizzate delle soluzioni ad hoc. Parallelamente verranno considerate alcune tecniche di carattere generale per l'elaborazione di dati su larga scala, come per esempio quelle che ricadono nel campo del machine learning.

Più in dettaglio, verranno considerati gli argomenti che seguono.
- Preliminari matematici.
- Preliminari tecnici.
- Cenni a MapReduce, Hadoop e Spark.
- Analisi di algoritmi MapReduce.
- Basi di dati NoSQL: MongoDB.
- Analisi di relazioni.
- Regressione.
- Regressione logistica.
- Analisi di flussi di dati.
- Deep learning.
- Clustering.
- Reti neurali ricorrenti.
- Ricerca di elementi simili.
- Analisi di tipo market-basket.
- Gradient boosting.
- Sistemi di raccomandazione.
- Riduzione della dimensionalità.
- Embedding.
Prerequisiti
È richiesta la conoscenza degli argomenti principali di programmazione degli elaboratori, algebra lineare, analisi matematica, probabilità e statistica al livello considerato in una laurea triennale di area informatica.
Metodi didattici
Lezioni frontali
Materiale di riferimento
Libro di testo:
- Anand Rajaraman and Jeff Ullman, Mining of Massive Datasets, Cambridge University Press (ISBN:9781107015357).

Letture suggerite:
- Holden Karau, Andy Konwinski, Patrick Wendell, Matei Zaharia, Learning Spark. Lightning-Fast Big Data Analysis, O'Reilly, 2015 (ISBN:978-1-449-35862-4)
- Sandy Ryza, Uri Laserson, Sean Owen, Josh Wills, Advanced Analytics with Spark. Patterns for Learning from Data at Scale, O'Reilly, 2015 (ISBN:978-1-491-91276-8)

Dispense, approfondimenti ed esempi di codice:
- https://dmalchiodiamd.ariel.ctu.unimi.it/
- http://malchiodi.di.unimi.it/teaching/AMD
Modalità di verifica dell’apprendimento e criteri di valutazione
L'esame consiste di un progetto e di una prova orale, entrambi relativi agli argomenti trattati nell'insegnamento. Il progetto, riassunto in una relazione, richiede l'elaborazione di un dataset tramite applicazione critica delle tecniche descritte durante le lezioni. La valutazione del progetto, espressa in termini approvato/respinto, tiene conto del livello di padronanza degli argomenti e della chiarezza espositiva nella relazione presentata. La prova orale, alla quale si accede dopo che il progetto è stato valutato positivamente, è basata sulla discussione di alcuni argomenti trattati nell'insegnamento e sull'approfondimento di alcuni aspetti del progetto presentato. La valutazione della prova orale, espressa in trentesimi, tiene conto del livello di padronanza degli argomenti, della chiarezza espositiva e della proprietà di linguaggio.
INF/01 - INFORMATICA - CFU: 6
Lezioni: 48 ore
Docente: Malchiodi Dario
Docente/i
Ricevimento:
Su appuntamento
Stanza 5015 del Dipartimento di Informatica