4. Κατασκευή Ευρετηρίου

Σχετικά έγγραφα
Ανάκληση Πληποφοπίαρ. Information Retrieval. Διδάζκων Δημήηριος Καηζαρός

Information Retrieval

ΜΥΕ003: Ανάκτηση Πληροφορίας Διδάσκουσα: Ευαγγελία Πιτουρά. Κεφάλαια 4, 5: Κατασκευή Ευρετηρίου. Στατιστικά Συλλογής. Συμπίεση

ΜΥΕ003: Ανάκτηση Πληροφορίας Διδάσκουσα: Ευαγγελία Πιτουρά. Κεφάλαια 4, 5: Κατασκευή Ευρετηρίου. Στατιστικά Συλλογής. Συμπίεση

Information Retrieval

Information Retrieval

Information Retrieval

Introduction to Information Retrieval

Ευρετήρια. Ευρετήρια. Βάσεις Δεδομένων : Ευρετήρια 1

Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΜΥΕ003: Ανάκτηση Πληροφορίας. Διδάσκουσα: Ευαγγελία Πιτουρά Κεφάλαιο 5: Στατιστικά Συλλογής. Συμπίεση.

Ευρετήρια. Ευρετήρια. Βάσεις Δεδομένων : Ευρετήρια 1

5. Απλή Ταξινόμηση. ομές εδομένων. Χρήστος ουλκερίδης. Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων

Επεξεργασία Ερωτήσεων

Τα δεδοµένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο Για να επεξεργαστούµε τα δεδοµένα θα πρέπει αυτά να βρίσκονται στη

Επεξεργασία Ερωτήσεων

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ

Ανάκληση Πληποφοπίαρ. Information Retrieval. Διδάζκων Δημήηριος Καηζαρός

Επεξεργασία Ερωτήσεων

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΑΣΚΗΣΗ ΔΕΥΤΕΡΗ

Advanced Data Indexing

Εισαγωγή στην. Εισαγωγή Σ Β. Αρχεία ευρετηρίου Κατάλογος. συστήματος. Αρχεία δεδομένων

Φροντιστήριο 4. Άσκηση 1. Λύση. Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών HY463 - Συστήµατα Ανάκτησης Πληροφοριών Εαρινό Εξάµηνο

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Πληροφορική 2. Δομές δεδομένων και αρχείων

i Στα σύγχρονα συστήματα η κύρια μνήμη δεν συνδέεται απευθείας με τον επεξεργαστή

Κεφ.11: Ευρετήρια και Κατακερματισμός

Εξωτερική Ταξινόμηση. Μ.Χατζόπουλος 1

Κατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1

Τεχνολογίες Κύριας Μνήμης

Ανάκτηση Πληροφορίας. Φροντιστήριο 3

Ανάκληση Πληποφοπίαρ. Information Retrieval. Διδάζκων Δημήηριος Καηζαρός

Το εσωτερικό ενός Σ Β

Ανάκτηση πληροφορίας

Advanced Data Indexing

Δομές Δεδομένων Standard Template Library (STL) 23/3/2017 ΜΠΟΜΠΟΤΑΣ ΑΓΟΡΑΚΗΣ

Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy)

Επεξεργασία Ερωτήσεων

Standard Template Library (STL) C++ library

Λύση (από: Τσιαλιαμάνης Αναγνωστόπουλος Πέτρος) (α) Το trie του λεξιλογίου είναι

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής

EPL 660: Lab 4 Introduction to Hadoop

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Αλγόριθμοι και Πολυπλοκότητα

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Συστήματα Ανάκτησης Πληροφοριών ΗΥ-463

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Ανάκληση Πληπουοπίαρ. Information Retrieval. Διδάζκων Δημήηριος Καηζαρός

έντρα ομές εδομένων 3ο εξάμηνο ιδάσκων: Χρήστος ουλκερίδης ιαφάνειες προσαρμοσμένες από το υλικό της Μαρίας Χαλκίδη

Κεφάλαιο 14. οµές Ευρετηρίων για Αρχεία. ιαφάνεια 14-1

Ευρετηρίαση ΜΕΡΟΣ ΙIΙ. Επεξεργασία Κειμένου

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση, Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14-1

Κεφάλαιο 14. Δομές Ευρετηρίων για Αρχεία. Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση,

Τεχνολογία μνημών Ημιαγωγικές μνήμες Μνήμες που προσπελαύνονται με διευθύνσεις:

Διάλεξη 14: Δέντρα IV - B-Δένδρα

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΗΥ460 Συστήματα Διαχείρισης Βάσεων Δεδομένων Χειμερινό Εξάμηνο 2016 Διδάσκοντες: Βασίλης Χριστοφίδης, Δημήτρης Πλεξουσάκης, Χαρίδημος Κονδυλάκης

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Τεχνολογία Πολυμέσων. Ενότητα # 3: Συστήματα πολυμέσων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΗΥ460 Συστήµατα Διαχείρισης Βάσεων Δεδοµένων Χειµερινό Εξάµηνο 2016 Διδάσκοντες: Βασίλης Χριστοφίδης

ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ. Επίπεδα Αφαίρεσης Σ Β. Αποθήκευση Εγγραφών - Ευρετήρια. ρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, Επίπεδο Όψεων.

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Διάλεξη 1: Δομές Δεδομένων και Αλγόριθμοι - Εισαγωγή. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Ανάκληση Πληποφοπίαρ. Information Retrieval. Διδάζκων Δημήηριος Καηζαρός

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Εργασία Μαθήματος Αξία: 40% του τελικού σας βαθμού Ανάθεση: Παράδοση:

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Εισαγωγή. Γενική Εικόνα του Μαθήµατος. Το εσωτερικό ενός Σ Β. Εισαγωγή. Εισαγωγή Σ Β Σ Β. Αρχεία ευρετηρίου Κατάλογος συστήµατος Αρχεία δεδοµένων

Ταξινόμηση: Εισαγωγικά. Ταξινόμηση (Sor ng) Αλγόριθμοι Απλής Ταξινόμησης. Βασικά Βήματα των Αλγορίθμων

Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Ανάκτηση Πληροφορίας

Μαζικός Παραλληλισμός λ με Map - Reduce. Μοντέλο Θέματα υλοποίησης Παραδείγματα διαχείρισης δεδομένων

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Κεφάλαιο 4. Διαίρει και Βασίλευε (Divide and Conquer) Παύλος Εφραιμίδης V1.1,

Οι πράξεις της συνένωσης. Μ.Χατζόπουλος 1

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο

Ουρές Προτεραιότητας: Υπενθύμιση. Σωροί / Αναδρομή / Ταξινόμηση. Υλοποίηση Σωρού. Σωρός (Εισαγωγή) Ορέστης Τελέλης

Merge Sort (Ταξινόμηση με συγχώνευση) 6/14/2007 3:04 AM Merge Sort 1

ΑΣΚΗΣΗ. Δημιουργία Ευρετηρίων Συλλογής Κειμένων

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Transcript:

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 4. Κατασκευή Ευρετηρίου Ανάκτηση Πληροφοριών Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων

Πλάνο Προηγούμενο μάθημα ομές δεδομένων λεξικών Ανάκτηση ανεκτική σε σφάλματα Χαρακτήρες μπαλαντέρ Ορθογραφική διόρθωση Soundex Σήμερα Κατασκευή ευρετηρίου a-hu hy-m n-z $m mace mo on among abandon madden amortize among April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 2

Κατασκευή Ευρετηρίου Κεφάλαιο 4 Πώς κατασκευάζουμε ένα ευρετήριο; Τι στρατηγικές μπορούμε να χρησιμοποιήσουμε με περιορισμένη κύρια μνήμη; April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 3

Βασικά Στοιχεία Υλικού Κεφάλαιο 4.1 Πολλές επιλογές σχεδίασης στην ανάκτηση πληροφορίας βασίζονται στα χαρακτηριστικά υλικού (hardware) των υπολογιστών στους οποίους θα λειτουργεί το σύστημα Ξεκινούμε με μια σύντομη επισκόπηση του υλικού υπολογιστών April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 4

Βασικά Στοιχεία Υλικού Κεφάλαιο 4.1 Η προσπέλαση δεδομένων στη μνήμη γίνεται πολύ ταχύτερα από την προσπέλαση δεδομένων στο δίσκο Disk seeks: κατά τη διάρκεια του χρόνου αναζήτησης (seek time), όπου γίνεται μετακίνηση της κεφαλής του δίσκου, δε μεταφέρονται δεδομένα Συνεπώς: η μεταφορά ενός μεγάλου συνόλου δεδομένων από το δίσκο στη μνήμη είναι ταχύτερη από τη μεταφορά πολλών μικρών συνόλων Το disk I/O είναι κατά μπλοκ (block-based): διαβάζονται και εγγράφονται ολόκληρα μπλοκ δεδομένων Τυπικά μεγέθη μπλοκ: 8KB ως 256ΚΒ April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 5

