Διαχείριση Δεδομένων και Παγκόσμιος Ιστός IR και Μηχανές αναζήτησης
Information Retrieval Μοντέλο Vector Space Ευρετήρια για ανεύρεση κειμένων Μηχανές αναζήτησης στον Ιστό MapReduce
Information Retrieval και ΒΔ IR: ανεύρεση κειμένων σε μεγάλες συλλογές Από την δεκαετία του 50 Πορεία ανεξάρτητη από τις ΒΔ Μοντέλο: κάθε έγγραφο είναι μια συλλογή λέξεων (όρων) ΒΔ: η διαχείριση κειμένων είναι μια νέα πρόκληση Τα κείμενα αποτελούν μια τεράστια πηγή δεδομένων στον Ιστό Έρευνα στις ΒΔ προς την κατεύθυνση αυτή Συμπέρασμα: ο Ιστός φέρνει τις ΒΔ πιο κοντά στο IR Η XML βρίσκεται ακριβώς στην μέση, σαν συνδετικός κρίκος Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Διαφορετικοί κόσμοι: Ιστός και IR Scalability IR: δεκάδες χιλιάδες κείμενα Ιστός: δισεκατομύρια σελίδες Ομογένεια IR: διαχείριση εγγράφων από επαγγελματίες, προσεκτική προετοιμασία, ταξινόμηση σε ομογενείς κατηγορίες Ιστός: δημιουργία εγγράφων και αναζήτηση από απλούς χρήστες, θεματικά ανομοιογενή έγγραφα, περιέχουν πολυμεσική πληροφορία Η είσοδος της XML... ...πρόσθεσε μεταδεδομένα (περιγραφική πληροφορία) Από ελεύθερο κείμενο σε “textual objects” Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Διαφορετικοί κόσμοι: ΒΔ και IR (1) Κοινός καταρχήν στόχος: Υποστήριξη αναζητήσεων πάνω σε μεγάλες συλλογές δεδομένων Αναζητήσεις (searches) αντί ερωτημάτων (queries) IR: search terms πάνω σε συλλογή αδόμητων κειμένων, ranking των αποτελεσμάτων ΒΔ: ευρύ φάσμα ερωτημάτων με ακριβή σημασιολογία, αυστηρά δομημένα δεδομένα, unranked αποτελέσματα Πλεονεκτήματα IR: δεν είναι απαραίτητη η γνώση σχήματος και γλώσσας ερωτημάτων ΒΔ: τα αποτελέσματα είναι πλήρη και ακριβή Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Διαφορετικοί κόσμοι: ΒΔ και IR (2) Ενημερώσεις και δοσοληψίες IR: προσανατολισμός σε read-only workload, χωρις δοσοληψίες IR: περιοδική ενημέρωση ή επαναδημιουργία ευρετηρίων IR: σχετικά έγγραφα μπορεί να μην εντοπίζονται λόγω μη ενημερωμένων ευρετηρίων ΒΔ: προσανατολισμός και σε update-intensive workload Ερευνητική δραστηριότητα IR: μέθοδοι για ranking, χρήση γλωσσικών τεχνολογιών για βελτίωση των αναζητήσεων ΒΔ: επεξεργασία ερωτημάτων, έλεγχος ταυτοχρονισμού, κτλ. Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Information Retrieval Μοντέλο Vector Space Ευρετήρια για ανεύρεση κειμένων Μηχανές αναζήτησης στον Ιστό MapReduce
Αναζητήσεις Δύο κατηγορίες ερωτημάτων πάνω σε συλλογές εγγράφων στα συστήματα IR Boolean queries: βρες όλα τα έγγραφα που ικανοποιούν μια Boolean έκφραση database AND (Microsoft OR IBM) Οταν μια μηχανη αναζήτησης αναφέρει «βρέθηκαν 10000 έγγραφα», αυτό είναι το μέγεθος του αποτελέσματος ενός Boolean query (ισως «κομμένο» λόγω ανώτατου επιτρεπτού ορίου) Ranked queries: ο χρήστης δίνει μερικούς όρους, και το αποτέλεσμα είναι μια λίστα εγγράφων ταξινομημένων ως προς «σχετικότητα» “Microsoft, IBM” Αν το έγγραφο περιέχει ΙΒΜ είναι σχετικό Αν περιέχει πολλά ΙΒΜ, ή και ΙΒΜ και Microsoft, ακόμη πιο σχετικό Επέκταση: βρες έγγραφα σχετικά με μια πρόταση φυσικής γλώσσας. Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Boolean queries Πως αντιμετωπίζουμε το «όρος1» ή «όρος2»; Ένωση των δύο συνόλων εγγράφων Το «όρος1» και «όρος2»; Τομή των δύο συνόλων εγγράφων Αλφαβητική ταξινομηση και συγχώνευση των λιστών Το «όρος1» and not «όρος2»; Αφαίρεση, και πάλι μέσω ταξινόμησης Το «όρος1» or not «όρος2»; Ενωση του «όρος1» και του « not όρος2» Ολα τα έγγραφα που δεν περιέχουν το «όρος2» - πάρα πολλά Συνήθως δεν επιτρέπεται Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Μοντέλο Vector Space (1) Βασική λειτουργία ενός μηχανισμού IR: ranking του αποτελέσματος ενός Boolean query Το μοντέλο vector space παρέχει το θεωρητικό πλαίσιο Κάθε έγγραφο στην συλλογη αναπαρίσταται από ένα διάνυσμα που λέγεται document vector Υπολογισμός document vector Θεωρούμε όλους τους όρους που εμφανίζονται στην συλλογή (n τον αριθμο) Ενα document vector αποτελείται από μια τιμή για κάθε τέτοιον όρο Απλούστερη μορφή: αν ο όρος j εμφανίζεται k φορές στο έγγραφο i, τότε το document vector του i περιέχει την τιμή k στην θέση j Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Μοντέλο Vector Space (2) Docid Document 1 agent James Bond good agent 2 agent mobile computer 3 James Madison movie 4 James Bond movie Docid agent Bond computer good James Madison mobile movie 1 2 3 4 Συνεπώς: Κάθε έγγραφο είναι ένα σημείο στον n-διάστατο χώρο Παραδοχή: έγγραφα που βρίσκονται «κοντά» είναι παρόμοια Τα document vectors είναι sparse: τιμη 0 για όρους που δεν υπάρχουν σε ένα έγγραφο Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Term Frequency (TF) TF ενός εγγράφου για κάποιον όρο, ειναι ο αριθμός εμφανίσεων του όρου στο έγγραφο ...και συνεπώς η τιμή για έναν όρο σε ένα document vector Σημασία: συχνοί όροι σημαντικότεροι για τον χαρακτηρισμό ενός εγγράφου Ομως, κάποιοι όροι εμφανίζονται συχνά σε όλη την συλλογή Η εμπειρία δείχνει κατανομή Zipfian Υπερβολικά κοινοι όροι δεν είναι χρήσιμοι στις αναζητήσεις Π.χ.: “the”, HTML tags όπως <H1> Stop words: προεπεξεργασία εγγράφων και απομάκρυνση Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
TF / IDF Καποιοι όροι εμφανίζονται πολύ συχνα σε μια συλλογή... ...ακόμη και μετά την απομάκρυνση των stop words πχ. Linux, kernel, σε συλλογή για το Linux Αν μια αναζήτηση περιέχει και τους δύο όρους: Δεδομένου ότι το Linux είναι συχνοτερο από το kernel… …καλύτερα αποτελέσματα αν δώσουμε περισσότερη σημασία στα έγγραφα που περιέχουν το kernel TF * IDF αντί για TF στα document vectors Inverse Document Frequency (IDF): log (N / nj) N συνολικός αριθμός εγγράφων, nj αριθμός εγγράφων που περιέχουν τον όρο j Αποτέλεσμα: αυξημένο βάρος σε σπάνιους όρους Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Σημασία του IDF Το IDF δίνει υψηλές τιμές για σπάνιες λέξεις, και χαμηλές τιμές για κοινές λέξεις Για μια συλλογή 10000 εγγράφων: Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Υπολογισμός TF / IDF Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Κανονικοποίηση μεγέθους Η σημασία ενος όρου εξαρτάται και από το μέγεθος του εγγράφου Εστω Ε1, Ε2 δυο έγγραφα με Ε1 < Ε2 Εστω οτι το βάρος TF/IDF για έναν όρο Ο είναι το ίδιο για τα Ε1, Ε2 Διαισθητικά: το κανονικοποιημένο βάρος του Ο πρέπει να είναι μικρότερο για το Ε2 Εξήγηση: μεγαλύτερα έγγραφα έχουν πιο πολλούς όρους, και περισσότερες εμφανίσεις ενός όρου Κανονικοποίηση μεγέθους: όσο το μέγεθος και η συχνότητα ενός όρου j αυξάνει, η σημασία του όρου μειώνεται t ο αριθμός όρων στην συλλογή w το βάρος TF/IDF χωρις κανονικοπ. w* το βάρος με κανονικοποίηση Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Κανονικοποίηση μεγέθους στον Ιστό Στον Ιστό παίρνουμε ένα επιπλέον μέτρο Οροι που εμφανίζονται συχνότατα σε σελίδες δημιουργούν ιδιαίτερο πρόβλημα στον Ιστό Λέξεις όπως sale, free, sex, … επαναλαμβάνονται επίτηδες Για να αυξησουν την πιθανότητα ανάσυρσης της σελίδας στα αποτελέσματα μιας αναζήτησης Ετσι οι μηχανές αναζήτησης επιβάλλουν μια μέγιστη τιμή στις συχνότητες (TF) των όρων (συνήθως 2 ή 3) Συμπέρασμα: αντιστοίχηση εγγράφων σε διανύσματα που τα χαρακτηρίζουν Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Ranking Ενα ranked query μπορεί να θεωρηθεί σαν έγγραφο... ...αφού είναι μια συλλογή όρων Συνεπώς: χρήση ομοιότητας εγγράφων (document similarity) για την ταξινόμηση των αποτελεσμάτων Το έγγραφο που είναι πιο όμοιο με το query επιστρέφεται πρώτο Κάθε έγγραφο αντιστοιχεί σε ένα διάνυσμα στον t- διάστατο χώρο t ο αριθμός όρων στην συλλογή Κάθε άξονας αντιστοιχεί σε έναν όρο Κοντινά σημεία υποδηλώνουν όμοια έγγραφα Επιπλέον στον Ιστό, τα links δίνουν μια εικόνα της ποιότητας μιας σελίδας Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Ομοιότητα εγγράφων Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Υπολογισμός «σχετικότητας» Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Παράδειγμα Term B Q = (0.4,0.8) D1=(0.8,0.3) D2=(0.2,0.7) D2 Q D1 0.2 0.6 0.8 1.0 Term A Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Ακρίβεια & Ευστοχία Ακρίβεια (precision) και ευστοχία (recall): Τα συνήθη κριτήρια αξιολόγησης συστημάτων IR Ακρίβεια: το ποσοστό των εγγράφων του αποτελέσματος που είναι πράγματι σχετικά με το ερώτημα Ευστοχία: το ποσοστό των σχετικών εγγράφων στην συλλογή που ανακτήθηκαν στα αποτελέσματα Στόχος η μεγάλη ακρίβεια με παράλληλα υψηλή ευστοχία Η τέλεια ευστοχία είναι εύκολη αν η ακρίβεια είναι πολύ χαμηλή: επιστρέφουμε πάντα όλα τα έγγραφα της συλλογής Αντίθεση με ΒΔ: απόλυτη ακρίβεια και ευστοχία ...λόγω αυστηρής σημασιολογίας Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Κριτήρια στον Ιστό Η ευστοχία στον Ιστό δεν είναι εφαρμόσιμη όπως στο IR Το μέγεθος της συλλογής είναι δισεκατομύρια έγγραφα Προσαρμογή των κριτηρίων για μηχανές αναζήτησης Με βάση την πρώτη σελίδα των αποτελεσμάτων Web search precision: το ποσοστό των αποτελεσμάτων στην πρώτη σελίδα που είναι πράγματι σχετικά με το αποτέλεσμα Web search recall: το Ν/Μ επί τοις εκατό Μ: ο συνολικός αριθμός εγγράφων στην πρώτη σελίδα Ν: από τα Μ πιο σχετικά έγγραφα, ο αριθμός που εμφανίζεται στην πρώτη σελίδα Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Information Retrieval Μοντέλο Vector Space Ευρετήρια για ανεύρεση κειμένων Μηχανές αναζήτησης στον Ιστό MapReduce
Ευρετήρια για έγγραφα Inverted index Signature file Απλό στην κατασκευή, καλή απόδοση Αλλά απαιτεί πολύ χώρο: έως 300% το μέγεθος του εγγράφου Signature file Λίγος χώρος, άμεση απόρριψη πολλών εγγράφων “does not scale well”, λόγω σειριακής ανάγνωσης όλου του file Προ-επεξεργασία εγγράφων 1. Απομάκρυνση stop words 2. Stemming: αναγωγή λέξεων σε «κανονική» (βασική) μορφή Run, running, runner run Ελατώνει μέγεθος, αυξάνει την αποτελεσματικότητα Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Inverted index Για κάθε όρο, λίστα (inverted list) από περιγραφές των εμφανίσεων του όρου Ένας κόμβος στην λιστα, για κάθε έγγραφο που περιέχει τον όρο Ο κόμβος μπορεί να περιέχει επιπλέον πληροφορία για κάθε εμφάνιση του όρου στο συγκεκριμένο έγγραφο (πχ. θέση) Επιτρέπει την γρήγορη ανεύρεση των εγγράφων που περιέχουν έναν δεδομένο όρο Υλοποιείται σαν δύο ξεχωριστά τμήματα Postings file: όλες οι inverted lists στον δίσκο Κάθε λίστα σε ξεχωριστή σελίδα, ή και σε αλυσίδα σελίδων Lexicon: Β+ δένδρο ή hash table στην κύρια μνήμη Οι όροι μαζί με δείκτες στις αντίστοιχες inverted lists Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Παράδειγμα inverted index docid=3 2 0001 Madison 1 0001 mobile 1 0010 movie 2 0100 Bond 2 0100 computer 1 1000 agent 2 1000 good 1 1000 James 3 HASH TERM #docs point docid=1 4 docid=3 3 docid=4 3 docid=1 3 docid=4 2 Θέσεις όπου εμφανίζεται το ‘agent’ στο έγγραφο 1 docid=2 2 docid=1 1 5 docid=2 1 docid=2 3 docid=1 2 docid=3 1 docid=4 1 Lexicon (memory) Postings file (disk) Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Χρήση inverted index Ερώτημα με έναν μόνο όρο: Από το lexicon βρίσκουμε την διεύθυνση του inverted list του όρου Ανακτούμε inverted list, αντιστοιχούμε τα docids στις φυσικές διευθύνσεις, ανακτούμε τα έγγραφα Αν τα αποτελέσματα πρέπει να είναι ranked Υπολογίζουμε την σχετικότητα (relevance) ως προς το ερώτημα κάθε εγγράφου στην λίστα Ανακτούμε τα έγγραφα με την σειρά που δηλώνει η σχετικότητα Υπολογισμός σχετικότητας: TF, IDF, «μήκος εγγράφου» Αποθηκεύονται όλα στο lexicon ή στην inverted list Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Χρήση inverted index (2) Ερώτημα με πολλούς όρους Σύζευξη όρων: τομή των inverted lists (μικρότερες πρώτα) Διάζευξη όρων: ένωση των inverted lists Ranked queries με πολλους όρους Υπολογισμός σχετικότητας ως προς όλους τους όρους κάθε εγγράφου που εμφανίζεται σε κάποια από τις inverted lists των όρων Η σχετικότητα ενός εγγράφου προς όλους τους όρους υπολογίζεται με βάση την σχετικότητα ως προς κάθε όρο χωριστά (dot product) Στον Ιστό οι inverted lists είναι πολύ μεγάλες Προ-υπολογισμός σχετικότητας ως προς τον όρο, και ταξινόμηση λίστας ως προς σχετικότητα αντί για docid Θετικό: μπορούμε να πάρουμε μόνο τα πρώτα έγγραφα Αρνητικό: συντήρηση δαπανηρη σε χρόνο (προσθήκη νέου εγγράφου, αλλαγή ranking function) Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Signature files Κάθε έγγραφο αναπαρίσταται στο index από ένα signature... ...που αποτελείται από έναν σταθερό αριθμό bits (signature width) Οι όροι αντιστοιχούνται στα bits μέσω μιας hash function Ανάλογα με τους όρους που υπάρχουν στο έγγραφο «ανάβουν» τα αντίστοιχα bits Το ίδιο bit μπορεί να ανάψει δύο φορές από διαφορετικούς όρους Μια signature S1 ταιριάζει (matches) με μια signature S2 (query) αν όλα τα αναμένα bits της S2 είναι επίσης αναμένα και στην S1 Η S1 μπορεί να έχει και άλλα αναμένα bits Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Χρήση signature file Ερώτημα με σύζευξη όρων Δημιουργούμε το query signature Διατρέχουμε το signature file, ανακτούμε όλα τα έγγραφα των οποίων το signature ταιριάζει με το query signature Κάποια από αυτά τα έγγραφα δεν ανήκουν στο αποτέλεσμα... ...επειδή το signature δεν ταυτοποιεί ακριβώς τους όρους ενός εγγράφου False positive: έγγραφο του οποίου το signature ταιριάζει, αλλά που δεν περιέχει όλους τους όρους του ερωτήματος Ερώτημα με διάζευξη όρων Δημιουργούμε λίστα query signatures, ένα για κάθε όρο του ερωτήματος Ανακτούμε τα έγγραφα που ταιριάζουν με οποιοδήποτε signature της λίστας Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Παράδειγμα signature file docid Document signature 1 agent James Bond good agent 1100 2 agent mobile computer 1101 3 James Madison movie 1011 4 James Bond movie 1110 Ερωτήματα: James 1000 James and Bond 1100 movie and Madison 0011 Τόσα signatures όσα έγγραφα, τα εξετάζουμε όλα Bit slices: κάθετη κατάτμηση του signature file Εξετάζουμε μόνο μερικά bit slices για ένα ερώτημα Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Information Retrieval Μοντέλο Vector Space Ευρετήρια για ανεύρεση κειμένων Μηχανές αναζήτησης στον Ιστό MapReduce
Αναζήτηση στον Ιστό Directories και search engines Directories: ψάξιμο σε περιγραφές σελίδων, επιλεγμένων sites, οργανωμένων «με το χέρι» σε κατηγορίες Search engines: ψάξιμο στο περιεχόμενο, όλων (;) των σελίδων, οργανωμένων με βάση το ερώτημα (ranking) Τα ερωτήματα στον Ιστό είναι σύντομα Μέση τιμή 2.4 λέξεις (Αυγ. 2000), 1.7 λέξεις το 1997 Τι περιμένει ο χρήστης; «Η πρώτη-πρώτη απάντηση πρέπει να είναι αυτό που ψάχνω» Ranking στον Ιστο: πολλές παραλλαγές, οι λεπτομέρειες κρατιούνται κρυφές. Συνδυασμός των παρακάτω στοιχείων: IR-style: με βάση τα TF, εγγύτητα των λέξεων, θέση (πχ. στον τίτλο), γραμματοσειρά, κτλ. Ανάλυση των links, δημοτικότητα των σελίδων Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Μηχανές αναζήτησης και IR Ομοιότητες: ίδια βασική τεχνολογία Vector space και ranking Inverted indexes Διαφορές: Η αρχιτεκτονική των μηχανών αναζήτησης πρέπει να είναι ιδιαίτερα «scalable» - τεράστιος όγκος δεδομένων και αριθμός ερωτημάτων Τα links μεταξυ των κειμένων είναι πολύ χρήσιμα για την ανακάλυψη και την αξιολόγηση σελίδων σχετικών με ένα ερώτημα Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Google Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
ΣΔΒΔ και Μηχανές Αναζήτησης DBMS Search Engine Query Optimization and Execution Relational Operators Files and Access Methods Buffer Management Disk Space Management Search String Modifier Ranking Algorithm } “The Query” { Simple DBMS The Access Method OS Buffer Management Disk Space Management Concurrency and Recovery Needed Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Γενική αρχιτεκτονική user query DocIds Inverted Search index engine Store the documents DocIds crawl the web user query create an inverted index Inverted index Search engine servers Show results To user Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Crawling Συλλογή πληροφορίας από το web: crawlers Απλός αλγόριθμος: διάσχιση γράφου (τα links είναι οι ακμές) Ξεκινά από κατάλογο αρχικών σελίδων που περιέχουν πολλά links (πχ. Yahoo directory) Κάθε link ακολουθείται, οδηγώντας σε νέες σελίδες, επεξεργασία Επανάληψη του πάνω βήματος, σημειώνοντας ποιές σελίδες έχει επισκεφτεί προκειμένου να τις αποφύγει στο εξής Συγκεκριμένα: Put a set on known sites on a queue Repeat until queue empty Take first page off of the queue If the page has not yet been processed Process and record info (positions of words, outgoing links, etc.) Add links of current page to the queue Record the this page has been processed Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Ζητήματα crawling Χρονοβόρο: 1 έγγραφο ανά λεπτό ο κάθε crawler Δύσκολη και πολύπλοκη υλοποίηση: διάφορα πρακτικά προβλήματα Ελαχιστοποίηση καθυστερήσεων λόγω δικτύου Παραλληλισμός του αλγορίθμου Διαχείριση πιθανων αποτυχιών κατά την σύνδεση Σεβασμός στα sites (το crawling δεν πρέπει να «καθίζει» τον web server) Το αρχείο “norobots.txt” αναφέρει «απαγορευμένα» directories Freshness: βρίσκουμε ποιές σελίδες αλλάζουν συχνά, και επιμένουμε περισσότερο σε αυτές Το crawling είναι δύσκολο να υλοποιηθεί επαγγελματικά Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Διαδικασία δημιουργίας indexes (1) Περιοδική ανανέωση, στο ενδιάμεσο παραμένουν στατικά. Τα έγγραφα γίνονται parsed για να εξαχθούν όροι, που αποθηκεύονται μαζί με το ID του αντίστοιχου εγγράφου. Doc 1 Doc 2 Now is the time for all good men to come to the aid of their country It was a dark and stormy night in the country manor. The time was past midnight Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Διαδικασία δημιουργίας indexes (2) Μετά την επεξεργασία όλων των εγγράφων, το inverted file ταξινομείται αλφαβητικά. Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Διαδικασία δημιουργίας indexes (3) Συγχώνευση πολλαπλών εμφανίσεων ενός όρου στο ίδιο έγγραφο Υπολογισμός term frequency (TF) για κάθε όρο σε έγγραφο. Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Διαδικασία δημιουργίας indexes (4) Dictionary/Lexicon Postings Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Δημιουργία και αποθήκευση indexes Δισεκατομμύρια σελίδες – λύση: παραλληλισμός Κάθε έγγραφο αναλύεται ξεχωριστά Δημιουργούνται inverted lists για κάθε όρο στο έγγραφο Συγχώνευση σε μια inverted list του όρου για όλα τα έγγραφα Υπολογισμός IDF στο στάδιο της συγχώνευσης Το index αποθηκεύεται σε συστοιχία πολλών φθηνών μηχανημάτων (PCs) Οι όροι αντιστοιχούνται σε μηχανήματα μέσω καποιας συνάρτησης κατακερματισμού (hash) Κάθε μηχάνημα αποθηκεύει το inverted index των αντίστοιχων όρων Τα ερωτήματα αποτελούνται συνήθως από 1 ή 2 όρους: στέλνονται σε 1 ή 2 μηχανήματα Περισσότερα στη συνέχεια (MapReduce)… Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Αντιμετώπιση φόρτου ερωτημάτων Τεράστιος αριθμός: στο Google 150 εκατομμύρια ερωτήματα κάθε ημέρα Ομοιοτυπία (replication) των δεδομένων σε συστοιχίες μηχανημάτων Κάθε τμήμα του inverted index ανατίθεται σε πολλά μηχανήματα αντί μόνο σε ένα Κάθε μηχάνημα έχει ένα ακριβές αντίγραφο του τμήματος του inverted index Τα ερωτήματα διανέμονται στα μηχανήματα με βάση: Τον φόρτο των μηχανημάτων ...ή πχ. με κατάτμηση του IP του ερωτούντος Επιπλέον κέρδος: πρόβλημα σε ένα μηχάνημα δεν βγάζει εκτός λειτουργίας την μηχανή αναζήτησης Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Συστοιχίες μηχανημάτων Τα δεδομένα για τις σελίδες κατατμημένα σε μηχανήματα. Επιπλέον, κάθε κατάτμηση έχει πολλά μηχανήματα που χειρίζονται ερωτήματα. Κάθε σειρα μπορεί να χειριστεί 120 ερωτήματα το δευτερόλεπτο Κάθε στήλη αντέχει 7M σελίδων Για να «σηκώσει» περισσότερα ερωτήματα, προσθέτουμε σειρές. Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Χρήση των links Πρόβλημα: οι πιο σχετικές σελίδες ίσως δεν περιέχουν τους όρους του ερωτήματος Η boolean text query “Web browser” δεν επιστρέφει τις σχετικές σελίδες του Netscape ή του IE Το “search engine” δεν επιστρέφει το home page του Yahoo Είναι όμως πιθανό μια σελίδα που δείχνει στο home page του Yahoo να περιέχει τον όρο “search engine” Μέχρι τώρα θεωρούσαμε τις σελίδες απομονωμένες... ...για να εκτιμήσουμε το πόσο σχετικές είναι με το ερώτημα Πως χρησιμοποιούμε την πληροφορία των links; Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Αλγόριθμος HITS Διαπίστωση: οι «καλές» σελίδες δείχνονται από πολλά links επίσης «καλών» σελίδων Δύο τύποι σελίδων Authority: πολύ σχετική με το θέμα, αναγνώριση από άλλες σελίδες Hub: όχι πολύ γνωστή σελίδα, λίγα εισερχόμενα links, περιέχει links σε authorities Παραδειγμα hub: λιστα sites σχετικών με τα hobbies κάποιου HITS: a link-based algorithm Μοντελοποιεί τον Ιστό σαν κατευθυνόμενο γράφο Οι σελίδες είναι κόμβοι και τα links ακμές Δυο βήματα: sampling και iteration steps Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Βήμα sampling Συλλέγει με συμβατικό τρόπο (πχ. boolean query) ένα σύνολο σελίδων (root set) που περιέχει τους όρους του ερωτήματος Πιθανόν να μην περιέχει όλα τα σχετικά authorities… …θεωρούμε όμως οτι τα πιο σχετικά authorities συνδέονται μέσω link με σελίδες του root set Επαυξάνει το root set προσθέτοντας το σύνολο των... ...link pages: σελίδες που συνδέονται (δείχνουν ή δείχνονται) μέσω links με το root set Αποτέλεσμα: base set = root set + link pages Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Βήμα iteration Στόχος: ανεύρεση καλών authorities και καλών hubs Πως αξιολογείται η ποιότητα των hubs και authorities; Καλό hub = σελίδα με πολλά links προς καλά authorities Καλό authority = σελίδα με πολλά links από καλά hubs Κάθε σελίδα συσχετίζεται με ένα hub weight και ένα authority weight Αρχικοποίηση όλων των weights σε 1 Ενημέρωση των weights από διαδοχικές επαναλήψεις Σε μια επανάληψη: αp = Σall base pages q that have a link to p (hq) hp = Σall base pages q such that p has a link to q (αq) Αποδεικνύεται ότι τα weights συγκλίνουν (fixpoint), ανεξάρτητα της αρχικής τιμής Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Αριθμός indexed σελίδων Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Ποσοστό κάλυψης του Ιστού Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Μελλοντικός στόχος: σημασιολογία Σκοπός: οι μηχανές αναζήτησης να εκμεταλεύονται την μεταπληροφορία που θα υπάρχει στο μέλλον στον Ιστό Λογικό επίπεδο: XML Σημασιολογικό επίπεδο (RDF, OWL) Παράδειγμα: βρες φωτογραφία του Alan Rector Επιστρέφει: φωτογραφία του Alan …, Rector of …Church Πως θα πούμε στις μηχανές αναζήτησης οτι το Rector στην μια περίπτωση είναι επώνυμο, ενώ στην άλλη επάγγελμα; Επισημείωση της πληροφορίας με tags (XML) Ορισμός του λεξιλογίου των tags (RDF, OWL) Δυνατό (πλέον) το ερώτημα: «priest Alan» Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Information Retrieval Μοντέλο Vector Space Ευρετήρια για ανεύρεση κειμένων Μηχανές αναζήτησης στον Ιστό MapReduce
Αντιμετώπιση τεράστιου όγκου δεδομένων Το indexing σύστημα του Google παράγεται από έγγραφα που «μαζεύουν» οι crawlers όγκου 20 TB (2004) Τα έγγραφα αυτά αποθηκεύονται σε ένα distributed file system, το GFS (Google File System) Πως μπορεί κάποιος να παράγει inverted indexes με αποδοτικό τρόπο; Λύση: παραλληλισμός (…αντίστοιχος με τον τρόπο απάντησης ερωτημάτων που εξετάσαμε) Η λύση της Google: «MapReduce» Προγραμματιστικό μοντέλο Σχετική αρχιτεκτονική / υλοποίηση Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Τι είναι το MapReduce; Πολλές εργασίες αναγκαίες για τις μηχανές αναζήτησης Είναι αλγοριθμικά απλές Αλλά εφαρμόζονται σε τεράστιο όγκο δεδομένων εισόδου Τι κάνει τις απλές αυτές εργασίες πολύπλοκες; Παραλληλισμός σε εκατοντάδες ή και χιλιάδες μηχανήματα Διαμοιρασμός των δεδομένων Διαχείριση αποτυχιών MapReduce: απομόνωση της πολυπλοκότητας Ο χρήστης γράφει κώδικα μόνο για το αλγοριθμικό κομμάτι Η υποδομή του MapReduce αναλαμβάνει την παράλληλη εκτέλεση, τον διαμοιρασμό των δεδομένων, και την διαχείριση των αποτυχιών. Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Το μοντέλο MapReduce map (k1,v1) list(k2,v2) Ονομάστηκε έτσι από τα map και reduce primitives της LISP και άλλων συναρτησιακών γλωσσών. Περιγραφή του μοντέλου Είσοδος: σύνολο ζευγών key/value Map: ορίζεται από το χρήστη Για κάθε ζεύγος εισόδου, παράγει ένα σύνολο ενδιάμεσων ζευγών key/value Η βιβλιοθήκη MapReduce ομαδοποιεί όλες τις τιμές που αντιστοιχούν στο ίδιο ενδιάμεσο κλειδί, και τις περνά στη διαδικασία Reduce Reduce: ορίζεται από το χρήστη Συγχωνεύει όλες τις τιμές για ένα ενδιάμεσο κλειδί, και παράγει ένα μικρότερο σύνολο τιμών (συνήθως μια ή καμία) Έξοδος: σύνολο ζευγών key/value (διαφορετικού τύπου) map (k1,v1) list(k2,v2) reduce (k2, list(v2)) list(v2) Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Παράδειγμα MapReduce (1) Καταμέτρηση εμφανίσεων κάθε λέξης σε μεγάλη συλλογή εγγράφων Ο χρήστης γράφει τον κώδικα MapReduce map(String key, String value): // key: document name // value: document contents for each word w in value: EmitIntermediate(w, "1"); reduce(String key, Iterator values): // key: a word // values: a list of counts int result = 0; for each v in values: result += ParseInt(v); Emit(AsString(result)); Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Παράδειγμα MapReduce (2) …συνέχεια Επίσης ο χρήστης γράφει κώδικα για να «γεμίσει» ένα mapreduce specification object, που καθορίζει Τα ονόματα των φακέλων εισόδου Τα ονόματα των φακέλων εξόδου Προαιρετικές παραμέτρους ρύθμισης Ο χρήστης καλεί τη (προυπάρχουσα) συνάρτηση MapReduce Περνώντας το mapreduce specification object Ο κώδικας του χρήστη είναι linked με τη βιβλιοθήκη MapReduce (γραμμένη σε C++) Αυτή φροντίζει για την εκτέλεση των διαδικασιών Και για τον αυτόματο παραλληλισμό τους Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Αρχιτεκτονική του MapReduce (1) Τυπική διάταξη Google: μεγάλο cluster απλών PCs συνδεδεμένων μέσω Ethernet Διπλοπύρηνοι, x86, Linux, 2-4 GB μνήμης σε κάθε υπολογιστή 100 Mbit/sec ή 1Gbit/sec Ethernet Εκατοντάδες ή χιλιάδες μηχανήματα συχνές αποτυχίες Φθηνοί δίσκοι IDE τοπικά σε κάθε μηχάνημα Distributed file system της Google Ένα scheduling σύστημα αναθέτει διαδικασίες που υποβάλλουν οι χρήστες στα διαθέσιμα μηχανήματα του cluster Λέξη-κλειδί: commodity hardware Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Αρχιτεκτονική του MapReduce (2) Τρόπος εκτέλεσης και διαμοιρασμού Αυτόματος διαμοιρασμός των δεδομένων εισόδου σε ένα σύνολο M splits Τα splits τα επεξεργάζονται παράλληλα διαφορετικά μηχανήματα (map) Τα ενδιάμεσα αποτελέσματα του Map διαμοιράζονται σε R partitions Η partitioning συνάρτηση (πχ. hash(key) mod R) όπως και ο αριθμός R ορίζονται από το χρήστη Ο αριθμός R καθορίζει τον διαμοιρασμό του Reduce, μια και ο χώρος των ενδιάμεσων κλειδιών σπάει σε R κομμάτια Το ίδιο μηχάνημα μπορεί να εκτελέσει πολλά reduce, ένα για κάθε ενδιάμεσο κλειδί που του αντιστοιχεί Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Αρχιτεκτονική του MapReduce (3) Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Αρχιτεκτονική του MapReduce (4) Βήματα της εκτέλεσης με αναφορά στην πίσω εικόνα: Η βιβλιοθήκη MapReduce σπάει την είσοδο σε M splits των 16-64 ΜΒ (ελεγχόμενο μέσω προαιρετικής παραμέτρου). Στη συνέχεια αρχίζει αντίγραφα του προγράμματος στο cluster Ένα αντίγραφο είναι ειδικό – ο master. Αυτός αναθέτει δουλειά (map και reduce tasks) σε άλλα μηχανήματα που βλέπει να είναι διαθέσιμα Κάθε κόμβος που τρέχει το map διαβάζει το αντίστοιχο split εισόδου. Περνά κάθε ζεύγος key/value στη συνάρτηση Map του χρήστη, και κρατά στη μνήμη τα αποτελέσματα (ενδιάμεσα ζεύγη key/value) Κάθε τόσο γράφει τα αποτελέσματα στον τοπικό δίσκο καλώντας την partitioning συνάρτηση για να τα διαμοιράσει σε R κομμάτια. Οι θέσεις των φακέλων δίνονται στον master, που τις τροφοδοτεί στους κόμβους που εκτελούν το reduce Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Αρχιτεκτονική του MapReduce (5) …συνέχεια Όταν ένας κόμβος reduce λάβει τέτοιες θέσεις χρησιμοποιεί RPC για να διαβάσει τα δεδομένα από τους δίσκους των map κόμβων. Ταξινομεί όλα τα δεδομένα με βάση το ενδιάμεσο κλειδί (external sort αν μεγάλος όγκος) Για κάθε ενδιάμεσο κλειδί ο reduce κόμβος περνάει τις ενδιάμεσες τιμές στη συνάρτηση Reduce του χρήστη. Η έξοδος της συνάρτησης αποτελεί προσθήκη στο τελικό αποτέλεσμα Αφού όλες οι εργασίες map και reduce έχουν ολοκληρωθεί, ο master επιστρέφει τον έλεγχο της εκτέλεσης στο πρόγραμμα του χρήστη (η κλήση στη MapReduce επιστρέφει) Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Αρχιτεκτονική του MapReduce (6) Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Αρχιτεκτονική του MapReduce (7) Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Άλλα παραδείγματα εφαρμογών Μέτρηση της συχνότητας πρόσβασης σε URL Map: από web logs <URL,1> Reduce: <URL, total count> Γράφος αντίστροφων συνδέσμων Map: από web page source <target, source> για κάθε link σε target Reduce: <target, list(source)> Inverted index Map: παράγει <word, document ID> από έγγραφα Reduce: <word, list(document ID)> Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Οφέλη και προβλήματα Κλιμάκωση (+) Οικονομία (+) Προσθήκη νέων μηχανημάτων στο cluster Οικονομία (+) Φθηνο υλικό, «commodity» Απλός κώδικας, εύκολος να αλλάξει (+) Τα θέματα του παραλληλισμού είναι κρυμμένα στη βιβλιοθήκη MapReduce Αυτόματη διαχείριση (+) Αποτυχιών, Διαμοιρασμού, Παραλληλισμού Κριτική (-) Χαμηλού επιπέδου προγραμματισμός Έλλειψη σχήματος για τα δεδομένα Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός
Ύλη διαφανειών Database Management Systems, third edition. Ramakrishnan, Gehrke. McGraw Hill 2003. Κεφ. 27.1- 27.5 MapReduce: Simplified Data Processing on Large Clusters. Jeffrey Dean, Sanjay Ghemawat. OSDI 2004. Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός