Implementierung von PageRank mit MapReduce

8

Ich versuche, ein Problem mit der Theorie der Implementierung des PageRank mit MapReduce zu lösen.

Ich habe das folgende einfache Szenario mit drei Knoten: A B C.

Die Adjazenzmatrix ist hier:

%Vor%

Der PageRank für B ist zum Beispiel gleich:

%Vor%

Mir geht es gut mit allen Schaltplänen und wie der Mapper und Reducer funktionieren würde, aber ich kann nicht verstehen, wie C (A) zum Zeitpunkt der Berechnung durch den Reducer bekannt sein würde. Wie wird der Reducer bei der Berechnung des PageRank von B durch Zusammenfassung der eingehenden Links zu B die Anzahl der ausgehenden Links von jeder Seite wissen. Benötigt dies eine Suche in einer externen Datenquelle?

    
Nick D. 17.02.2011, 13:03
quelle

3 Antworten

13

Hier ist ein Pseudocode:

%Vor%

Es ist wichtig, dass Sie in der Verkleinerung Outlinks und nicht Inlinks ausgeben sollten, wie einige Artikel im Intent vorschlagen. Auf diese Weise haben die aufeinanderfolgenden Iterationen auch Outlinks als Eingabe des Mappers.

Achten Sie darauf, dass mehrere Outlinks mit derselben Adresse von derselben Seite als eins gezählt werden. Zählen Sie auch keine Loops (Seite mit sich selbst verlinken).

Der Dämpfungsfaktor beträgt traditionell 0,85, obwohl Sie auch mit anderen Werten spielen können.

    
gphilip 26.11.2012 15:49
quelle
3

Eine detaillierte Erklärung mit Python-Code , von Michael Nielsen.

    
Darius Bacon 17.02.2011 23:21
quelle
1

Wir evaluieren iterativ PR. PR (x) = Summe (PR (a) * Gewicht (a), a in in_links) von

%Vor%

also ist die Ausgabe gleich Eingabe und wir können dies bis zur Deckung tun.

    
yura 17.02.2011 13:50
quelle

Tags und Links