Βασικά Στοιχεία Υλικού Κεφάλαιο 4.1 Οι εξυπηρετητές (servers) που χρησιμοποιούνται σε συστήματα ανάκτησης πληροφορίας διαθέτουν πλέον πολλά GB κύριας μνήμης, μερικές φορές ακόμα και δεκάδες GB Ο διαθέσιμος χώρος σε δίσκους είναι όμως κατά πολλές τάξεις μεγέθους μεγαλύτερος Η ανοχή σε σφάλματα είναι πολύ ακριβή: είναι φθηνότερο να χρησιμοποιηθούν πολλοί απλοί υπολογιστές παρά ένας υπολογιστής που είναι ανεκτικός σε σφάλματα April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 6

Κεφάλαιο 4.1 Υποθέσεις για το Υλικό για αυτό το Μάθημα symbol statistic value s average seek time 5 ms = 5 x 10 3 s b transfer time per byte 0.02 μs = 2 x 10 8 s processor s clock rate 10 9 s 1 p low-level operation 0.01 μs = 10 8 s (e.g., compare & swap a word) size of main memory several GB size of disk space 1 TB or more April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 7

Κεφάλαιο 4.2 RCV1: Η Συλλογή μας για αυτό το Μάθημα Η συλλογή των έργων του Shakespeare δεν είναι αρκετά μεγάλη για την επίδειξη πολλών εννοιών αυτού του μαθήματος Ούτε η συλλογή που θα χρησιμοποιήσουμε είναι αρκετά μεγάλη, όμως είναι δημόσια διαθέσιμη και αποτελεί πιο καλό παράδειγμα Σαν παράδειγμα εφαρμογής κλιμακώσιμων αλγόριθμων κατασκευής ευρετηρίου, θα χρησιμοποιήσουμε τη συλλογή Reuters RCV1 Είναι τα έγγραφα που στάλθηκαν μέσω του κυκλώματος ειδήσεων του Reuters (μέρος του 1995 και του 1996) April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 8

Ένα Έγγραφο της Συλλογής RCV1 Κεφάλαιο 4.2 April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 9

Στατιστικά της Συλλογής RCV1 Κεφάλαιο 4.2 symbol statistic value N documents 800,000 L avg. # tokens per doc 200 M terms (= word types) 400,000 avg. # bytes per token 6 (incl. spaces/punct.) avg. # bytes per token 4.5 (without spaces/punct.) avg. # bytes per term 7.5 non-positional postings 100,000,000 April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 10

Βασική Μέθοδος Κατασκευής Ευρετηρίου I did enact Julius Caesar I was killed i' the Capitol; Brutus killed me. Κεφάλαιο 4.2 [1 ο Μάθημα] Term Doc # I 1 did 1 enact 1 julius 1 Από τα έγγραφα εξάγονται όροι και caesar 1 I 1 was 1 αποθηκεύονται μαζί με το docid killed 1 i' 1 the 1 capitol 1 brutus 1 killed 1 me 1 Doc 1 Doc 2 so 2 let 2 it 2 be 2 So let it be with with 2 caesar 2 Caesar. The noble the 2 Brutus hath told you noble 2 Caesar was ambitious brutus 2 hath 2 told 2 you 2 caesar 2 April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο was 2 11 ambitious 2

Βήμα Κλειδί Κεφάλαιο 4.2 Μετά την ανάγνωση όλων των εγγράφων, το αντεστραμμένο ευρετήριο ταξινομείται κατά όρους Επικεντρωνόμαστε στο βήμα ταξινόμησης. Έχουμε 100M στοιχεία (όρους) για ταξινόμηση. Term Doc # I 1 did 1 enact 1 julius 1 caesar 1 I 1 was 1 killed 1 i' 1 the 1 capitol 1 brutus 1 killed 1 me 1 so 2 let 2 it 2 be 2 with 2 caesar 2 the 2 noble 2 brutus 2 hath 2 told 2 you 2 caesar 2 was 2 ambitious 2 Term Doc # ambitious 2 be 2 brutus 1 brutus 2 capitol 1 caesar 1 caesar 2 caesar 2 did 1 enact 1 hath 1 I 1 I 1 i' 1 it 2 julius 1 killed 1 killed 1 let 2 me 1 noble 2 so 2 the 1 the 2 told 2 you 2 was 1 was 2 with 2 April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 12

Κλιμάκωση Κατασκευής Ευρετηρίου Κεφάλαιο 4.2 Η κατασκευή του ευρετηρίου στη μνήμη δεν κλιμακώνει καλά εν μπορούμε να αποθηκεύσουμε όλη τη συλλογή στη μνήμη, να ταξινομήσουμε, και μετά να γραφεί πάλι στο δίσκο Πώς μπορούμε να κατασκευάσουμε ένα ευρετήριο για πολύ μεγάλες συλλογές; Λαμβάνοντας υπόψιν τους περιορισμούς υλικού που μόλις μάθαμε... Μνήμη, δίσκος, ταχύτητα, κτλ. April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 13

