Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Διαχείριση Δεδομένων και Παγκόσμιος Ιστός IR και Μηχανές αναζήτησης.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Διαχείριση Δεδομένων και Παγκόσμιος Ιστός IR και Μηχανές αναζήτησης."— Μεταγράφημα παρουσίασης:

1 Διαχείριση Δεδομένων και Παγκόσμιος Ιστός IR και Μηχανές αναζήτησης

2 Information Retrieval Μοντέλο Vector Space Ευρετήρια για ανεύρεση κειμένων Μηχανές αναζήτησης στον Ιστό MapReduce

3 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός3 Information Retrieval και ΒΔ IR: ανεύρεση κειμένων σε μεγάλες συλλογές Από την δεκαετία του 50 Πορεία ανεξάρτητη από τις ΒΔ Μοντέλο: κάθε έγγραφο είναι μια συλλογή λέξεων (όρων) ΒΔ: η διαχείριση κειμένων είναι μια νέα πρόκληση Τα κείμενα αποτελούν μια τεράστια πηγή δεδομένων στον Ιστό Έρευνα στις ΒΔ προς την κατεύθυνση αυτή Συμπέρασμα: ο Ιστός φέρνει τις ΒΔ πιο κοντά στο IR Η XML βρίσκεται ακριβώς στην μέση, σαν συνδετικός κρίκος

4 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός4 Διαφορετικοί κόσμοι: Ιστός και IR Scalability IR: δεκάδες χιλιάδες κείμενα Ιστός: δισεκατομύρια σελίδες Ομογένεια IR: διαχείριση εγγράφων από επαγγελματίες, προσεκτική προετοιμασία, ταξινόμηση σε ομογενείς κατηγορίες Ιστός: δημιουργία εγγράφων και αναζήτηση από απλούς χρήστες, θεματικά ανομοιογενή έγγραφα, περιέχουν πολυμεσική πληροφορία Η είσοδος της XML......πρόσθεσε μεταδεδομένα (περιγραφική πληροφορία) Από ελεύθερο κείμενο σε “textual objects”

5 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός5 Διαφορετικοί κόσμοι: ΒΔ και IR (1) Κοινός καταρχήν στόχος: Υποστήριξη αναζητήσεων πάνω σε μεγάλες συλλογές δεδομένων Αναζητήσεις (searches) αντί ερωτημάτων (queries) IR: search terms πάνω σε συλλογή αδόμητων κειμένων, ranking των αποτελεσμάτων ΒΔ: ευρύ φάσμα ερωτημάτων με ακριβή σημασιολογία, αυστηρά δομημένα δεδομένα, unranked αποτελέσματα Πλεονεκτήματα IR: δεν είναι απαραίτητη η γνώση σχήματος και γλώσσας ερωτημάτων ΒΔ: τα αποτελέσματα είναι πλήρη και ακριβή

6 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός6 Διαφορετικοί κόσμοι: ΒΔ και IR (2) Ενημερώσεις και δοσοληψίες IR: προσανατολισμός σε read-only workload, χωρις δοσοληψίες IR: περιοδική ενημέρωση ή επαναδημιουργία ευρετηρίων IR: σχετικά έγγραφα μπορεί να μην εντοπίζονται λόγω μη ενημερωμένων ευρετηρίων ΒΔ: προσανατολισμός και σε update-intensive workload Ερευνητική δραστηριότητα IR: μέθοδοι για ranking, χρήση γλωσσικών τεχνολογιών για βελτίωση των αναζητήσεων ΒΔ: επεξεργασία ερωτημάτων, έλεγχος ταυτοχρονισμού, κτλ.

7 Information Retrieval Μοντέλο Vector Space Ευρετήρια για ανεύρεση κειμένων Μηχανές αναζήτησης στον Ιστό MapReduce

8 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός8 Αναζητήσεις Δύο κατηγορίες ερωτημάτων πάνω σε συλλογές εγγράφων στα συστήματα IR Boolean queries: βρες όλα τα έγγραφα που ικανοποιούν μια Boolean έκφραση database AND (Microsoft OR IBM) Οταν μια μηχανη αναζήτησης αναφέρει «βρέθηκαν έγγραφα», αυτό είναι το μέγεθος του αποτελέσματος ενός Boolean query (ισως «κομμένο» λόγω ανώτατου επιτρεπτού ορίου) Ranked queries: ο χρήστης δίνει μερικούς όρους, και το αποτέλεσμα είναι μια λίστα εγγράφων ταξινομημένων ως προς «σχετικότητα» “Microsoft, IBM” Αν το έγγραφο περιέχει ΙΒΜ είναι σχετικό Αν περιέχει πολλά ΙΒΜ, ή και ΙΒΜ και Microsoft, ακόμη πιο σχετικό Επέκταση: βρες έγγραφα σχετικά με μια πρόταση φυσικής γλώσσας.

