PageRank-Algorithmus: Unterschied zwischen den Versionen

Aus FunFacts Wiki
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
 
Es gibt mehrere Milliarden Websites im Internet und doch erscheint, wenn wir bei Google beispielsweise nach "Fun Facts Heidelberg" suchen, diese Seite in verschiedenen Browsern  unter den ersten zehn. Das liegt daran, dass der Suchbegriff auf einigen der Seiten keine so große Rolle spielt. Man wird feststellen, dass die ersten Ergebnisse die relevantesten sind. Aber wie schafft es die Suchmaschine die Seiten so zu sortieren? Dort kommt der PageRank-Algorithmus ins Spiel, welcher die Seiten über die Anzahl an Links mit Hilfe von linearer Algebra nach ihrer Wichtigkeit sortiert.
 
Es gibt mehrere Milliarden Websites im Internet und doch erscheint, wenn wir bei Google beispielsweise nach "Fun Facts Heidelberg" suchen, diese Seite in verschiedenen Browsern  unter den ersten zehn. Das liegt daran, dass der Suchbegriff auf einigen der Seiten keine so große Rolle spielt. Man wird feststellen, dass die ersten Ergebnisse die relevantesten sind. Aber wie schafft es die Suchmaschine die Seiten so zu sortieren? Dort kommt der PageRank-Algorithmus ins Spiel, welcher die Seiten über die Anzahl an Links mit Hilfe von linearer Algebra nach ihrer Wichtigkeit sortiert.
  
 +
== Hyperlink-Übergangsmatrix ==
 
== Prinzip des PageRank-Algorithmus ==
 
== Prinzip des PageRank-Algorithmus ==
 
Eine Website ist umso wichtiger, um so mehr Links von wichtigen Websites auf sie verweisen. Dies soll jetzt in ''einer'' Zahl ausgedrückt werden. Sei also <math>a</math> eine Website mit PageRank <math>R(a)</math>, für eine beliebige Seite <math>x</math> sei <math>L(x)</math> die Anzahl der (verschiedenen) Links, die auf <math>x</math> vorkommen. Sei zudem <math>B_a</math> die Menge der Websites, die einen Link zu <math>a</math> besitzen. Dann lässt wird der Grundgedanke von PageRank durch die folgende Formel ausgedrücken:
 
Eine Website ist umso wichtiger, um so mehr Links von wichtigen Websites auf sie verweisen. Dies soll jetzt in ''einer'' Zahl ausgedrückt werden. Sei also <math>a</math> eine Website mit PageRank <math>R(a)</math>, für eine beliebige Seite <math>x</math> sei <math>L(x)</math> die Anzahl der (verschiedenen) Links, die auf <math>x</math> vorkommen. Sei zudem <math>B_a</math> die Menge der Websites, die einen Link zu <math>a</math> besitzen. Dann lässt wird der Grundgedanke von PageRank durch die folgende Formel ausgedrücken:
Zeile 15: Zeile 16:
 
* dann: Interpretation mit Markow, Pagerank als stationäre Verteilung
 
* dann: Interpretation mit Markow, Pagerank als stationäre Verteilung
  
== Hyperlink-Übergangsmatrix ==
 
 
== Vektoriteration ==
 
== Vektoriteration ==
 
Betrachtet man  eine diagonalisierbare Matrix A, so gibt es eine Basis aus den Eigenvektoren zu den entsprechenden Eigenwerten. Betrachte nun die Eigenwerte und sortiere sie nach der Größe des Betrags, sodass gilt <math> |λ_{1}|>|λ_{2}|\geq ... \geq |λ_{n}| </math>.Nun wählen wir einen Startvektor und erhalten eine Folge <math> (v^{(i)}) </math>, die durch sukzessives Anwenden von A definiert ist. Es gilt: <math> v^ {(i+1)} = Av^ {(i)} </math>.
 
