Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine:...

43
Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember 2010

Transcript of Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine:...

Page 1: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Einführung in die Informationsverarbeitung Teil Thaller

Stunde V: Zusammengefügte Bausteine: Google

Manfred Thaller, Universität zu Köln

Köln 10. Dezember 2010

Page 2: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.
Page 3: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Google - ein „System“

URL Server

URL Auflösung

Sortieren

PageRank Suchen

Crawler Speicher

Indizierer

„Barrels“

Anker

Doc Index

Repository

LexikonLinks

Page 4: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Sergey Brin and Lawrence Page: The Anatomy of a Large-Scale Hypertextual Web Search Engine. Proceedings of the seventh World Wide Web Conference (WWW7), Brisbane, also in a special issue of the Journal Computer Networks and ISDN Systems, Volume 30, issues 1-7.

http://infolab.stanford.edu/~backrub/google.html

Vgl.: http://www.google.com/technology/pigeonrank.html

„Ur Google“

4

Page 5: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Entwickler: Sergey Brin, Lawrence Page.

Name: "Google" Verballhornung von "Googol" ( = 10 100).

System verteilt auf viele kooperierende Rechner: Google operates what is probably the world's largest Linux cluster that puts many supercomputing centers to shame.

Formalia

5

Page 6: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

URL Server

CrawlerURL Server

Doc Index

Startet mit Anfangs URL.

Liest weitere URLs aus einem Dokumenten-Index.

Schickt URLs an Crawler um Seiten zu holen.

Wichtig: Art der Suche im WWW (Tiefen v. Breitensuche). 6

Page 7: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Crawler

Crawler

Holen Web-Seiten.

Speichern individuelle Seiten in Speicher-Subsystem.

Mehrere Crawler!

"Robots Exclusion Protocol" - "Wohlverhalten"

Speicher

7

Page 8: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Indizierer I

Liest Seiten aus dem Repository und dekomprimiert sie.

"Parsed" jedes Dokument und verwandelt es in "Treffer", bestehend•aus der Wortform.•der Position innerhalb des Dokuments.•einer relativen Fontgröße.•Anzeige der Großschreibung.

Treffer sind "fancy" (in URL, Überschrift, Anker Text oder Meta-Tag) oder "plain" (alle anderen Fälle).

RepositoryIndizierer

8

Page 9: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Indizierer II

Verteilt Treffer in "barrels", wobei ein sortierter Index entsteht.

Extrahiert Links und speichert sie {Start URL, Ziel URL, Text} in Anker Datei.

Erzeugt Lexikon Datei.

Indizierer

„Barrels“

Anker

Lexikon

9

Page 10: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Beispiel: Sequentielles Suchen

Suchzeit jedes Namens entspricht Rang in der Liste.

Durchschnittliche Suchzeit: n / 2.

Laufzeit steigt mit der zu durchsuchenden Anzahl

Rückverweis: Algorithmen: Laufzeit

1 Clio

2 Melpomene

3 Terpsichore

4 Thalia

5 Euterpe

6 Erato

7 Urania

8 Polyhymnia

9 Kalliope

Page 11: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Beispiel: Binäres Suchen

Laufzeit: ?

Algorithmen: Laufzeit

1 Clio

2 Erato

3 Euterpe

4 Kalliope

5 Melpomene

6 Polyhymnia

7 Terpsichore

8 Thalia

9 Urania

Page 12: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Beispiel: Binäres Suchen – „Thalia“

„Melpomene“ gleich – größer – kleiner „Thalia“?

„Terpsichore“ gleich – größer – kleiner „Thalia“?

„Thalia“ gleich – größer – kleiner „Thalia“?

Algorithmen: Laufzeit

1 Clio

2 Erato

3 Euterpe

4 Kalliope

5 Melpomene

6 Polyhymnia

7 Terpsichore

8 Thalia

9 Urania

Page 13: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Beispiel: Binäres Suchen

Laufzeit steigt mit Logarithmus der zu durchsuchenden Anzahl.

Algorithmen: Laufzeit

1 Clio

2 Erato

3 Euterpe

4 Kalliope

5 Melpomene

6 Polyhymnia

7 Terpsichore

8 Thalia

9 Urania

Page 14: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

1. linear.

2. logarithmisch.

3. exponentiell.

Algorithmen: Laufzeit

N=1 N=10 N=100 N=1000

1 10 100 1000