9 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός9 Boolean queries Πως αντιμετωπίζουμε το «όρος1» ή «όρος2»; Ένωση των δύο συνόλων εγγράφων Το «όρος1» και «όρος2»; Τομή των δύο συνόλων εγγράφων Αλφαβητική ταξινομηση και συγχώνευση των λιστών Το «όρος1» and not «όρος2»; Αφαίρεση, και πάλι μέσω ταξινόμησης Το «όρος1» or not «όρος2»; Ενωση του «όρος1» και του « not όρος2» Ολα τα έγγραφα που δεν περιέχουν το «όρος2» - πάρα πολλά Συνήθως δεν επιτρέπεται

10 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός10 Μοντέλο Vector Space (1) Βασική λειτουργία ενός μηχανισμού IR: ranking του αποτελέσματος ενός Boolean query Το μοντέλο vector space παρέχει το θεωρητικό πλαίσιο Κάθε έγγραφο στην συλλογη αναπαρίσταται από ένα διάνυσμα που λέγεται document vector Υπολογισμός document vector Θεωρούμε όλους τους όρους που εμφανίζονται στην συλλογή (n τον αριθμο) Ενα document vector αποτελείται από μια τιμή για κάθε τέτοιον όρο Απλούστερη μορφή: αν ο όρος j εμφανίζεται k φορές στο έγγραφο i, τότε το document vector του i περιέχει την τιμή k στην θέση j

11 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός11 Μοντέλο Vector Space (2) Συνεπώς: Κάθε έγγραφο είναι ένα σημείο στον n-διάστατο χώρο Παραδοχή: έγγραφα που βρίσκονται «κοντά» είναι παρόμοια Τα document vectors είναι sparse: τιμη 0 για όρους που δεν υπάρχουν σε ένα έγγραφο DocidDocument 1agent James Bond good agent 2agent mobile computer 3James Madison movie 4James Bond movie DocidagentBondcomputergoodJamesMadisonmobilemovie

12 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός12 Term Frequency (TF) TF ενός εγγράφου για κάποιον όρο, ειναι ο αριθμός εμφανίσεων του όρου στο έγγραφο...και συνεπώς η τιμή για έναν όρο σε ένα document vector Σημασία: συχνοί όροι σημαντικότεροι για τον χαρακτηρισμό ενός εγγράφου Ομως, κάποιοι όροι εμφανίζονται συχνά σε όλη την συλλογή Η εμπειρία δείχνει κατανομή Zipfian Υπερβολικά κοινοι όροι δεν είναι χρήσιμοι στις αναζητήσεις Π.χ.: “the”, HTML tags όπως Stop words: προεπεξεργασία εγγράφων και απομάκρυνση

13 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός13 TF / IDF Καποιοι όροι εμφανίζονται πολύ συχνα σε μια συλλογή......ακόμη και μετά την απομάκρυνση των stop words πχ. Linux, kernel, σε συλλογή για το Linux Αν μια αναζήτηση περιέχει και τους δύο όρους: Δεδομένου ότι το Linux είναι συχνοτερο από το kernel… …καλύτερα αποτελέσματα αν δώσουμε περισσότερη σημασία στα έγγραφα που περιέχουν το kernel TF * IDF αντί για TF στα document vectors Inverse Document Frequency (IDF): log (N / n j ) N συνολικός αριθμός εγγράφων, n j αριθμός εγγράφων που περιέχουν τον όρο j Αποτέλεσμα: αυξημένο βάρος σε σπάνιους όρους

14 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός14 Σημασία του IDF Το IDF δίνει υψηλές τιμές για σπάνιες λέξεις, και χαμηλές τιμές για κοινές λέξεις Για μια συλλογή εγγράφων:

15 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός15 Υπολογισμός TF / IDF