Betrachtet man  eine diagonalisierbare Matrix A, so gibt es eine Basis aus den Eigenvektoren zu den entsprechenden Eigenwerten. Betrachte nun die Eigenwerte und sortiere sie nach der Größe des Betrags, sodass gilt <math> |λ_{1}|>|λ_{2}|\geq ... \geq |λ_{n}| </math>.Nun wählen wir einen Startvektor und erhalten eine Folge <math> (v^{(i)}) </math>, die durch sukzessives Anwenden von A definiert ist. Es gilt: <math> v^ {(i+1)} = Av^ {(i)} </math>.

Version vom 26. März 2021, 07:39 Uhr

Es gibt mehrere Milliarden Websites im Internet und doch erscheint, wenn wir bei Google beispielsweise nach "Fun Facts Heidelberg" suchen, diese Seite in verschiedenen Browsern unter den ersten zehn. Das liegt daran, dass der Suchbegriff auf einigen der Seiten keine so große Rolle spielt. Man wird feststellen, dass die ersten Ergebnisse die relevantesten sind. Aber wie schafft es die Suchmaschine die Seiten so zu sortieren? Dort kommt der PageRank-Algorithmus ins Spiel, welcher die Seiten über die Anzahl an Links mit Hilfe von linearer Algebra nach ihrer Wichtigkeit sortiert.

Hyperlink-Übergangsmatrix

Prinzip des PageRank-Algorithmus

Eine Website ist umso wichtiger, um so mehr Links von wichtigen Websites auf sie verweisen. Dies soll jetzt in einer Zahl ausgedrückt werden. Sei also [math]a[/math] eine Website mit PageRank [math]R(a)[/math], für eine beliebige Seite [math]x[/math] sei [math]L(x)[/math] die Anzahl der (verschiedenen) Links, die auf [math]x[/math] vorkommen. Sei zudem [math]B_a[/math] die Menge der Websites, die einen Link zu [math]a[/math] besitzen. Dann lässt wird der Grundgedanke von PageRank durch die folgende Formel ausgedrücken:

[math]R(a) = \sum_{x \in B_a} \frac{R(x)}{L(x)} [/math].

(Würde man nicht durch [math]L(x)[/math] teilen, sondern einfach die Summe der Ranks der Seiten in [math]B_a[/math] betrachten, so würden Seiten mit sehr vielen Links viel stärker ins Gewicht fallen als etwa Seiten mit nur einem Link darauf.) Offenbar handelt es sich um eine Art rekursive Definition: Man muss zur Berechnung eines PageRanks die PageRanks anderer Websites kennen. Es bleibt also nichts, als alle diese Gleichungen simultan zu lösen (LGS!). Wir versuchen also diese Gleichungen in LA-Sprache zu übersetzen, wobei wir von der Matrix aus dem vorigen Abschnitt Gebrauch machen (TODO!).

Todo:

  • -> Aw = w in Matrix-Sprache -> Eigenwertproblem
  • es gibt keine EW > 1
  • iterative Berechnung von Vektor w -> alle Pageranks
  • dann: Interpretation mit Markow, Pagerank als stationäre Verteilung

Vektoriteration

Betrachtet man eine diagonalisierbare Matrix A, so gibt es eine Basis aus den Eigenvektoren zu den entsprechenden Eigenwerten. Betrachte nun die Eigenwerte und sortiere sie nach der Größe des Betrags, sodass gilt [math] |λ_{1}|\gt |λ_{2}|\geq ... \geq |λ_{n}| [/math].Nun wählen wir einen Startvektor und erhalten eine Folge [math] (v^{(i)}) [/math], die durch sukzessives Anwenden von A definiert ist. Es gilt: [math] v^ {(i+1)} = Av^ {(i)} [/math]. Diese Folge konvergiert bei geeigneter Wahl von dem Startvektor gegen einen Eigenvektor v der Matrix A zum Eigenwert [math] λ_{1} [/math]. Falls also k groß genug ist, gilt: [math]Av^{(k)} \approx λ_{1}v^{(k)} [/math].

Markow-Ketten

Verbesserungen - Der Dämpfungsfaktor

Quellen und weiterführende Links