Κεφάλαιο 4.2 Κατασκευή Ευρετηρίου με Ταξινόμηση Όπως κατασκευάζουμε το ευρετήριο, διαβάζουμε ένα-ένα τα έγγραφα Καθώς χτίζεται το ευρετήριο, δεν είναι εύκολο να εκμεταλλευτούμε τεχνικές συμπίεσης (γίνεται, αλλά είναι πολύπλοκο) Οι λίστες καταχώρησης (postings) για οποιοδήποτε όρο είναι ημιτελείς ως το τέλος Υπολογίζοντας 12 bytes για κάθε καταχώρηση (term, doc, freq) απαιτεί πολύ χώρο για μεγάλες συλλογές T = 100,000,000 στην περίπτωση της RCV1 Αυτό μπορεί να γίνει στη μνήμη, όμως συνήθως οι συλλογές είναι πολύ μεγαλύτερες. Π.χ. Οι New York Times παρέχουν ένα ευρετήριο με ειδήσεις για >150 χρόνια Έτσι: χρειάζεται να αποθηκεύουμε ενδιάμεσα αποτελέσματα στο δίσκο April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 14

Ταξινόμηση χρησιμοποιώντας το Δισκο ως «Μνήμη» Μπορούμε να χρησιμοποιήσουμε τον ίδιο αλγόριθμο κατασκευής ευρετηρίου για μεγαλύτερες συλλογές, αλλά χρησιμοποιώντας το δίσκο αντί για τη μνήμη; Όχι, ταξινόμηση των T = 100,000,000 εγγραφών στο δίσκο είναι πολύ αργή πολλές αναζητήσεις στο δίσκο Χρειαζόμαστε αλγόριθμο εξωτερικής ταξινόμησης (external sorting) Κεφάλαιο 4.2 April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 15

Σημείο Συμφόρησης (Bottleneck) Κεφάλαιο 4.2 ιαβάζουμε ένα έγγραφο τη φορά και κατασκευάζουμε τις λίστες καταχώρησης Ταξινομούμε τις λίστες καταχώρησης κατά όρο (μετά κατά docid για κάθε όρο) Εάν το κάνουμε αυτό με τυχαίες προσπελάσεις δίσκου θα είναι πολύ αργό πρέπει να ταξινομήσουμε T=100M εγγραφές Εάν κάθε σύγκριση απαιτεί 2 disk seeks, και N στοιχεία μπορούν να ταξινομηθούν Με N log 2 N συγκρίσεις, πόσο χρόνο θα πάρει? April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 16

Ανάλυση Κόστους 100,000,000 records Nlog 2 (N) is = 2,657,542,475.91 comparisons 2 disk seeks per comparison = 13,287,712.38 seconds x 2 = 26,575,424.76 seconds = 442,923.75 minutes = 7,382.06 hours = 307.59 days = 84% of a year = 1% of your life April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 17

BSBI: Blocked sort-based Indexing (Sorting with fewer disk seeks) Εγγραφές 12 byte (4+4+4) με (term, doc, freq) Παράγονται καθώς διαβάζουμε τα έγγραφα Πρέπει να ταξινομήσουμε 100Μ τέτοιες εγγραφές κατά term Ορίζουμε ένα μπλοκ (block) ~10Μ τέτοιες εγγραφές Έτσι ώστε να χωρούν μερικά τέτοια μπλοκ στη μνήμη Θα έχουμε 10 τέτοια μπλοκ κατ αρχήν Βασική ιδέα του αλγόριθμου Κεφάλαιο 4.2 Συγκεντρώνει στη μνήμη τις λίστες καταχώρησης (postings) για κάθε μπλοκ, ταξινομεί, και γράφει στο δίσκο Τέλος, συγχώνευση των μπλοκ σε ένα μεγάλο συγχωνευμένο ευρετήριο April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 18

Κεφάλαιο 4.2 April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 19

Ταξινομώντας 10 Μπλοκ των 10Μ Εγγραφών Αρχικά διαβάζουμε κάθε μπλοκ και ταξινομούμε τα περιεχόμενά του Η Quicksort απαιτεί 2N lnn βήματα Στην περίπτωσή μας 2 (10M ln 10M) βήματα Άσκηση: εκτιμήστε το χρόνο ανάγνωσης ενός μπλοκ από το δίσκο και ταξινόμησης με Quicksort 10 φορές αυτή η εκτίμηση μας δίνει 10 ταξινομημένα σύνολα των 10Μ εγγραφών το καθένα Γίνεται εύκολα, χρειαζόμαστε 2 αντίγραφα των δεδομένων στο δίσκο Μπορούμε να το βελτιώσουμε όμως Κεφάλαιο 4.2 April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 20