16 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός16 Κανονικοποίηση μεγέθους Η σημασία ενος όρου εξαρτάται και από το μέγεθος του εγγράφου Εστω Ε1, Ε2 δυο έγγραφα με Ε1 < Ε2 Εστω οτι το βάρος TF/IDF για έναν όρο Ο είναι το ίδιο για τα Ε1, Ε2 Διαισθητικά: το κανονικοποιημένο βάρος του Ο πρέπει να είναι μικρότερο για το Ε2 Εξήγηση: μεγαλύτερα έγγραφα έχουν πιο πολλούς όρους, και περισσότερες εμφανίσεις ενός όρου Κανονικοποίηση μεγέθους: όσο το μέγεθος και η συχνότητα ενός όρου j αυξάνει, η σημασία του όρου μειώνεται t ο αριθμός όρων στην συλλογή w το βάρος TF/IDF χωρις κανονικοπ. w* το βάρος με κανονικοποίηση

17 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός17 Κανονικοποίηση μεγέθους στον Ιστό Στον Ιστό παίρνουμε ένα επιπλέον μέτρο Οροι που εμφανίζονται συχνότατα σε σελίδες δημιουργούν ιδιαίτερο πρόβλημα στον Ιστό Λέξεις όπως sale, free, sex, … επαναλαμβάνονται επίτηδες Για να αυξησουν την πιθανότητα ανάσυρσης της σελίδας στα αποτελέσματα μιας αναζήτησης Ετσι οι μηχανές αναζήτησης επιβάλλουν μια μέγιστη τιμή στις συχνότητες (TF) των όρων (συνήθως 2 ή 3) Συμπέρασμα: αντιστοίχηση εγγράφων σε διανύσματα που τα χαρακτηρίζουν

18 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός18 Ranking Ενα ranked query μπορεί να θεωρηθεί σαν έγγραφο......αφού είναι μια συλλογή όρων Συνεπώς: χρήση ομοιότητας εγγράφων (document similarity) για την ταξινόμηση των αποτελεσμάτων Το έγγραφο που είναι πιο όμοιο με το query επιστρέφεται πρώτο Κάθε έγγραφο αντιστοιχεί σε ένα διάνυσμα στον t- διάστατο χώρο t ο αριθμός όρων στην συλλογή Κάθε άξονας αντιστοιχεί σε έναν όρο Κοντινά σημεία υποδηλώνουν όμοια έγγραφα Επιπλέον στον Ιστό, τα links δίνουν μια εικόνα της ποιότητας μιας σελίδας

19 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός19 Ομοιότητα εγγράφων

20 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός20 Υπολογισμός «σχετικότητας»

21 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός21 Παράδειγμα D2D2 D1D1 Q Term A Q = (0.4,0.8) D1=(0.8,0.3) D2=(0.2,0.7) Term B

22 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός22 Ακρίβεια & Ευστοχία Ακρίβεια (precision) και ευστοχία (recall): Τα συνήθη κριτήρια αξιολόγησης συστημάτων IR Ακρίβεια: το ποσοστό των εγγράφων του αποτελέσματος που είναι πράγματι σχετικά με το ερώτημα Ευστοχία: το ποσοστό των σχετικών εγγράφων στην συλλογή που ανακτήθηκαν στα αποτελέσματα Στόχος η μεγάλη ακρίβεια με παράλληλα υψηλή ευστοχία Η τέλεια ευστοχία είναι εύκολη αν η ακρίβεια είναι πολύ χαμηλή: επιστρέφουμε πάντα όλα τα έγγραφα της συλλογής Αντίθεση με ΒΔ: απόλυτη ακρίβεια και ευστοχία...λόγω αυστηρής σημασιολογίας

23 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός23 Κριτήρια στον Ιστό Η ευστοχία στον Ιστό δεν είναι εφαρμόσιμη όπως στο IR Το μέγεθος της συλλογής είναι δισεκατομύρια έγγραφα Προσαρμογή των κριτηρίων για μηχανές αναζήτησης Με βάση την πρώτη σελίδα των αποτελεσμάτων Web search precision: το ποσοστό των αποτελεσμάτων στην πρώτη σελίδα που είναι πράγματι σχετικά με το αποτέλεσμα Web search recall: το Ν/Μ επί τοις εκατό Μ: ο συνολικός αριθμός εγγράφων στην πρώτη σελίδα Ν: από τα Μ πιο σχετικά έγγραφα, ο αριθμός που εμφανίζεται στην πρώτη σελίδα

24 Information Retrieval Μοντέλο Vector Space Ευρετήρια για ανεύρεση κειμένων Μηχανές αναζήτησης στον Ιστό MapReduce

