13 Page-Rank - home.in.tum.dehome.in.tum.de/~palenta/13_pagerank.pdf · Das ist der...

8
13 Page-Rank Wir wollte in einem Corpus von Texten, wie z.B. B¨ ucher, Webseiten, Anlei- tung usw., nach bestimmten Inhalten aus einer Menge von Schl¨ usselworten suchen Sei S = {S 1 ,S 2 ,...,S n-1 ,S n } eine eine alphabeitsch geordnete Liste der Schl¨ usselworte. Z.B. S 1 = Aachen,S 2 = Abel,...,S n-1 = Zaun,S n = Zug und sei D = {D 1 ,D 2 ,...,D m } eine durchnummerierte Liste der Dokumente. Ein gegebenes Textdokument enth¨ alt bestimmte Schl¨ usselworte aus der Liste und kann daher durch eine Teilmenge der Liste dargestellt werde D 1 D 2 D 3 D 4 D 5 ... D m S 1 0 0 1 0 1 ... 0 S 2 1 0 0 0 0 ... 2 S 1 0 0 0 2 0 ... 0 . . . . . . . . . . . . . . . . . . ... 1 S n 0 2 1 0 0 ... 0 Das j -te Dokument D j ist also durch einen Spalten-vektor d j charakte- risiert, der die f¨ ur das Dokument relevante Terme auflistet. Das k-te Schl¨ usselwort S k ist verbunden mit einem Zeilen-Vektor s k , der die Dokumente kennzeichnet, in denen das Schl¨ usselwort auftaucht. Die Zahl D kj in der Term-Dokument-Matrix gibt an, wie wichtig der Term S k im Dokument D j ist (z.B. wie oft er auftaucht). Eine Suchanfrage ist eine Ansammlung von Termen und kann genauso durch einen Dokumentvektor d dargestellt werden. Einen Dokument D j aus dem Corpus passt am besten zu der Suchanfrage, wenn die Schl¨ usselworte aus der Anfrage auch im Dokumentvektor d j stehen. In Vektorsprache heißt das: d und d j sollen m¨ oglichst parallel sein (also einen kleinen Winkel bilden). Also wollen wir zur Anfrage d den Dokumentenvektor d j mit kleinsten Winkel bestimmen. Wir k¨ onnen den Winkel φ j zwischen den Vektoren d und d j ¨ uber Cosinus bestimmen: cos(φ j )= d T d j d‖·‖ d j . (13.1) Je kleiner der Winkel zwischen zwei Vektoren, desto n¨ aher an 1 ist der Co- sinus.

Transcript of 13 Page-Rank - home.in.tum.dehome.in.tum.de/~palenta/13_pagerank.pdf · Das ist der...

Page 1: 13 Page-Rank - home.in.tum.dehome.in.tum.de/~palenta/13_pagerank.pdf · Das ist der PageRank-Vektor. Unser PageRank Vektor besagt, dass die Web-seiten 8, 6 und 7 die h¨ohere Aufenthaltswahrscheinlichkeiten

13 Page-Rank

• Wir wollte in einem Corpus von Texten, wie z.B. Bucher, Webseiten, Anlei-tung usw., nach bestimmten Inhalten aus einer Menge von Schlusselwortensuchen

• Sei S = {S1, S2, . . . , Sn−1, Sn} eine eine alphabeitsch geordnete Liste derSchlusselworte. Z.B. S1 = Aachen, S2 = Abel, . . . , Sn−1 = Zaun, Sn = Zugund sei D = {D1, D2, . . . , Dm} eine durchnummerierte Liste der Dokumente.Ein gegebenes Textdokument enthalt bestimmte Schlusselworte aus der Listeund kann daher durch eine Teilmenge der Liste dargestellt werde

D1 D2 D3 D4 D5 . . . Dm

S1 0 0 1 0 1 . . . 0S2 1 0 0 0 0 . . . 2S1 0 0 0 2 0 . . . 0...

......

......

. . . . . . 1Sn 0 2 1 0 0 . . . 0

