Η έννοια Big Data εμφανίζεται σε ολοένα και περισσότερους κλάδους στις μέρες μας. Η ποσότητα
της πληροφορίας που παράγεται καθημερινά αυξάνει συνεχώς και μάλιστα με ρυθμούς ταχύτερους
απ’ ότι μεγαλώνουν τα διαθέσιμα μέσα αποθήκευσης ή βελτιώνονται οι γνωστές τεχνικές για την
ανάλυση και την επεξεργασία τους.
Η ανάγκη λοιπόν για τεχνικές που να επιτυγχάνουν ανάλυση μεγάλων ποσοτήτων
δεδομένων σε υψηλές ταχύτητες και καταλαμβάνοντας όσο το δυνατόν λιγότερο χώρο κρίνεται
κρίσιμη. Για το σκοπό αυτό έχουν προταθεί διάφορες λύσεις. Μία εξ’ αυτών, και αυτή με την οποία
θα ασχοληθούμε στην παρούσα εργασία, είναι το Data Sketching. Η τεχνική αυτή επιτρέπει την
αποθήκευση και ανάκτηση πληροφορίας με τρόπο πιθανοτικό, απαιτώντας πολύ μικρό χώρο
συγκριτικά με πιο “παραδοσιακές” μεθόδους, και μάλιστα επιτυγχάνει κάτι τέτοιο διατηρώντας
εξαιρετικά επίπεδα χρονικής πολυπλοκότητας.
Το πρόβλημα που θα χρησιμοποιηθεί ως οδηγός στην προσπάθεια βαθύτερης κατανόησης
και στην έρευνα γύρω από το Data Sketching είναι αυτό του υπολογισμού των in-degrees των
κόμβων ενός γράφου (κοινωνικού γράφου στη συγκεκριμένη περίπτωση). Για το σκοπό αυτό,
επιλέγουμε τη μέθοδο Count Min Sketch η οποία επιτρέπει, για κάθε κόμβο, την αποθήκευση του
πλήθους των εισερχόμενων σε αυτόν ακμών, με τρόπο πιθανοτικό, επιτυγχάνοντας υψηλά επίπεδα
απόδοσης.
Καθώς η παραπάνω μέθοδος απαιτεί κατάλληλη, σε σχέση με τα χαρακτηριστικά του
γράφου στον οποίο εφαρμόζεται, επιλογή των παραμέτρων της προκειμένου να επιστρέψει καλά
αποτελέσματα, κρίνεται χρήσιμη η αναζήτηση ενός τρόπου που να μην απαιτεί πρότερη γνώση του
γράφου, αλλά να αποτελεί universal λύση. Προτείνεται εδώ ένας αλγόριθμος ο οποίος δεσμεύοντας
αρχικά μικρό ποσοστό της μνήμης, αυξάνει δυναμικά το χώρο που καταλαμβάνει ούτως ώστε να
διατηρείται η απαραίτητη ακρίβεια των αποτελεσμάτων. Κάτι τέτοιο αυξάνει τις απαιτήσεις σε
μνήμη, όμως ο τελικός χώρος που καταλαμβάνεται εξακολουθεί να είναι μικρότερος απ’ αυτόν που
θα απαιτούνταν από μια ντετερμινιστική δομή δεδομένων, ενώ ο χρόνος και η ακρίβεια
προσεγγίζουν τα κλασσικά επίπεδα μιας Count Min υλοποίησης που εφαρμόζεται σε γνωστό
γράφο.
Οι κοινωνικοί γράφοι ακολουθούν Power Law κατανομή. Το συγκεκριμένο τους
χαρακτηριστικό, όπως θα φανεί και στη συνέχεια, καθιστά ιδιαίτερα υψηλές τις απαιτήσεις σε
ακρίβεια του αλγορίθμου. Έτσι, τα αποτελέσματα της παρούσας εργασίας μπορούν, με μικρές
αλλαγές, να γενικευτούν και να χρησιμοποιηθούν και για άλλες περιπτώσεις, πλην των κοινωνικών
δικτύων, οι οποίες εμφανίζουν παρόμοιες ανάγκες σε ακρίβεια.
The notion of Big Data becomes more and more important nowadays. The growth of data
production is increasing significantly overcoming the increase in available data storages or the
progress in known techniques for their analysis.
As a result, there’s huge demand for research in techniques that can achieve efficient
handling of such huge data volumes in a way that requests limited space and time recourses.
Various solutions have been proposed; one of which is Data Sketching. This technique makes, in a
probabilistic manner, the storage and retrieval of information possible in a way that is both space
and time efficient in comparison to “traditional" solutions.
In order to better understand and research the idea of Data Sketching, we are going to use, as
a guide, the problem of finding a graph’s (a social graph is chosen here) in-degrees for each
particular node. To achieve this, we have chosen the method Count Min Sketch (a stochastic Data
Sketching algorithm) which is ideal for the storage of all incoming edges.
Count Min Sketch requires the best possible, according to the special characteristics of the
graph in question, selection of its parameters. So, researching a universal solution which could
achieve highly accurate results without the need of any pre-information would be hugely useful. In
this thesis, an algorithm is proposed which, starting from allocating a small amount of memory,
increases its space dynamically in a way that is preserving the accuracy necessary. The memory
demands of such an application are higher but the total space needed remains less than the one of a
deterministic database algorithm. The time complexity and the results’ accuracy approximate the
ones of a classic Count Min implementations on a pre-known large graph.
Social graphs (at least the ones that are used here) tend to follow the Power Law
distribution. As explained later, this results in high needs of accuracy. As a result, the conclusions
presented here and the algorithm proposed can be used, with small adjustments, in all applications
(not only social network ones) with similar accuracy needs.