Μελέτη Περίπτωσης: Random Surfer Introduction to Programming in Java: An Interdisciplinary Approach Robert Sedgewick and Kevin Wayne Copyright 2008 March 1, 2016 11:10 tt
Memex Memex. [Vannevar Bush, 1936] Θεωρητικό υπολογιστικό σύστημα υπερκειμένου πρωτοποριακή ιδέα για τον παγκόσμιο ιστό Ακολούθα συνδέσεις (links) από ένα βιβλίο ή φιλμ σε κάποιο άλλο Εργαλείο για τη δημιουργία συνδέσεων Περιοδικό Life, Νοέμβριος 1945 Vannevar Bush 2
Παγκόσμιος Ιστός (World Wide Web) World wide web: [Tim Berners-Lee, CERN 1990] Πρόγραμμα βασιζόμενο σε υπερκείμενο (hypertext) για την ανταλλαγή και ενημέρωση πληροφοριών ανάμεσα στους ερευνητές πρώτος Web server Sir Tim Berners-Lee 3
Περιηγητής Ιστού (Web Browser) Web browser. Εφαρμογή καταπέλτης της δεκαετίας του 90 4
Η Βιβλιοθήκη της Βαβέλ La biblioteca de Babel. [Jorge Luis Borge, 1941] Όταν κηρύχθηκε ότι η Βιβλιοθήκη περιείχε όλα τα βιβλία, η πρώτη εντύπωση δεν ήταν άλλη από αυτήν της υπερβολικής ευτυχίας... Δεν υπήρχε κανένα προσωπικό ή παγκόσμιο πρόβλημα των οποίων η εύγλωττη λύση δεν υπήρχε σε κάποιο εξάγωνο. η υπέρμετρη αυτή ελπίδα ακολουθήθηκε από υπερβολική κατάθλιψη. Η βεβαιότητα ότι σε κάποιο ράφι σε κάποιο εξάγωνο υπήρχαν πολύτιμα βιβλία και ότι αυτά τα πολύτιμα βιβλία ήταν απρόσιτα φαινόταν σχεδόν ανυπόφορη. 5
Αναζήτηση στον Ιστό Web search: Εφαρμογή καταπέλτης της δεκαετίας του 2000 6
Αναζήτηση στον Ιστό (Web Search)
Αναζήτηση στον Ιστό Συνάφεια: Είναι το έγγραφο συναφές με την ερώτηση της αναζήτησης; Σημασία: Είναι το έγγραφο χρήσιμο σε διάφορους χρήστες; Προσεγγίσεις των μηχανών αναζήτησης: Πληρωμένες διαφημίσεις Χειρονακτικά δημιουργημένη ταξινόμηση Ανίχνευση χαρακτηριστικών, βασιζόμενη σε τίτλο, κείμενο, anchors, Δημοτικότητα" 8
Κατάταξη Σελίδων Google's PageRank algorithm: [Sergey Brin and Larry Page, 1998] Μετρά τη δημοτικότητα ιστοσελίδων με βάση τη δομή υπερ-συνδέσμων του ιστού (hyperlink structure of Web) Επαναστάτησε την πρόσβαση στην παγκόσμια πληροφορία 9
Κανόνας 90-10 Μοντέλο: Ο web surfer επιλέγει την επόμενη σελίδα ως εξής: Κατά 90% του χρόνου επιλέγει έναν τυχαίο υπερ-σύνδεσμο Κατά 10% του χρόνου επιλέγει μια τυχαία ιστοσελίδα Αδυναμία: Μη εκλεπτυσμένο, αλλά χρήσιμο μοντέλο περιήγησης του ιστού Κανένας δεν επιλέγει συνδέσμους με την ίδια πιθανότητα Καμία πραγματική δυνατότητα απευθείας περιήγησης σε κάθε σελίδα του ιστού Ο κανόνας 90-10 είναι απλά μια εικασία Δεν λαμβάνει υπόψη το back button ή τα bookmarks Μπορούμε μόνο να δουλεύουμε σε ένα μικρό υποσύνολο του ιστού 10
Input Format για Γράφο Ιστού (Web Graph) Input format: N σελίδες αριθμημένες από το 0 μέχρι το N-1. Κάθε υπερ-σύνδεσμος αναπαρίσταται ως μια δυάδα ακεραίων Αναπαράσταση Γράφου 11
Μήτρα Μεταβάσεων (Transition Matrix) Μήτρα Μεταβάσεων: p[i][j]= πιθανότητα ότι ο surfer θα μετακινηθεί από τη σελίδα i στη σελίδα j. Κατά 38% των περιπτώσεων που ο surfer βρίσκεται στη σελίδα 1, ακολούθως μεταβαίνει στη σελίδα 2 12
Από Γράφο Ιστού σε Μήτρα Μεταβάσεων public class Transition { public static void main(string[] args) { int N = StdIn.readInt(); // # number of pages int[][] counts = new int[n][n]; // # links from page i to j int[] outdegree = new int[n]; // # links from page // accumulate link counts while (!StdIn.isEmpty()) { int i = StdIn.readInt(); int j = StdIn.readInt(); outdegree[i]++; counts[i][j]++; } } } // print transition matrix StdOut.println(N + " " + N); for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { double p =.90*counts[i][j]/outDegree[i] +.10/N; StdOut.printf("%7.5f ", p); } StdOut.println(); } 13
Από Γράφο Ιστού σε Μήτρα Μεταβάσεων % java Transition < tiny.txt 5 5 0.02000 0.92000 0.02000 0.02000 0.02000 0.02000 0.02000 0.38000 0.38000 0.20000 0.02000 0.02000 0.02000 0.92000 0.02000 0.92000 0.02000 0.02000 0.02000 0.02000 0.47000 0.02000 0.47000 0.02000 0.02000 14
Προσομοίωση Monte Carlo
Προσομοίωση Monte Carlo Προσομοίωση Monte Carlo: Ο surfer αρχίζει στη σελίδα 0. Πώς; Βλέπε επόμενη διαφάνεια Κατ επανάληψη επιλέγει την επόμενη σελίδα, σύμφωνα με τη μήτρα μεταβάσεων Υπολογίζεται πόσο συχνά ο surfer επισκέπτεται κάθε σελίδα page μήτρα μεταβάσεων 16
Random Surfer Τυχαία κίνηση: Ο surfer βρίσκεται στη σελίδα page. Πώς επιλέγει την επόμενη σελίδα j; Η σειρά page της μήτρας μεταβάσεων δίνει τις πιθανότητες Υπολογίζονται οι αθροιστικές πιθανότητες (cumulative probabilities) για τη σειρά page. Παράγεται τυχαίος αριθμός r από το 0.0 μέχρι το 1.0. Επιλέγεται η σελίδα j που αντιστοιχεί στο διάστημα στο οποίο βρίσκεται ο r page μήτρα μεταβάσεων 17
Random Surfer Τυχαία κίνηση: Ο surfer βρίσκεται στη σελίδα page. Πώς επιλέγει την επόμενη σελίδα j; Η σειρά page της μήτρας μεταβάσεων δίνει τις πιθανότητες Υπολογίζονται οι αθροιστικές πιθανότητες (cumulative probabilities) για τη σειρά page. Παράγεται τυχαίος αριθμός r από το 0.0 μέχρι το 1.0. Επιλέγεται η σελίδα j που αντιστοιχεί στο διάστημα στο οποίο βρίσκεται ο r // make one random move double r = Math.random(); double sum = 0.0; for (int j = 0; j < N; j++) { // find interval containing r sum += p[page][j]; if (r < sum) { page = j; break; } } 18
Random Surfer: Προσομοίωση Monte Carlo public class RandomSurfer { public static void main(string[] args) { int T = Integer.parseInt(args[0]); int N = StdIn.readInt(); int page = 0; double[][] p = new int[n][n]; // number of moves // number of pages // current page // transition matrix // read in transition matrix... // simulate random surfer and count page frequencies int[] freq = new int[n]; for (int t = 0; t < T; t++) { } // make one random move freq[page]++; see previous slide } } // print page ranks for (int i = 0; i < N; i++) { StdOut.printf("%8.5f", (double) freq[i] / T); } StdOut.println(); page rank 19
Μαθηματικό Υπόβαθρο Σύγκλιση: Για το μοντέλο του random surfer, το ποσοστό του χρόνου που ο surfer δαπανά σε κάθε σελίδα συγκλίνει σε μία μοναδική κατανομή, ανεξάρτητα της αρχικής σελίδας "page rank" "stationary distribution" of Markov chain "principal eigenvector" of transition matrix 428,671 1,570,055, 417,205 1,570,055, 229,519 1,570,055, 388,162 1,570,055, 106,498 1,570,055 20
Mixing a Markov Chain
Η Μέθοδος των Δυνάμεων Ε. Αν ο surfer αρχίζει στη σελίδα 0, ποια είναι η πιθανότητα ότι θα βρίσκεται στη σελίδα i μετά από ένα βήμα; A. Η πρώτη σειρά της μήτρας μεταβάσεων 22
Η Μέθοδος των Δυνάμεων Ε. Αν ο surfer αρχίζει στη σελίδα 0, ποια είναι η πιθανότητα ότι θα βρίσκεται στη σελίδα i μετά από δύο βήματα; A. Πολλαπλασιασμός μήτρας-διανύσματος 23
Η Μέθοδος των Δυνάμεων Η Μέθοδος των Δυνάμεων: Επανέλαβε μέχρι οι κατατάξεις σελίδων να συγκλίνουν 24
Μαθηματικό Υπόβαθρο Σύγκλιση: Για το μοντέλο του random surfer, το ποσοστό του χρόνου που ο surfer δαπανά σε κάθε σελίδα συγκλίνει σε μία μοναδική κατανομή, ανεξάρτητα της αρχικής σελίδας "page rank" "stationary distribution" of Markov chain "principal eigenvector" of transition matrix 25
26
Random Surfer: Επιστημονικές Προκλήσεις Αλγόριθμος της Google για κατάταξη σελίδων (Google s PageRank algorithm) [Sergey Brin and Larry Page, 1998] Κατατάσσεται η σημασία των ιστοσελίδων σύμφωνα με τη δομή υπερσυνδέσμων του ιστού, εφαρμόζοντας τον κανόνα 90-10 Επαναστάτησε την πρόσβαση στην παγκόσμια πληροφορία Επιστημονικές προκλήσεις: Πώς να αντεπεξέλθουμε με μια μήτρα 4 δισεκατομμυρίων-επί-4 δισεκατομμυρίων! Χρειαζόμαστε δομές δεδομένων για να μπορεί να γίνονται οι υπολογισμοί Χρειαζόμαστε γραμμική άλγεβρα για να κατανοούμε πλήρως τους υπολογισμούς 27
Επιπρόσθετες Διαφάνειες
Random Surfer και Πολλαπλασιασμός Μήτρας Ε. Ποια είναι η πιθανότητα ότι ο surfer μετακινείται από τη σελίδα i στη σελίδα j σε δύο βήματα; A. p 2 = p p. [Πολλαπλασιασμός μήτρας!] 29
Random Surfer: Μαθηματικό Υπόβαθρο Ε. Ποια είναι η πιθανότητα ότι ο surfer μετακινείται από τη σελίδα i στη σελίδα j στο όριο; A. lim P k = P P P. k Mixing theorem. P k συγκλίνει. Επιπρόσθετα, όλες οι σειρές είναι οι ίδιες για το τυχαίο μοντέλο του surfer ποσοστό του χρόνου που ο surfer δαπανά στη σελίδα j είναι ανεξάρτητο του αρχικού σημείου! surfing από το 1 στο 2 σε 8 βήματα 30