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

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

Information Retrieval

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

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

Information Retrieval

Introduction to Information Retrieval

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

Information Retrieval

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

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

6. Βαθμολόγηση, Στάθμιση Όρων, και το Μοντέλο Διανυσματικού Χώρου

Επεξεργασία Πολυµέσων. Δρ. Μαρία Κοζύρη Π.Μ.Σ. «Εφαρµοσµένη Πληροφορική» Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο Θεσσαλίας

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

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

Information Retrieval

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

Εύρεση & ιαχείριση Πληροφορίας στον Παγκόσµιο Ιστό

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

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

Λειτουργίες επί των Κειµένων. Προεπεξεργασία Clustering Συµπίεση

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

Information Retrieval

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

DIP_06 Συμπίεση εικόνας - JPEG. ΤΕΙ Κρήτης

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

Εύρεση & ιαχείριση Πληροφορίας στον Παγκόσµιο Ιστό. Συµπίεση Ευρετηρίου. Term weighting. ιδάσκων ηµήτριος Κατσαρός, Ph.D.

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

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

Διαχείριση εγγράφων. Αποθήκες και Εξόρυξη Δεδομένων Διδάσκων: Μ. Χαλκίδη

ΘΕΩΡΙΑ ΠΛΗΡΟΦΟΡΙΑΣ. Κεφάλαιο 3 : Πηγές Πληροφορίας Χρήστος Ξενάκης. Πανεπιστήμιο Πειραιώς, Τμήμα Ψηφιακών Συστημάτων

Ευρετηρίαση, Αποθήκευση και Οργάνωση Αρχείων (Indexing, Storage and File Organization) ΜΕΡΟΣ Ι

Κατηγορίες Συμπίεσης. Συμπίεση με απώλειες δεδομένων (lossy compression) π.χ. συμπίεση εικόνας και ήχου

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

ΤΕΧΝΟΛΟΓΙΕΣ ΠΟΛΥΜΕΣΩΝ

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

Αριθμητικά Συστήματα

Δομημένος Προγραμματισμός (ΤΛ1006)

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης Εργαστηριακές Ασκήσεις

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

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

Αναπαράσταση Μη Αριθμητικών Δεδομένων

! Δεδομένα: ανεξάρτητα από τύπο και προέλευση, στον υπολογιστή υπάρχουν σε μία μορφή: 0 και 1

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

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

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

Ψηφιακή Επεξεργασία Εικόνας

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

Κεφάλαιο 5 Ανάλυση Αλγορίθμων

Θέματα Συστημάτων Πολυμέσων

Συστήματα Πολυμέσων. Ενότητα 3: Εισαγωγικά θέματα Συμπίεσης. Θρασύβουλος Γ. Τσιάτσος Τμήμα Πληροφορικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

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

Μεταπτυχιακή Διπλωματική Εργασία. «Τεχνικές Δεικτοδότησης Συστημάτων Ανάκτησης Πληροφορίας με τη χρήση Wavelet Trees» Κατσίπη Δήμητρα ΑΜ: 741

Λειτουργίες επί των Κειµένων. Προεπεξεργασία Κειµένων. Προεπεξεργασία Clustering Συµπίεση

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

Posting File. D i. tf key1 [position1 position2 ] D j tf key2... D l.. tf keyl

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μαθήματα 6 και 7 Αναπαράσταση της Πληροφορίας στον Υπολογιστή. 1 Στέργιος Παλαμάς

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Εισαγωγή στον Προγραμματισμό

7ο ΕΡΓΑΣΤΗΡΙΟ AAAABBBBAAAAABBBBBBCCCCCCCCCCCCCCBBABAAAABBBBBBCCCCD

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

Εισαγωγή στον Προγραμματισμό

ΤΕΙ ΚΡΗΤΗΣ ΤΜ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡ/ΚΗΣ & ΠΟΛΥΜΕΣΩΝ ΔΙΔΑΣΚΩΝ: Δρ. Γ. ΓΑΡΔΙΚΗΣ. Κωδικοποίηση εικόνας

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

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

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 1. Χειμερινό Εξάμηνο