Κεφάλαιο 4.2 April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 21

Πώς Συγχωνεύουμε τα Ταξινομημένα Μπλοκ; Κεφάλαιο 4.2 Μπορούμε να κάνουμε δυαδικές συγχωνεύσεις, με ένα δέντρο συγχωνεύσεων με log 2 10 = 4 επίπεδα Σε κάθε επίπεδο, διαβάζουμε στη μνήμη μπλοκ των 10Μ, τα συγχωνεύουμε και τα γράφουμε πίσω στο δίσκο 1 2 3 4 1 2 3 Merged run. Runs being merged. Disk April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 22 4

Πώς Συγχωνεύουμε τα Ταξινομημένα Μπλοκ; Κεφάλαιο 4.2 Όμως είναι πιο αποδοτικό να κάνουμε μια συγχώνευση πολλαπλών αρχείων (multi-way merge), διαβάζοντας από όλα τα μπλοκ ταυτόχρονα Με δεδομένο ότι διαβάζονται σημαντικού μεγέθους τμήματα κάθε μπλοκ στη μνήμη, και έπειτα γράφονται επίσης σημαντικού μεγέθους τμήματα, δεν μας επηρεάζουν και τόσο πολύ οι αναζητήσεις στο δίσκο (disk seeks) April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 23

Ανάλυση Κόστους (BSBI) 12-byte records (term, doc, meta-data) Need to sort T= 100,000,000 such 12-byte records by term Define a block to have 1,600,000 such records can easily fit a couple blocks in memory we will be working with 64 such blocks 64 blocks * 1,600,000 records * 12 bytes = 1,228,800,000 bytes Nlog 2 N comparisons is 5,584,577,250.93 2 touches per comparison at memory speeds (10e-6 sec) = 55,845.77 seconds = 930.76 min = 15.5 hours April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 24

Εναπομείνον Πρόβλημα με τον Κεφάλαιο 4.3 Αλγόριθμο Ταξινόμησης Η υπόθεσή μας ήταν ότι μπορούμε να διατηρούμε στη μνήμη το λεξικό Χρειαζόμαστε το λεξικό (που αυξάνεται δυναμικά σε μέγεθος) για να υλοποιήσουμε μια αντιστοίχιση όρου (term) σε αναγνωριστικό όρου (termid) Θα μπορούσαμε να δουλέψουμε με λίστες {term, docid} αντί για {termid, docid}......όμως τα ενδιάμεσα αρχεία μεγαλώνουν πολύ σε μέγεθος (έτσι θα καταλήγαμε σε μια κλιμακώσιμη, αλλά πολύ αργή μέθοδο κατασκευής ευρετηρίου) April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 25

SPIMI: Single-pass in-memory Κεφάλαιο 4.3 indexing Βασική ιδέα #1: ημιουργία ξεχωριστών λεξικών για κάθε μπλοκ άρα δε χρειάζεται να διατηρούμε αντιστοιχίσεις term-termid για διαφορετικά μπλοκ Βασική ιδέα #2: εν ταξινομούμε, απλά συγκεντρώνουμε καταχωρήσεις στις λίστες (postings) όπως εμφανίζονται Με αυτές τις δύο ιδέες μπορούμε να κατασκευάσουμε ένα πλήρες αντεστραμμένο ευρετήριο για κάθε μπλοκ Στη συνέχεια, αυτά τα επιμέρους ευρετήρια μπορούν να συγχωνευθούν σε ένα μεγάλο ευρετήριο April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 26

SPIMI-Invert Κεφάλαιο 4.3 Απλή διαχείριση δομών δεδομένων Η συγχώνευση των μπλοκ είναι παρόμοια με το BSBI April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 27

BSBI vs. SPIMI Dict Bl ion oc ary k 21 Main Bl oc k 1 Bl oc k Inverted 2 Index Bl oc k 3 Bl oc k 4 Bl oc k 5 Phase: Pass Merge1 2 Disk BSBI 28

29 Single Pass Merge Inverted Index Main Disk SPIMI Phase: Bl oc k 1 Su b- dic tio nar y Bl oc k 2 Su b- dic tio nar y Bl oc k 3 Su b- dic tio nar y Bl oc k 2 Su b- dic tio nar y Bl oc k 1 Su b- dic tio nar y BSBI vs. SPIMI

