Die Mathematik hinter Google Informationstag für Gymnasiastinnen und Gymnasiasten Universität Fribourg (Schweiz) georges.klein@unifr.ch Fribourg, 24. November 2010 georges.klein@unifr.ch Die Mathematik hinter Google 1/19
Einleitung Frage: Wie stellt Google die Liste der Suchergebnisse auf? Antwort: Mit einem Algorithmus, welcher die Relevanz einer Webseite bestimmt! georges.klein@unifr.ch Die Mathematik hinter Google 2/19
Einleitung Frage: Wie stellt Google die Liste der Suchergebnisse auf? Antwort: Mit einem Algorithmus, welcher die Relevanz einer Webseite bestimmt! georges.klein@unifr.ch Die Mathematik hinter Google 2/19
Ein wenig Geschichte Gründer: Sergey Brin und Lawrence Page Die Idee ist während ihrer Doktorarbeit in Computerwissenschaften an der Universität Stanford entstanden. Hauptbestandteil des Algorithmus ist die Lösung eines riesigen linearen Gleichungssystems. Die Lizenz liegt noch immer in den Händen der Universität Stanford. Der erste Prototyp wurde 1998 veröffentlicht. georges.klein@unifr.ch Die Mathematik hinter Google 3/19
Ein paar Zahlen Gehirn: etwa 23.000 Mitarbeiter Computer: ungefähr 2.000.000 Server (2% aller Server weltweit) Festplatte: verwaltet über 20.000.000 GB (20 TB) Daten pro Tag Umfang: über 1.000.000.000.000 Dokumente im Web Beanspruchung der Server: über 33.000 Suchanfragen pro Sekunde Geschwindigkeit: das Resultat einer Anfrage kommt üblicherweise in Bruchteilen einer Sekunde Marktanteil: um 85% in den USA und in vielen anderen Ländern Umsatz: über $ 23.651.000.000, davon $ 6.520.000.000 netto (der Umsatz kommt zu 97% aus der Werbung!) Aktien: im Jahr 2005 hat die Universität Stanford 1.800.000 Aktien für $ 336.000.000 verkauft georges.klein@unifr.ch Die Mathematik hinter Google 4/19
Die Grundidee: PageRank PageRank heisst der Algorithmus, der die Suchergebnisse einer Suchanfrage bei Google ordnet. PageRank ist eine Wahrscheinlichkeitsverteilung, die die Wahrscheinlichkeit annähert, mit welcher ein Benutzer auf eine gewisse Seite gelangt, indem er auf zufällig gewählte Links klickt oder die Adresse einer Seite per Hand eingibt. Jedes Mal, wenn Google das ganze Web crawlt, wird PageRank neu berechnet. PageRank beachtet den Inhalt der Seiten nicht. Da die Anzahl an Webseiten rasant zunimmt, verringert sich die Wahrscheinlichkeit auf einer gewissen Seite anzukommen. PageRank ist eine Art Abstimmung durch die Webseiten, welche die Relevanz anderer Seiten anhand ihrer Links zu diesen Seiten widerspiegelt. georges.klein@unifr.ch Die Mathematik hinter Google 5/19
Die Grundidee: PageRank PageRank heisst der Algorithmus, der die Suchergebnisse einer Suchanfrage bei Google ordnet. PageRank ist eine Wahrscheinlichkeitsverteilung, die die Wahrscheinlichkeit annähert, mit welcher ein Benutzer auf eine gewisse Seite gelangt, indem er auf zufällig gewählte Links klickt oder die Adresse einer Seite per Hand eingibt. Jedes Mal, wenn Google das ganze Web crawlt, wird PageRank neu berechnet. PageRank beachtet den Inhalt der Seiten nicht. Da die Anzahl an Webseiten rasant zunimmt, verringert sich die Wahrscheinlichkeit auf einer gewissen Seite anzukommen. PageRank ist eine Art Abstimmung durch die Webseiten, welche die Relevanz anderer Seiten anhand ihrer Links zu diesen Seiten widerspiegelt. georges.klein@unifr.ch Die Mathematik hinter Google 5/19
Die Grundidee: PageRank PageRank heisst der Algorithmus, der die Suchergebnisse einer Suchanfrage bei Google ordnet. PageRank ist eine Wahrscheinlichkeitsverteilung, die die Wahrscheinlichkeit annähert, mit welcher ein Benutzer auf eine gewisse Seite gelangt, indem er auf zufällig gewählte Links klickt oder die Adresse einer Seite per Hand eingibt. Jedes Mal, wenn Google das ganze Web crawlt, wird PageRank neu berechnet. PageRank beachtet den Inhalt der Seiten nicht. Da die Anzahl an Webseiten rasant zunimmt, verringert sich die Wahrscheinlichkeit auf einer gewissen Seite anzukommen. PageRank ist eine Art Abstimmung durch die Webseiten, welche die Relevanz anderer Seiten anhand ihrer Links zu diesen Seiten widerspiegelt. georges.klein@unifr.ch Die Mathematik hinter Google 5/19
Die Grundidee: PageRank PageRank heisst der Algorithmus, der die Suchergebnisse einer Suchanfrage bei Google ordnet. PageRank ist eine Wahrscheinlichkeitsverteilung, die die Wahrscheinlichkeit annähert, mit welcher ein Benutzer auf eine gewisse Seite gelangt, indem er auf zufällig gewählte Links klickt oder die Adresse einer Seite per Hand eingibt. Jedes Mal, wenn Google das ganze Web crawlt, wird PageRank neu berechnet. PageRank beachtet den Inhalt der Seiten nicht. Da die Anzahl an Webseiten rasant zunimmt, verringert sich die Wahrscheinlichkeit auf einer gewissen Seite anzukommen. PageRank ist eine Art Abstimmung durch die Webseiten, welche die Relevanz anderer Seiten anhand ihrer Links zu diesen Seiten widerspiegelt. georges.klein@unifr.ch Die Mathematik hinter Google 5/19
Die Grundidee: PageRank PageRank heisst der Algorithmus, der die Suchergebnisse einer Suchanfrage bei Google ordnet. PageRank ist eine Wahrscheinlichkeitsverteilung, die die Wahrscheinlichkeit annähert, mit welcher ein Benutzer auf eine gewisse Seite gelangt, indem er auf zufällig gewählte Links klickt oder die Adresse einer Seite per Hand eingibt. Jedes Mal, wenn Google das ganze Web crawlt, wird PageRank neu berechnet. PageRank beachtet den Inhalt der Seiten nicht. Da die Anzahl an Webseiten rasant zunimmt, verringert sich die Wahrscheinlichkeit auf einer gewissen Seite anzukommen. PageRank ist eine Art Abstimmung durch die Webseiten, welche die Relevanz anderer Seiten anhand ihrer Links zu diesen Seiten widerspiegelt. georges.klein@unifr.ch Die Mathematik hinter Google 5/19
Smily PageRank georges.klein@unifr.ch Die Mathematik hinter Google 6/19
Mathematisches Modell: der Zufalls-Surfer Die Formel für PageRank basiert auf dem Modell des Zufalls-Surfers, welcher sich auf einer Irrfahrt durch das Web befindet: mit einer Wahrscheinlichkeit von 85% folgt er den Links der Seiten, die er besucht, ohne deren Inhalt zu lesen; 15% ist die Wahrscheinlichkeit dass er sich langweilt und eine andere Seite wählt, sei es indem er eine neue Adresse eingibt oder seine Bookmarks benutz. georges.klein@unifr.ch Die Mathematik hinter Google 7/19
Mathematisches Modell: der Zufalls-Surfer Die Formel für PageRank basiert auf dem Modell des Zufalls-Surfers, welcher sich auf einer Irrfahrt durch das Web befindet: mit einer Wahrscheinlichkeit von 85% folgt er den Links der Seiten, die er besucht, ohne deren Inhalt zu lesen; 15% ist die Wahrscheinlichkeit dass er sich langweilt und eine andere Seite wählt, sei es indem er eine neue Adresse eingibt oder seine Bookmarks benutz. georges.klein@unifr.ch Die Mathematik hinter Google 7/19
Mathematisches Modell: der Zufalls-Surfer (Fortsetzung) In der Mathematik bezeichnet man dies als eine Markovkette, wo die Zustände die Webseiten und die Übergänge die Links sind. Wenn eine Webseite keine Links hat, so beendet sie die Irrfahrt unseres Zufalls-Surfers. Er muss also wieder mit einer neuen Adresse beginnen. Aus diesem Grund stellen wir uns vor, eine solche Seite habe Links zu allen anderen Seiten. georges.klein@unifr.ch Die Mathematik hinter Google 8/19
Mathematisches Modell: der Zufalls-Surfer (Fortsetzung) In der Mathematik bezeichnet man dies als eine Markovkette, wo die Zustände die Webseiten und die Übergänge die Links sind. Wenn eine Webseite keine Links hat, so beendet sie die Irrfahrt unseres Zufalls-Surfers. Er muss also wieder mit einer neuen Adresse beginnen. Aus diesem Grund stellen wir uns vor, eine solche Seite habe Links zu allen anderen Seiten. georges.klein@unifr.ch Die Mathematik hinter Google 8/19
Ein Miniweb Beispiel Als Beispiel stellen wir uns ein Miniweb mit 6 Seiten vor: alpha.com delta.com beta.com gamma.com sigma.com rho.com georges.klein@unifr.ch Die Mathematik hinter Google 9/19
Mathematische Formulierung Da der Algorithmus für PageRank iterativ ist, brauchen wir einen Startwert. Seien x α, x β, x γ, x δ, x ρ, x σ ihre PageRanks. Wir wählen 1/6 als Startwert für jede Seite, d.h. unser Zufalls-Surfer landed auf allen Seiten mit der gleichen Wahrscheinlichkeit 1/6. (Google wählt bei jedem Iterationsschritt den alten PageRank Wert als Startwert.) georges.klein@unifr.ch Die Mathematik hinter Google 10/19
Mathematische Formulierung Da der Algorithmus für PageRank iterativ ist, brauchen wir einen Startwert. Seien x α, x β, x γ, x δ, x ρ, x σ ihre PageRanks. Wir wählen 1/6 als Startwert für jede Seite, d.h. unser Zufalls-Surfer landed auf allen Seiten mit der gleichen Wahrscheinlichkeit 1/6. (Google wählt bei jedem Iterationsschritt den alten PageRank Wert als Startwert.) georges.klein@unifr.ch Die Mathematik hinter Google 10/19
Theorie Wir stellen den PageRank Wert für sigma.com auf. Die Seiten alpha.com und gamma.com haben beide einen Link nach sigma.com. Sei L A die Anzahl an Links auf der Seite A. Zum Beispiel ist L α = 2 und L γ = 3. Die Seite alpha.com stimmt mit dem Wert 1/12 für sigma.com ab und gamma.com stimmt mit dem Wert 1/18. Der vorläufige PageRank Wert für sigma.com ist also gegeben durch: x σ = x α 2 + x γ 3. georges.klein@unifr.ch Die Mathematik hinter Google 11/19
Theorie Wir stellen den PageRank Wert für sigma.com auf. Die Seiten alpha.com und gamma.com haben beide einen Link nach sigma.com. Sei L A die Anzahl an Links auf der Seite A. Zum Beispiel ist L α = 2 und L γ = 3. Die Seite alpha.com stimmt mit dem Wert 1/12 für sigma.com ab und gamma.com stimmt mit dem Wert 1/18. Der vorläufige PageRank Wert für sigma.com ist also gegeben durch: x σ = x α 2 + x γ 3. georges.klein@unifr.ch Die Mathematik hinter Google 11/19
Theorie Wir stellen den PageRank Wert für sigma.com auf. Die Seiten alpha.com und gamma.com haben beide einen Link nach sigma.com. Sei L A die Anzahl an Links auf der Seite A. Zum Beispiel ist L α = 2 und L γ = 3. Die Seite alpha.com stimmt mit dem Wert 1/12 für sigma.com ab und gamma.com stimmt mit dem Wert 1/18. Der vorläufige PageRank Wert für sigma.com ist also gegeben durch: x σ = x α 2 + x γ 3. georges.klein@unifr.ch Die Mathematik hinter Google 11/19
Theorie Wir stellen den PageRank Wert für sigma.com auf. Die Seiten alpha.com und gamma.com haben beide einen Link nach sigma.com. Sei L A die Anzahl an Links auf der Seite A. Zum Beispiel ist L α = 2 und L γ = 3. Die Seite alpha.com stimmt mit dem Wert 1/12 für sigma.com ab und gamma.com stimmt mit dem Wert 1/18. Der vorläufige PageRank Wert für sigma.com ist also gegeben durch: x σ = x α 2 + x γ 3. georges.klein@unifr.ch Die Mathematik hinter Google 11/19
Theorie Wir stellen den PageRank Wert für sigma.com auf. Die Seiten alpha.com und gamma.com haben beide einen Link nach sigma.com. Sei L A die Anzahl an Links auf der Seite A. Zum Beispiel ist L α = 2 und L γ = 3. Die Seite alpha.com stimmt mit dem Wert 1/12 für sigma.com ab und gamma.com stimmt mit dem Wert 1/18. Der vorläufige PageRank Wert für sigma.com ist also gegeben durch: x σ = x α 2 + x γ 3. georges.klein@unifr.ch Die Mathematik hinter Google 11/19
Matrixdarstellung Definieren wir jetzt die Verbindungsmatrix G, deren Elemente entweder 1 oder 0 sind. Der Eintrag g ij der i-ten Zeile und j-ten Spalte ist genau dann 1, wenn die Seite j einen Link zur Seite i hat, d.h. die Seite i kann von der Seite j aus erreicht werden. Anders ausgedrückt: die j-te Spalte steht für die Links auf der Webseite j. In unserem Beispiel schaut die Matrix G wie folgt aus: G = 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0. georges.klein@unifr.ch Die Mathematik hinter Google 12/19
Matrixdarstellung Definieren wir jetzt die Verbindungsmatrix G, deren Elemente entweder 1 oder 0 sind. Der Eintrag g ij der i-ten Zeile und j-ten Spalte ist genau dann 1, wenn die Seite j einen Link zur Seite i hat, d.h. die Seite i kann von der Seite j aus erreicht werden. Anders ausgedrückt: die j-te Spalte steht für die Links auf der Webseite j. In unserem Beispiel schaut die Matrix G wie folgt aus: G = 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0. georges.klein@unifr.ch Die Mathematik hinter Google 12/19
Matrixdarstellung (Fortsetzung) Es sei c j die Summe der Einträge der j-ten Spalte in G, d.h. c j ist die Anzahl an Links auf der Webseite j. Jetzt können wir die stochastische Matrix A definieren, welche das lineare Gleichungsystem beschreibt. Die Elemente in A seien die folgenden: a ij := { 1 p n + pg ij c j falls c j 0 1 n falls c j = 0. georges.klein@unifr.ch Die Mathematik hinter Google 13/19
Matrixdarstellung (Fortsetzung) Es sei c j die Summe der Einträge der j-ten Spalte in G, d.h. c j ist die Anzahl an Links auf der Webseite j. Jetzt können wir die stochastische Matrix A definieren, welche das lineare Gleichungsystem beschreibt. Die Elemente in A seien die folgenden: a ij := { 1 p n + pg ij c j falls c j 0 1 n falls c j = 0. georges.klein@unifr.ch Die Mathematik hinter Google 13/19
Matrixdarstellung (Fortsetzung) Es sei c j die Summe der Einträge der j-ten Spalte in G, d.h. c j ist die Anzahl an Links auf der Webseite j. Jetzt können wir die stochastische Matrix A definieren, welche das lineare Gleichungsystem beschreibt. Die Elemente in A seien die folgenden: a ij := { 1 p n + pg ij c j falls c j 0 1 n falls c j = 0. georges.klein@unifr.ch Die Mathematik hinter Google 13/19
Matrixdarstellung (Fortsetzung) Es sei x der Vektor der PageRanks aller Webseiten, dann beschreibt folgende einfache Fixpunkgleichung unser lineares Gleichungssystem: x = Ax. Diese Gleichung kann man iterativ lösen (Potenzmethode). Es gibt mindestens 3 verschiedene Methoden um dieses spezielle Problem effizient zu lösen. Die Lösung ist genau dann eindeutig bestimmt (Satz von Perron-Frobenius), wenn die Summe der Elemente des Vektors x genau 1 ist, was ganz natürlich ist, da es sich hier um Wahrscheinlichkeiten handelt. In der Gleichung x = Ax bezeichnet man den Vektor x als Eigenvektor der Matrix A zum Eigenwert 1. georges.klein@unifr.ch Die Mathematik hinter Google 14/19
Matrixdarstellung (Fortsetzung) Es sei x der Vektor der PageRanks aller Webseiten, dann beschreibt folgende einfache Fixpunkgleichung unser lineares Gleichungssystem: x = Ax. Diese Gleichung kann man iterativ lösen (Potenzmethode). Es gibt mindestens 3 verschiedene Methoden um dieses spezielle Problem effizient zu lösen. Die Lösung ist genau dann eindeutig bestimmt (Satz von Perron-Frobenius), wenn die Summe der Elemente des Vektors x genau 1 ist, was ganz natürlich ist, da es sich hier um Wahrscheinlichkeiten handelt. In der Gleichung x = Ax bezeichnet man den Vektor x als Eigenvektor der Matrix A zum Eigenwert 1. georges.klein@unifr.ch Die Mathematik hinter Google 14/19
Matrixdarstellung (Fortsetzung) Es sei x der Vektor der PageRanks aller Webseiten, dann beschreibt folgende einfache Fixpunkgleichung unser lineares Gleichungssystem: x = Ax. Diese Gleichung kann man iterativ lösen (Potenzmethode). Es gibt mindestens 3 verschiedene Methoden um dieses spezielle Problem effizient zu lösen. Die Lösung ist genau dann eindeutig bestimmt (Satz von Perron-Frobenius), wenn die Summe der Elemente des Vektors x genau 1 ist, was ganz natürlich ist, da es sich hier um Wahrscheinlichkeiten handelt. In der Gleichung x = Ax bezeichnet man den Vektor x als Eigenvektor der Matrix A zum Eigenwert 1. georges.klein@unifr.ch Die Mathematik hinter Google 14/19
Numerische Berechnungen Die Potenzmethode zur Lösung der Gleichung x = Ax ist nur dann angemessen, wenn die Matrix A nicht zu gross ist. Man wählt einen Startvektor x und berechnet iterativ x new = Ax old bis der Unterschied zwischen x new und x old klein genug wird. Die Matrix A, welche Google benutzen müsste ist voll und hätte heute ungefähr 10 24 Einträge. Eine einzige Multiplikation Ax würde viel zuviel Speicherkapazität und Rechenleistung verschlingen und wäre zudem noch extrem langsam. In der Praxis werden die Matritzen A und G nie explizit berechnet, sondern man profitiert davon dass die Matrix G dünnbesetzt ist, um A effizienter zu definieren. Das entsprechend umformulierte Gleichungssystem wird gelöst mit einer Version des Gaussverfahrens, welche von der speziellen Struktur der Matritzen Gebrauch macht. georges.klein@unifr.ch Die Mathematik hinter Google 15/19
Numerische Berechnungen Die Potenzmethode zur Lösung der Gleichung x = Ax ist nur dann angemessen, wenn die Matrix A nicht zu gross ist. Man wählt einen Startvektor x und berechnet iterativ x new = Ax old bis der Unterschied zwischen x new und x old klein genug wird. Die Matrix A, welche Google benutzen müsste ist voll und hätte heute ungefähr 10 24 Einträge. Eine einzige Multiplikation Ax würde viel zuviel Speicherkapazität und Rechenleistung verschlingen und wäre zudem noch extrem langsam. In der Praxis werden die Matritzen A und G nie explizit berechnet, sondern man profitiert davon dass die Matrix G dünnbesetzt ist, um A effizienter zu definieren. Das entsprechend umformulierte Gleichungssystem wird gelöst mit einer Version des Gaussverfahrens, welche von der speziellen Struktur der Matritzen Gebrauch macht. georges.klein@unifr.ch Die Mathematik hinter Google 15/19
Numerische Berechnungen Die Potenzmethode zur Lösung der Gleichung x = Ax ist nur dann angemessen, wenn die Matrix A nicht zu gross ist. Man wählt einen Startvektor x und berechnet iterativ x new = Ax old bis der Unterschied zwischen x new und x old klein genug wird. Die Matrix A, welche Google benutzen müsste ist voll und hätte heute ungefähr 10 24 Einträge. Eine einzige Multiplikation Ax würde viel zuviel Speicherkapazität und Rechenleistung verschlingen und wäre zudem noch extrem langsam. In der Praxis werden die Matritzen A und G nie explizit berechnet, sondern man profitiert davon dass die Matrix G dünnbesetzt ist, um A effizienter zu definieren. Das entsprechend umformulierte Gleichungssystem wird gelöst mit einer Version des Gaussverfahrens, welche von der speziellen Struktur der Matritzen Gebrauch macht. georges.klein@unifr.ch Die Mathematik hinter Google 15/19
Numerische Berechnungen (Fortsetzung) In unserem Miniweb Beispiel ergibt dieser PageRank Algorithmus folgende Liste: PageRank in out url 1 0.3210 2 2 http://www.alpha.com 6 0.2007 2 1 http://www.sigma.com 2 0.1705 1 2 http://www.beta.com 4 0.1368 2 1 http://www.delta.com 3 0.1066 1 3 http://www.gamma.com 5 0.0643 1 0 http://www.rho.com. Man stellt fest, dass alpha.com einen höheren PageRank Wert hat als delta.com und sigma.com obwohl alle drei Seiten über die gleiche Anzahl an Links erreicht werden können. Unser Zufalls-Surfer wird also über 32% der Zeit auf die Seite alpha.com gelangen und nur 6% der Zeit auf rho.com. georges.klein@unifr.ch Die Mathematik hinter Google 16/19
Numerische Berechnungen (Fortsetzung) In unserem Miniweb Beispiel ergibt dieser PageRank Algorithmus folgende Liste: PageRank in out url 1 0.3210 2 2 http://www.alpha.com 6 0.2007 2 1 http://www.sigma.com 2 0.1705 1 2 http://www.beta.com 4 0.1368 2 1 http://www.delta.com 3 0.1066 1 3 http://www.gamma.com 5 0.0643 1 0 http://www.rho.com. Man stellt fest, dass alpha.com einen höheren PageRank Wert hat als delta.com und sigma.com obwohl alle drei Seiten über die gleiche Anzahl an Links erreicht werden können. Unser Zufalls-Surfer wird also über 32% der Zeit auf die Seite alpha.com gelangen und nur 6% der Zeit auf rho.com. georges.klein@unifr.ch Die Mathematik hinter Google 16/19
Ein paar Schwachstellen Ältere Seiten haben oft einen höheren PageRank Wert als ganz neue Webseiten. Verschiedene Webmaster versuchen den PageRank Wert ihrer Seite künstlich zu verbessern, indem sie andere Webmaster auffordern Links zu ihren Seiten zu setzen. Bei Google versucht man solche Phänomene zu bekämpfen, indem man notfalls gewisse Seiten einfach aus dem PageRank Mechanismus ausschliesst. Google findet nur solche Seiten, die man per Link von einer anderen Seite aus erreichen kann. georges.klein@unifr.ch Die Mathematik hinter Google 17/19
Schlussfolgerung Mit einer hervorragenden Idee aus der Mathematik oder den Wissenschaften allgemein, so einfach sie auch sein mag (siehe lineare Algebra im Fall von Google), und etwas Unternehmergeist kann man grossen Erfolg haben. (Extreme Beispiele wie Google bleiben allerdings Aussnahmen.) In diesem Sinne: Viel Erfolg in Eurem Studium!! georges.klein@unifr.ch Die Mathematik hinter Google 18/19
Bibliographie C. Moler, Experiments with Matlab, chapter 12, http://www.mathworks.com/moler/exm/chapters/pagerank.pdf. M. Eisermann, Comment fonctionne Google?, http://www.igt.uni stuttgart.de/eiserm/enseignement/google.pdf. Wikipedia, http://en.wikipedia.org/wiki/pagerank. georges.klein@unifr.ch Die Mathematik hinter Google 19/19