1 / 72

“Graph Mining”

UNIVERSITA’ DEGLI STUDI DELLA CALABRIA FACOLTA’ DI INGEGNERIA Corso di Laurea Spec. in Ingegneria Informatica. DATA MINING E SCOPERTA DELLA CONOSCENZA. “Graph Mining”. Prof. G. Manco Francesco Gullo Ing. F. Folino matr. 87675 Anno Accademico 2004/2005.

Download Presentation

“Graph Mining”

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. UNIVERSITA’ DEGLI STUDI DELLA CALABRIAFACOLTA’ DI INGEGNERIACorso di Laurea Spec. in Ingegneria Informatica DATA MINING E SCOPERTA DELLA CONOSCENZA “Graph Mining” Prof. G. Manco Francesco Gullo Ing. F. Folino matr. 87675 Anno Accademico 2004/2005

  2. Modello Transazionale Database di transazioni: Transazione:insieme di items Itemset: collezione di items Es. {Bread, Milk, Coke} {Bread, Milk} Es: {Bread, Diaper} {Diaper, Beer} Obiettivo primario: ricerca di itemset frequenti

  3. Modelli alternativi In molti ambiti gli oggetti del dataset vengono rappresentati mediante strutture dati più complesse, ad es. attraverso grafi. Transazioni Grafi Items Nodi Archi Relazioni tra items Ricerca di itemset fequenti in un dataset di transazioni Ricerca di sottografi frequenti in un dataset di grafi

  4. Applicazioni • Chimica • Genetica • Web • Reti • …

  5. Definizioni preliminari • Grafo etichettato: V, insieme di nodi E, insieme di archi L, insieme di etichette , funzione che assegna etichette a nodi ed archi • Gs=(Vs, Es) è sottografo di G=(V, E) sse e • Gs=(Vs, Es) è sottografo indotto di G=(V, E) sse e • G=(V,E) è connesso sse esiste un cammino per ogni coppia di nodi V

  6. Definizioni preliminari • Un isomorfismo è una funzione biunivoca tale che: • Un automorfismo è un isomorfismo da G a G • Un sottografo-isomorfismo da G a G’ è un isomorfismo da G a un sottografo di G’ • La canonical label di un grafo G=(V,E), cl(G), è un codice unico (stringa), invariante rispetto all’ordinamento di nodi e archi del grafo

  7. Isomorfismo Proprietà: • Struttura topologicamente uguale • Matrici di adiacenza e incidenza • Vertex invariants Punto cruciale: risoluzione del subgraph isomorphism problem

  8. Isomorfismo b c 1 2 1 2 G: b a H: c d d a a 3 a 4 3 4 G e H sono isomorfi (esiste in isomorfismo ‘f’ tra G e H): b 4 1 f(1)=4f(2)=1 f(3)=2f(4)=3 H: c a d 2 a 3 G’ e H’ non sono isomorfi pur avendo lo stesso numero di nodi e di archi: G’: H’:

  9. Canonical Labeling • Comparazione veloce tra grafi e ordinamento completo e deterministico per insiemi di grafi • Canonical labels usate: • Concatenazione di righe o colonne della matrice di adiacenza =>non univoco! • Tra tutte le possibili permutazioni dei nodi, scelta del codice maggiore o minore => |V|! permutazioni • Utilizzo di vertex invariants per il partizionamento in classi di nodi => permutazioni

  10. Canonical Labeling Classi: p0={v1} (label:’a’, degree:3) p1={v0,v3} (label:’a’, degree:1) p2={v2} (label:’b’, degree:1) 1! x 2! x 1! = 2 permutazioni invece di 4! = 24 permutazioni CL

  11. Definizione del problema Frequent Subgraph Discovery: • Input: • D={G1,…,Gn}, dataset di n grafi etichettati non orientati • σ, supporto minimo (0<σ<1) • Obiettivo: Trovare tutti i sottografi non orientati e connessi presenti in almeno σxn grafi del dataset D

  12. Algoritmo Apriori • largamente utilizzato nei modelli market-basket • schema base per alcuni algoritmi di ricerca di sottografi Candidate Generation: join false test 1. L1= {items frequenti}; 2. for(k = 1; Lk≠∅; k++) do begin 3. Ck+1= candidati generati da Lk; 4. for each transazione t in D 5. incrementa il supporto dei candidati in Ck+1contenuti in t; 6. Lk+1= candidati in Ck+1 con supporto ≥ min_support; 7. return {L1 ,…, Ln}; Frequency Counting

  13. Soluzioni proposte Algoritmi analizzati: • AGM • FSG • gSpan • FFSM • GASTON Parametri di performances: • |D|: dimensione del dataset • |T|: dimensione media transazioni • |N|: numero di etichette • σ : supporto minimo Studi sperimentali: • dataset reali • Chemical Compound Dataset (NTP, DTP, PTE ecc.) • dataset sintetici • Parametri: |D|, |T|, |N|, |L|, |I| • D10kN4I10T20L200

  14. AGM: caratteristiche • Basato sull’algoritmo Apriori • Incremento della dimensione dei sottografi frequenti mediante aggiunta di un nodo alla volta • La ricerca è di sottografi indotti frequenti • Si basa sulla rappresentazione dei grafi mediante matrici di adiacenza

  15. AGM: rappresentazione di grafi Matrice di adiacenza: Dato un grafo etichettato , la matrice di adiacenza X è costituita dai seguenti elementi xij: dove num(lb) è un intero arbitrariamente assegnato all’etichetta lb Matrice di adiacenza vertex-sorted: La matrice di adiacenza Xk di un grafo G(Xk) di dimensione k è vertex-sorted se: Codice della matrice di adiacenza: Il codice di una matrice di adiacenza Xk, code(Xk), è dato dalla stringa risultante dalla concatenazione degli elementi sulle colonne del triangolo superiore della matrice stessa

  16. AGM: candidate generation 1. JOIN La join avviene tra grafi che differiscono per un unico nodo: elementi non determinati da Xke Yk vettori colonna di dim. (k-1) x 1 sottomatrice in comune Per evitare ridondanze, la join tra Xk e Yk viene fatta soltanto se code(Xk) ≤code(Yk) =>matrice vertex sorted in‘normal form’ =>di ogni singolo grafo generato vengono calcolate e memorizzate tutte le normal form ad esso relative

  17. AGM: candidate generation • 2. ELIMINAZIONE CANDIDATI INFREQUENTI • L’eliminazione di sottografi infrequenti consta di tre passi: • costruzione delle sottomatrici (mediante eliminazione di un nodo per volta) • normalization delle sottomatrici ottenute (approccio bottom-up) • verifica di frequenza, mediante ricerca di matching con l’insieme dei candidati di dim. inferiore

  18. AGM: frequency counting Poiché dello stesso grafo sono presenti più rappresentazioni, il frequency counting deve prevedere la somma dei contributi associati alla singola normal form =>meccanismo di indicizzazione basato su canonical form • Frequency Counting: • calcolo della canonical form di ogni candidato (approccio bottom-up) • calcolo delle normal forms dei k-subgraph indotti di ogni transazione • calcolo della frequenza

  19. AGM: prestazioni Risultati su dataset sintetici:

  20. AGM: prestazioni Risultati: • Andamento atteso al variare dei parametri caratteristici • Scaling lineare al variare della dim. del dataset • Complessità minore per grafi orientati (frequenza minore dei sottografi) • Su dataset NTP (National Toxicology Program): PC 400MHz 128MB => 40 min con σ=20% 8 gg con σ=10%

  21. AGM: conclusioni • Vantaggi: • Semplicità di implementazione • Pruning in base alla frequenza • Prestazioni discrete per dataset piccoli e supporti grandi • Svantaggi: • La ricerca è di soli sottografi indotti • Estrema ridondanza: ad ogni passo vengono mantenute e calcolate tutte le normal form di ogni singolo candidato • Operazioni di join, normalization e ricostruzione canonical form molto costose • Prestazioni scadenti per dimensioni medio-elevate (8gg per |D|=100.000 e minsup=10%)

  22. FSG: caratteristiche • Basato sull’algoritmo Apriori • Incremento della dimensione dei sottografi frequenti mediante aggiunta di un arco alla volta • Ottimizzazioni per candidate generation e frequency counting • Utilizzo di canonical labeling

  23. FSG: algoritmo generazione di tutti i sottografi frequenti di dimensione 1 e 2 fsg(D, σ) { 1:F1 ←all frequent 1-subgraphs in D 2:F2 ←all frequent 2-subgraphs in D 3:k ← 3 4:whileFk-1≠ Ø do 5: Ck ← fsg-gen(Fk-1) 6:for each candidate GkCkdo 7:Gk.count ← 0 8:for each transaction T Ddo 9:ifGkis included in T then 10:Gk.count ← Gk.count + 1 11:Fk ← {Gk E Ck | Gk.count ≥ σ|D|} 12:k ← k + 1 13:return{F1, F2,…, Fk-2} } Candidate Generation: generazione sottografi candidati di dim. k, mediante fusione dei sottografi frequenti di dim. k-1 Frequency Counting selezione dei candidati che soddisfano il vincolo di supporto

  24. FSG: candidate generation La join avviene tra sottografi di dim. k che condividono lo stesso (k-1)-subgraph (core) il risultato potrebbe non essere un unico (k+1)-subgraph: (3). Cores multipli (2). Automorfismi multipli del core (1). Nodo con uguale etichetta:

  25. FSG: candidate generation fsg-gen(Fk) { 1: Ck+1 ← Ø 2: for each pair of (Gik,Gjk) Fk, i ≤ j and cl(Gik) ≤ cl(Gjk) do 3: Hk-1← {Hk-1| Hk-1 is a core shared by Gik and Gjk } 4: for each core Hk-1 E Hk-1do 5: {Bk+1 is a set of tentative candidates } 6: Bk+1 ← fsg-join(Gik,Gjk, Hk-1) 7: for eachGjk+1 E Bk+1 do 8: { test if the downward closure property holds} 9: flag ←true 10: for each edge el Gjk+1do 11: Hl k ←Gjk+1- el 12: ifHl kis connected and Hl kFkthen 13: flag ←false 14: break 15: if flag = true then 16: Ck+1 ←Ck+1 U {Gjk+1} 17: returnCk+1 } generazione di tutti i core condivisi per ogni coppia di sottografi frequenti generazione di tutti i possibili candidati mediante fusione di ogni coppia di sottografi frequenti, per ogni core condiviso false test

  26. FSG: candidate generation fsg-join(G1k, G2k, Hk-1) { 1: e1 ←the edge appears only in G1k, not in Hk-1 2: e2 ←the edge appears only in G2k, not in Hk-1 3: M ←generate all automorphisms of Hk-1 4: Bk+1 = Ø 5: for each automorphism ψ M do 6: Bk+1 ← Bk+1 U {all possible candidates of size k+1 created from a set of e1, e2, Hk-1 and ψ} 7: returnBk+1 } generazione dei candidati (max. 2) per ogni automorfismo del core

  27. FSG: candidate generation 3 steps computazionalmente costosi: • generazione cores (e automorfismi) • join • eliminazione candidati infrequenti Ottimizzazioni: • ogni k-subgraph frequente mantiene le canonical label dei suoi (k-1)-subgraph frequenti • Inverted indexing scheme • caching degli automorfismi dei cores precedenti • uso di canonical labeling per la verifica di ridondanze e sottografi infrequenti (test veloci e ricerca binaria)

  28. FSG: frequency counting Ad ogni passo, nxmksubgraph isomorphism problem (n=|D|, mk=# di candidati al passo k) Il costo computazionale è ridotto dall’uso di transaction identifier (TID) lists: • ogni sottografo frequente mantiene la lista di TID delle transazioni nelle quali è contenuto • per il calcolo della frequenza di un (k+1)-subgraph si considera l’intersezione delle liste di TID dei suoi k-subgraph frequenti • se la dim. della lista è minore del supporto minimo, il candidato viene scartato, altrimenti viene valutata la frequenza sulle sole transazioni della lista

  29. FSG: canonical labeling Il canonical labeling rappresenta un punto critico dell’algoritmo. Viene massicciamente impiegato in: • Test di ridondanza (candidati già generati durante la join) • False test per la verifica di sottografi frequenti • Per questioni di efficienza, l’algoritmo di CL utilizzato fa uso di vertex invariants, prevedendone tre versioni differenti: • Partition ordering • Neighbor list • Iterative partitioning

  30. FSG: prestazioni Risultati su datasetPTE (Predictive Toxicology Evaluation Challenge): • 3 ordini di grandezza tra le versioni + e – ottimizzate • Inverted index: 2-4 • Partition ordering: 5-15 • Neighbor list: 2 ordini di grandezza • Iterative partitioning: 1 ordine di grandezza • Tempi notevolmente inferiori di quelli di AGM

  31. FSG: prestazioni Risultati su dataset sintetici: • Sensibilità alla struttura del grafo (|D|, |L| costanti; |T|, |I|, |N| variabili; σ=2%) • |T| e |I| grandi => grande varianza • Motivazione: presenza variabile di pattern regolari • |N| grande => complessità minore • Motivazione: automorfismi in candidate generation, subgraph isomorphism in frequency counting e CL • Valore di regime in relazione ai valori di |T| e |I| • |T| grande => complessità maggiore • Motivazione: frequency counting e CL • Crescita più lenta se |N| grande • |I| grande => complessità maggiore • Motivazione: candidate generation e CL • Crescita più lenta se |N| grande e/o |T| piccolo • Influenza indiretta di σ e |T|

  32. FSG: prestazioni • Scalabilità sulla dimensione del dataset • Analisi al variare di |D| e |T| => scalabilità lineare

  33. FSG: conclusioni • Vantaggi: • Ricerca di sottografi generali • Numerose ottimizzazioni • Prestazioni molto superiori ad AGM • Svantaggi: • Candidate generation comunque costosa nonostante ottimizzazioni (false test e join ridondante) • Complessità spaziale elevata (a causa di BFS)

  34. GSPAN: caratteristiche • Depth-first search invece di breadth-first search • Incremento della dimensione dei sottografi frequenti mediante aggiunta di un arco alla volta • Lo spazio di ricerca è un albero gerarchicamente basato sul DFS code • Join sostituita dalla meno onerosa extensione false test eliminato

  35. GSPAN: DFS code • DFS tree • DFS subscripting • Rightmost vertex e rightmost path • Forward edge set : • Backward edge set :

  36. GSPAN: DFS code • Ordinamenti tra archi e1=(vi1,vj1),e2=(vi2,vj2): • ordinamento forward:sse j1<j2 • ordinamento backward:sse i1<i2oppure i1=i2Λ j1<j2 • ordinamento forward-backward:sse oppure • ordinamento totale: sse oppure È utilizzato nella definizione del DFS code per un grafo G a partire da un DFS tree T

  37. GSPAN: DFS code Ordinamento lessicografico DFS: Dati Z={code(G,T)|T è un DFS tree di G} α=code(Gα ,Tα)=(a0,a1,…,am), β=code(Gβ ,Tβ)=(b0,b1,…,bn) Eα,f,Eα,b,Eβ,f,Eβ,b, forward edge set e backward edge set per Tα e Tβ at=(ia,ja,lia,l(ia,ja),lja) e bt=(ib,jb,lib,l(ib,jb),ljb) α ≤ β sse: Il minimum DFS code di un grafo G è il DFS code minimo in base all’ordinamento lessicografico DFS e costituisce la canonical label di G

  38. GSPAN: spazio di ricerca Lo spazio di ricerca è rappresentato dal DFS code tree Relazione padre P = (a0, a1,…,am) figlio C = (a0, a1,…,am, b) Relazione tra fratelli: ordinamento lessicografico basato sul DFS code pruning L’operazione di extension per la costruzione dei figli di ogni nodo consta nell’aggiunta di archi per i soli nodi del rightmost path

  39. GSPAN: spazio di ricerca Teoremi: Il DFS code tree contiene i minimum DFS code di tutti i grafi (completa enumerazione) DFS Code Tree Covering Il minimum DFS code di un grafo G, durante la DFS, è incontrato prima di qualsiasi altro DFS code non minimum rappresentante G DFS Code Growth La discendenza di un nodo con DFS code non minimum non darà vita ad alcun nodo con DFS code minimum DFS Code Pruning

  40. GSPAN: algoritmo GraphSet_Projection( ) { } generazione di tutti gli archi a partire dall’insieme di etichette frequenti e salvataggio dei soli frequenti eliminazione archi e nodi infrequenti dai grafi del dataset GS salvataggio degli ID di ogni transazione in cui compare l’arco e DFS ricorsiva nel sottoalbero avente come root l’arco s riduzione di ogni transazione di GS mediante eliminazione dell’arco appena analizzato

  41. GSPAN: depth first search Subgraph_Mining( ) { } pruning frequency counting continuazione ricorsiva della DFS per i soli sottografi frequenti calcolo di tutte le occorrenze di s nelle transazioni in cui è contenuto; il subgraph isomorphism problem è risolto con approccio backtracking calcolo della frequenza di ogni figlio di s e salvataggio delle transazioni in cui è presente Enumerate(s) { }

  42. GSPAN: ottimizzazioni • Pruning • pre-pruning • post-pruning • Minimum DFS code • generazione di tutti i DFS code (automorfismi) • confronti parziali • Children generation • prima del counting (possibilità di frequenza 0) • durante il counting (frequenza almeno pari ad 1)

  43. GSPAN: prestazioni Risultati su dataset sintetici: • Complessità 6-30 volte inferiore di FSG (su vari dataset generati) • Meno sensibile di FSG a valori piccoli del parametro |N| (numero di etichette) • Comportamento molto buono su grafi grandi e densi (15-45 volte migliore di FSG) • Scalabilità lineare nella dimensione del dataset Risultati su datasetPTE: • Speedup tra gSpan e FSG molto elevato (sottostrutture ad albero e poche etichette agli archi) • Computazione successful anche per supporti molto piccoli (1.5%)

  44. GSPAN: conclusioni • Vantaggi: • Join in candidate generation sostituita da extension (minore complessità e ridondanze) • Eliminazione di false test in candidate generation • Complessità spaziale ridotta (grazie a DFS) • Riduzione delle transazioni del dataset ad ogni macropasso • Prestazioni in generale superiori ad FSG • Svantaggi: • Necessità di pruning test per la possibilità di DFS code duplicati • La risoluzione di subgraph isomorphism problems anche se in quantità ridotta è comunque presente

  45. FFSM: caratteristiche • Depth-first search • Incremento della dimensione dei sottografi frequenti mediante aggiunta di un arco alla volta • Lo spazio di ricerca è un albero gerarchicamente basato sulle suboptimal CAM • Operazioni efficienti di join e extension per la generazione dei figli di ogni nodo dell’albero di ricerca

  46. FFSM: CAM Ogni grafo viene rappresentato mediante la propria matrice di adiacenza: Concatenazione delle righe del triangolo inferiore della matrice M Codice di una matrice di adiacenza M (code(M)) Massimo tra tutti i possibili codici (ordinamento lessicografico) Canonical Form (CF) Canonical Adjacency Matrix (CAM) Matrice di adiacenza che dà origine alla CF

  47. FFSM: CAM code(M1)=“axbxyb0yyb”≥code(M2)=“axb0ybxyyb”≥ code(M3)=“bybyyb0xxa”

  48. FFSM: CAM Ogni codice stabilisce un ordinamento tra gli archi del grafo in questione Maximal Proper Submatrix: matrice ottenuta dall’eliminazione dell’ultimo arco nell’ordinamento Maximal proper submatrix di una CAM è CAM CF di un grafo è sempre ≥ della CF di un suo sottografo Maximal proper submatrix di una CAM rappresenta un sottografo connesso

  49. FFSM: CAM tree • Il CAM tree di un grafo G contiene tutte le CAM dei sottografi connessi di G • la root è la matrice vuota • ogni nodo è un sottografo distinto di G, rappresentato dalla sua CAM • il padre di un nodo è dato dalla maximal proper submatrix del nodo stesso

  50. FFSM: CAM tree La generazione del CAM tree per un grafo G viene effettuata applicando ad ogni nodo operazioni efficienti di join e extension: FFSM-join e FFSM-extension Caratteristiche: • FFSM-join genera ogni distinta CAM una volta sola • FFSM-join genera al massimo due CAM • FFSM-extension genera tutte le CAM mediante aggiunta di un arco in un unico punto Sostanziale riduzione di candidati ridondanti!

More Related