Intelligente Suche in sehr großen Datenmengen Vortrag an der Universität Mainz 5. März 2008 Holger Bast Max-Planck-Institut für Informatik Saarbrücken Früher: Klassische theoretische Informatik Komponenten – feststehende und voll spezifizierte Probleme zum Beispiel: gegeben ein Graph, berechne ein maximales Matching – vollständige Theoreme zum Beispiel: für einen zufälligen Graphen, maximales Matching in erwarteter Zeit O (n log n) – eventuell Experimente zum Beispiel: implementiere den Algorithmus und messe die Laufzeit auf vielen zufälligen Graphen Theorie als Selbstzweck – schult präzises Denken / Formulieren / Methodik – selten direkt relevant Hashing Sorting Scheduling Matching … Jetzt: Angewandt auf der Basis guter Theorie Komponenten – Ausgangspunkt ist eine reale Anwendung entscheidend diese in ihrer Ganzheit zu verstehen – Abstraktion kritischer Teile (theoretischem Denken zugänglich machen) oft der schwierigste und kreativste Teil – Algorithmen / Datenstrukturen entwerfen und mathem. analysieren wie in der klassischen Algorithmik, aber … – Experimente + Algorithm Engineering zur Ergänzung und Bestätigung der Theorie – Bau eines (Prototyp-) Systems ultimativer Realitätstest, wichtige Inspirationsquelle Theorie als Mittel zum Zweck – direkt anwendbare + verlässliche Lösungen – Anwendung geht vor mathematische Tiefe Überblick Meine Arbeitsweise – Früher: Klassische theoretische Informatik – Jetzt: Angewandt auf der Basis guter Theorie Ausgewählte Ergebnisse – Die CompleteSearch Suchmaschine ≈ 20 min – Spektrales Lernen ≈ 10 min – Kürzeste Wege in Straßennetzwerken ≈ 10 min Zusammenfassung – nach jedem Ergebnis Die CompleteSearch Suchmaschine Hintergrund – Suchmaschinen sind extrem schnell – auch für sehr großen Datenmengen – aber sie können nur genau eine Sache: Stichwortsuche Ziel – komplexere Suchfunktionen – aber genauso schnell Lösung – kontext-sensitive Präfixsuche – einerseits: sehr mächtig – andererseits: effizient berechenbar Mögliche Suchanfragen 1/2 Volltextsuche mit Autovervollständigung – traffic inter* Strukturierte Daten als künstliche Worte – venue:esa – author:elmar_schömer – year:2007 Elmar Schömer Michael Hemmer Laurent Dupont … ESA ESA ESA … 2007 2007 2007 … Datenbankanfragen: select, join, … – venue:esa author:* – venue:esa author:* und venue:sigir author:* und schneide die Menge der Vervollständigungen (an Stelle der Menge der Dokumente) paper #23876 paper #23876 paper #23876 … Mögliche Suchanfragen 2/2 Facettensuche – automatische Statistik über vordefinierte Kategorien Verwandte Worte – Suche metal, finde aluminium Fehlertolerante Suche – Suche probabilistic, finde probalistic Semantische Suche – Suche politician, finde Angela Merkel und mehr … alles mit ein- und demselben Mechanismus Formulierung des Kernproblems Daten gegeben als – Dokumente mit Worten – Dokumente haben Ids (D1, D2, …) – Worte haben Ids (A, B, C, …) Suchanfrage D74 D3 D17 D43 J W QD92 D1 Q D BW DQ AOE A U K AD53 D78P U D D27 WH EM J D E K L S D9 KLD D4 F D32 A D88 D98 D2 E E R K L KD13 B F AA B I L S P A EE B A GQ AOE DH S WH Treffer für “traffic” – sortierte Liste von Dok. Ids D13 D17 D88 … – Intervall von Wort Ids CDEFG Worte die mit “inter” beginnen Formulierung des Kernproblems Daten gegeben als – Dokumente mit Worten – Dokumente haben Ids (D1, D2, …) – Worte haben Ids (A, B, C, …) Suchanfrage D74 D3 D17 D43 J W QD92 D1 Q D BW DQ AOE A U K AD53 D78P U D D27 WH EM J D E K L S D9 KLD D4 F D32 A D88 D98 D2 E E R K L KD13 B F AA B I L S P A EE B A GQ AOE DH S WH Treffer für “traffic” – sortierte Liste von Dok. Ids D13 D17 D88 … – Intervall von Wort Ids CDEFG Worte die mit “inter” beginnen Antwort – alle passenden Wort-in-Dok. Paare D13 E D88 E D88 G … … – mit Scores 0.5 0.2 0.7 … Kontext-sensitive Präfixsuche Lösung via Invertierter Index (INV) Zum Beispiel, traffic inter* gegeben die Dokumente: D13, D17, D88, … (Treffer für traffic) und der Wortbereich: CDEFG (Ids für inter*) Iteriere über alle Worte aus dem gegebenen Bereich C (interaction) D8, D23, D291, ... D (interesting) D24, D36, D165, ... E (interface) D13, D24, D88, ... F (interior) D56, D129, D251, ... G (internet) D3, D15, D88, ... typischerweise sehr viele Listen! Schneide jede Liste mit der gegebenen und vereinige alle Schnitte D13 E D88 E D88 G … … im worst case quadratische Komplexität Ziel: schneller ohne mehr Platz zu verbrauchen Grundlegende Idee Berechne invertierte Listen für Bereiche von Worten Liste für A-D 1 3 D A 3 C 5 A 5 B 6 A 7 C 8 8 9 11 11 11 12 13 15 A D A A B C A C A Beobachtungen – ein Präfix entspricht einem Bereich von Worten – idealerweise Liste für jeden Präfix vorberechnet – aber das kostet viel zu viel Platz – erhebliche Redundanz zwischen den Listen Lösung 2: AutoTree Baumartige Anordnung Theorem: 1 1 1 1 1 1 1 1 1 1 … – Verarbeitungszeit O(|D| + |output|) (ausgabesensitiv) – ohne mehr Platz zu verbrauchen als INV Aber 1 0 0 0 1 0 0 1 1 1 … 1 0 0 1 1 … – nicht IO-effizient (wegen Bitvektor Operationen) – suboptimale Kompression Lösung 2: AutoTree SPIRE’06 / JIR’07 Trick 1: Relative bit vectors – the i-th bit of the root node corresponds to the i-th doc – the i-th bit of any other node corresponds to the i-th set bit of its parent node aachen-zyskowski 1111111111111… corresponds to doc 5 maakeb-zyskowski 1001000111101… corresponds to doc 5 maakeb-stream 1001110… corresponds to doc 10 Lösung 2: AutoTree SPIRE’06 / JIR’07 Tricks 2: Push up the words – For each node, by each set bit, store the leftmost word of that doc that is not already stored by a parent node D = 5, 7, 10 W = max* D = 5, 10 (→ 2, 5) report: maximum 1 1 1 1 1 1 1 1 1 1 … 1 0 0 0 1 0 0 1 1 1 … D=5 report: Ø → STOP 1 0 0 1 1 … Lösung 2: AutoTree SPIRE’06 / JIR’07 Tricks 3: divide into blocks – and build a tree over each block as shown before Lösung 2: AutoTree SPIRE’06 / JIR’07 Tricks 3: divide into blocks – and build a tree over each block as shown before Solution 2: AutoTree SPIRE’06 / JIR’07 Tricks 3: divide into blocks – and build a tree over each block as shown before Theorem: – query processing time O(|D| + |output|) – uses no more space than an inverted index AutoTree Summary: + output-sensitive – not IO-efficient (heavy use of bit-rank operations) – compression not optimal Einschub Der invertierte Index ist, trotz quadratischer worst-case Komplexität, in der Praxis schwer zu schlagen – sehr einfacher Code Daten – Listen sehr gut komprimierbar – perfekte Zugriffslokalität schlechte Lokalität Anzahl der Operationen ist ein trügerisches Maß – 100 disk seeks benötigen ca. eine halbe Sekunde – in der Zeit können 200 MB Daten gelesen werden (falls komprimiert gespeichert) – Hauptspeicher: 100 nichtlokale Zugriffe 10 KB am Stück Lokalität + Kompression entscheidend bei sehr großen Datenmengen Lösung 3: Hybrider Index (HYB) Flache Aufteilung des Vokabulars in Blöcke Liste für A-D 1 3 D A 3 C 5 A 5 B 6 A 7 C 8 8 9 11 11 11 12 13 15 A D A A B C A C A Liste für E-J 2 E 2 F 3 G 3 J 4 H 4 I 7 I 7 E Liste für K-N 1 L 1 2 3 4 N M N N 5 K 6 6 6 8 9 L M N M K 8 F 8 9 G H 9 11 J I 9 9 10 10 L M K L Gute Lokalität, aber was ist mit Kompression? Lösung 3: Hybrider Index (HYB) Flache Aufteilung des Vokabulars in Blöcke 1 3 D A 3 C 5 A 5 B 6 A 7 C 8 8 9 11 11 11 12 13 15 A D A A B C A C A Dok. Ids Differenzen und Wort Ids Häufigkeitsränge +1 + 2 +0 +2 +0 +1 +1 +1 + 0 +1 +2 +0 +0 +1 +1 + 2 3rd 1st 2nd 1st 4th 1st 2nd 1st 3rd 1st 1st 4th 2nd 1st 2nd 1st Kodiere alle Zahlen universell: x log2 x Bits +0 0 1st (A) 0 +1 10 2nd (C) 10 +2 110 3rd (D) 111 4th (B) 110 Was schließlich gespeichert wird 10 110 0 110 0 10 10 10 0 10 110 0 0 10 10 110 111 0 10 0 110 0 10 0 111 0 0 110 10 0 10 0 Definition: Empirische Entropie Empirische Entropie – … formalisiert die optimale Anzahl Bits die zur Kodierung einer Sequenz benötigt werden – … für eine Multi-Teilmenge der Größe m aus einem Universum der Größe n m ∙ log (1 + n / m) + n ∙ log (1 + m / n) – … für eine Folge von n Elementen aus einem Universum der Größe k, mit ni Vorkommen des i-ten Elements n1 ∙ log (n / n1) + ∙∙∙ + nk ∙ log (n / nk) – usw … Platzverbrauch: INV gegen HYB Theorem: Die empirische Entropie des INV Index ist Σ ni ∙ (1/ln 2 + log2(n/ni)) Theorem: Die empirische Entropie des HYB Index ist Σ ni ∙ ((1+ε)/ln 2 + log2(n/ni)) ni = number of documents containing i-th word, n = number of documents, ε = 0.1 MEDBOOKS WIKIPEDIA TREC .GOV Orig.größe 452 MB 7.4 GB 426 GB VOLL-INV 13 MB 0.48 GB 4.6 GB HALB-INV 14 MB 0.51 GB 4.9 GB 44,015 Dok. 263,817 Worte mit Positionen 2,866,503 Dok. 6,700,119 Worte mit Positionen 25,204,013 Dok. 25,263,176 Worte ohne Positionen perfekte Übereinstimmung Theorieals und Praxis … und HYB etwa 10 malvon schneller INV Zusammenfassung: CompleteSearch Output – Publikationen in verschiedenen Communities SIGIR (IR), CIDR (DB), SPIRE (Theorie), GWEM (KI), … – zahlreiche Industriekontakte, Vortrag bei Google – zahlreiche Installationen, auch kommerzielle DBLP – DFG Projekt im SPP Algorithm Engineering – Dr. Meyer Struckmann Wissenschaftspreis 2007 (15.000 €) Entscheidend waren – Identifizierung und Formulierung des Präfixsuchproblems – Wahl der Analyseparameter: Lokalität, Komprimierung, etc. (und zum Beispiel hier nicht: Anzahl der Operationen) – Experimente, Software Engineering, Prototyp – generell: Wissen in vielen relevanten Gebieten (z.B. Ontologien) Ausblick: Suche Sehr viele theoretisch interessante + praktisch relevante Probleme im Rahmen von Suche – effiziente(re) Facettensuche, semantische Suche, etc. – fehlertolerante Suche – Indexkonstruktion – effiziente Erzeugung von „result snippets” –… Übertragung auf Nicht-Text Retrieval – 3D shape retrieval – Suche in Bildern und Videos –… Überblick Meine Arbeitsweise – Früher: Klassische theoretische Informatik – Jetzt: Angewandt auf der Basis guter Theorie Ausgewählte Ergebnisse – Die CompleteSearch Suchmaschine ≈ 20 min – Spektrales Lernen ≈ 10 min – Kürzeste Wege in Straßennetzwerken ≈ 10 min Zusammenfassung – nach jedem Ergebnis Spektrales Lernen Daten als Objekt-Feature Matrix gegeben – Bilder, Formen, Text, … – z.B. Objekte = Dokumente, Features = Worte internet web surfing beach 1 1 1 0 0 1 1 0 1 0 1 0 0 0 1 1 Problem: fehlende Einträge 0 0 0 1 Spektrales Lernen Daten als Objekt-Feature Matrix gegeben – Bilder, Formen, Text, … – z.B. Objekte = Dokumente, Features = Worte internet web surfing beach 1 1 1 0 0 1 1 0 1 0 1 0 0 0 1 1 Problem: fehlende Einträge 0 0 0 1 0.8 0.8 1.2 -0.1 0.6 0.6 0.9 0.0 0.6 0.6 0.9 0.0 0.1 0.1 0.8 1.1 -0.2 -0.2 0.3 0.9 Lösung: Rang-k Approximation (durch Eigenvektorzerlegung) die Approximation erhöht die Präzision Wann und warum funktioniert das? Vorgängerarbeiten: Wenn die Objekte durch Kombination von k Basisobjekten generiert und leicht perturbiert werden, dann funktioniert die Rang-k Approximation – Papadimitriou, Tamaki, Raghavan, Vempala PODS 1998 – Ding SIGIR 1999 – Thomas Hofmann Machine Learning 2000 – Azar, Fiat, Karlin, McSherry, Saia STOC 2001 – und viele andere mehr … Mathematisch interessant (Perturbationstheorie) aber … – in der Regel gibt es keine k natürlichen Basisobjekte – Verbesserung durch Approximation ist extrem intransparent Alternative Sicht Betrachte die Feature-Feature Korrelations-Matrix (Objekt-Objekt Korrelations-Matrix ginge genauso gut) internet 0.8 0.1 0.6 0.1 0.3 0.4 0.3 -0.1 web 0.1 1.1 0.9 0.1 0.4 0.4 0.3 -0.2 surfing 0.6 0.9 1.1 0.7 0.3 0.3 0.4 0.3 beach 0.1 0.1 0.7 2.0 -0.1 -0.2 0.3 0.8 paarweise Skalarprodukte der norm. Zeilen-Vektoren beste Rang-2 Approximation Alternative Sicht Betrachte die Feature-Feature Korrelations-Matrix (Objekt-Objekt Korrelations-Matrix ginge genauso gut) internet 0.8 0.1 0.6 0.1 0.9 -0.1 0.2 -0.1 web 0.1 1.1 0.9 0.1 -0.1 0.8 0.3 -0.2 surfing 0.6 0.9 1.1 0.7 0.2 0.3 0.4 0.3 beach 0.1 0.1 0.7 2.0 -0.1 -0.2 0.3 0.8 paarweise Skalarprodukte der norm. Zeilen-Vektoren beste Rang-3 Approximation die approximierten Korrelationen hängen stark vom Rang ab! Zentrale Beobachtung Korrelation Abhängigkeit der Korrelation eines festen Paares vom Rang k der Approximation logic / logics 0 node / vertex 0 200 400 600 Rang der Approximation logic / vertex 0 200 400 600 Rang der Approximation 0 200 400 600 Rang der Approximation kein einzelner Rang ist gut für alle Paare! Zentrale Beobachtung Korrelation Abhängigkeit der Korrelation eines festen Paares vom Rang k der Approximation logic / logics 0 node / vertex 0 200 400 600 Rang der Approximation logic / vertex 0 200 400 600 Rang der Approximation 0 200 400 600 Rang der Approximation kein einzelner Rang ist gut für alle Paare! aber die Form der Kurve scheint ein guter Indikator zu sein Kurven für verwandte Terme Wir nennen zwei Terme perfekt verwandt wenn sie mit exakt den gleichen Termen vorkommen Korrelation beweisbare Form im idealisierten Fall · · · · · 1 1 0 0 · · · · · 0 0 1 1 · · · · · 1 1 1 1 0 0 1 1 1 1 0 1 0 Term 1 0 0 1 1 1 0 1 0 1 Term 2 beweisbar kleine Änderung auf halbem Wege nach kleiner Perturbation zu einer realen Matrix 0 0 200 400 600 Rang der Approximation Die Stelle des Abfalls ist für jedes Term-Paar anders! 0 200 400 600 Rang der Approximation 0 200 400 600 Rang der Approximation Charakteristische Form: hoch und wieder runter Kurven für nicht-verwandte Terme Ko-Okkurrenz Graph: – Knoten = Terme – Kanten = zwei Terme kommen zusammen vor perfekt unverwandt = kein Pfad Korrelation beweisbare Form im idealisierten Fall beweisbar kleine Änderung nach kleiner Perturbation auf halbem Wege zu einer realen Matrix 0 0 200 400 600 Rang der Approximation 0 200 400 600 Rang der Approximation 0 200 400 600 Rang der Approximation Charakteristische Form: Oszillation um Null Ein einfacher Algorithmus Normalisiere die Term-Dokument Matrix, so dass der theoretische Abfallpunkt für alle Termpaare gleich ist 2. Für jedes Termpaar: falls die Kurve je negativ ist vor diesem Punkt, setze Korrelation auf 1, sonst auf 0 Korrelation 1. 0 setze auf 1 0 200 400 setze auf 1 600 Rang der Approximation 0 200 400 setze auf 0 600 Rang der Approximation 0 200 400 600 Rang der Approximation einfache 0-1 Klassifikation, keine fraktionalen Einträge Zusammenfassung: Spektrales Lernen Ergebnisse – Einsicht: Spektrale Lernverfahren funktionieren, indem sie Paare von verwandten Features (Terme) identifizieren – Integration mit CompleteSearch (inspirierte weitere Forschung) – dadurch erstmalig transparent – „magisches” Verfahren entzaubert durch Theorie + Empirik From: Prabhakar Raghavan <[email protected]> Date: [after my SIGIR’05 talk] Subject: Very clear talk Thank you – it’s too easy to make this stuff mystical and you did the opposite Ausblick: Maschinelles Lernen Spektralzerlegung in diesem Fall nicht praktikabel – hoher Berechnungsaufwand (Spektralzerlegung) – relativ geringer Nutzen (findet verwandte Paare) Effizientes Maschinelles Lernen – Entitätenerkennung auf sehr großen Datenmengen – Fehlerkorrektur auf sehr großen Datenmengen –… Überblick Meine Arbeitsweise – Früher: Klassische theoretische Informatik – Jetzt: Angewandt auf der Basis guter Theorie Ausgewählte Ergebnisse – Die CompleteSearch Suchmaschine ≈ 20 min – Spektrales Lernen ≈ 10 min – Kürzeste Wege in Straßennetzwerken ≈ 10 min Zusammenfassung – nach jedem Ergebnis Kürzeste Wege in Straßennetzwerken Problemstellung – von einem Start zu einem Ziel (point-to-point) – (un)gerichteter Graph, Kantenkosten = Reisezeiten Stand der Kunst 24 Millionen Knoten 58 Millionen Kanten Dijkstra's Algorithmus ≈ 1 Sekunde pro Anfrage, USA Straßennetzwerk Für wesentlich schnellere Zeiten … muss das Netzwerk vorverarbeitet werden spezielle Eigenschaften von Straßennetzwerken Das bisher beste Verfahren ≈ 1 Millisekunde pro Anfrage, USA Netzwerk Unsere Arbeit zuerst: theoretisch sehr schöner Algorithmus Dijkstra '59 Luby and Ragde '85 ... Thorup and Zwick '01 Gutman '04 Goldberg et al '05/06 Sanders et al '04/05/06 Lauther et al '04 Möhring et al '05 Wagner et al '05/06 ... aber: konnten die 1 Millisekunde nicht schlagen dann radikal neuer Ansatz: Transitknoten ≈ 10 Mikrosekunden pro Anfrage, USA Straßennetzwerk Die Transitknoten Idee 1. Vorberechnung weniger Transitknoten mit der Eigenschaft, dass jeder kürzeste Pfad über eine gewisse Mindestdistanz durch einen Transitknoten geht 2. Vorberechnung der nächsten Transitknoten für jeden Knoten mit der Eigenschaft, dass jeder kürzeste Pfad über eine gewisse Mindestdistanz von diesem Knoten aus durch eine dieser nächsten Transitknoten geht 3. Vorberechnung aller Distanzen zwischen allen Paaren von Transitknoten und von jedem Knoten zu seinen nächsten Transitknoten Suchanfrage = wenige table lookups ! Vorberechnung der Transitknoten Von Distanzen zu Pfaden 2 Start 3 2 24 min 20 min 23 min Ziel Zusammenfassung: Kürzeste Wege Output – Publikationen: DIMACS’06, ALENEX’07, Science 07 – Großes Presseecho: Süddeutsche, Welt, c’t, Chip, … – Patent + zahlreiche Firmenkontakte + … – Heinz Billing Preis für wiss. Rechnen 2007 (mit S. Funke) – Scientific American 50 Award 2007 Charakteristik – Klassisches Problem, aber auf echten Daten – theoretisch schönerer Algorithmus war nicht praktikabel – einfache aber radikal neue Idee, enorme Verbesserung – Verständnis der Besonderheit der Daten entscheidend Ausblick: Kürzeste Wege Theoretische Untermauerung – wir haben schon: beweisbar korrekt – aber für genau welche Graphen: beweisbar effizient? Erweiterungen – dynamische Änderungen (Staus) – tageszeitabhängige Kantenkosten (rush hour) – Periodische Abfahrts/Ankunftszeiten (Bahn, Bus, etc.) –…