– Das j-te Dokument Dj ist also durch einen Spalten-vektor ~dj charakte-risiert, der die fur das Dokument relevante Terme auflistet.

– Das k-te Schlusselwort Sk ist verbunden mit einem Zeilen-Vektor ~sk,der die Dokumente kennzeichnet, in denen das Schlusselwort auftaucht.

– Die Zahl Dkj in der Term-Dokument-Matrix gibt an, wie wichtig derTerm Sk im Dokument Dj ist (z.B. wie oft er auftaucht).

• Eine Suchanfrage ist eine Ansammlung von Termen und kann genauso durcheinen Dokumentvektor ~d dargestellt werden. Einen Dokument Dj aus demCorpus passt am besten zu der Suchanfrage, wenn die Schlusselworte aus derAnfrage auch im Dokumentvektor ~dj stehen. In Vektorsprache heißt das: ~d

und ~dj sollen moglichst parallel sein (also einen kleinen Winkel bilden). Also

wollen wir zur Anfrage ~d den Dokumentenvektor ~dj mit kleinsten Winkelbestimmen.

• Wir konnen den Winkel φj zwischen den Vektoren ~d und ~dj uber Cosinusbestimmen:

cos(φj) =~dT ~dj

‖~d‖ · ‖~dj‖. (13.1)

Je kleiner der Winkel zwischen zwei Vektoren, desto naher an 1 ist der Co-sinus.

Page 2: 13 Page-Rank - home.in.tum.dehome.in.tum.de/~palenta/13_pagerank.pdf · Das ist der PageRank-Vektor. Unser PageRank Vektor besagt, dass die Web-seiten 8, 6 und 7 die h¨ohere Aufenthaltswahrscheinlichkeiten

• Betrachten wir nun einen Beispiel.

– Wir haben eine Term-Dokument-Matrix B:

D1 D2 D3 D4 D5 . . .Auto 0 0 1 0 1 . . .S2 0 0 0 0 1 . . .Kfz 0 0 1 2 1 . . .S4 0 3 0 0 0 . . .

Kraftfahrzeug 0 0 1 0 1 . . ....

......

......

.... . .

– Und die Suchanfrage: Kfz mit ~d = (0, 0, 1, 0, 0, . . .)T

– Die Winkelberechnung fuhrt zu folgenden Ergebnissen:

cos(φ3) = 1/√3 = 0.577.

cos(φ4) = 2/2 = 1 Optimallosung!

cos(φ5) = 1/√3 = 0.577.

Man wurde aber eigentlich eher erwarten, dass D3 and D5 die Suchan-frage besser beantworten.

• Das Problem mit dem Ansatz besteht darin das die Eigenartigkeit der natur-lichen Sprache, wie z.B. Mehrdeutigkeit und Synonyme, ignoriert wird.

• Die Abhilfe schafft das Verfahren Latent Semantic Indexing. Dieses beseitigdie Abhangigkeiten und Mehrdeutigkeiten der Sprache und verringert dieDimension des Term-Raumes durch Berucksichtigung von Mehrdeutigkeitenund Korrelationen.

In der Sprache von Vektoren heißt das: zuerst werden die Zeilen von derTerm-Dokument-Matrix orthogonalisiert und dann der Winkel mit den Spal-tenvektoren in der reduzierten Matrix bestimmt.

• Nun widmen wir unsere Aufmerksamkeit den Web-Graphen. Erinnern wiruns nochmal, dass ein Graph G = (E,K) ist ein Tupel mit Ecken E ={E1, . . . , En} und KantenK = {K1, . . . , Km}. Zum Beispiel, in diesem Graph

Page 3: 13 Page-Rank - home.in.tum.dehome.in.tum.de/~palenta/13_pagerank.pdf · Das ist der PageRank-Vektor. Unser PageRank Vektor besagt, dass die Web-seiten 8, 6 und 7 die h¨ohere Aufenthaltswahrscheinlichkeiten

3

4

5

6 8

71

