Rückblick § Vektorraum-Modell bildet Dokumente und Anfrage in gemeinsamen hochdimensionalen Vektorraum ab § Vektorkomponenten werden mittels tf.idf-Gewichtung unter Berücksichtigung von Häufigkeiten bestimmt § Kosinusähnlichkeit vergleicht Dokumentvektoren und Anfragevektor, um eine Rangfolge zu bestimmen § Alternative Gütemaße (z.B. MAP, nDCG) adressieren verschiedene Nachteile von Präzision und Ausbeute Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 71 5.6 Implementierung § Prototypische Implementierung eines IR-Systems auf Grundlage eines RDBMS möglich § Spezialisierte Implementierung sehr sinnvoll für große dynamische Dokumentensammlungen oder bei hoher Anfragelast § Dokumentensammlung wird vorab indexiert, um so die spätere Anfragebearbeitung zu beschleunigen § Zusätzlich kommen verschiedene Caches (z.B. für Teile des Index oder Anfrageergebnisse) zum Einsatz Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 72 Invertierter Index (inverted index) Wörterbuch clooney george d1 d4 d6 d9 d11 d34 d66 d89 d4 d5 d7 d9 d13 d14 d34 d99 Indexlisten § Invertierter Index (inverted index oder inverted file) als die am häufigsten verwendete Indexstruktur in IR-Systemen § Wörterbuch (dictionary) beinhaltet alle bekannten Terme § Indexlisten (posting lists) beinhalten jeweils Informationen zu den Vorkommen eines bestimmten Terms Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 73 Invertierter Index (inverted index) Wörterbuch clooney george d1 d4 d6 d9 d11 d34 d66 d89 d4 d5 d7 d9 d13 d14 d34 d99 Indexlisten § Wörterbuch typischerweise implementiert als B+-Baum oder Hashtabelle und (teilweise) im Primärspeicher gehalten Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 74 Invertierter Index (inverted index) Wörterbuch clooney george d1 d4 d6 d9 d11 d34 d66 d89 d4 d5 d7 d9 d13 d14 d34 d99 Indexlisten § Indexlisten (posting lists) typischerweise sequenziell (d.h. an einem Stück) oder in wenigen verketteten Blöcken auf Sekundärspeicher gespeichert Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 75 Indexlisteneinträge (postings) § Struktur der Indexlisteneinträge (postings) abhängig von zu unterstützenden Anfragen bzw. Retrievalmodell § Dokumenten-ID (z.B. für Boolesches Retrieval) d7 § Dokumenten-ID und Wert (z.B. Termhäufigkeit) d7 | 5 § Dokumenten-ID, Wert und Positionsangaben d7 | 5 | [1, 2, 6, 8, 12] (z.B. wenn nach Phrasen gesucht werden soll) Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 76 Sortierung der Indexlisten § Sortierung der Indexlisten beeinflusst Komprimierbarkeit sowie die Möglichkeiten der Anfragebearbeitung § Sortierung nach Dokumenten-ID d2 | 5 d6 | 2 d8 | 6 bietet mehr Möglichkeiten zur Komprimierung und erlaubt effiziente konjunktive Anfrageauswertung § Sortierung nach Wert (z.B. Termhäufigkeit) d8 | 6 d2 | 5 d6 | 2 erlaubt effiziente Top-k Anfrageauswertung Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 77 Kompression § Leistungsfähigkeit von CPUs hat deutlich schneller zugenommen als die von Sekundärspeichern (Kapitel 3) § Geeignet komprimierte Indexlisten lassen sich schneller als nicht komprimierte vom Sekundärspeicher lesen § Kompressionsverfahren muss leichtgewichtig sein und sequentielles Lesen der Indexlisteneinträge erlauben Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 78 Variable-Byte Encoding § Variable-Byte Encoding (auch: 7-Bit Encoding) verwendet zur Darstellung ganzer Zahlen eine variable Anzahl Bytes § Kleinere Zahlen werden mit weniger Bytes dargestellt § Idee: Verwende in jedem Byte § das höchstwertige als Stopp-Bit (stop bit) gibt an, ob dies das letzte Bit der aktuellen Zahl ist § die übrigen sieben Bits als „Nutzlast“ (payload) payload stopp bit 7 6 Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 5 4 3 2 1 0 79 Variable-Byte Encoding § Beispiel: Zahl 4711 hat folgende 32-bit Binärdarstellung 00000000 00000000 00010010 01100111 mit Variable-Byte Encoding dargestellt 00100100 11100111 benötigt man nur zwei anstatt von vier Bytes Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 80 Delta-Encoding § Variable-Byte Encoding stellt kleinere Zahlen mit weniger Bytes und somit weniger Speicherplatz dar § Beobachtung: Indexlisten beinhalten aufsteigend sortierte Folgen ganzer Zahlen, beispielsweise § Dokumenten-IDs bei entsprechend sortierten Indexlisten d2 | 5 d6 | 2 d8 | 6 § Positionsangaben bei Indexlisten mit Positionsinformation d7 | 5 | [1, 2, 6, 8, 12] Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 81 Delta-Encoding § Idee: Speichere aufsteigend sortierte Liste ganzer Zahlen als erstes Element gefolgt von Differenz (delta) zum jeweiligen Vorgänger § Beispiel: Die aufsteigend sortierte Liste È7, 64, 128, 130, 167Í wird gespeichert als È7, 57, 64, 2, 37Í wodurch bei Verwendung von Variable-Byte-Encoding nur noch 5 Bytes anstatt 8 Bytes benötigt werden Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 82 Beispiel Kompression § Komprimieren einer Indexliste mit Kombination aus Gap- und Variable-Byte Encoding d2 | 5 d6 | 2 d8 | 6 § Gap-Encoding führt zu folgender Liste ganzer Zahlen È2, 5, 4, 2, 2, 6Í mit abwechselnden Dokumenten-IDs und Termhäufigkeiten § Variable-Byte Encoding ergibt 10000010 10000101 10000100 10000010 10000010 10000110 Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 83 Anfragebearbeitung § Stellt ein Benutzer eine Anfrage, so muss diese mit Hilfe des invertierten Index in möglichst kurzer Zeit und mit möglichst wenig Ressourcen bearbeitet werden § Zwei Arten von Anfragebearbeitung: § konjunktiv, d.h. alle Anfrageterme müssen in einem Dokument im Ergebnis vorkommen (AND) § disjunktiv, d.h. mindestens einer der Anfrageterme muss in einem Dokument im Ergebnis vorkommen (OR) § Konjunktive Anfragebearbeitung insbesondere bei großen Dokumentensammlungen (z.B. WWW) verwendet Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 84 Anfragebearbeitung § Abstraktion vom konkreten Retrieval-Modell (z.B. VSM); Wert (score) eines Dokuments d zur Anfrage q ist ÿ score(q, d) = score(v, d) vœq z.B. mit N score(v, d) = tf (v, d) · log df (v) § Anfragebearbeitung liest nur Indexlisten zu Termen aus der Anfrage und aggregiert den Wert der Dokumente Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 85 Term-at-a-Time Anfragebearbeitung § Term-at-a-Time Anfragebearbeitung liest die Indexlisten zu den Termen aus der Anfrage eine nach der anderen a d1, 0.2 d3, 0.1 d5, 0.5 b d5, 0.3 d7, 0.2 § Für jedes Dokument, das in einer Indexliste gesehen wird, muss im Hauptspeicher sein bisher aggregierter Wert (accumulator) gehalten werden Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 86 Term-at-a-Time Anfragebearbeitung § Optimierungen bei konjunktiver Anfragebearbeitung § liest Indexlisten zu Anfragetermen v in aufsteigender Reihenfolge ihrer Länge, d.h. df(v) § wurde ein Dokument nicht in der ersten gelesenen Indexliste gesehen, kann es fortan ignoriert werden § Top-K Anfragebearbeitung, d.h. Bestimmen der K Dokumente mit den höchsten Werten mittels Sortieren nachdem letzte Indexliste vollständig gelesen wurde Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 87 Document-at-a-Time Anfragebearbeitung § Document-at-a-Time Anfragebearbeitung liest die Indexlisten zu den Termen aus der Anfrage parallel a d1, 0.2 d3, 0.1 d5, 0.5 b d5, 0.3 d7, 0.2 (vgl. MergeJoin in Kapitel 3) § Indexlisten hierzu nach Dokumenten-IDs sortiert § Dokument wird zur gleichen Zeit in allen Indexlisten gesehen und es kann entschieden werden, ob es zum Ergebnis gehört (konjunktiv vs. disjunktiv) Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 88 Document-at-a-Time Anfragebearbeitung § Optimierung bei konjunktiver Anfragebearbeitung § Indexlisten können durch sogenannte Skip-Pointer, als eingebettete Indexstruktur, erweitert werden; diese erlauben ein Überspringen ganzer Blöcke von nicht benötigten Indexeinträgen § Top-K Anfragebearbeitung, d.h. Bestimmen der K Dokumente mit den höchsten Werten, indem die bisher gesehenen K besten Dokumente in einer Prioritätswarteschlange (MinHeap) vermerkt werden Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 89 5.7 Websuche § Suche im World Wide Web ist heute eine der populärsten Anwendungen von Methoden des Information Retrievals § Suchmaschinen (z.B. Altavista, Excite) in den frühen 1990ern setzten auf u.a. das Vektorraum-Modell sowie einfache Statistiken (z.B. Zahl eingehender Links) § Googles Erfolg ab 1998 beruhte mutmaßlich auf der besseren Ausnutzung des Webgraphen mittels des Verfahrens PageRank Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 90 Websuche § Seit Mitte der 2000er Jahre verwenden Suchmaschinen mehr und mehr Signale neben textueller Relevanz und linkbasierter Wichtigkeit, beispielsweise solche abgeleitet aus Beobachtungen des Benutzerverhaltens § Zur Kombination dieser Signale werden heute Verfahren des maschinellen Lernens (learning to rank) eingesetzt Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 91 Webgraph § World Wide Web als gerichteter Graph G(V, E) § Webseiten (URLs) sind die Knoten (V) dieses Graphs § Hyperlinks sind die Kanten (E) dieses Graph Adjazenzmatrix: 2 0 60 A=6 41 0 Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 1 0 0 0 0 0 0 1 3 1 17 7 15 0 92 PageRank § PageRank basiert auf Zufallsbewegung (random walk) eines Websurfers durch den Graph G(V,E) § mit Wahrscheinlichkeit ε springt der Websurfer zu einem zufällig gewählten Knoten des Graph § mit Wahrscheinlichkeit (1- ε) folgt der Websurfer einer zufällig gewählten ausgehenden Kante des aktuell besuchten Knotens p(v) = (1 ✏) · X (u,v)2E p(u) ✏ + out(u) |V | § PageRank p(v) eines Knotens v misst seine Wichtigkeit und spiegelt die Zeit wieder, die im Knoten verbracht wird Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 93 PageRank § PageRank berechenbar mittels iterativen Verfahrens auf einer Matrix P von Übergangswahrscheinlichkeiten P(u,v) = ; ‘/|V | + (1 ≠ ‘)/out(u) : (u, v) œ E ‘/|V | : sonst ‘ = 0.2 2 0.05 60.05 P =6 40.45 0.05 Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 0.45 0.05 0.05 0.05 0.05 0.05 0.05 0.85 3 0.45 0.857 7 0.455 0.05 94 PageRank § PageRank berechenbar mittels iterativen Verfahrens auf einer Matrix P von Übergangswahrscheinlichkeiten § beginne mit initialem Vektor Ë È fi (0) = |V1 | . . . |V1 | § berechne Vektor nach i Schritten als fi (i) = fi (i≠1) P seine Einträge entsprechen der Wahrscheinlichkeit, dass der Websurfer nach i Schritten in einem Knoten ist (i) (i≠1) | < ” z.B. mit ” = 10≠5 § höre auf, wenn |fi ≠ fi Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 95 PageRank § Iteratives Verfahren (power iteration) angewandt auf unseren Beispielgraphen ⇥ ⇤ (0) ⇡ = 0.25 0.25 0.25 0.25 ⇥ ⇤ (1) ⇡ = 0.15 0.15 0.25 0.45 ⇥ ⇤ (2) ⇡ = 0.15 0.11 0.41 0.33 ⇡ (10) ⇥ = 0.18 .. . 0.12 0.34 0.36 Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval ⇤ 2 0.05 60.05 P =6 40.45 0.05 0.45 0.05 0.05 0.05 0.05 0.05 0.05 0.85 3 0.45 0.857 7 0.455 0.05 96 Verteilter invertierter Index § World Wide Web ist zu groß, um in den Primärspeicher oder Sekundärspeicher eines einzelnen Rechners zu passen; zudem müssen viele Anfragen zeitgleich mit kurzen Antwortzeiten bearbeitet werden § Suchmaschinen partitionieren den invertierten Index und halten ihn so verteilt im Primärspeicher vieler vernetzter Rechner; zudem werden Partitionen redundant gehalten, um eine Lastverteilung bei der Anfragebearbeitung zu erreichen Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 97 Verteilter invertierter Index § Invertierter Index kann auf zwei Arten partitioniert werden § nach Dokumenten-IDs, so dass jeder Rechner einen invertierten Index für einen Teil der Dokumente hält § nach Termen (Wörtern), so dass jeder Rechner einen invertierten Index für einen Teil der Terme hält P2 P1 c++ object class oriented loop java pointer overflow code sort python array stack d1 2 1 1 1 0 0 0 0 0 0 0 0 0 d2 0 0 1 1 0 0 0 0 2 2 2 0 0 d3 0 0 0 0 0 2 0 1 0 1 0 0 2 d4 1 0 0 0 0 0 1 0 2 0 0 1 0 Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval P3 d5 1 1 1 1 0 1 0 0 0 0 0 0 0 d6 0 0 0 0 0 0 0 0 0 1 2 1 1 d7 0 1 1 0 0 2 0 0 0 0 0 1 0 d8 2 0 0 0 0 2 0 0 0 0 1 0 0 d9 0 0 0 0 2 0 0 0 1 2 0 0 0 d10 0 0 2 0 0 0 0 0 1 0 0 2 2 98 Verteilter invertierter Index § Invertierter Index kann auf zwei Arten partitioniert werden § nach Dokumenten-IDs, so dass jeder Rechner einen invertierten Index für einen Teil der Dokumente hält § nach Termen (Wörtern), so dass jeder Rechner einen invertierten Index für einen Teil der Terme hält c++ object class oriented loop java pointer overflow code sort python array stack d1 2 1 1 1 0 0 0 0 0 0 0 0 0 d2 0 0 1 1 0 0 0 0 2 2 2 0 0 d3 0 0 0 0 0 2 0 1 0 1 0 0 2 d4 1 0 0 0 0 0 1 0 2 0 0 1 0 Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval d5 1 1 1 1 0 1 0 0 0 0 0 0 0 d6 0 0 0 0 0 0 0 0 0 1 2 1 1 d7 0 1 1 0 0 2 0 0 0 0 0 1 0 d8 2 0 0 0 0 2 0 0 0 0 1 0 0 d9 0 0 0 0 2 0 0 0 1 2 0 0 0 d10 0 0 2 0 0 0 0 0 1 0 0 2 2 P1 P2 P3 99 Verteilter invertierter Index § Anfragebearbeitung auf verteiltem invertierten Index § bei Partitionierung nach Dokumenten-ID muss die Anfrage auf allen Partitionen bearbeitet werden; fällt eine Partition aus, kann immerhin noch ein Teilergebnis bestimmt werden § bei Partitionierung nach Termen muss die Anfrage nur auf den Partitionen bearbeitet werden, die einen der Anfrageterme beinhalten; fällt eine Partition aus, können Anfragen mit den enthaltenen Termen nicht mehr bearbeitet werden Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 100 Learning-to-Rank § Suchmaschinen verwenden eine Vielzahl von Signalen, um Dokumente zu einer Anfrage in eine Rangfolge zu bringen, so dass relevante Dokumente möglichst weit oben erscheinen § Beispiele von Signalen, die Anwendung finden: § textuelle Relevanz (z.B. Kosinusähnlichkeit mit Anfrage) § linkbasierte Wichtigkeit (z.B. PageRank) § textuelle Qualität (z.B. Anteil der Schreibfehler) § Spamwahrscheinlichkeit § Lesbarkeit Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 101 Learning-to-Rank § Sinnvolle Kombination der Signale kann mittels Verfahren des maschinellen Lernens bestimmt werden § Klassifikationsverfahren (z.B. logistische Regression) lernen anhand von Trainingsdaten wie sich Datenpunkte (hier: Dokumente) in zwei oder mehrere Klassen anhand von Merkmalen (hier: Signale) einteilen lassen Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 102 Learning-to-Rank # 0.8 0.7 0.1 # 0.1 0.1 0.7 .. . # 0.0 0.1 0.8 # 0.9 0.6 0.2 $ 0.1 R $ 0.5 N $ 0.9 N $ 0.1 R Trainingsdaten mit Klassen Relevant Nicht-Relevant Klassifikator # 0.7 0.7 0.1 0.1 Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval ? $ Anfragezeit: Klasse R/N eines bisher unbekannten Dokuments wird bestimmt 103 Learning-to-Rank § Trainingsdaten für den Klassifikator bestimmt z.B. § mittels Relevanzbewertungen durch Juroren § durch Beobachtung des Benutzerverhaltens (z.B. klickt der Benutzer für Anfrage auf Dokument) § Zur Anfragezeit werden die Top-K (z.B. 1000) Dokumente gemäß eines wichtigen Signals (z.B. textuelle Relevanz) bestimmt und dann unter Berücksichtigung der anderen Signale mit Hilfe des Klassifikators in eine neue Rangfolge gebracht Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 104 Zusammenfassung § Invertierter Index als vorherrschende Indexstruktur im Information Retrieval; geschickte Kompression ist essentiell für effiziente Anfragebearbeitung § Term-at-a-Time und Document-at-a-Time als zwei Arten der Anfragebearbeitung auf invertiertem Index § Websuche unterscheidet sich durch Ausnutzung von Hyperlinks (z.B. mittels PageRank), Verteilung des invertierten Index und den Einsatz von Verfahren des maschinellen Lernens Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 105 Literatur [1] C. D. Manning, P. Raghavan, H. Schütze: Information Retrieval, Cambridge University Press, 2008 (Kapitel 5 & 19-21) [2] W. B. Croft, D. Metzler, T. Strohman: Search Engines – Intelligent IR in Practice, Pearson, 2010 (Kapitel 4 & 5) Datenbanken & Informationssysteme / Kapitel 5: Information Retrieval 106