Αρχές κωδικοποίησης. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 08-1

Εύρεση & ιαχείριση Πληροφορίας στον Παγκόσµιο Ιστό

Εύρεση & ιαχείριση Πληροφορίας στον Παγκόσµιο Ιστό. Ζητήµατα Μεγάλης-Κλίµακας Υλοποίησης του PageRank. Αρχιτεκτονική Μηχανής Αναζήτησης

Τα µπιτ και η σηµασία τους. Σχήµα bit. ΚΕΦΑΛΑΙΟ 1: Αποθήκευση εδοµένων (1/2) 1.7 Αποθήκευση κλασµάτων 1.8 Συµπίεση δεδοµένων 1.9 Σφάλµατα επικοινωνίας

Elements of Information Theory

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

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

Χρήστος Ξενάκης. Πανεπιστήμιο Πειραιώς, Τμήμα Ψηφιακών Συστημάτων

Insert (P) : Προσθέτει ένα νέο πρότυπο P στο λεξικό D. Delete (P) : Διαγράφει το πρότυπο P από το λεξικό D

Συμπίεση Πολυμεσικών Δεδομένων

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΜΗΜΑ: Γ2

0 The quick brown fox leaped over the lazy lazy dog 1 Quick brown foxes leaped over lazy dogs for fun

Επεξεργασία Χαρτογραφικής Εικόνας

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

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

Δομές Δεδομένων και Αλγόριθμοι. Λουκάς Γεωργιάδης

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

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

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

Συμπίεση Δεδομένων Δοκιμής (Test Data Compression) Νικολός Δημήτριος, Τμήμα Μηχ. Ηλεκτρονικών Υπολογιστών & Πληροφορικής, Παν Πατρών

Τυχαίοι αριθμοί struct Αρχεία Διαμορφώσεις Συναρτήσεις Χειρισμός σφαλμάτων ΠΕΜΠΤΗ ΔΙΑΛΕΞΗ

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

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Τεχνικές Συµπίεσης Βίντεο. Δρ. Μαρία Κοζύρη Τµήµα Πληροφορικής Πανεπιστήµιο Θεσσαλίας

Τηλεπικοινωνιακά Συστήματα ΙΙ

Τηλεπικοινωνιακά Συστήματα ΙΙ

Ανάκτηση Πληροφορίας (Information Retrieval IR)

Transcript:

Ανάκληση Πληποφοπίαρ Information Retrieval Διδάζκων Δημήηριος Καηζαρός Διάλεξη 8η: 22/03/2016 1

Ch. 5 Το οφέλη της συμπίεσης (γενικώς) Χρησιμοποιεί λιγότερο χώρο στον δίσκο Σώζει και κάποια χρήματα Διατηρούμε περισσότερα δεδομένα στην κύρια μνήμη Αυξάνει την ταχύτητα Αυξάνει την ταχύτητα ανάκτησης δεδομένων από τον δίσκο στην κύρια μνήμη [ανάγνωση συμπιεσμένων δεδομένων & αποσυμπίεση] είναι ταχύτερη από [ανάγνωση ασυμπίεστων δεδομένων] Προϋπόθεση: Οι αλγόριθμοι αποσυμπίεσης είναι ταχείς Αληθές για τους τωρινούς αλγορίθμους 2

Ch. 5 Οφέλη ενός συμπιεσμένου inverted index Dictionary Το κάνει μικρό, ώστε να χωράει στην κύρια μνήμη Το κάνει τόσο μικρό, ώστε να χωράνε και κάποιες postings lists (ή τμήματά τους) στην κύρια μνήμη (οι τεχνικές που αναφέρονται ως static index pruning δεν θα τις διαπραγματευτούμε στο μάθημα) Postings file(s) Ελάττωση του καταλαμβανόμενου χώρου στον δίσκο Ελάττωση του απαιτούμενου χρόνου για την ανάγνωση των postings lists από τον δίσκο Οι βιομηχανικές search engines διατηρούν ένα σημαντικό κομμάτι των postings στην κύρια μνήμη Η Google διατηρεί ολόκληρο τον inverted index στην μνήμη! (στην πραγματικότητα, στην μνήμη του cluster) 3

Sec. 5.1 Θυμηθείτε την συλλογή Reuters RCV1 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 4

Sec. 5.1 Παράμετροι του index ως προς το τι κάνουμε indexing size of word types (terms) non-positional postings positional postings dictionary non-positional index positional index Size (K) % cumul % Size (K) % cumul % Size (K) Unfiltered 484 109,971 197,879 % cumul % No numbers 474-2 -2 100,680-8 -8 179,158-9 -9 Case folding 392-17 -19 96,969-3 -12 179,158 0-9 30 stopwords 391-0 -19 83,390-14 -24 121,858-31 -38 150 stopwords 391-0 -19 67,002-30 -39 94,517-47 -52 stemming 322-17 -33 63,812-4 -42 94,517 0-52 5

Sec. 5.1 Lossless ως προς lossy συμπίεση Lossless (χωρίς απώλειες) συμπίεση: Όλη η πληροφορία διατηρείται Σχεδόν αποκλειστική τεχνική στην IR Lossy (με απώλειες) συμπίεση: Απορρίπτουμε κάποια πληροφορία Αρκετά από τα βήματα προεπεξεργασίας που περιγράψαμε σε προηγούμενες διαλέξεις μπορούν να θεωρηθούν ως lossy compression: case folding stop words stemming number elimination (όμως: Internet Mathematics, vol. 3, no. 2, pp. 153-185, 2006, Inverted index support for numeric search ) 6

Sec. 5.1 Vocabulary vs. μέγεθος συλλογής Πόσο μεγάλο είναι το term vocabulary; Δηλαδή, πόσες διαφορετικές λέξεις υπάρχουν; Μπορούμε να υποθέσουμε ένα άνω όριο; Όχι: Τουλάχιστον 70 20 = 10 37 διαφορετικές λέξεις μεγέθους 20 Στην πράξη, το vocabulary θα μεγαλώνει διαρκώς καθώς μεγαλώνει το μέγεθος της συλλογής Ειδικά με τους Unicode 7

Sec. 5.1 Vocabulary vs. μέγεθος συλλογής Ο νόμος του Heaps: M = kt b M είναι το μέγεθος του vocabulary, T είναι ο αριθμός των tokens της συλλογής Τυπικές τιμές: 30 k 100 και b 0.5 Σε log-log διάγραμμα του μεγέθους του vocabulary M ως προς το T, ο νόμος του Heaps προβλέπει μια ευθεία με κλίση περίπου ½ Είναι η απλούστερη πιθανή σχέση μεταξή των δυο στον log-log χώρο Είναι εμπειρικός νόμος ( empirical law ) 8

Sec. 5.1 Ο νόμος του Heaps Για την RCV1, η στικτή γραμμή log 10 M = 0.49 log 10 T + 1.64 is είναι το καλύτερο least squares ταίριασμα Επομένως, M = 10 1.64 T 0.49, έτσι k=10 1.64 44 και b= 0.49 Εξαιρετικό εμπειρικό ταίριασμα για τηνreuters RCV1 Για τα πρώτα 1,000,020 tokens, ο νόμος προβλέπει 38,323 terms; στην πραγματικότητα, τα tokens είναι 38,365 9

Sec. 5.1 Ο νόμος του Zipf Ο νόμος του Heaps παρέχει το μέγεθος του vocabulary στις συλλογές εγγράφων Μας ενδιαφέρουν οι σχετικές συχνότητες των όρων Στην φυσική γλώσσα, υπάρχουν λίγες πολύ συχνές λέξεις, και πάρα πολλές σπάνια χρησιμοποιούμενες Νόμος του Zipf: Ο i-οστός πιο συχνός όρος έχει συχνότητα ανάλογης του 1/i cf i 1/i = K/i, όπου K είναι μια σταθερά κανονικοποίησης cf i είναι η collection frequency: ο αριθμός των εμφανίσεων του όρου t i στην συλλογή 10

Sec. 5.1 Συνέπειες του νόμου του Zipf Εάν ο πιο συχνός όρος (δηλ., ο the) εμφανίζεται cf 1 φορές τότε, ο δεύτερος πιο συχνός όρος (δηλ., ο of) εμφανίζεται cf 1 /2 φορές Ο τρίτος πιο συχνός όρος (δηλ., ο and) εμφανίζεται cf 1 /3 φορές Ισοδύναμα: cf i = K/i, όπου K ένας παράγοντας κανονικοποίησης, ώστε log cf i = log K - log i Γραμμική σχέση μεταξύ log cf i και log i Μια ακόμη σχέση που διέπεται από κάποιον δυναμονόμο (power law) 11

Sec. 5.1 Ο νόμος του Zipf στην Reuters RCV1 12 12

Ch. 5 Συμπίεση Τώρα, θα εξετάσουμε τα ζητήματα της συμπίεσης του dictionary και των postings λιστών Μόνο για τον βασικό Boolean index Δεν θα μελετήσουμε τους positional indexes, στις διαλέξεις, αλλά εσείς θα μελετήσετε προσεκτικά το άρθρο: L. Akritidis, D. Katsaros, P. Bozanis. "Improved Retrieval Effectiveness by Efficient Combination of Term Proximity and Zone Scoring: A Simulation-based Evaluation", Simulation Modelling: Practice And Theory, vol. 22, no. 3, pp. 74-91, March, 2012 Θα δούμε διάφορα σχήματα συμπίεσης 13

Sec. 5.2 Συμπίεση του Dictionary 14

Sec. 5.2 Γιατί να συμπιέσουμε το dictionary; Η αναζήτηση ξεκινά από το dictionary Επιθυμούμε να το αποθηκεύσουμε στην κύρια μνήμη Συναγωνίζεται στην χρήση της μνήμης με άλλες εφαρμογές Ακόμη και εάν το dictionary δεν είναι αποθηκευμένο στην κύρια μνήμη, επιθυμούμε να είναι μικρό σε μέγεθος για να εκτελείται γρήγορα η αναζήτηση Συνεπώς, η συμπίεσή του είναι σημαντικός παράγων 15

Αποθήκευση του dictionary: Πρώτη προσέγγιση Sec. 5.2 Πίνακας κελιών σταθερού πλάτους ~400,000 όροι; 28 bytes/όρο = 11.2 MB Terms Freq. Postings ptr. a 656,265 aachen 65.. zulu 221 Δομή αναζήηηζης dictionary 20 bytes 4 bytes ηο καθένα 16

Sec. 5.2 Τα κελιά σταθερού πλάτους σπαταλούν χώρο Τα πιο πολλά bytes στην στήλη Term σπαταλώνται δεσμεύουμε 20 bytes για όρους του ενός γράμματος Και φυσικά δεν μπορούμε να χειριστούμε όρους όπως ο supercalifragilisticexpialidocious ή ο hydrochlorofluorocarbons Γραπτά κείμενα στην αγγλική: avg ~4.5 χαρακτήρες/λέξη Avg. dictionary λέξη στην αγγλική: ~8 χαρακτήρες Πώς χρησιμοποιούμε ~8 χαρακτήρες ανά όρο του dictionary; Οι μικρές λέξεις κυριαρχούν στα tokens 17

Συμπίεση τις λίστας των όρων: Dictionary-as-a-String Sec. 5.2 Αποθήκευση του dictionary ως μια αλυσίδα χαρακτήρων: Δείκτης στην επόμενη λέξη σηματοδοτεί το τέλος της τρεχουσας Ελπίζουμε να επιτύχουμε ελάττωση κατά 60%.systilesyzygeticsyzygialsyzygyszaibelyiteszczecinszomo. Freq. 33 29 44 126 Postings ptr. Term ptr. Σσνολικό μήκος = 400K x 8B = 3.2MB Δείκηες τειρίζονηαι 3.2M θέζεις: log 2 3.2M = 22bits = 3bytes 18

Αποθηκευτικό κόστος της τεχνικής dictionary-as-a-string Sec. 5.2 4 bytes ανά όρο για Freq 4 bytes ανά όρο για δείκτη σε Postings 3 bytes ανά δείκτη όρου Avg. 8 bytes ανά όρο στην αλυσίδα όρων Πλέον: avg. 11 bytes/όρο, ότι 20 400K terms x 19 7.6 MB (σε αντιδιαστολή με τα 11.2MB για πίνακα με σταθερού πλάτους κελιά) 19

Sec. 5.2 Blocking Αποθηκεύουμε δείκτες ανά k-οστή αλυσίδα όρων Το κάτωθι παράδειγμα: k=4 Χρειάζεται να αποθηκεύσουμε το μήκος των όρων (1 επιπλέον byte).7systile9syzygetic8syzygial6syzygy11szaibelyite8szczecin9szomo. Freq. Postings ptr. Term ptr. 33 29 44 126 7 Κερδίζοσμε 9 bytes ζε 3 pointers Πληρώνοσμε 4 bytes για ηα μήκη ηων όρων 20

Sec. 5.2 Blocking Παράδειγμα με μέγεθος block size k = 4 Όπου χρησιμοποιήθηκαν 3 bytes/δείκτη χωρίς blocking 3 x 4 = 12 bytes Τώρα χρησιμοποιούνται 3 + 4 = 7 bytes Ελάττωςη κατά ~0.5MB επιπλέον. Αυτό ελαττώνει το μέγεθοσ του dictionary από τα 7.6 MB ςτα 7.1 MB. Μποροφμε να επιτφχουμε μεγαλφτερη ελάττωςη με μεγαλφτερεσ τιμέσ του k Ερώηηζη: Γιαηί δεν τρηζιμοποιούμε μεγαλύηερο k; 21

Sec. 5.2 Αναζήτηση στο dictionary χωρίς blocking Υποθέτοντας ότι κάθε όρος του dictionary είναι ισοπίθανο να εμφανιστεί στα ερωτήματα (όμως, μη ρεαλιστική υπόθεση!), ο μέσος αριθμός συγκρίσεων είναι: (1+2 2+4 3+4)/8=~2.6 Άσκηση: Εάν οι συχνότητες των όρων του ερωτήματος δεν ήταν ομοιόμορφες αλλά ήταν γνωστές, πώς θα διαμορφώνατε το δένδρο αναζήτησης του dictionary; 22

Sec. 5.2 Αναζήτηση στο dictionary με blocking Δυαδική αναζήτηση μέχρι το block των 4 όρων Κατόπιν, σειριακή αναζήτηση ανάμεσα στους όρους του block Blocks των 4 (δυαδικό δένδρο), avg=(1+2 2+2 3+2 4+5)/8 = 3 συγκρίσεις 23

Sec. 5.2 Front coding Front-coding: Οι ταξινομημένες λέξεις μοιράζονται συνήθως μακριά, κοινά προθέματα αποθήκευση μόνο των διαφορών (για τα τελευταία k-1 σε ένα block των k) 8automata8automate9automatic10automation 8automat*a1 e2 ic3 ion Κωδικοποιεί ηο automat Επιπλέον μήκος, πέρα από ηο automat Αρτίζει να μοιάζει με ηην ηετνική ζσμπίεζης αλθαριθμηηικών 24

Sec. 5.2 RCV1 dictionary compression summary Τεχνική Μέγεθος σε MB Σταθερού μήκους 11.2 Dictionary-as-a-String, με δείκτες σε κάθε όρο 7.6 Με blocking k = 4 7.1 Με blocking + front coding 5.9 25

Sec. 5.3 Συμπίεση των postings 26

Sec. 5.3 Συμπίεση των postings Το postings file είναι κατά πολύ μεγαλύτερο από το dictionary, τουλάχιστον 10 φορές Απαίτηση: συμπαγής αποθήκευση κάθε posting Ένα posting για τους σκοπούς μας είναι docid Για την συλλογή Reuters (800,000 έγγραφα), θα χρειαζόμασταν 32 bits ανά docid, εάν είχαμε ακεραίους των 4-bytes Εναλλακτικά, μπορούμε να χρησιμοποιήσουμε log 2 (800,000) 20 bits ανά docid Στόχος μας: χρήση λιγότερων των 20 bits ανά docid 27

Postings: Δυο αλληλοσυγκρουόμενες δυνάμεις Sec. 5.3 Ένας όρος, όπως arachnocentric, εμφανίζεται μια φορά στο ένα εκατομύριο θα θέλαμε να τον αποθηκεύσουμε κάνοντας χρήση log 2 (1M)= ~20 bits Ένας όρος, όπως ο the, εμφανίζεται σχεδόν σε κάθε έγγραφο, έτσι τα 20 bits/posting είναι πολύ ακριβό Προτιμούμε 0/1 bitmap vector 28

Sec. 5.3 Postings file entry Αποθηκεύουμε την λίστα των εγγράφων που περιέχουν έναν όρο σε αύξουσα διάταξη του docid computer: 33,47,154,159,202 Συνέπεια: αρκεί να αποθηκεύσουμε κενά (gaps) 33,14,107,5,43 Ελπίδα: τα περισσότερα κενά μπορεί να κωδικοποιηθούν/αποθηκευτούν με πολύ λιγότερα από 20 bits 29

Sec. 5.3 Τρεις postings entries 30

Sec. 5.3 Στόχος: Κωδικοποίηση μεταβλητού μήκους Για τον όρο arachnocentric, θα χρησιμοποιήσουμε ~20 bits/gap Για τον όρο the, θα χρησιμοποιήσουμε ~1 bit/gap Εάν το μέσο κενό για έναν όρο είναι G, επιθυμούμε να χρησιμοποιήσουμε ~log 2 G bits/gap Πρόκληση: κωδικοποίηση κάθε ακεραίου (gap) με όσο το δυνατότερα τα λιγότερα bits που απαιτεί ο συγκεκριμένος ακέραιος Αυτό απαιτεί variable length encoding Οι κώδικες μεταβλητού μήκους το επιτυγχάνουν με χρήση μικρών κωδικών για τους μικρούς ακεραίους 31

Sec. 5.3 Κώδικες Variable Byte (VB) Για μικρές τιμές κενών G, επιθυμούμε να χρησιμοποιήσουμε ακριβώς τα bytes που απαιτούνται: δηλαδή log 2 (G) bits Για να αποθηκεύσουμε το G, αρχίζουμε με ένα byte και αφιερώνουμε 1 bit αυτού ως continuation bit c Εάν G 127, τον κωδικοποιούμε ως δυαδικό αριθμό στα 7 διαθέσιμα bits και θέτουμε c=1 Αλλιώς, κωδικοποιούμε τα 7 bits χαμηλότερης τάξης του G, και κατόπιν χρησιμοποιούμε επιπλέον bytes για να κωδικοποιούμε τα υψηλής τάξης bits με τον ίδιο τρόπο Στο τέλος, θέτουμε το continuation bit του τελευταίου byte ίσο με 1 (c=1), και για τα άλλα bytes c=0 32

Sec. 5.3 Παράδειγμα docids 824 829 215406 gaps 5 214577 VB code 00000110 10111000 10000101 00001101 00001100 10110001 Οι postings αποθηκεύονηαι ως ζσνένωζη bytes: 000001101011100010000101000011010000110010110001 Ιδιόηηηα: οι postings κωδικοποιημένες καηά VB έτοσν ηην prefix ιδιόηηηα Για μικρό gap (π.τ., 5), η VB κάνει τρήζη ολόκληροσ byte 33

Sec. 5.3 Άλλοι κώδικες variable unit Αντί για bytes, μπορούμε να χρησιμοποιήσουμε άλλη μονάδα στοίχισης : 32 bits (words), 16 bits, 4 bits (nibbles) Η στοίχιση variable byte σπαταλά χώρο, όταν υπάρχουν πολλά μικρά gaps τα nibbles αποδίδουν καλύτερα στις περιπτώσεις αυτές Οι κώδικες variable byte: Χρησιμοποιούνται από πολλά εμπορικά/ερευνητικά συστήματα Υπάρχουν επίσης πρόσφατες εργασίες πάνω σε word-aligned κώδικες που πακετάρουν έναν μεταβλητό αριθμό gaps σε μια word 34

Μοναδιαίος κώδικας (unary code) Αναπαριστούμε τον ακέραιο n ως: n συνεχόμενα 1 και ένα 0 στο τέλος (για να ισχύει η prefix ιδιότητα) Ο unary code για το 3 είναι: 1110 O unary code για το 40 είναι: 11111111111111111111111111111111111111110. Ο unary code για το 80 είναι: 111111111111111111111111111111111111111111 111111111111111111111111111111111111110 Δεν φαίνεται πολύ αποδοτικός κώδικας, αλλά. 35

Sec. 5.3 γ-codes Καλύτερη συμπίεση με bit-level κώδικες Ο γ-κώδικας είναι ο καλύτερος από αυτούς Αναπαριστούμε το κενό G ως ζεύγος length και offset offset: είναι το G σε δυαδική μορφή, με αποκομμένο το πρώτο bit. Για παράδειγμα: 13 1101 101 length: είναι το μήκος του offset Για το (offset 101), το μήκος είναι 3 Κωδικοποιούμε το length με unary code: 1110 Ο γ-code του 13 είναι η συνένωση του length και του offset: 1110101 36

Sec. 5.3 Παραδείγματα γ-codes number length offset g-code 0 none 1 0 0 2 10 0 10,0 3 10 1 10,1 4 110 00 110,00 9 1110 001 1110,001 13 1110 101 1110,101 24 11110 1000 11110,1000 511 111111110 11111111 111111110,11111111 1025 11111111110 0000000001 11111111110,0000000001 37

Sec. 5.3 Ιδιότητες των γ-codes Το G κωδικοποιείται με χρήση: 2 log G + 1 bits Το μήκος του offset είναι: log G bits Το μήκος του length είναι: log G + 1 bits Όλοι οι γ-codes αποτελούνται από περιττό αριθμό bits Σχεδόν δυο φορές χειρότερος από τον βέλτιστο κώδικα ο οποίος έχει μήκος log 2 G Ο γ-code έχει την prefix ιδιότητα, όπως και ο VB Ο γ-code μπορεί να χρησιμοποιηθεί για κάθε κατανομή ακεραίων Ο γ-code δεν απαιτεί παραμετροποίηση 38

Sec. 5.3 Η γ-συμπίεση χρησιμοποιείται σπάνια Οι μηχανές έχουν word boundaries 8, 16, 32, 64 bits Οι λειτουργίες που διασχίζουν αυτά τα όριο είναι πιο αργές Η συμπίεση και ο χειρισμός στο επίπεδο των bits μπορεί να είναι αργός Η variable byte κωδικοποίηση είναι aligned και συνεπώς εν δυνάμει πιο γρήγορη Ανεξάρτητα από την αποδοτικότητα, η variable byte κωδικοποίηση είναι απλούστερη στην σύλληψη, με κόστος λίγο επιπλέον χώρο 39

Sec. 5.3 Συμπίεση RCV1 Δομή δεδομένων Μέγεθος ζε MB dictionary, fixed-width 11.2 dictionary, term pointers into string 7.6 with blocking, k = 4 7.1 with blocking & front coding 5.9 collection (text, xml markup etc) 3,600.0 collection (text) 960.0 Term-doc incidence matrix 40,000.0 postings, uncompressed (32-bit words) 400.0 postings, uncompressed (20 bits) 250.0 postings, variable byte encoded 116.0 postings, g-encoded 101.0 40

Μέθοδος συμπίεσης Group VarInt της Google (δημοσιεύτηκε το 2009) 41

Group Varint κωδικοποιήση 42