25 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός25 Ευρετήρια για έγγραφα Inverted index Απλό στην κατασκευή, καλή απόδοση Αλλά απαιτεί πολύ χώρο: έως 300% το μέγεθος του εγγράφου Signature file Λίγος χώρος, άμεση απόρριψη πολλών εγγράφων “does not scale well”, λόγω σειριακής ανάγνωσης όλου του file Προ-επεξεργασία εγγράφων 1. Απομάκρυνση stop words 2. Stemming: αναγωγή λέξεων σε «κανονική» (βασική) μορφή Run, running, runner  run Ελατώνει μέγεθος, αυξάνει την αποτελεσματικότητα

26 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός26 Inverted index Για κάθε όρο, λίστα (inverted list) από περιγραφές των εμφανίσεων του όρου Ένας κόμβος στην λιστα, για κάθε έγγραφο που περιέχει τον όρο Ο κόμβος μπορεί να περιέχει επιπλέον πληροφορία για κάθε εμφάνιση του όρου στο συγκεκριμένο έγγραφο (πχ. θέση) Επιτρέπει την γρήγορη ανεύρεση των εγγράφων που περιέχουν έναν δεδομένο όρο Υλοποιείται σαν δύο ξεχωριστά τμήματα Postings file: όλες οι inverted lists στον δίσκο Κάθε λίστα σε ξεχωριστή σελίδα, ή και σε αλυσίδα σελίδων Lexicon: Β+ δένδρο ή hash table στην κύρια μνήμη Οι όροι μαζί με δείκτες στις αντίστοιχες inverted lists

27 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός27 Παράδειγμα inverted index 0001 Madison mobile movie Bond computer agent good James 3 HASH TERM #docs pointdocid=32docid=14docid=33docid=13docid=22docid=11docid=23docid=12docid=43 2docid=21docid=31docid=41 5 Lexicon (memory)Postings file (disk) Θέσεις όπου εμφανίζεται το ‘agent’ στο έγγραφο 1

28 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός28 Χρήση inverted index Ερώτημα με έναν μόνο όρο: Από το lexicon βρίσκουμε την διεύθυνση του inverted list του όρου Ανακτούμε inverted list, αντιστοιχούμε τα docids στις φυσικές διευθύνσεις, ανακτούμε τα έγγραφα Αν τα αποτελέσματα πρέπει να είναι ranked Υπολογίζουμε την σχετικότητα (relevance) ως προς το ερώτημα κάθε εγγράφου στην λίστα Ανακτούμε τα έγγραφα με την σειρά που δηλώνει η σχετικότητα Υπολογισμός σχετικότητας: TF, IDF, «μήκος εγγράφου» Αποθηκεύονται όλα στο lexicon ή στην inverted list

29 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός29 Χρήση inverted index (2) Ερώτημα με πολλούς όρους Σύζευξη όρων: τομή των inverted lists (μικρότερες πρώτα) Διάζευξη όρων: ένωση των inverted lists Ranked queries με πολλους όρους Υπολογισμός σχετικότητας ως προς όλους τους όρους κάθε εγγράφου που εμφανίζεται σε κάποια από τις inverted lists των όρων Η σχετικότητα ενός εγγράφου προς όλους τους όρους υπολογίζεται με βάση την σχετικότητα ως προς κάθε όρο χωριστά (dot product) Στον Ιστό οι inverted lists είναι πολύ μεγάλες Προ-υπολογισμός σχετικότητας ως προς τον όρο, και ταξινόμηση λίστας ως προς σχετικότητα αντί για docid Θετικό: μπορούμε να πάρουμε μόνο τα πρώτα έγγραφα Αρνητικό: συντήρηση δαπανηρη σε χρόνο (προσθήκη νέου εγγράφου, αλλαγή ranking function)

30 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός30 Signature files Κάθε έγγραφο αναπαρίσταται στο index από ένα signature......που αποτελείται από έναν σταθερό αριθμό bits (signature width) Οι όροι αντιστοιχούνται στα bits μέσω μιας hash function Ανάλογα με τους όρους που υπάρχουν στο έγγραφο «ανάβουν» τα αντίστοιχα bits Το ίδιο bit μπορεί να ανάψει δύο φορές από διαφορετικούς όρους Μια signature S1 ταιριάζει (matches) με μια signature S2 (query) αν όλα τα αναμένα bits της S2 είναι επίσης αναμένα και στην S1 Η S1 μπορεί να έχει και άλλα αναμένα bits