SPIMI: Συμπίεση Κεφάλαιο 4.3 Η συμπίεση κάνει τον αλγόριθμο SPIMI πιο αποδοτικό Συμπίεση όρων (terms) Συμπίεση λιστών καταχώρησης (postings) Περισσότερα στο επόμενο μάθημα April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 30

Κατανεμημένη Ευρετηρίαση Κεφάλαιο 4.4 Για ευρετήρια Παγκόσμιου Ιστού (don t try this at home!) Απαιτούνται κατανεμημένες συστοιχίες υπολογιστών (computer clusters) Μεμονωμένοι υπολογιστές μπορεί να καταρρεύσουν Μπορεί να καθυστερούν απρόβλεπτα ή να πάθουν κάποια ζημιά Πώς μπορούμε να εκμεταλλευτούμε μια τέτοια μεγάλη υπολογιστική υποδομή; April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 31

Κεφάλαιο 4.4 Data Centers των Μηχανών Αναζήτησης Τα data centers μεγάλων μηχανών αναζήτησης (Google, Bing, Baidu) αποτελούνται κυρίως από υπολογιστές κατασκευασμένους από συνηθισμένα εξαρτήματα (επεξεργαστή, μνήμη, δίσκο) Τα data centers είναι κατανεμημένα σε όλο τον κόσμο Εκτίμηση: Google ~1 million servers, 3 million processors/cores (Gartner 2007) April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 32

Τεράστια Data Centers Κεφάλαιο 4.4 Εάν σε ένα σύστημα που μπορεί να εμφανίσει σφάλματα και αποτελείται από 1000 κόμβους, κάθε κόμβος έχει 99.9% uptime, ποιο είναι το uptime του συστήματος; Απάντηση: 63% Άσκηση: Υπολογίστε τον αριθμό εξυπηρετητών που παρουσιάζουν κάποιο σφάλμα ανά λεπτό, για μια εγκατάσταση με 1 εκατομμύριο εξυπηρετητές April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 33

Κατανεμημένη Ευρετηρίαση Κεφάλαιο 4.4 Ύπαρξη ενός master υπολογιστή (κύριος κόμβος) που διευθύνει τη διαδικασία ευρετηρίασης Θεωρείται ασφαλής ιάσπαση της ευρετηρίασης σε σύνολα (παράλληλων) εργασιών (tasks) Ο master υπολογιστής αναθέτει κάθε εργασία σε έναν υπολογιστή που δεν επιτελεί κάποιο έργο από ένα σύνολο υπολογιστών April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 34

Παράλληλες Εργασίες Κεφάλαιο 4.4 Θα χρησιμοποιήσουμε 2 σύνολα παράλληλων εργασιών Αναλυτές (Parsers) Αντιστροφείς (Inverters) ιάσπαση της συλλογής προς ευρετηρίαση σε μερίδια (splits) Κάθε μερίδιο είναι ένα υποσύνολο από έγγραφα (αντιστοιχούν σε μπλοκ των BSBI/SPIMI) April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 35

Αναλυτές (Parsers) Κεφάλαιο 4.4 Ο κύριος κόμβος (master) αναθέτει εργασία σε κάποιον συντακτικό αναλυτή (parser) που δεν εκτελεί κάποια εργασία Ο αναλυτής διαβάζει ένα έγγραφο τη φορά και παράγει ως έξοδο ζεύγη (term, doc) Ο αναλυτής γράφει τα ζεύγη σε j διαμερίσεις (partitions) Κάθε διαμέριση αντιστοιχεί σε ένα εύρος αρχικών γραμμάτων όρων (π.χ., a-f, g-p, q-z) εδώ j = 3 Τώρα απομένει η ολοκλήρωση της αντιστροφής April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 36

Αντιστροφείς (Inverters) Κεφάλαιο 4.4 Ένας αντιστροφέας συλλέγει όλα τα ζεύγη (term, doc) για μία διαμέριση όρων Γίνεται διάταξη των doc και η ταξινομημένη λίστα με τα doc γράφεται ως τελική διατεταγμένη λίστα καταχωρήσεων April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 37

Ροή Δεδομένων (Data Flow) Κεφάλαιο 4.4 assign Master assign Postings Parser a-f g-p q-z Inverter a-f Parser a-f g-p q-z Inverter g-p splits Parser a-f g-p q-z Inverter q-z Map phase Segment files Reduce phase April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 38

MapReduce Κεφάλαιο 4.4 Η μέθοδος κατασκευής ευρετηρίου που περιγράψαμε αποτελεί εφαρμογή της MapReduce Η MapReduce (Dean and Ghemawat 2004) αποτελεί ένα στιβαρό και εννοιολογικά απλό πλαίσιο για κατανεμημένα υπολογιστικά συστήματα......δίχως την ανάγκη να γράφουμε κώδικα για το κομμάτι της κατανομής (distribution) Περιγράφουν το σύστημα ευρετηρίασης της Google (αφορά το 2002) ως ένα σύνολο φάσεων, που η καθεμιά είναι υλοποιημένη με MapReduce April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 39

MapReduce Κεφάλαιο 4.4 Η κατασκευή του ευρετηρίου είναι απλά μία φάση Άλλη φάση: μετασχηματισμός του διαμερισμένου κατά όρο ευρετήριου (term-partitioned index) σε ευρετήριο διαμερισμένο κατά έγγραφο (document-partitioned index) Term-partitioned index: μία μηχανή αναλαμβάνει ένα πλήθος όρων Document-partitioned index: μία μηχανή αναλαμβάνει ένα πλήθος εγγράφων Όπως θα δούμε στην ανάκτηση πληροφοριών από τον Παγκόσμιο Ιστό, οι περισσότερες μηχανές αναζήτησης χρησιμοποιούν document-partitioned index για λόγους ισομοιρασμού φόρτου, κτλ. April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 40

Σχήμα για Κατασκευή Ευρετηρίου στο MapReduce Schema of map and reduce functions map: input list(k, v) reduce: (k,list(v)) output Instantiation of the schema for index construction map: collection list(termid, docid) Κεφάλαιο 4.4 reduce: (<termid1, list(docid)>, <termid2, list(docid)>, ) (postings list1, postings list2, ) April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 41

Παράδειγμα Κατασκευής Ευρετηρίου Map: d1 : C came, C c ed. d2 : C died. <C,d1>, <came,d1>, <C,d1>, <c ed, d1>, <C, d2>, <died,d2> Reduce: (<C,(d1,d2,d1)>, <died,(d2)>, <came,(d1)>, <c ed,(d1)>) (<C,(d1:2,d2:1)>, <died,(d2:1)>, <came,(d1:1)>, <c ed,(d1:1)>) April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 42

Δυναμική Ευρετηρίαση Κεφάλαιο 4.5 Μέχρι τώρα υποθέταμε ότι η συλλογή εγγράφων είναι στατική Σπάνια όμως συμβαίνει αυτό Νέα έγγραφα προστίθενται στη συλλογή Έγγραφα διαγράφονται ή τροποποιούνται Αυτό σημαίνει ότι το λεξικό και οι λίστες καταχώρησης πρέπει να ενημερώνονται Νέοι όροι προστίθενται στο λεξικό Ενημερώσεις στις λίστες καταχώρησης υπαρχόντων όρων στο λεξικό April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 43

Η Απλούστερη Προσέγγιση Κεφάλαιο 4.5 ιατηρούμε ένα «μεγάλο» κύριο ευρετήριο Τα νέα έγγραφα εισάγονται στο «μικρό» βοηθητικό ευρετήριο (auxiliary index) Οι αναζητήσεις εκτελούνται και στα δύο ευρετήρια και τα αποτελέσματα συγχωνεύονται ιαγραφές Αποθηκεύονται σε ένα διάνυσμα bit ακύρωσης (invalidation vector) Με αυτό μπορούμε να εξαιρούμε τα διαγραμμένα έγγραφα από τα αποτελέσματα της αναζήτησης Περιοδικά συγχωνεύουμε το βοηθητικό ευρετήριο με το κύριο ευρετήριο April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 44

Ζητήματα με Κύρια και Βοηθητικά Ευρετήρια Κεφάλαιο 4.5 Πρόβλημα συχνών συγχωνεύσεων Χαμηλή επίδοση στη συγχώνευση Πρακτικά Η συγχώνευση γίνεται αποδοτικά εάν διατηρούμε ένα ξεχωριστό αρχείο για κάθε λίστα καταχώρησης Η συγχώνευση είναι μια απλή προσθήκη (append) Όμως απαιτούνται πάρα πολλά αρχεία δεν μπορούν τα περισσότερα συστήματα αρχείων να τα χειριστούν αποδοτικά Υπόθεση για την υπόλοιπη διάλεξη: το ευρετήριο είναι ένα μεγάλο αρχείο Στην πραγματικότητα: χρησιμοποιείται μια μέση λύση, π.χ. ιάσπαση πολύ μεγάλων λιστών καταχώρησης, Συγκέντρωση λιστών καταχώρησης μήκους 1 σε ένα αρχείο, κτλ. April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 45