1 3 7 10

1 103 1030 10300

Page 15: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Relevanz?

Verteilt Treffer in "barrels", wobei ein sortierter Index entsteht.

Extrahiert Links und speichert sie {Start URL, Ziel URL, Text} in Anker Datei.

Erzeugt Lexikon Datei.

Indizierer

„Barrels“

Anker

Lexikon

15

Page 16: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

WordIds = Woridentifikationsnummern

Entstehen, indem die Wortformen sortiert und durchnummeriert werden.

Relevanz: ?

Page 17: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Erinnerung

URL Server

URL Auflösung

Sortieren

PageRank Suchen

Crawler Speicher

Indizierer

„Barrels“

Anker

Doc Index

Repository

LexikonLinks

Page 18: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

URL Auflösung I

„Barrels“

Anker

URL Auflösung

LinksDoc

Index

18

Page 19: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

URL Auflösung II

Liest Anker Datei.

Verwandelt relative URLs in absolute.

Verwandelt absolute URLs in Dokumenten IDs.

Fügt Anker Text in einen vorwärts gerichteten Index ein, zusammen mit den Dokumenten IDs auf die der Anker zeigt.

Erzeugt eine Link Datenbank, die Paare von Dokumenten IDs enthält.(Wird für die Errechnung der PageRanks verwendet!)

19

Page 20: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Sortierung

„Barrels“

Sortieren

Verwandelt einen Index der Dokumenten Ids in einen "invertierten Index", sortiert nach Wort Ids.

"Short barrel" - invertierter Index von Treffern in Titel- und Ankertags.

"Full barel" - invertierter Index der Bodytags.

Enthält Offsets der Dokumentenposition für jede Wort Id. (Nachbarschaftsberechnung / Positionsanzeige.)

20

Page 21: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Page Rank I

Kann beschrieben werden als Modell des Verhaltens von Benutzern.Geht von einem "Zufallssurfer" aus, der von einer bestimmten Seite ausgeht und auf Links clickt.Er / Sie geht nie zurück und wird schließlich weitere Zufallsseite auswählen.Der "PageRank" ist die Wahrscheinlichkeit (p), dass der Surfer eine bestimmte Seite besucht. Die Wahrscheinlichkeit, dass BenutzerIn auf einer Zufallsseite landet ist 1-p.Links

PageRank21

Page 22: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Page Rank II

Wir nehmen an:

•Auf Seite A zeigen die Seiten T1 ... Tn (zitieren sie also).•C(A) ist die Anzahl der Links, die von Seite A ausgehen.•d ist ein empirischer / arbiträrer Dämpfungsfaktor zwischen 0 und 1 (in Google 0.85?).

Dann gilt:

PR(A) = (1-d) + d ( PR(T1) / C (T1) + ... + PR(Tn)/C(Tn) )

PageRanks stellen eine Wahrscheinlichkeitsverteilung dar; die Summe der PageRanks aller Seiten im Web ist also 1.0.

22

Page 23: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Page Rank III

Hoher PageRank kann anzeigen:

Dass sehr viele Seiten auf eine Seite zeigen ...

... oder dass eine relativ kleine Anzahl von Seiten mit hohem PageRank auf diese Seite zeigen.

23

Page 24: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Erinnerung

URL Server

URL Auflösung

Sortieren

PageRank Suchen

Crawler Speicher

Indizierer

„Barrels“

Anker

Doc Index

Repository

LexikonLinks

Page 25: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Repository

Voller (HTML) Text jeder Webseite.

Seiten werden komprimiert gespeichert (ZLIB).

Format:•Dokumenten Id.•Dokumentenlänge.•URL des Dokuments.•Inhalt des Dokuments.

25

Page 26: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Anker

Beschreibung der Verweise in den Seiten

{Start URL, Ziel URL, Text}

Laut Google oft genauere Beschreibung der Seiten, als die Seiten selbst.

Können auch nicht-Texte berücksichtigen.

Problem: Tote Links ...

26

Page 27: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Links

Datenbank aller Paare von Dokumenten Ids.

Basis aller PageRank Berechnungen.

27

Page 28: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Doc Index

Datenbank aller verarbeiteten Dokumente (Web Seiten)

Organisiert als ISAM Datei. (Indexed sequential access mode.) Geordnet nach DokumentenId.

Jeder Eintrag enthält:•Status des Dokuments.•Prüfsumme des Dokuments.•Statistiken zum Dokument.