31 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός31 Χρήση signature file Ερώτημα με σύζευξη όρων Δημιουργούμε το query signature Διατρέχουμε το signature file, ανακτούμε όλα τα έγγραφα των οποίων το signature ταιριάζει με το query signature Κάποια από αυτά τα έγγραφα δεν ανήκουν στο αποτέλεσμα......επειδή το signature δεν ταυτοποιεί ακριβώς τους όρους ενός εγγράφου False positive: έγγραφο του οποίου το signature ταιριάζει, αλλά που δεν περιέχει όλους τους όρους του ερωτήματος Ερώτημα με διάζευξη όρων Δημιουργούμε λίστα query signatures, ένα για κάθε όρο του ερωτήματος Ανακτούμε τα έγγραφα που ταιριάζουν με οποιοδήποτε signature της λίστας

32 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός32 Παράδειγμα signature file Ερωτήματα: James  1000 James and Bond  1100 movie and Madison  0011 Τόσα signatures όσα έγγραφα, τα εξετάζουμε όλα Bit slices: κάθετη κατάτμηση του signature file Εξετάζουμε μόνο μερικά bit slices για ένα ερώτημα docidDocumentsignature 1agent James Bond good agent1100 2agent mobile computer1101 3James Madison movie1011 4James Bond movie1110

33 Information Retrieval Μοντέλο Vector Space Ευρετήρια για ανεύρεση κειμένων Μηχανές αναζήτησης στον Ιστό MapReduce

34 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός34 Αναζήτηση στον Ιστό Directories και search engines Directories: ψάξιμο σε περιγραφές σελίδων, επιλεγμένων sites, οργανωμένων «με το χέρι» σε κατηγορίες Search engines: ψάξιμο στο περιεχόμενο, όλων (;) των σελίδων, οργανωμένων με βάση το ερώτημα (ranking) Τα ερωτήματα στον Ιστό είναι σύντομα Μέση τιμή 2.4 λέξεις (Αυγ. 2000), 1.7 λέξεις το 1997 Τι περιμένει ο χρήστης; «Η πρώτη-πρώτη απάντηση πρέπει να είναι αυτό που ψάχνω» Ranking στον Ιστο: πολλές παραλλαγές, οι λεπτομέρειες κρατιούνται κρυφές. Συνδυασμός των παρακάτω στοιχείων: IR-style: με βάση τα TF, εγγύτητα των λέξεων, θέση (πχ. στον τίτλο), γραμματοσειρά, κτλ. Ανάλυση των links, δημοτικότητα των σελίδων

35 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός35 Μηχανές αναζήτησης και IR Ομοιότητες: ίδια βασική τεχνολογία Vector space και ranking Inverted indexes Διαφορές: Η αρχιτεκτονική των μηχανών αναζήτησης πρέπει να είναι ιδιαίτερα «scalable» - τεράστιος όγκος δεδομένων και αριθμός ερωτημάτων Τα links μεταξυ των κειμένων είναι πολύ χρήσιμα για την ανακάλυψη και την αξιολόγηση σελίδων σχετικών με ένα ερώτημα

36 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός36 Google

37 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός37 ΣΔΒΔ και Μηχανές Αναζήτησης { The Access Method Buffer Management Disk Space Management OS “The Query” Search String Modifier Simple DBMS } Ranking Algorithm Query Optimization and Execution Relational Operators Files and Access Methods Buffer Management Disk Space Management Concurrency and Recovery Needed DBMSSearch Engine

38 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός38 Γενική αρχιτεκτονική crawl the web create an inverted index Store the documents Inverted index Search engine servers user query Show results To user DocIds

39 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός39 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

40 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός40 Ζητήματα crawling Χρονοβόρο: 1 έγγραφο ανά λεπτό ο κάθε crawler Δύσκολη και πολύπλοκη υλοποίηση: διάφορα πρακτικά προβλήματα Ελαχιστοποίηση καθυστερήσεων λόγω δικτύου Παραλληλισμός του αλγορίθμου Διαχείριση πιθανων αποτυχιών κατά την σύνδεση Σεβασμός στα sites (το crawling δεν πρέπει να «καθίζει» τον web server) Το αρχείο “norobots.txt” αναφέρει «απαγορευμένα» directories Freshness: βρίσκουμε ποιές σελίδες αλλάζουν συχνά, και επιμένουμε περισσότερο σε αυτές Το crawling είναι δύσκολο να υλοποιηθεί επαγγελματικά

41 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός41 Διαδικασία δημιουργίας indexes (1) Περιοδική ανανέωση, στο ενδιάμεσο παραμένουν στατικά. Τα έγγραφα γίνονται parsed για να εξαχθούν όροι, που αποθηκεύονται μαζί με το ID του αντίστοιχου εγγράφου. Now is the time for all good men to come to the aid of their country Doc 1 It was a dark and stormy night in the country manor. The time was past midnight Doc 2

