BIG DATA
Anno accademico 2024/2025 - Docente: ALFREDO PULVIRENTIRisultati di apprendimento attesi
Il corso introduce le principali tecniche di data mining. Il focus è sul mining di grandi quantità di dati, tali da non entrare in memoria principale. I diversi esempi presentati durante il corso riguarderanno il web, le social network e i dati Next Generation Sequencing prodotti in ambito biomedico. Inoltre il corso affronta la tematica anche dal punto di vista degli algoritmi, enfatizzando la differenza dal machine-learning. Tra gli argomenti affrontati troviamo, in primo luogo tool quali, map-reduce, per lavorare in ambito distribuito con grandi quantità di dati. Tale argomento farà da denominatore comune in tutte le problematiche di mining presentate. Successivamente viene affrontato il problema della ricerca di similarità e dell’uso delle tecniche di hashing per grandi volumi di dati. Si affronta anche il problema classico del mining ad alto supporto descrivendo l’algoritmo apriori e le sue varianti. Saranno quindi introdotti i sistemi di raccomandazione. In tale contesto si affronterà pure il problema dei dati ad alta dimensionalità e le tecniche riduzione della dimensionalità quali, SVD, CUR, NNMF. Il corso introdurrà quindi le tematiche principali nell’analisi delle network. Verranno introdotte le misure di centralità per le network, con particolare riferimento al page-rank e alle sue varianti. Sarà introdotto il concetto di modello nullo di network in grado di conservare le caratteristiche della rete quali, distribuzione dei degree e coefficiente di clustering. Tra i modelli presentati troveremo: Erdos-Renyi, Chung-Lu, Preferential Attachment. Sarà affrontato il problema del clustering attraverso l’uso delle tecniche basate su modularità e clustering spettrale.
Obiettivi formativi generali dell'insegnamento in termini di risultati di apprendimento attesi.
- Conoscenza e capacità di comprensione (knowledge and understanding): Il corso mira a formare le conoscenze e le competenze di base ed avanzate per l’analisi per la rappresentazione, l’organizzazione e l’analisi di grandi quantità di dati.
- Capacità di applicare conoscenza e comprensione (applying knowledge and understanding): lo studente acquisirà conoscenze riguardo ai modelli e gli algoritmi per l’analisi dei dati quali: mining ad alto supporto, sistemi di raccomandazione, ricerca di similarità ad alte dimensioni, map-reduce e spark, complex network analysis, text mining e sistemi per il tagging di documenti.
- Autonomia di giudizio (making judgements): Attraverso esempi concreti e casi di studio, lo studente sarà in grado di elaborare autonomamente soluzioni a determinati problemi legati ai big data.
- Abilità comunicative (communication skills): lo studente acquisirà le necessarie abilità comunicative e di appropriatezza espressiva nell'impiego del linguaggio tecnico nell'ambito generale dei big data.
- Capacità di apprendimento (learning skills): il corso si propone, come obiettivo, di fornire allo studente le necessarie metodologie teoriche e pratiche per poter affrontare e risolvere autonomamente nuove problematiche che dovessero sorgere durante una attività lavorativa. A tale scopo diversi argomenti saranno trattati a lezione coinvolgendo lo studente nella ricerca di possibili soluzioni a problemi reali, utilizzando benchmark disponibili in letteratura.
Modalità di svolgimento dell'insegnamento
lezioni frontali e laboratorio obbligatorie
Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto e riportato nel syllabus.
Prerequisiti richiesti
Programmazione, strutture dati, algoritmi su grafi, concetti di base di probabilità e statistica.
Frequenza lezioni
Le risorse principali messe a disposizione dello studente sono le lezioni frontali, la cui frequenza è fortemente consigliata.
Per seguire meglio le lezioni, vengono messe a disposizione le slide utilizzate per il corso. Le slide non costituiscono un mezzo di studio: forniscono un dettaglio puntuale sugli argomenti trattati a lezione.
Contenuti del corso
Il corso copre diversi argomenti nell'ambito dei Big Data. Si parte dal mining di insiemi frequenti, focalizzandosi sull'algoritmo Apriori e le sue estensioni come PCY e Iceberg, per poi esplorare tecniche che migliorano l’efficienza senza generare esplicitamente i candidati.
Segue un approfondimento sui sistemi di raccomandazione, includendo il Collaborative Filtering, il Network-Based-Inference (NBI) e modelli ibridi, che combinano tecniche diverse per migliorare la qualità delle raccomandazioni.
Verrà trattato il paradigma Map-Reduce per l'elaborazione distribuita di grandi dataset, con esempi pratici come il conteggio delle parole e il join tra dataset, oltre a tecniche evolute con Hadoop e Spark.
Nella ricerca di similarità su dati ad alta dimensionalità, il corso introduce shingle, Min-Hashing e Locality-Sensitive Hashing (LSH), insieme alle varianti come Min-LSH. Verranno inoltre trattati metodi di riduzione della dimensionalità come PCA, SVD e CUR, e il loro utilizzo per l’analisi semantica (LSI) e nella preservazione delle distanze (Teorema di Johnson-Lindenstrauss).
Si affronteranno anche algoritmi per l'analisi dei grafi, come PageRank, HITS e le tecniche per contrastare il link spam. Per l'analisi delle reti, verranno esplorati modelli di reti random e il conteggio dei triangoli per valutare la coesione sociale, oltre alle tecniche di rilevamento delle community.
Il corso esplorerà poi il graph learning, trattando metodi come Node2Vec, DeepWalk, GCN e GAT per generare embedding dei nodi e applicare modelli di deep learning ai grafi, con esercitazioni pratiche tramite Pytorch Geometric.
Infine, si analizzeranno tecniche di text mining, come TF-IDF ed Entity Annotation, per identificare entità rilevanti nei testi. L'intero corso offre anche la possibilità di applicare le tecniche su progetti reali in ambiti come il web, il retail e la medicina.
Testi di riferimento
Programmazione del corso
Argomenti | Riferimenti testi | |
---|---|---|
1 | Introduzione, Map Reduce, Spark | Capitoli 1 e 2 + materiale didattico integrativo |
2 | Mining di insiemi frequenti | Capitolo 6 + materiale didattico integrativo |
3 | Similarità ad alte dimensioni. Locality sensitive Hashing (LSH). | Capitolo 3 + materiale didattico integrativo |
4 | Attività pratica su LSH e sue applicazioni | Capitolo 3 + materiale didattico integrativo |
5 | Dimensionality reduction. PCA, SVD, CUR, NNMF | Capitolo 11 + materiale didattico integrativo |
6 | Attività pratica su dimensionality reduction. | Capitolo 11 + materiale didattico integrativo |
7 | Sistemi di raccomandazione. Latent Semantic Indexing, Collaborative filtering e Network based inference, | Capitolo 9 + materiale didattico integrativo |
8 | Attività pratica su sistemi di raccomandazione. | Capitolo 9 + materiale didattico integrativo |
9 | Link Analysis: PageRank Link spam Hub-Authorities Applicazioni su Map-Reduce | Capitolo 5 + materiale didattico integrativo |
10 | Analisi di Grafi di grandi dimensioni. Conteggio triangoli subgraph matching e motif finding, community detection: overlapping communities Network alignment | Capitolo 10 + materiale didattico integrativo |
11 | Attività pratica su motif finding su grafi di grandi dimensioni. Applicazioni in Finanza. | Capitolo 10 + materiale didattico integrativo |
12 | Web Advertising: Algoritmi online Adword e sue implementazioni | Capitolo 8 è materiale didattico integrativo |
13 | Text mining. TF.IDF, Entity annotation | Materiale didattico integrativo |
14 | Attività pratica su text mining e sistemi di raccomandazione per analisi di banche dati citazioni: arxiv, pubmed | Materiale didattico integrativo |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
L'esame finale consiste in una prova scritta ed un colloquio orale nel quale viene discusso un progetto.
La prova scritta è costituita da esercizi e domande di teoria.
Chi non supera la prova scritta, non può sostenere l'orale. La prova scritta può essere visionata prima delle prove orali.
Salvo diversa comunicazione:
- l'esame scritto si svolge alle ore 9:00
Note:
- È vietato l'uso di qualsiasi strumento hardware (calcolatrici, tablet, smartphone, cellulari, auricolari BT etc.), di libri o documenti personali durante gli esami (scritti).
- Per sostenere gli esami è obbligatorio prenotarsi utilizzando l'apposito modulo del portale CEA.
- Non sono ammesse prenotazioni tardive tramite email. In mancanza di prenotazione, l'esame non può essere verbalizzato.
La verifica dell’apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere.
Il voto è espresso su una scala di trenta, fino a un massimo di 30/30 e lode.
Per l'assegnazione del voto finale si terrà conto dei seguenti parametri:
- Punteggio 29-30 e lode: Lo studente dimostra una conoscenza approfondita degli argomenti, integra prontamente e correttamente e analizza criticamente le situazioni presentate, risolvendo autonomamente problemi anche molto complessi. Possiede ottime capacità comunicative e padroneggia con competenza il linguaggio medico-scientifico.
- Punteggio 26-28: Lo studente ha una buona comprensione degli argomenti, è in grado di integrare e analizzare criticamente e logicamente le situazioni presentate, è in grado di risolvere in modo abbastanza indipendente problemi complessi e presenta gli argomenti in modo chiaro utilizzando un linguaggio medico-scientifico appropriato.
- Punteggio 22-25: Lo studente ha una discreta comprensione degli argomenti, anche se limitata alle aree principali. È in grado di integrare e analizzare criticamente le situazioni presentate, anche se non sempre in modo lineare, e presenta gli argomenti in modo abbastanza chiaro con una moderata competenza linguistica.
- Punteggio 18-21: Lo studente ha una conoscenza minima degli argomenti, possiede una modesta capacità di integrare e analizzare criticamente le situazioni presentate e presenta gli argomenti in modo sufficientemente chiaro, sebbene la sua competenza linguistica possa essere poco sviluppata.
- Esame non superato:Lo studente non ha la conoscenza minima richiesta dei contenuti fondamentali del corso. La capacità di usare un linguaggio specifico è minima o inesistente e lo studente non è in grado di applicare autonomamente le conoscenze acquisite.
Gli studenti con disabilità e/o DSA dovranno contattare con sufficiente anticipo rispetto alla data dell'esame il docente e il referente CInAP DMI per comunicare che intendono sostenere l'esame fruendo delle opportune misure compensative.
Esempi di domande e/o esercizi frequenti
Esempi saranno pubblicati sul portale www.studium.unict.it