Parallel and Distributed Association Mining: A Survey Cappellazzo Pietro Carminati Roberto Approfondimento per il corso di Calcolo Parallelo A.A Docente: Orlando Salvatore
OBBIETTIVO: estrarre informazioni utili da una grande mole di dati Una delle attività più importanti di questo processo è l ARM: associaton rule mining che consiste nellidentificare frequenze, collegamenti, correlazioni, causalità tra insieme di item in database transazionali. Introduzione: Cosè il Data Mining
Regole Associative Scopo dellARM: trovare tutte le regole che correlano la presenza di un insieme di articoli con quello di un altro insieme di articoli Dati: D un database di transazioni I un insieme di item distinti T una transazione ( T I ) Una regola associativa ha la forma A B dove: A I, B I, AB=ø
Regole Associative ESEMPIO: gli acquisti fatti da vari clienti sono memorizzati come transazione nel database di un negozio. Esempio di regola associativa: Diaper Beer
Misure associate alle regole Dato un database di transazioni e una regola associativa X Z, si definisce: Supporto: la probabilità che una transazione del database contenga sia X che Z: Sup (X Z ) = Probabilità(X Z ) Confidenza: la probabilità condizionale che una transazione che include X contenga anche Z: Conf (X Z ) = Probabilità(Z | X )
ESEMPIO: Dove σ(x) è il numero di transazioni nel database che contengono X. Misure associate alle regole
Frequent Itemset Un passo chiave dellassociation mining consiste nel trovare gli insiemi frequenti: Frequent Itemset: insieme di item che hanno supporto maggiore di una soglia prefissata: min_sup. Se {AB} è un frequent itemset allora sia A che B sono frequenti. Sia I un Itemset, se un sottoinsieme di I non è frequente allora neanche I lo è.
Ricercare i frequent itemset Lalgoritmo sequenziale più diffuso è Apriori basato sulle proprietà dei frequent itemset, in particolare: Ogni sottoinsieme di un itemset frequente deve essere frequente. Fasi Principali: 1. Ricerca di tutti i frequent itemset L i dove i indica la dimensione. 2. Generazione delle regole associative dai precedenti L i.
Algoritmo Apriori Processo iterativo partendo da candidati C k ottiene i relativi Frequent itemset L k : 1)GenStep: Generazione di candidati C k+1 da L k, facendo il join di L k con se stesso e prendendo solo gli itemset di lunghezza k+1, che contengono item distinti. 2)Per ogni transazione T del database si incrementa il contatore di tutti i candidati contenuti. 3)PruneStep: Vengono selezionati solo i candidati frequenti. In Output Apriori restituisce I frequent itemset F k trovati (singoli o a coppie, triple,...)
Algoritmo Apriori ESEMPIO: (min_sup=2)
Algoritmo Apriori Possibili soluzioni: Velocizzare la ricerca dei candidati memorizzandoli in Hash Tree Applico una funzione hash sul valore degli item. Nodi foglia contengono una lista di itemset. Funzione di subsetting per trovare i candidati contenuti in una transazione visitando lhash tree. ECCESSIVI ACCESSI AL DATABASE Problemi: Contare i candidati può essere problematico: Numero di candidati potrebbe essere enorme. Una transazione può contenere molti candidati.
Algoritmi Paralleli Ulteriori Problemi: Numero di transizioni in un dataset molto grande. Per valori piccoli di supporto minimo si ottengono molti candidati. Soluzione: Per migliorare le prestazioni si possono utilizzare varianti dellalgoritmo Apriori che sfruttano le computazioni in parallelo.
Benefici e obbiettivi degli algoritmi paralleli Benefici: Scalabilità in rapporto alla dimensione dei dati. Miglioramento del tempo di risposta del sistema. Obbiettivi: Minimizzare comunicazioni e sincronizzazioni. Bilanciamento del carico. Trovare la giusta decomposizione dei dati. Minimizzare laccesso I/O.
Algoritmi Paralleli La maggior parte degli algoritmi attuali (ARM parallel) sfruttano queste caratteristiche: Bilanciamento del carico statico Avviene in modo statico perché si partiziona allinizio il database fra i nodi disponibili. Memoria distribuita Per la scalabilità del sistema, altrimenti limitata dal bus. Data Parallelism/Task Parallelism/Hybrid Parallelism
Data parallelism vs Task parallelism Data Parallelism Il database è partizionato fra i processori disponibili. Task Parallelism I processori eseguono calcoli indipendenti. Hanno bisogno di accedere a tutto il database. Hybrid Parallelism Combina data e task parallelism.
Distributed Memory ARM Per accedere alle altre memorie presenti nel sistema è necessario utilizzare Message Passing Scalabilità a scapito della facilità di programmazione
Count Distribution (Data Parallelism) È una semplice parallelizzazione di Apriori dove: Il database viene partizionato in base ai P processori disponibili. Tutti i processori possiedono lintero hash tree dei candidati. Ogni processore così può aumentare i contatori in base alla sua partizione locale del database. Avviene la riduzione globale scambiando i contatori locali con tutti i processori.
Count Distribution - Algoritmo - Nel primo passo (K=1) P i dinamicamente genera il proprio candidate itemset C i 1,dai valori presenti nella partizione di database locale D i. Nei passi successivi (k>1) 1.Ogni processore P i genera il C k completo usando L k-1 (il frequent itemset precedentemente calcolato). 2.Ogni P i conta i candidati presenti in C k utilizzando la propria parte di Database. 3.Ogni P i scambia i contatori locali con tutti gli altri processori, in questo step viene forzata la sincronizzazione, si genera quindi il C k globale. 4.Ogni processore P i compie la fase di pruning e genera L k.
Count Distribution Il database viene partizionato. Si effettua il conteggio (Parziale). Ci si scambiano i contatori. Si eseguono le fasi di pruning e join.
Count Distribution Miglioramenti rispetto alla soluzione sequenziale: Tempo per transazione invariato rispetto allalgoritmo sequenziale. Ogni processore lavora su N/p transazioni (N transazioni totali, p processori). Tempo totale diminuisce di un fattore pari a p. Problemi: Non vengono partizionati i candidati. Bassa scalabilità allaumentare degli items. Non si sfrutta efficacemente la memoria aggregata.
Data Distribution (Task Parallelism) Viene sfruttata tutta la memoria aggregata del sistema: Si partiziona sia il database che linsieme dei candidati in modalità round robin. Ogni processore deve poter accedere a tutto il database (sia partizione locale che partizioni remote) in tutte le iterazioni (Data Broadcast). Overhead di comunicazioni elevato
Data Distribution - Algoritmo - Nel primo passo (K=1)come in Count Distribution: P i dinamicamente genera il proprio candidate itemset C i 1,dai valori presenti nella partizione di database locale D i. Nei passi successivi (k>1) 1.Ogni processore P i genera il C k usando L k-1 (il frequent itemset precedentemente calcolato). Ogni processore P i manterrà solo N/P itemset che formano linsieme C k, questo sarà chiamato C i k. La scelta di quali itemset mantenere avviene in maniera roud robin. Lunione di tutti i C i k darà C k. 2.Ogni P i conta i candidati presenti in C i k utilizzando la propria parte di Database e quella ottenuta dagli altri. 3.Ogni P i calcolerà il propriol L i k usando il C i k locale. Lunione di tutti gli L i k darà L k. 4.Ogni processore P i scambia il proprio L i k con ogni altro processore per determinare L k globale e poter procedere con il prossimo passo. In questo step è richiesta la sincronizzazione di tutti i processori.
Data Distribution Ogni processo per effettuare il conteggio della propria partizione di canditati ha bisogno di leggere sia le informazioni locali che quelle remote. Al termine di ogni step è necessaria una sincronizzazione per determinare il frequent itemset globale.
Data Distribution MIGLIORAMENTI RISPETTO APRIORI SEQUENZIALE: Il numero dei candidati per processore viene ridotto di un fattore P. Numero medio dei nodi foglia in un hash tree locale viene ridotto in base al numero di processori. Riduzione del tempo di transazione di un fattore pari a P. MIGLIORAMENTO RISPETTO A COUNT DISTRIBUTION: Sfruttamento della memoria aggregata. Riduzione del tempo di transazione. PROBLEMI: Questo algoritmo soffre delloverhead di comunicazioni che genera e ha nella pratica prestazioni inferiori rispetto a Count Distribution.
Candidate Distribution (Task Parallelism) I precedenti algoritmi hanno bisogno di una sincronizzazione al termine di ogni iterazione, questo può comportare uno sbilanciamento del carico. Per evitare questo lalgoritmo Candidate Distribution, tramite un euristica basata sul supporto, partiziona candidati, in modo che il carico sia bilanciato. Contemporaneamente il database viene replicato selettivamente, ogni processore può quindi continuare a lavorare in modo indipendente.
Candidate Distribution Prima di iniziare lalgoritmo vero e proprio viene determinato un passo l, in modo euristico, dal quale tutti i processori lavoreranno in modo indipendente. Alla fine di ogni passo ogni processore invia i risultati ottenuti in modo asincrono. Se questi vengono ricevuti dagli altri in tempo vengono utilizzati, altrimenti saranno utilizzati nei passi successivi.
Candidate Distribution - Algoritmo - Nei passi iniziali (K<l)viene utilizzato Count oppure Data Distribution. Nel passo (k=l) 1.L k-1 viene partizionato fra tutti gli N processori in modo che siano well balanced. 2.P i genera C i k utilizzando solamente la propria parte di L k-1. 3.Ogni P i determinerà quindi il conteggio globale per C i k.Per fare questo contemporaneamente al conteggio il database D i sarà ridistribuito. 4.Ogni processore P i scambia il prorio L i k con ogni altro processore in modo asincrono, necessari per poter formare linsieme C i k+1.
Candidate Distribution - Algoritmo - Nei passi successivi (k>l) 1.Ogni processore P i colleziona tutti i frequent itemset ricevuti dagli altri e li utilizza nella fase di prunig (non è necessario attendere tutti i risultati). Questa fase determina anche il bilanciamento del carico: ai processori che hanno inviato prima i risultati vengono affidati più candidati. 2.Ogni P i determinerà quindi C i k utilizzando L i k-1 locale. 3.Ogni P i a questo punto effettuerà il conteggio utilizzando il proprio D i e determinerà L i k locale, inviandolo in modo asincrono a tutti i processori. PROBLEMI: La ridistribuzione del database è un operazione molto costosa, questo fa sì che le prestazioni siano peggiori di quelle date da Count Distribution..
Confronto delle prestazioni fra Count/Data/Candidate Distribution D: Numero medio di transazioni. I: Dimensione media del frequent itemset. T: Lunghezza media delle transazioni. Response Time
Approcci simili Sono state implementati, indipendentemente dagli algoritmi presentati, alcuni algoritmi molto simili di cui diamo solo una breve introduzione: Non Partitioned Apriori (NPA) Essenzialmente uguale a Count Distribution. Unica differenza la riduzione finale avviene su un processore master. Simply Partitioned Apriori (SPA) Corrisponde esattamente a Data Distribution. Hash Partitioned Apriori (HPA) Simile a Candidate Distribution. Differenza il database non viene replicato selettivamente, ad ogni passo i candidati C vengono generati e inviati ai processori secondo una funzione hash. E difficile che ogni processore riceva un numero uguale di candidati, inoltre il volume di comunicazione è molto maggiore di DD.
Ottimizzazioni Consideriamo ora alcune varianti dellalgoritmo Data Distribution visto in precedenza, che ne ottimizzano la scalabilità e ne riducono le comunicazioni: Data Distribution Intelligent Data Distribution Hybrid Distribution Count Distribution
Intelligent Data Distribution Lidea è quella di ridurre le comunicazioni eseguite da Data Distribution (All to All broadcast): Ogni processore invia dati a quello di destra e riceve da quello di sinistra (Ring Based all-to-all broadcast). Partizionamento intelligente dei candidati basato sul prefisso degli itemset (primo elemento). Ogni processore ha una bitmap (bitmask) che tiene traccia dei candidati locali. Pruning iniziale grazie alla bitmask. Una transazione viene analizzata solo se contiene item rilevanti (con un certo prefisso). Ogni processore ha un fattore P di candidati.
Intelligent Data Distribution
Miglioramenti rispetto a DD : Ridotto il lavoro ridondante. Se numero totale dei candidati è sotto una certa soglia (= sta in memoria) si comporta come Count Distribution. Buon bilanciamento del carico.
Hybrid Distribution Combina Count Distribution e Intelligent Data Distribution Processori vengono partizionati in gruppi (superprocessore). La Count Distribution è usata dai superprocessori. LIntelligent Data Distribution è invece utilizzata allinterno dei superprocessori (tra i processori). Inoltre il numero di superprocessori è modificato dinamicamente ad ogni passo.
Hybrid Distribution
Vantaggi: Le comunicazioni sono ridotte di 1/G (dove G è il numero di superprocessori). Load balancing specialmente nelle ultime iterazioni. Prestazioni simili a IDD, ma molto più scalabile.
Confronto delle prestazioni fra CD DD IDD HD - Scalabilità -
Confronto delle prestazioni fra CD IDD HD – Aumento dei dati-
Confronto delle prestazioni fra CD IDD HD
Altre Soluzioni PDM Formulazione parallela basata su hashing dellalgoritmo DHP (Direct Hashing and Pruning), una forma di Apriori che utilizza una tecnica di hashing per filtrare itemset e che riduce ad ogni passo il size del db delle transazioni (più efficiente nel generare candidati). Fast Distributed Mining (FDM) Ottimizzato per lambiente distribuito (comunicazioni molto più lente). Si basa su Count Distribution. Propone nuove tecniche per ridurre il numero di candidati MINORI COMUNICAZIONI. Fast Parallel Mining Versione parallela di FDM.
Shared Memory ARM Questi algoritmi non hanno avuto una grande attenzione nella letteratura ARM, ma ultimamente con lavvento di multiprocessori desktop stanno diventando sempre più importanti. Processori condividono la memoria di sistema, gli accessi sono diretti e omogenei Facilità di programmazione a scapito della scalabilità limitata dal Bus
CCPD e PCCD CCPD (Common Candidate Partitioned Database): Basato su Apriori usa un approccio di tipo Data Parallel. Il Database viene diviso in parti di dimensioni uguali su ogni processore. Viene parallelizzata la fase di generazione dellhash tree contenente i candidati, che viene condiviso (utilizzando dei lock). PCCD (Partitioned Candidate Common Database): Simile a CCPD ma con approccio Task parallel. Lalbero dei candidati viene costruito in modo separato da ogni processore. Ogni processore per ottenere il supporto del proprio insieme di candidati deve scansionare lintero DBgravi problemi di overhead.
ALTA DIMENSIONALITÁ I metodi visti possono trattare poche migliaia di item o di dimensioni ridotte perché non può essere ridotta la complessità quadratica della seconda iterazione (conteggio della frequenza di 2-itemset). Possibili soluzioni: metodo che enumera solo pattern massimali, utilizzo di pruning hash-based. DIMENSIONE DEL DATABASE Possono essere trattati dati solo nellordine di decine di GB. Impossibile trovare tutti gli itemset frequenti in un solo passo. I candidati non possono stare in memoria. Possibile soluzione: tecniche di parallel-join. DISTRIBUZIONE LOGICA E FISICA DEI DATI La maggior parte degli algoritmi trattano partizionamento orizzontale dei database distribuiti (ogni sito ha diverse transazioni) e non verticale (ogni sito ha diversi item). Problemi Aperti
ASIMMETRIA DEI DATI La maggior parte degli algoritmi ha bisogno di asimmetria dei dati. È necessaria simmetria per applicare il pruning globale. BILANCIAMENTO DEL CARICO DINAMICO Tutti gli algoritmi esistenti utilizzano bilanciamento statico, basato su iniziale scomposizione dei dati. Assumono un ambiente dedicato e omogeneo poco reale. SCOPERTE DELLE REGOLE ASSOCIATIVE Ci si concentra sulla scoperta di (pochi) itemset frequenti. Assunzione errata: in realtà possono essere milioni. Necessario prestare attenzione al processo di generazione delle regole. GENERALIZZAZIONE DI REGOLE ASSOCIATIVE Quantitative association mining. Multiple-level mining. Problemi Aperti
Bibliografia M.J. Zaki. Parallel and Distributed Association Mining: A survey. IEEE Concurrency, Vol. 7, no. 4, 1999.Parallel and Distributed Association Mining: A survey E. Han, G. Karypis, and V. Kumar. Scalable Parallel Data Mining for Association Rules. IEEE Transactions on Knowledge and Data Engineering Vol. 12, n. 3, 2000.Scalable Parallel Data Mining for Association Rules. R. Agrawal and J. Shafer. Parallel mining of association rules. IEEE Trans. on Knowledge and Data Engg., 8(6): , December Parallel mining of association rules. S. Orlando Association mining slide per il corso Data Minig. Università Ca Foscari Venezia.