View
5
Download
0
Category
Preview:
Citation preview
LSH - Locality Sensitive Hashing
Big Data: tecnologie, metodologie e applicazioniper l’analisi dei dati massivi
Ministero Dello Sviluppo EconomicoIstituto Superiore delle Comunicazioni e delle Tecnologie dell’Informazione
Seminario ISCOM
Simone AngeliniFondazione Ugo Bordoni
Francesca CapriUniversita di Roma Tor Vergata
6 marzo 2017
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 1 / 27
LSH - Locality Sensitive Hashing
Table of Contents
1 LSH - Locality Sensitive HashingIntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 2 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Introduzione
Problema
La ricerca della similarita tra documenti e uno dei task piu complessi inambito Big Data.
Obiettivo
Si vogliono esaminare n documenti in modo da raggruppare gli elementisimili negli stessi sottoinsiemi (bucket)
Possibile soluzione
Riduzione della complessita del problema utilizzando funzioni hash cherappresentino i documenti con una firma di interi (signature)
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 3 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Introduzione
Problema
La ricerca della similarita tra documenti e uno dei task piu complessi inambito Big Data.
Obiettivo
Si vogliono esaminare n documenti in modo da raggruppare gli elementisimili negli stessi sottoinsiemi (bucket)
Possibile soluzione
Riduzione della complessita del problema utilizzando funzioni hash cherappresentino i documenti con una firma di interi (signature)
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 3 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Introduzione
Problema
La ricerca della similarita tra documenti e uno dei task piu complessi inambito Big Data.
Obiettivo
Si vogliono esaminare n documenti in modo da raggruppare gli elementisimili negli stessi sottoinsiemi (bucket)
Possibile soluzione
Riduzione della complessita del problema utilizzando funzioni hash cherappresentino i documenti con una firma di interi (signature)
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 3 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Alcuni campi di applicazione
La ricerca della similarita tra documenti e un problema ricorrente in uncontesto di Data Mining, e puo essere ritrovato in molti ambiti:
Near-duplicate detection (Ricerca dei duplicati, problemi di plagio)
Entity Resolution (Ricerca di profili simili in contesti differenti es.Twitter/Facebook)
Community Detection (Ricerca di comunita di utenti, in base ainteressi comuni)
Suggerimento di Sinonimi
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 4 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Locality Sensitive Hashing
Cos’e
Algoritmo di riduzione dello spazio vettoriale in un insieme di n documenti
Come funziona
3 fasi:
Shingling
MinHashing
Locality Sensitive Hashing
Definizione
Dati due insiemi S e T, una misura della similarita dei due insiemi e datadal coefficiente di Jaccard:
SIM(S,T) = |S∩T ||S∪T |
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 5 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Locality Sensitive Hashing
Cos’e
Algoritmo di riduzione dello spazio vettoriale in un insieme di n documenti
Come funziona
3 fasi:
Shingling
MinHashing
Locality Sensitive Hashing
Definizione
Dati due insiemi S e T, una misura della similarita dei due insiemi e datadal coefficiente di Jaccard:
SIM(S,T) = |S∩T ||S∪T |
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 5 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Locality Sensitive Hashing
Cos’e
Algoritmo di riduzione dello spazio vettoriale in un insieme di n documenti
Come funziona
3 fasi:
Shingling
MinHashing
Locality Sensitive Hashing
Definizione
Dati due insiemi S e T, una misura della similarita dei due insiemi e datadal coefficiente di Jaccard:
SIM(S,T) = |S∩T ||S∪T |
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 5 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
LSH: Pipeline
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 6 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
LSH: Shingling (1/3)
Obiettivo
Scomporre ogni documento in k-grammi, ossia in raggruppamenti di ktoken
Esempio
Documento: ”Oggi e una bella giornata, non piovera”
1-grammi: Oggi, e, una, bella, giornata, non, piovera
2-grammi: Oggi e, e una, una bella, bella giornata, giornata non,non piovera
3-grammi: Oggi e una, e una bella, una bella giornata, bella giornatanon, giornata non piovera
...
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 7 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
LSH: Shingling (1/3)
Obiettivo
Scomporre ogni documento in k-grammi, ossia in raggruppamenti di ktoken
Esempio
Documento: ”Oggi e una bella giornata, non piovera”
1-grammi: Oggi, e, una, bella, giornata, non, piovera
2-grammi: Oggi e, e una, una bella, bella giornata, giornata non,non piovera
3-grammi: Oggi e una, e una bella, una bella giornata, bella giornatanon, giornata non piovera
...
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 7 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
LSH: Minhashing(2/3)
Obiettivo
Costruire una firma (signature) di h interi associata ad ogni documento,in base a una famiglia H di funzioni hash casuali e indipendenti e aik-grammi individuati al passo precedente.
Algoritmo
1 Si applica una funzione hash a tutti gli shingle di un documento
2 Di tutti i valori ricavati dalle funzioni hash, viene selezionato ilminimo
3 Si ripete il procedimento per tutte le funzioni hi ∈ H
4 Al termine si avra un vettore di k interi, che rappresentano la firmadel documento
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 8 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
LSH: Minhashing(2/3)
Obiettivo
Costruire una firma (signature) di h interi associata ad ogni documento,in base a una famiglia H di funzioni hash casuali e indipendenti e aik-grammi individuati al passo precedente.
Algoritmo
1 Si applica una funzione hash a tutti gli shingle di un documento
2 Di tutti i valori ricavati dalle funzioni hash, viene selezionato ilminimo
3 Si ripete il procedimento per tutte le funzioni hi ∈ H
4 Al termine si avra un vettore di k interi, che rappresentano la firmadel documento
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 8 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
LSH: Locality Sensitive Hashing(3/3)
Obiettivo
Raggruppare i documenti simili in base alle firme ottenute dal Minhashing
Algoritmo
1 La matrice delle firme viene divisa in b bande di r righe ciascuna
2 I numeri b e r sono scelti in modo tale che b ∗ r = h
3 I documenti che avranno corrispondenza totale in almeno una delle bbande rispettano la regola di similarita, per cui verranno raggruppatinegli stessi bucket
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 9 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
LSH: Locality Sensitive Hashing(3/3)
Obiettivo
Raggruppare i documenti simili in base alle firme ottenute dal Minhashing
Algoritmo
1 La matrice delle firme viene divisa in b bande di r righe ciascuna
2 I numeri b e r sono scelti in modo tale che b ∗ r = h
3 I documenti che avranno corrispondenza totale in almeno una delle bbande rispettano la regola di similarita, per cui verranno raggruppatinegli stessi bucket
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 9 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
LSH: Matrice delle firme
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 10 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
LSH: raggruppamenti in bucket
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 11 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
LSH: Scelta dei valori b ed r
Obiettivo
Scelta ottimale dei parametri b e r in base all’obiettivo
Scelta
In base all’obiettivo che si vuole raggiungere, si sceglieranno dei valori dib e r piu o meno alti
aumentando la larghezza di una banda (r), si avra una similarita piurestrittiva (duplicate o near-duplicate)
aumentando il numero di bande (b), si avra una similarita piu lasca
si dimostra che la probabilita di collisione dei valori hash di duedocumenti distinti e uguale al coefficiente di Jaccard dei duedocumenti
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 12 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
LSH: Scelta dei valori b ed r
Obiettivo
Scelta ottimale dei parametri b e r in base all’obiettivo
Scelta
In base all’obiettivo che si vuole raggiungere, si sceglieranno dei valori dib e r piu o meno alti
aumentando la larghezza di una banda (r), si avra una similarita piurestrittiva (duplicate o near-duplicate)
aumentando il numero di bande (b), si avra una similarita piu lasca
si dimostra che la probabilita di collisione dei valori hash di duedocumenti distinti e uguale al coefficiente di Jaccard dei duedocumenti
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 12 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
LSH: Curva S-Shaped
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 13 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Implementazione LSH - Hadoop / Spark
Dettagli implementativi
Implementazione in Java di LSH a 2 fasi (algoritmo originale)
Implementazione in Java di LSH a 4 fasi per migliorare la precisionedell’algoritmo
Ricerca di similarita tra documenti (tweet)
Ricerca di similarita tra utenti, in base al contenuto dei loro tweet
Implementazioni sia in ambiente Hadoop, sia in ambiente Spark
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 14 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Comparazione tempi - Hadoop vs Spark 1/2
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 15 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Comparazione tempi - Hadoop vs Spark 2/2
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 16 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Grafi - Qualche definizione 1/2
Distanza tra nodi
Dato un grafo G = (V,E) di n nodi e m archi, la distanza d(u, v) tradue nodi u, v ∈ V e la lunghezza del cammino minimo da u verso v.
Diametro di un grafo
Il diametro d(G) e la distanza massima tra due nodi u, v ∈ V . In altreparole e il cammino minimo piu lungo all’interno del grafo.
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 17 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Grafi - Qualche definizione 1/2
Distanza tra nodi
Dato un grafo G = (V,E) di n nodi e m archi, la distanza d(u, v) tradue nodi u, v ∈ V e la lunghezza del cammino minimo da u verso v.
Diametro di un grafo
Il diametro d(G) e la distanza massima tra due nodi u, v ∈ V . In altreparole e il cammino minimo piu lungo all’interno del grafo.
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 17 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Grafi - Qualche definizione 1/2
Distanza tra nodi
Dato un grafo G = (V,E) di n nodi e m archi, la distanza d(u, v) tradue nodi u, v ∈ V e la lunghezza del cammino minimo da u verso v.
Diametro di un grafo
Il diametro d(G) e la distanza massima tra due nodi u, v ∈ V . In altreparole e il cammino minimo piu lungo all’interno del grafo.
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 17 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Grafi - Qualche definizione 2/2
Diametro effettivo
Il diametro effettivo deff(G) e definito come la distanza minima per cuisono raggiungibili il 90% di tutte le coppie di nodi u, v ∈ V .
Firma di un nodo
La firma sig(u) di un nodo u ∈ V e definita come una sequenza di kinteri che identifica il nodo u.
Hop-plot
Dato un grafo G = (V,E), l’hop plot di G descrive la quantita di coppiedi nodi raggiungibili in al piu h passi.
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 18 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Grafi - Qualche definizione 2/2
Diametro effettivo
Il diametro effettivo deff(G) e definito come la distanza minima per cuisono raggiungibili il 90% di tutte le coppie di nodi u, v ∈ V .
Firma di un nodo
La firma sig(u) di un nodo u ∈ V e definita come una sequenza di kinteri che identifica il nodo u.
Hop-plot
Dato un grafo G = (V,E), l’hop plot di G descrive la quantita di coppiedi nodi raggiungibili in al piu h passi.
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 18 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Grafi - Qualche definizione 2/2
Diametro effettivo
Il diametro effettivo deff(G) e definito come la distanza minima per cuisono raggiungibili il 90% di tutte le coppie di nodi u, v ∈ V .
Firma di un nodo
La firma sig(u) di un nodo u ∈ V e definita come una sequenza di kinteri che identifica il nodo u.
Hop-plot
Dato un grafo G = (V,E), l’hop plot di G descrive la quantita di coppiedi nodi raggiungibili in al piu h passi.
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 18 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Stima del diametro effettivo di un grafo
Obiettivo
Dato un grafo G = (V,E), si vuole avere una stima del suo diametroeffettivo.
Idea
Assegnare una firma ad ogni nodo del grafo, per poi utilizzare la tecnicadel minhashing per stimarne il diametro effettivo.
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 19 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Stima del diametro effettivo di un grafo
Obiettivo
Dato un grafo G = (V,E), si vuole avere una stima del suo diametroeffettivo.
Idea
Assegnare una firma ad ogni nodo del grafo, per poi utilizzare la tecnicadel minhashing per stimarne il diametro effettivo.
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 19 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Fase 1: Signature dei nodi del grafo
Obiettivo
Costruire una firma (signature) per ogni nodo u ∈ V di k interi,utilizzando una famiglia H di k funzioni hash indipendenti.
Pseudo Codice
foreach u ∈ V doforeach hk ∈ H do
SIGk(u) := hk(u)endSIG(u) := [SIG1(u), ..., SIGk(u)]
end
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 20 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Fase 1: Signature dei nodi del grafo
Obiettivo
Costruire una firma (signature) per ogni nodo u ∈ V di k interi,utilizzando una famiglia H di k funzioni hash indipendenti.
Pseudo Codice
foreach u ∈ V doforeach hk ∈ H do
SIGk(u) := hk(u)endSIG(u) := [SIG1(u), ..., SIGk(u)]
end
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 20 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Fase 2: Signature del grafo
Obiettivo
Costruire la firma SIG(G) del Grafo G, prendendo il valore minimo diogni funzione hash, ∀u ∈ V .
Pseudo Codice
foreach u ∈ V doforeach k (funzione hash ) do
if SIGk(u) < SIGk(G) thenSIGk(G) := SIGk(u) ;
end
end
endSIG(G) := [SIG1(G), ..., SIGk(G)]
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 21 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Fase 2: Signature del grafo
Obiettivo
Costruire la firma SIG(G) del Grafo G, prendendo il valore minimo diogni funzione hash, ∀u ∈ V .
Pseudo Codice
foreach u ∈ V doforeach k (funzione hash ) do
if SIGk(u) < SIGk(G) thenSIGk(G) := SIGk(u) ;
end
end
endSIG(G) := [SIG1(G), ..., SIGk(G)]
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 21 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Fase 3: Aggiornamento della firma dei nodi
Obiettivo
Si vuole aggiornare la firma SIG(u) di ogni nodo u ∈ V , calcolando ilminhash di ogni elemento della firma del nodo, con i corrispettivi dei nodiadiacenti.
Pseudo Codice
foreach u doforeach u→ v ∈ E do
SIG(u) := Merge(SIG(u), SIG(v))end
end
dove la funzione Merge agisce come di seguito:
foreach k (funzione hash ) doSIGk(u) := min{SIGk(u), SIGk(v)}
end
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 22 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Fase 3: Aggiornamento della firma dei nodi
Obiettivo
Si vuole aggiornare la firma SIG(u) di ogni nodo u ∈ V , calcolando ilminhash di ogni elemento della firma del nodo, con i corrispettivi dei nodiadiacenti.
Pseudo Codice
foreach u doforeach u→ v ∈ E do
SIG(u) := Merge(SIG(u), SIG(v))end
end
dove la funzione Merge agisce come di seguito:
foreach k (funzione hash ) doSIGk(u) := min{SIGk(u), SIGk(v)}
end
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 22 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Analisi
Obiettivo
Si vuole avere una stima del numero di coppie raggiungibili nel grafo|N(G))| in al piu un passo.
Algoritmo
|N(u))| = n · Jaccard(SIG(G), SIG(u));|N(G))| = n ·
∑u Jaccard(SIG(G), SIG(N(u));
Costruzione Hop Plot
Iterando questo procedimento h volte, e possibile ottenere una stima delnumero di coppie raggiungibili del grafo in al piu h passi, permettendo dicostruire l’hop plot del grafo.
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 23 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Analisi
Obiettivo
Si vuole avere una stima del numero di coppie raggiungibili nel grafo|N(G))| in al piu un passo.
Algoritmo
|N(u))| = n · Jaccard(SIG(G), SIG(u));|N(G))| = n ·
∑u Jaccard(SIG(G), SIG(N(u));
Costruzione Hop Plot
Iterando questo procedimento h volte, e possibile ottenere una stima delnumero di coppie raggiungibili del grafo in al piu h passi, permettendo dicostruire l’hop plot del grafo.
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 23 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Analisi
Obiettivo
Si vuole avere una stima del numero di coppie raggiungibili nel grafo|N(G))| in al piu un passo.
Algoritmo
|N(u))| = n · Jaccard(SIG(G), SIG(u));|N(G))| = n ·
∑u Jaccard(SIG(G), SIG(N(u));
Costruzione Hop Plot
Iterando questo procedimento h volte, e possibile ottenere una stima delnumero di coppie raggiungibili del grafo in al piu h passi, permettendo dicostruire l’hop plot del grafo.
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 23 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Conclusioni
Riepilogo statistiche
L’algoritmo presentato rende possibili diverse analisi statistiche sul grafodi input:
|N(u, h))| ∀u ∈ V,∀h|N(h))| ∀hd ≤ dMAX(G)
deff(G)
davg(G)
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 24 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Benchmarking dell’algoritmo con Spark GraphX
Alcuni dettagli implementativi
Implementazione dell’algoritmo nel linguaggio Scala, nativo di Spark
Utilizzo della libreria GraphX per la gestione dei grafi
Implementazione delle funzioni hash mediante la libreria Guava diGoogle (murmur 32)
Dataset utilizzati
Black Friday World Series Italian sample
Nodi 2.7E+06 4.74E+05 2.54E+06Archi 3.8E+06 8.40E+05 1.37E+07
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 25 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Benchmarking dell’algoritmo con Spark GraphX
Alcuni dettagli implementativi
Implementazione dell’algoritmo nel linguaggio Scala, nativo di Spark
Utilizzo della libreria GraphX per la gestione dei grafi
Implementazione delle funzioni hash mediante la libreria Guava diGoogle (murmur 32)
Dataset utilizzati
Black Friday World Series Italian sample
Nodi 2.7E+06 4.74E+05 2.54E+06Archi 3.8E+06 8.40E+05 1.37E+07
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 25 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Benchmarking dell’algoritmo con Spark GraphX
Risultati
Average Diametro Diametro CoppieDistance Effettivo 90% raggiungibili
World SeriesValori esatti 8,463 11,205 27 2, 577 · 109
Stima 8,480 11,174 25 2, 562 · 109
Italian SampleValori esatti 6,398 9,315 62 3, 877 · 1011
Stima 6,419 9,318 54 3, 894 · 1011
Black FridayValori esatti 16,124 22,722 70 11, 300 · 109
Stima 16,369 22,824 66 11, 703 · 109
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 26 / 27
LSH - Locality Sensitive Hashing
IntroduzioneLSH per similarita tra documentiBenchmarking: Hadoop vs SparkLSH per analisi statistiche su grafiBenchmarking: Spark GraphX
Ringraziamenti
Ringraziamenti
Tutti gli studi e i lavori di analisi sono stati effettuati all’interno delLaboratorio Big Data di ISCOM.
Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Simone Angelini - Francesca Capri 27 / 27
Recommended