2

haben wir die Kanten (1, 2), (1, 3), (2, 4), (3, 2), (3, 5), (4, 2), (4, 5), (4, 6), (5, 6),(5, 7), (5, 8), (6, 8), (7, 1), (7, 5), (7, 8), (8, 6), (8, 7) und n = 8, m = 17.

• Neben einer Menge von Tupeln, konnen wir die Verbindungen in einemGraph auch mithilfe einer Adjazenzmatrix abbilden. Die Adjazenzmatrix Ahat in der i-ten Zeile und j-ten Spalte genau dann einen 1, wenn es eineKante von Ecke i zur Ecke j existiert. Unser Graph induziert, z.B. folgendeAdjazenzmatrix:

AG =

0 0 0 0 0 0 1 01 0 1 1 0 0 0 01 0 0 0 0 0 0 00 1 0 0 0 0 0 00 0 1 1 0 0 1 00 0 0 1 1 0 0 10 0 0 0 1 0 0 10 0 0 0 1 1 1 0

.

Diese Matrix ist nicht symmetrisch, weil unser Graph gerichtet ist.

• Gerichtete Graphen werden zur Modellierung diveres Strukturen mit Rela-tionen und Abhangigkeiten verwendet. Ein prominenter Beispiel ist die Mo-dellierung von Links zwischen Webseiten. So wurde in unserem Beispiel obendie Webseite 1 auf die Webseiten 2 und 3 verlinken, die Webseite 4 auf dieWebseiten 2, 5 und 6 usw.

• Was kann man jetzt mit diesem Modell tun? Stelle dir einen Webnutzer vor,der von einer Seite zur nachsten uber die Links springt. Dieser Webnutzerist nicht wahlerisch und entscheidet sich ueber die nachste Seite zufallig. So,wenn er sich z.B. auf der Webseite 1 aufhalt, wird er als nachstes entwederdie Webseite 2 oder Webseite 3 mit gleichen Wahrscheinlichkeit 0.5 besuchen.Wir nennen dieses Verhaltensmodel Random Surfer.

• Was sind die von Random Surfer meist besuchten Webseiten? Um diese Fra-ge beantworten zu konnen, fuhren wir wir den Vektor von Aufenthaltswahr-

Page 4: 13 Page-Rank - home.in.tum.dehome.in.tum.de/~palenta/13_pagerank.pdf · Das ist der PageRank-Vektor. Unser PageRank Vektor besagt, dass die Web-seiten 8, 6 und 7 die h¨ohere Aufenthaltswahrscheinlichkeiten

scheinlichkeiten im k-ten Schritt:

~x(k) = (x(k)1 , x

(k)2 , x

(k)3 , x

(k)4 , x

(k)5 , x

(k)6 , x

(k)7 , x

(k)8 )T .

Und da er zu jedem Zeitpunkt nur eine Seite besuchen kann, verlangen wirzusatzlich dass alle Komponenten von ~x(k) sich zu 1 addieren: x

(k)1 + · · · +

x(k)8 = 1.

• Beim Schritt von k zu k + 1 klickt der Nutzer auf den nachsten Link und esandern sich die Aufenthaltswahrscheinlichkeiten:

~x(k+1) =

13x(k)7

12x(k)1 + 1

2x(k)3 + 1

3x(k)4

12x(k)1

x(k)2

12x(k)3 + 1

3x(k)4 + 1

3x(k)7

13x(k)4 + 1

3x(k)5 + 1

2x(k)8

13x(k)5 + 1

2x(k)8

13x(k)5 + x

(k)6 + 1

3x(k)7

. (13.2)

Diese Transformation lasst sich auch in Form einer Matrix-Vektor Multipli-kation schreiben:

~x(k+1) =

0 0 0 0 0 0 1/3 01/2 0 1/2 1/3 0 0 0 01/2 0 0 0 0 0 0 00 1 0 0 0 0 0 00 0 1/2 1/3 0 0 1/3 00 0 0 1/3 1/3 0 0 1/20 0 0 0 1/3 0 0 1/20 0 0 0 1/3 1 1/3 0