42 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός42 Διαδικασία δημιουργίας indexes (2) Μετά την επεξεργασία όλων των εγγράφων, το inverted file ταξινομείται αλφαβητικά.

43 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός43 Διαδικασία δημιουργίας indexes (3) Συγχώνευση πολλαπλών εμφανίσεων ενός όρου στο ίδιο έγγραφο Υπολογισμός term frequency (TF) για κάθε όρο σε έγγραφο.

44 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός44 Διαδικασία δημιουργίας indexes (4) Dictionary/Lexicon Postings

45 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός45 Δημιουργία και αποθήκευση indexes Δισεκατομμύρια σελίδες – λύση: παραλληλισμός Κάθε έγγραφο αναλύεται ξεχωριστά Δημιουργούνται inverted lists για κάθε όρο στο έγγραφο Συγχώνευση σε μια inverted list του όρου για όλα τα έγγραφα Υπολογισμός IDF στο στάδιο της συγχώνευσης Το index αποθηκεύεται σε συστοιχία πολλών φθηνών μηχανημάτων (PCs) Οι όροι αντιστοιχούνται σε μηχανήματα μέσω καποιας συνάρτησης κατακερματισμού (hash) Κάθε μηχάνημα αποθηκεύει το inverted index των αντίστοιχων όρων Τα ερωτήματα αποτελούνται συνήθως από 1 ή 2 όρους: στέλνονται σε 1 ή 2 μηχανήματα Περισσότερα στη συνέχεια (MapReduce)…

46 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός46 Αντιμετώπιση φόρτου ερωτημάτων Τεράστιος αριθμός: στο Google 150 εκατομμύρια ερωτήματα κάθε ημέρα Ομοιοτυπία (replication) των δεδομένων σε συστοιχίες μηχανημάτων Κάθε τμήμα του inverted index ανατίθεται σε πολλά μηχανήματα αντί μόνο σε ένα Κάθε μηχάνημα έχει ένα ακριβές αντίγραφο του τμήματος του inverted index Τα ερωτήματα διανέμονται στα μηχανήματα με βάση: Τον φόρτο των μηχανημάτων...ή πχ. με κατάτμηση του IP του ερωτούντος Επιπλέον κέρδος: πρόβλημα σε ένα μηχάνημα δεν βγάζει εκτός λειτουργίας την μηχανή αναζήτησης

47 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός47 Συστοιχίες μηχανημάτων Τα δεδομένα για τις σελίδες κατατμημένα σε μηχανήματα. Επιπλέον, κάθε κατάτμηση έχει πολλά μηχανήματα που χειρίζονται ερωτήματα. Κάθε σειρα μπορεί να χειριστεί 120 ερωτήματα το δευτερόλεπτο Κάθε στήλη αντέχει 7M σελίδων Για να «σηκώσει» περισσότερα ερωτήματα, προσθέτουμε σειρές.

48 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός48 Χρήση των links Πρόβλημα: οι πιο σχετικές σελίδες ίσως δεν περιέχουν τους όρους του ερωτήματος Η boolean text query “Web browser” δεν επιστρέφει τις σχετικές σελίδες του Netscape ή του IE Το “search engine” δεν επιστρέφει το home page του Yahoo Είναι όμως πιθανό μια σελίδα που δείχνει στο home page του Yahoo να περιέχει τον όρο “search engine” Μέχρι τώρα θεωρούσαμε τις σελίδες απομονωμένες......για να εκτιμήσουμε το πόσο σχετικές είναι με το ερώτημα Πως χρησιμοποιούμε την πληροφορία των links;

49 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός49 Αλγόριθμος HITS Διαπίστωση: οι «καλές» σελίδες δείχνονται από πολλά links επίσης «καλών» σελίδων Δύο τύποι σελίδων Authority: πολύ σχετική με το θέμα, αναγνώριση από άλλες σελίδες Hub: όχι πολύ γνωστή σελίδα, λίγα εισερχόμενα links, περιέχει links σε authorities Παραδειγμα hub: λιστα sites σχετικών με τα hobbies κάποιου HITS: a link-based algorithm Μοντελοποιεί τον Ιστό σαν κατευθυνόμενο γράφο Οι σελίδες είναι κόμβοι και τα links ακμές Δυο βήματα: sampling και iteration steps

50 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός50 Βήμα sampling Συλλέγει με συμβατικό τρόπο (πχ. boolean query) ένα σύνολο σελίδων (root set) που περιέχει τους όρους του ερωτήματος Πιθανόν να μην περιέχει όλα τα σχετικά authorities… …θεωρούμε όμως οτι τα πιο σχετικά authorities συνδέονται μέσω link με σελίδες του root set Επαυξάνει το root set προσθέτοντας το σύνολο των......link pages: σελίδες που συνδέονται (δείχνουν ή δείχνονται) μέσω links με το root set Αποτέλεσμα: base set = root set + link pages

51 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός51 Βήμα iteration Στόχος: ανεύρεση καλών authorities και καλών hubs Επιστροφή των καλύτερων 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 (h q ) h p = Σ all base pages q such that p has a link to q (α q ) Αποδεικνύεται ότι τα weights συγκλίνουν (fixpoint), ανεξάρτητα της αρχικής τιμής

52 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός52 Αριθμός indexed σελίδων

53 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός53 Ποσοστό κάλυψης του Ιστού

54 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός54 Μελλοντικός στόχος: σημασιολογία Σκοπός: οι μηχανές αναζήτησης να εκμεταλεύονται την μεταπληροφορία που θα υπάρχει στο μέλλον στον Ιστό Λογικό επίπεδο: XML Σημασιολογικό επίπεδο (RDF, OWL) Παράδειγμα: βρες φωτογραφία του Alan Rector Επιστρέφει: φωτογραφία του Alan …, Rector of …Church Πως θα πούμε στις μηχανές αναζήτησης οτι το Rector στην μια περίπτωση είναι επώνυμο, ενώ στην άλλη επάγγελμα; Επισημείωση της πληροφορίας με tags (XML) Ορισμός του λεξιλογίου των tags (RDF, OWL) Δυνατό (πλέον) το ερώτημα: «priest Alan»

55 Information Retrieval Μοντέλο Vector Space Ευρετήρια για ανεύρεση κειμένων Μηχανές αναζήτησης στον Ιστό MapReduce

56 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός56 Αντιμετώπιση τεράστιου όγκου δεδομένων Το indexing σύστημα του Google παράγεται από έγγραφα που «μαζεύουν» οι crawlers όγκου 20 TB (2004) Τα έγγραφα αυτά αποθηκεύονται σε ένα distributed file system, το GFS (Google File System) Πως μπορεί κάποιος να παράγει inverted indexes με αποδοτικό τρόπο; Λύση: παραλληλισμός (…αντίστοιχος με τον τρόπο απάντησης ερωτημάτων που εξετάσαμε) Η λύση της Google: «MapReduce» Προγραμματιστικό μοντέλο Σχετική αρχιτεκτονική / υλοποίηση

57 Τι είναι το MapReduce; Πολλές εργασίες αναγκαίες για τις μηχανές αναζήτησης Είναι αλγοριθμικά απλές Αλλά εφαρμόζονται σε τεράστιο όγκο δεδομένων εισόδου Τι κάνει τις απλές αυτές εργασίες πολύπλοκες; Παραλληλισμός σε εκατοντάδες ή και χιλιάδες μηχανήματα Διαμοιρασμός των δεδομένων Διαχείριση αποτυχιών MapReduce: απομόνωση της πολυπλοκότητας Ο χρήστης γράφει κώδικα μόνο για το αλγοριθμικό κομμάτι Η υποδομή του MapReduce αναλαμβάνει την παράλληλη εκτέλεση, τον διαμοιρασμό των δεδομένων, και την διαχείριση των αποτυχιών. Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός57

58 Το μοντέλο MapReduce Ονομάστηκε έτσι από τα 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) Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός58

59 Παράδειγμα 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)); Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός59

60 Παράδειγμα MapReduce (2) …συνέχεια Επίσης ο χρήστης γράφει κώδικα για να «γεμίσει» ένα mapreduce specification object, που καθορίζει Τα ονόματα των φακέλων εισόδου Τα ονόματα των φακέλων εξόδου Προαιρετικές παραμέτρους ρύθμισης Ο χρήστης καλεί τη (προυπάρχουσα) συνάρτηση MapReduce Περνώντας το mapreduce specification object Ο κώδικας του χρήστη είναι linked με τη βιβλιοθήκη MapReduce (γραμμένη σε C++) Αυτή φροντίζει για την εκτέλεση των διαδικασιών Και για τον αυτόματο παραλληλισμό τους Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός60

61 Αρχιτεκτονική του 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 Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός61