Λογαριθμική Συγχώνευση Κεφάλαιο 4.5 Χρησιμοποιούνται πολλά ευρετήρια, που το καθένα είναι διπλάσιο από το προηγούμενο Σε μια οποιαδήποτε χρονική στιγμή, κάποιες από αυτές τις δυνάμεις του 2 υφίστανται ιατηρούμε το μικρότερο ευρετήριο (Z 0 ) στη μνήμη Τα μεγαλύτερα στο δίσκο (I 0, I 1, ) Εάν το Z 0 μεγαλώσει πολύ (>n), γράφεται στο δίσκο σαν I 0 Ή συγχωνεύεται με το I 0 (εάν το I 0 υπάρχει ήδη) σε Z 1 Είτε το Z 1 αποθηκεύεται στο δίσκο ως I 1 (εάν δεν υπάρχει I 1 ) Ή συγχωνεύεται με το I 1 για να σχηματιστεί το Z 2 April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 46

Κεφάλαιο 4.5 April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 47

Λογαριθμική Συγχώνευση Κεφάλαιο 4.5 Βοηθητικό και κύριο ευρετήριο: η κατασκευή του ευρετηρίου κοστίζει O(T 2 ) μιας και επεξεργαζόμαστε κάθε λίστα καταχώρησης σε κάθε συγχώνευση Λογαριθμική συγχώνευση (logarithmic merge): κάθε λίστα καταχώρησης συγχωνεύεται O(log T) φορές, άρα η πολυπλοκότητα είναι O(T log T) Συνεπώς η λογαριθμική συγχώνευση είναι πολύ πιο αποδοτική για την κατασκευή ευρετηρίου Όμως η επεξεργασία επερωτήσεων απαιτεί τώρα τη συγχώνευση O(log T) ευρετηρίων Ενώ είναι O(1) εάν υπάρχει απλά ένα κύριο κι ένα βοηθητικό ευρετήριο April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 48

Επιπλέον Θέματα με Πολλαπλά Ευρετήρια Κεφάλαιο 4.5 Περιπλέκεται η διατήρηση στατιστικών στοιχείων για το σύνολο της συλλογής Π.χ. Στον αλγόριθμο ορθογραφικής διόρθωσης: ποια από τις εναλλακτικές διορθώσεις παρουσιάζουμε στο χρήστη; Είχαμε πει ότι επιλέγουμε εκείνη με τα περισσότερα hits Πώς διατηρούμε τις καλύτερες εναλλακτικές όταν έχουμε πολλαπλά ευρετήρια και διανύσματα bit ακύρωσης; Μία λύση: αγνοούμε τα πάντα εκτός του κύριου ευρετηρίου για να βρούμε μια κατάταξη των καλύτερων εναλλακτικών Θα εξετάσουμε περισσότερα τέτοια στατιστικά όταν μιλήσουμε για κατάταξη αποτελεσμάτων April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 49

Δυναμική Ευρετηρίαση σε Μηχανές Αναζήτησης Κεφάλαιο 4.5 Όλες οι μηχανές αναζήτησης χρησιμοποιούν δυναμική ευρετηρίαση Τα ευρετήριά τους έχουν συχνές αλλαγές αυξητικά News items, blogs, new topical web pages Sarah Palin, Όμως συνήθως περιοδικά ανακατασκευάζουν το ευρετήριο εξαρχής Έπειτα ανακατευθύνεται η επεξεργασία επερωτήσεων στο νέο ευρετήριο και το παλιό διαγράφεται April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 50

Κεφάλαιο 4.5 April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 51

Άλλοι Τύποι Ευρετηρίων Κεφάλαιο 4.5 Ευρετήρια με πληροφορία θέσεων (Positional indexes) Το ίδιο πρόβλημα κι εδώ... μόνο πιο έντονο Κατασκευή ευρετηρίων n-grams Όπως αναλύεται το κείμενο, απαριθμώνται τα n-grams Για κάθε n-gram, χρειαζόμαστε δείκτες προς όλους τους όρους του λεξικού που το περιέχουν (λίστες καταχώρησης) Η ίδια καταχώρηση θα εμφανίζεται επανηλειμένα κατά την ανάλυση κειμένου χρειάζεται αποδοτικός κατακερματισμός για αυτό Π.χ., το ότι trigram uou εμφανίζεται στον όρο deciduous θα το ανακαλύπτουμε σε κάθε εμφάνιση του deciduous στο κείμενο Χρειάζεται να επεξεργαστούμε κάθε όρο μόνο μία φορά Why? April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 52

Πηγές Αναφοράς Εισαγωγή στην Ανάκτηση Πληροφοριών, κεφάλαιο 4 MG Chapter 5 Original publication on MapReduce: Dean and Ghemawat (2004) Original publication on SPIMI: Heinz and Zobel (2003) April 5, 2016 Ανάκτηση Πληροφοριών,6ο Εξάμηνο 53