·

x(k)1

x(k)2

x(k)3

x(k)4

x(k)5

x(k)6

x(k)7

x(k)8

= A~x(k).

Die Matrix A wird stochastische Matrix oder auch Ubergangsmatrix genannt.

• Ein aufmerksamer Student wurde an dieser Stelle merken, dass die MatrixA genau so wie die Matrix AG aussieht. Nur die Eintrage von A sind sonormiert, dass die Spaltensumme immer 1 ergibt.

• Wenn die Folge von Aufenthaltswahrscheinlichkeiten konvergiert, ~x(k) k→∞→~x⋆, dann gilt auch A~x(k) k→∞→ A~x⋆. Fur die Aufenthaltswahrscheinlichkeitenim Gleichgewichtszustand gilt

A~x⋆ = 1 · ~x⋆. (13.3)

Page 5: 13 Page-Rank - home.in.tum.dehome.in.tum.de/~palenta/13_pagerank.pdf · Das ist der PageRank-Vektor. Unser PageRank Vektor besagt, dass die Web-seiten 8, 6 und 7 die h¨ohere Aufenthaltswahrscheinlichkeiten

Im diesem Fall heißt 1 Eigenwert von A und ~x⋆ der dazu gehorige Rechtsei-

genvektor. Außerdem gilt es

(1, 1, . . . , 1) · A = ~1T · A = ~1T · 1.

Und daher ist ~1T = (1, 1, . . . , 1) Linkseigenvektor zu Eigenwert 1.

• Die Perron-Frobenius-Theorie besagt, dass sochastische (nich-zerfallende)Matrizen einen Rechtseigenvektor mit positiven Eintragen zu maximalen Ei-genwert 1 haben. In unserem Beispiel ist der Rechtseigenvektor zu 1 von derMatrix A:

~x⋆ = (0.060, 0.068, 0.030, 0.068, 0.098, 0.202, 0.180, 0.295)T .

Das ist der PageRank -Vektor. Unser PageRank Vektor besagt, dass die Web-seiten 8, 6 und 7 die hohere Aufenthaltswahrscheinlichkeiten in stationarenZustand haben. Solche Webseiten werden von Google und anderen Suchma-schinen starker gewichtet.

• Zwei Problemen haben wir noch zu berucksichtigen

1. Was passiert wenn wir Webseiten ohne jegliche ausgehende Links ha-ben? Wir nehmen an, der Random Surfer wahlt eine neue Webseiteabsolut zufallig aus. Dafur ersetzen wir die Nullspalten in der Matrix Adurch den Spaltenvektor 1

n~1.

2. Ist die Matrix zerfallend, dann verlieren wir die Konvergenzgarantie.Die Losung ist einfach:

A → ρA+1− ρ

n

1 · · · 1...

. . ....

1 · · · 1

= ρA+ (1− ρ)~1 ·~1T/n.

Aufgaben

13.1 Gegeben seien vier Dokumente D1, . . . , D4 und vier Suchbergriffe S1, . . . , S4.Das Vorkommen der Begriffe in den Dokumenten kann, wie gezeigt, in einerTerm-Dokument-Matrix dargestellt werden.

In dieser Aufgabe verwenden wir die Matrix

B =

0 1 0 10 1 2 13 0 0 00 1 0 1

Page 6: 13 Page-Rank - home.in.tum.dehome.in.tum.de/~palenta/13_pagerank.pdf · Das ist der PageRank-Vektor. Unser PageRank Vektor besagt, dass die Web-seiten 8, 6 und 7 die h¨ohere Aufenthaltswahrscheinlichkeiten

Hier entsprechen die Dokumente den Spaltenvektoren der Matrix und dieSuchbegriffe den Zeilenvektoren. Suchbegriff S3 taucht also dreimal in Do-kument D1 auf.

