Εύρεση & ιαχείριση Πληροφορίας στον Παγκόσµιο Ιστό ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη η: 09/0/00 Ζητήµατα Μεγάλης-Κλίµακας Υλοποίησης του PageRank Αρχιτεκτονική Μηχανής Αναζήτησης
Ευρετήρια (Indexes) Ευρετήρια Περιεχοµένου (αντιστραµµένο ευρετήριο) Βοηθητικά Ευρετήρια Θέσης (γεωγραφικής) Εικόνων Ευρετήρια Συνδεσµολογίας (Link indexes) Ποιες ποσότητες µας ενδιαφέρουν? Οντότητα H a v T π (k)t Περιγραφή Αραιός πίνακας υπερσυνδέσµων Αραιό δυαδικό διάνυσµα dangling κόµβων Πυκνό διάνυσµα προσωποποίησης, εκτός εάν v T =e T /n Πυκνό διάνυσµα PageRank τρέχουσας επανάληψης της power µεθόδου Αποθήκευση nnz(h) D ακέραιοι n doubles n doubles Αποθήκευση H (/) Εάν χωράει στην κύρια µνήµη, τότε OK Εάν όχι, τότε Συµπίεση, ώστε να χωρέσει στην κύρια µνήµη και επινόηση µιας νέας µορφής του PageRank για να εκτελείται πάνω στη συµπιεσµένη µορφή Αποτελεσµατική υλοποίηση του I/O στα µη συµπιεσµένα δεδοµένα Ακόµα και για µικρά γραφήµατα, για τα οποία ο H χωράει στην κύρια µνήµη, απαιτούνται έξυπνες τεχνικές για να ελαττωθεί ο φόρτος εργασίας Για τον random surfer, ο H µπορείναγραφείως H = D - L D: κρατά τους outdegrees των κόµβων [D - ] ii = /d ii, εάν δεν είναι dangling κόµβος [D - ] ii = /d ii, εάν είναι dangling κόµβος L: πίνακας γειτνίασης (adjacency matrix) Αποθήκευση H (/) Με τον τρόπο αυτό εξοικονοµείται χώρος: αντί για nnz(h) Με τον τρόπο αυτό επιταχύνεται η εκτέλεση της power µεθόδου: π (k+)t = απ (k)t H + (απ (k)t a+-α)v T Το π (k)t H απαιτεί nnz(h) πολλαπλασιασµούς και nnz(h) προσθέσεις Με χρήση του diag(d - ), το π (k)t H µπορεί να επιτευχθεί ως π (k)t D - L = π (k)τ.* (diag(d - ))L Το πρώτο κοµµάτι απαιτεί n πολλαπλασιασµούς, και ο πολλαπλασιασµός µε το L απαιτεί nnz(h) προσθέσεις. Άρα, κερδίσαµε nnz(h)-n πολλαπλασιασµούς υστυχώς, αυτή η αποσύνθεση ισχύει µόνο για τον random surfer Για τον intelligent surfer πρέπει να καταφύγουµε στις τεχνικές compressed row (column) storage Κερδίζουµε χώρο, αλλά χάνουµε σεεπεξεργασία
Compressed Row Storage (CRS) (/) Απαιτούνται οι εξής πίνακες val: αποθηκεύει τις µη-µηδενικές τιµές col_ind: αποθηκεύει τους αντίστοιχους δείκτες της στήλης όπου εµφανίζονται µη-µηδενικές τιµές row_ptr: αποθηκεύει τις θέσεις του πίνακα val όπου αρχίζουν νέες γραµµές Παραδοσιακά: row_ptr(n+) = nnz(val) + Ισχύει ότι: row_ptr(i+) row_ptr(i) = αριθµός των µη- µηδενικών τιµών που υπάρχουν στην i-οστή γραµµή Για έναν πίνακα Α mxn : η CRS απαιτεί nnz(α)+mµ+, αντί για το mxn που απαιτεί η παραδοσιακή αποθήκευση Ανάλογα ισχύουν και για τη CCS Compressed Row Storage (CRS) (/) val 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. col_ind row_ptr 9 0 8 0: nnz(val) 0. 8 Λίστες γειτνίασης (Adjacency Lists) Adjacency list των στηλών του πίνακα H (ή τουl): θυµηθείτε ότι κάθε στήλη κρατά την inlink πληροφορία για την ιστοσελίδα i Ο παρακάτω πίνακας είναι η adjacency list αναπαράσταση για το διπλανό γράφηµα Κόµβος Εισερχόµενοι σύνδεσµοι από,,,, 9
Η τεχνική του κενού (The gap technique) Για τη συµπίεση των adjacency lists, δυο σηµαντικές τεχνικές Gap technique Reference encoding technique Η gap τεχνική εκµεταλλεύεται την τοπικότητα (locality) των διασυνδεδεµένων ιστοσελίδων Ησελίδα πηγή και η σελίδα προορισµός είναι κοντά λεξικογραφικά, δηλ., η σελίδα00 είναι πιθανότερο να έχει εισερχόµενους υπερσυνδέσµους από τις σελίδες,,,, κ.τ.λ., και είναι λιγότερο πιθανό να έχει συνδέσµουςαπότιςπ.χ., 9,.9.00 Κόµβος 00 Εισερχόµενοι σύνδεσµοι από 0 0 Αποθηκεύεται η ετικέτα της πρώτης σελίδας που έχει σύνδεσµο προςτην00, δηλ., η, και κατόπιν µόνο τα κενά µετα ξύ διαδοχικών σελίδων 0 Ητεχνικήτουreference encoding (/) Εκµεταλλεύεται την οµοιότητα µεταξύ των ιστοσελίδων Εάν οι ιστοσελίδες P i και P j έχουν παρόµοιες adjacency lists µπορούµε να αναπαραστήσουµε τη λίστα της P j µεόρουςτηςp i Η P i λέγεται reference page της P j Οι ιστοσελίδες του ίδιου domain συχνά έχουν τους ίδιους εξερχόµενους υπερσυνδέσµους Θεωρήστε το παρακάτω παράδειγµα: 89 0 90 90 0 0 90 reference encode P j σε σχέση µε τηp i 000 0 Ητεχνικήτουreference encoding (/) ηµιουργούµε δυοδιανύσµατα sharing vector (binary): Ίδιο µήκος µε την adjacency list της P i Περιέχει στην k-οστή θέση, εάν το k-οστό στοιχείο της λίστας της P i εµφανίζεται στη λίστα της P j dissimilarity vector Περιέχει όλα τα στοιχεία της λίστας της P j που δεν εµφανίζονται στη λίστα της P i Το sharing vector είναι πιο οικονοµικό από την adjacency λίστα Ηαποτελεσµατικότητα της κωδικοποίησης εξαρτάται από τον αριθµό των διαφορετικών σελίδων Μεγάλη επικάλυψη σηµαίνει µικρό dissimilarity vector εν είναι εύκολο να εντοπίσουµε για την κάθε σελίδα µια reference page
Επόµενη διάλεξη Θα συνεχίσουµε µε περισσότερα ζητήµατα υλοποίησης, σχετικά µε: Σύγκλιση Ακρίβεια Dangling κόµβους Μοντελοποίηση Back button Νέο κεφάλαιο: Επιτάχυνση του PageRank Adaptive power method Extrapolation Aggregation Άλλες αριθµητικές µεθόδους