Angabe ob Seite von Crawlern schon durchsucht wurde.Sonst Verweis auf Liste abzuarbeitender URLs.

28

Page 29: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Lexikon

29

Page 30: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Diagrammatische Darstellung:

„Zeiger“: Ein Speicherinhalt eines Rechners verweist auf einen anderen.

Zur Erinnerung: „Zeiger“

A B

Page 31: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Speicher als „karierte Zeile“

Datenstruktur im Speicher

0 1 2 3 4 5 6 7 8 9 10 11

Page 32: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Zahl „14123“ in Bytes 0 bis 1

Zahl „22445“ in Bytes 10 bis 11

14123 22445

Datenstruktur im Speicher

0 1 2 3 4 5 6 7 8 9 10 11

Page 33: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Zeichen „a“ in Byte 0

Zeichen „q“ in Byte 11

a q

Datenstruktur im Speicher

0 1 2 3 4 5 6 7 8 9 10 11

Page 34: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Zeiger in Bytes 0 bis 1 verweist auf Speicherblock, enthaltend „xy“, beginnend in Byte 10

10 x y

Datenstruktur im Speicher

0 1 2 3 4 5 6 7 8 9 10 11

Page 35: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Zeiger in Bytes 0 bis 1 verweist auf Speicherblock, enthaltend „xy“, beginnend in Byte 10.

Zeiger graphisch

x y

0 1 2 3 4 5 6 7 8 9 10 11

Page 36: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Zeiger verweist von einem Datenblock auf einen anderen.

*

Zeiger graphisch

Page 37: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

ergo: Lexikon

37

Page 38: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Barrels I

Datenbank des Inhalts aller verarbeiteten Dokumente (Web Seiten)

Beginnt mit einem Index von Dokumenten Ids, wird danach zu einem Index der Wort IDs sortiert.

Die Suchmaschine sucht zuerst in den "short barrels" nach Treffern (Titel und Anker), erst danach in den "full barrels".

38

Page 39: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Barrels II

39

Page 40: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Google - ein „System“

URL Server

URL Auflösung

Sortieren

PageRank Suchen

Crawler Speicher

Indizierer

„Barrels“

Anker

Doc Index

Repository

LexikonLinks

Page 41: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Suche I

Besonderheiten der Googlesuche:

Google analysiert nicht nur die Wortformen, sondern auch ihren (auch graphischen) Kontext.

Jede Trefferliste enthält Informationen über die Position, den Schrifttyp und die Großschreibung. Zudem wird zwischen "fancy" und "plain" unterschieden - und der PageRank wird berücksichtigt.

Ausgewogenheit zwischen diesen Faktoren.

41

Page 42: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Suche II – Abfragebearbeitung

1. Abfrage "parsen".2. Worte in WortIds verwandeln.3. "Short barrel" auf Anfang der Dokumentenliste für jedes

Wort der Abfrage positionieren.4. Dokumentenliste durchsuchen, bis es Dokument gibt, dass

alle Suchterme enthält.5. Rang dieses Dokuments berechnen, relativ zu den anderen,

die die Bedingungen erfüllen.6. Wenn wir mit der Bearbeitung der "short barrels" fertig sind,

wiederhole Schritt 3 ff. sinngemäß für die "full barrels".7. Wenn wir noch nicht am Ende der Dokumentenliste sind,

gehe zu Schritt 4.8. Gefundene Dokumente nach Rang sortieren und n beste

mitteilen.42

Page 43: Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Zusammengefügte Bausteine: Google Manfred Thaller, Universität zu Köln Köln 10. Dezember.

Suche III – Ranking, Einzelwort

1. Trefferliste erstellen.2. Jedem Treffer Typ {Überschrift, Anker, URL, Großer Font,

Kleiner Font ...}, mit spezifischem Typwert, zuweisen.3. Vector der Typen-Gewichte in der Reihenfolge der Typen

erzeugen.4. Typen zählen und Häufigkeiten in Häufigkeitsgewichtungen

verwandeln.5. Häufigkeitsgewichtung normalisieren, am Anfang linear,

dann abnehmend.6. Gewichtungsrang entspricht dem Skalarprodukt aus dem

Vektor der Typengewichte mit dem Vektor der Häufigkeitsgewichte.

7. Kombination aus Gewichtungsrang und PageRank ergibt endgültigen Rang des Dokuments.

43