Die Suchanfrage wird ebenfalls als Vektor dargestellt, ahnlich einem Dokumenten-(bzw. Spalten-) vektor von B. Der in dieser Aufgabe verwendete Anfrage-vektor lautet

v =

0100

Es wird also nach dem Suchbegriff S2 gesucht.

a) Berechne fur jedes Dokument die Ahnlichkeit zur Suchanfrage. DieAhnlichkeit sei hier definiert im Cosinusmaß cos(a, b), das wie folgt de-finiert ist

cos(a, b) = cos(Winkel zwischen Vektor a und Vektor b) =aT · b

||a||2||b||2Welches Dokument entspricht der Anfrage am ehesten?

b) Um das Suchergebnis zu verbessern, konnen wir die Abhangigkeitenzwischen den Dokumenten ausnutzen. Das ist die Grundlage des LatentSemantic Indexing.

Dazu wird eine Singularwertzerlegung benotigt. Glucklicherweise bietetbeispielsweise NumPy Bibliothek der Programmiersprache Python diesebereits fertig implementiert als Funktion numpy.linalg.svd an.

Wir berechnen die rechte bzw. linke ortogonale Matrix U bzw. V sowiedie Singularwertmatrix S. Nun gilt B = U · S · V .

U =

0 −√66

√33

−√22

0 −√63

−√33

0−1 0 0 0

0 −√66

√33

√22

S =

3 0 0 0

0 2√2 0 0

0 0√2 0

0 0 0 0

V =

−1 0 0 0

0 −√33

−√33

−√33

0√66

−√63

√66

0 −√22

0√22

Page 7: 13 Page-Rank - home.in.tum.dehome.in.tum.de/~palenta/13_pagerank.pdf · Das ist der PageRank-Vektor. Unser PageRank Vektor besagt, dass die Web-seiten 8, 6 und 7 die h¨ohere Aufenthaltswahrscheinlichkeiten
Page 8: 13 Page-Rank - home.in.tum.dehome.in.tum.de/~palenta/13_pagerank.pdf · Das ist der PageRank-Vektor. Unser PageRank Vektor besagt, dass die Web-seiten 8, 6 und 7 die h¨ohere Aufenthaltswahrscheinlichkeiten

Die ”Wichtigkeit” einer Station ermittelt sich also aus der Aufenthalts-wahrscheinlichkeit des Random-Surfers.

i. Schreibe Gleichung (13.4) als Matrix S. Verwende dazu die Ab-bildung p0 = ”Petuelring”, p1 = ”Scheidplatz”, p2 = ”Hohen-zollernplatz”, p3 = ”Milbertshofen”, p4 = ”Bonner Platz”, p5 =”Munchner Freiheit”, p6 = ”Giselastr.” und p7 = ”Dietlindenstr.”.

ii. Welche Summe haben die Komponenten der Spaltenvektoren vonS (Entspricht der 1-Norm der Spaltenvektoren)? Warum?

iii. Bevor das tatsachliche Ergebnis berechnet wird: uberlege, welcheStationen du intuitiv in dem gegebenen Beispielgraph als ”wichtig”und welche als weniger ”wichtig” einstufen wurdest.

b) Wie in der Vorlesung gezeigt, kann man die Aufenthaltswahrscheinlich-keiten u zu Zeitpunkt t+1 aus den Wahrscheinlichkeiten zum Zeitpunktt durch die Beziehung ut+1 = Sut berechnen.

Wenn dises iterative Vorgehen konvergiert, dann muss fur das Ergebnisu gelten u = Su. Diese Gleichung zeigt, dass der Vektor der Aufent-haltswahrscheinlichkeiten ein Eigenvektor von S mit Eigenwert 1 seinmuss.

Uberprufe, dass Vektor

a = (0.0625, 0.250, 0.0625, 0.0625, 0.125, 0.250, 0.125, 0.0625)

der rechte Eigenvektor von S zum Eigenwert 1 ist. Wie konnte man die-sen Vektor berechnen?Welche Stationen sind die ”wichtigsten”? Stimmtdas mit unserer Intuition uberein?