Was ist linkbasiertes Ranking?
Linkbasiertes Ranking (englisch link analysis) ordnet Webseiten danach, wie viele wichtige Seiten auf sie verweisen. Ein Verweis zählt dabei wie eine Empfehlung, und eine Empfehlung von einer wichtigen Seite wiegt mehr.
Der Text einer Seite allein reicht nicht, um die beste zu finden: Jeder kann „Nudeln“ hundertmal auf eine Seite schreiben. Verweise von anderen sind schwerer zu fälschen.
Am Ende dieser Lektion
Notiz
Ich kann erklären, wie Links Seiten ordnen können, und einen Rang durch Wiederholen berechnen.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Link | ein Verweis von einer Seite auf eine andere | Start verweist auf Mensa |
| Rang | eine Zahl, die sagt, wie wichtig eine Seite ist | |
| Iteration | dieselbe Rechnung wieder und wieder ausführen, mit dem Ergebnis der letzten Runde | |
| Dämpfung | der Anteil des Rangs, der wirklich über Links wandert; der Rest verteilt sich gleichmäßig | |
| Konvergenz | der Zustand, in dem sich die Zahlen von Runde zu Runde kaum noch ändern |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein Link ist eine Empfehlung mit Gewicht
Eine Seite, auf die viele andere verweisen, wirkt wichtig. Noch wichtiger wirkt sie, wenn diese anderen Seiten selbst wichtig sind. Die Idee ist also rekursiv: Wichtig ist, wer von Wichtigen verlinkt wird.
Jede Seite gibt ihren Rang zu gleichen Teilen an die Seiten weiter, auf die sie verweist. Hat sie zwei Links, geht an jeden die Hälfte.
Eine Person klickt zufällig Links an
Stellen Sie sich jemanden vor, der immer wieder einen zufälligen Link anklickt. Der Rang einer Seite ist die Wahrscheinlichkeit, dass diese Person gerade dort ist. Seiten mit vielen Zugängen sind öfter besucht.
Mit 15 Prozent Wahrscheinlichkeit gibt die Person auf und springt auf eine beliebige Seite. Das ist die Dämpfung 0,85. Sie verhindert, dass der Rang in einer Sackgasse hängen bleibt.
Beispiel: ein kleines Netz aus vier Seiten
| Seite | verweist auf | Eingehende Links |
|---|---|---|
| start | mensa, bib | von mensa, bib, sekretariat |
| mensa | start | von start, bib |
| bib | start, mensa | von start |
| sekretariat | start | von niemandem |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Der neue Rang kommt von den Linkgebern
Zu Beginn bekommt jede Seite denselben Rang, bei vier Seiten also 0,25. In jeder Runde gilt für eine Seite: neuer Rang gleich 0,15 durch N, plus 0,85 mal die Summe der Anteile.
Der Anteil einer Quelle ist ihr Rang geteilt durch die Zahl ihrer Links. Für „start“ ist das 0,15 durch 4 plus 0,85 mal (0,25 plus 0,125 plus 0,25), also 0,56875.
Die erste Runde für „start“ im Terminal
docker exec jupyter python3 -c "print(round(0.15/4 + 0.85*(0.25 + 0.25/2 + 0.25), 5))"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Mehrere Runden nacheinander rechnen
links = {
"start": ["mensa", "bib"],
"mensa": ["start"],
"bib": ["start", "mensa"],
"sekretariat": ["start"],
}
daempfung = 0.85
rang = {}
for seite in links:
rang[seite] = 1 / len(links)
for runde in range(1, 4):
neu = {}
for seite in links:
summe = 0
for quelle in links:
if seite in links[quelle]:
summe = summe + rang[quelle] / len(links[quelle])
neu[seite] = (1 - daempfung) / len(links) + daempfung * summe
rang = neu
print("Runde", runde, "start:", round(rang["start"], 4), "bib:", round(rang["bib"], 4))
# Erhöhen Sie range(1, 4) auf range(1, 21). Wann ändern sich die Zahlen kaum noch?
Beispiel: wie sich die Ränge setzen
| Runde | start | mensa | bib | sekretariat |
|---|---|---|---|---|
| 0 | 0,25 | 0,25 | 0,25 | 0,25 |
| 1 | 0,569 | 0,25 | 0,144 | 0,0375 |
| 3 | 0,477 | 0,302 | 0,183 | 0,0375 |
| 20 | 0,429 | 0,313 | 0,220 | 0,0375 |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Wiederholen, bis sich die Zahlen beruhigen
Die Tabelle zeigt: Die Ränge schwanken zuerst und beruhigen sich dann. Nach etwa 20 Runden ändern sie sich nur noch in der dritten Stelle. Man sagt, die Rechnung konvergiert, und hört dort auf.
Die Summe aller Ränge bleibt dabei immer 1. Eine Seite ohne Links nach außen würde Rang verlieren. Echte Verfahren verteilen ihn gleichmäßig; unsere Daten haben keine solche Seite.
Die Summe und die beste Seite prüfen
rang = {"start": 0.4292, "mensa": 0.3134, "bib": 0.2199, "sekretariat": 0.0375}
summe = 0
for seite in rang:
summe = summe + rang[seite]
print(round(summe, 4))
beste = "start"
for seite in rang:
if rang[seite] > rang[beste]:
beste = seite
print("Höchster Rang:", beste)
# Wie ändert sich die Summe, wenn Sie einen Rang um 0.1 erhöhen?
Ein häufiger Fehler
Warnung
Viele denken, die Seite mit den meisten Links gewinne. Zählt nur die Zahl, kann man Rang kaufen. Hier zählt auch, wer verlinkt. Eine Seite mit einem Link von einer starken Seite kann vor einer mit drei schwachen liegen.
Die erste Runde für „bib“ im Terminal
docker exec jupyter python3 -c "print(round(0.15/4 + 0.85*0.25/2, 5))"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.