Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una...

46
LSH - Locality Sensitive Hashing Big Data: tecnologie, metodologie e applicazioni per l’analisi dei dati massivi Ministero Dello Sviluppo Economico Istituto Superiore delle Comunicazioni e delle Tecnologie dell’Informazione Seminario ISCOM Simone Angelini Fondazione Ugo Bordoni Francesca Capri Universit` a 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

Transcript of Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una...

Page 1: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 2: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 3: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 4: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 5: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 6: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 7: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 8: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 9: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 10: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 11: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 12: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 13: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 14: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 15: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 16: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 17: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 18: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 19: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 20: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 21: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 22: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 23: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 24: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 25: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 26: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 27: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 28: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 29: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 30: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 31: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 32: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 33: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 34: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 35: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 36: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 37: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 38: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 39: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 40: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 41: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 42: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 43: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 44: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 45: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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

Page 46: Big Data: tecnologie, metodologie e applicazioni per l'analisi ......Dati due insiemi S e T, una misura della similarit a dei due insiemi e data dal coe ciente di Jaccard: SIM(S,T)

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