62 Αρχιτεκτονική του MapReduce (2) Τρόπος εκτέλεσης και διαμοιρασμού Αυτόματος διαμοιρασμός των δεδομένων εισόδου σε ένα σύνολο M splits Τα splits τα επεξεργάζονται παράλληλα διαφορετικά μηχανήματα (map) Τα ενδιάμεσα αποτελέσματα του Map διαμοιράζονται σε R partitions Η partitioning συνάρτηση (πχ. hash(key) mod R) όπως και ο αριθμός R ορίζονται από το χρήστη Ο αριθμός R καθορίζει τον διαμοιρασμό του Reduce, μια και ο χώρος των ενδιάμεσων κλειδιών σπάει σε R κομμάτια Το ίδιο μηχάνημα μπορεί να εκτελέσει πολλά reduce, ένα για κάθε ενδιάμεσο κλειδί που του αντιστοιχεί Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός62

63 Αρχιτεκτονική του MapReduce (3) Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός63

64 Αρχιτεκτονική του MapReduce (4) Βήματα της εκτέλεσης με αναφορά στην πίσω εικόνα: 1. Η βιβλιοθήκη MapReduce σπάει την είσοδο σε M splits των ΜΒ (ελεγχόμενο μέσω προαιρετικής παραμέτρου). Στη συνέχεια αρχίζει αντίγραφα του προγράμματος στο cluster 2. Ένα αντίγραφο είναι ειδικό – ο master. Αυτός αναθέτει δουλειά (map και reduce tasks) σε άλλα μηχανήματα που βλέπει να είναι διαθέσιμα 3. Κάθε κόμβος που τρέχει το map διαβάζει το αντίστοιχο split εισόδου. Περνά κάθε ζεύγος key/value στη συνάρτηση Map του χρήστη, και κρατά στη μνήμη τα αποτελέσματα (ενδιάμεσα ζεύγη key/value) 4. Κάθε τόσο γράφει τα αποτελέσματα στον τοπικό δίσκο καλώντας την partitioning συνάρτηση για να τα διαμοιράσει σε R κομμάτια. Οι θέσεις των φακέλων δίνονται στον master, που τις τροφοδοτεί στους κόμβους που εκτελούν το reduce Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός64

65 Αρχιτεκτονική του MapReduce (5) …συνέχεια 5. Όταν ένας κόμβος reduce λάβει τέτοιες θέσεις χρησιμοποιεί RPC για να διαβάσει τα δεδομένα από τους δίσκους των map κόμβων. Ταξινομεί όλα τα δεδομένα με βάση το ενδιάμεσο κλειδί (external sort αν μεγάλος όγκος) 6. Για κάθε ενδιάμεσο κλειδί ο reduce κόμβος περνάει τις ενδιάμεσες τιμές στη συνάρτηση Reduce του χρήστη. Η έξοδος της συνάρτησης αποτελεί προσθήκη στο τελικό αποτέλεσμα 7. Αφού όλες οι εργασίες map και reduce έχουν ολοκληρωθεί, ο master επιστρέφει τον έλεγχο της εκτέλεσης στο πρόγραμμα του χρήστη (η κλήση στη MapReduce επιστρέφει) Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός65

66 Αρχιτεκτονική του MapReduce (6) Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός66

67 Αρχιτεκτονική του MapReduce (7) Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός67

68 Άλλα παραδείγματα εφαρμογών Μέτρηση της συχνότητας πρόσβασης σε URL Map: από web logs Reduce: Γράφος αντίστροφων συνδέσμων Map: από web page source για κάθε link σε target Reduce: Inverted index Map: παράγει από έγγραφα Reduce: Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός68

69 Οφέλη και προβλήματα Κλιμάκωση (+) Προσθήκη νέων μηχανημάτων στο cluster Οικονομία (+) Φθηνο υλικό, «commodity» Απλός κώδικας, εύκολος να αλλάξει (+) Τα θέματα του παραλληλισμού είναι κρυμμένα στη βιβλιοθήκη MapReduce Αυτόματη διαχείριση (+) Αποτυχιών, Διαμοιρασμού, Παραλληλισμού Κριτική (-) Χαμηλού επιπέδου προγραμματισμός Έλλειψη σχήματος για τα δεδομένα Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός69

70 Ύλη διαφανειών Database Management Systems, third edition. Ramakrishnan, Gehrke. McGraw Hill Κεφ MapReduce: Simplified Data Processing on Large Clusters. Jeffrey Dean, Sanjay Ghemawat. OSDI Διαχείρηση Δεδομένων και Παγκόσμιος Ιστός70


Κατέβασμα ppt "Διαχείριση Δεδομένων και Παγκόσμιος Ιστός IR και Μηχανές αναζήτησης."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google