Back to top

Dieser Artikel ist der zweite Teil in der Reihe Suche für Big Data und Big Data für die Suche von Paul Nelson, leitender Architekt bei Search Technologies.


Erkenntnis 2: Big Data macht die Suche besser und leichter

Viel besser. Viel leichter. 

 

Die Suche war schließlich Big Data, ehe es Big Data gab. Bei der Suche ging es schon immer um extrem große Datensätze und deren statistische Analyse, sowohl zum Indexieren (d.h. Batchverarbeitung in großem Rahmen) als auch bei der Abfrage (d.h. Hochgeschwindigkeits-Verarbeitung in Echtzeit). Datenbanken mit Milliarden Dokumenten existieren in Suchmaschinen schon seit Jahrzehnten. 

Aber bisher fehlte der Suche stets ein gutes, inklusives Framework. Aber haben wir dieses Framework denn inzwischen? Nein, aber wir haben eine Vision dieses Frameworks, und durch Big Data kann es Wirklichkeit werden. 

Was würden wir denn mit so einem Framework anfangen? Wir könnten damit viele wundervolle Dinge erstellen, die wir schon immer haben wollten, die bisher aber zu schwer, zu kostspielig oder zu unzuverlässig waren, die komplexe, handgearbeitete Implementierungen erforderten. Sachen wie:

  • Linkzählung / PageRank / Ankertext / Popularität

All diese Techniken nutzen externe Referenzen, um die Suchrelevanz zu verbessern. Für die Linkzählung werden eingehende Links bei einem Dokument (also Verknüpfungen von anderen Dokumenten aus) genutzt, um die Relevanz anzuheben. Googles „PageRank“ dient demselben Ziel, ist aber mathematisch ausgefeilter. Der „Ankertext“ kann die Relevanz beeinflussen, indem mit einberechnet wird, wie andere Personen das Dokument in ihren Verweisen beschreiben. Popularität hebt die Relevanz für Dokumente an, die als beliebter bekannt sind, gemessen daran, wie oft die Dokumente angeklickt werden.

Wie viele Implementierungen dieser Techniken ich über die Jahre gesehen habe? Viele. Und in jedem Fall wurde ein von Hand erstellter, langsamer und ungelenker Algorithmus verwendet, der innerhalb der Pipeline für die Dokumentverarbeitung arbeitet, anhand relationaler Datenbanken.

Aber jetzt werden diese Algorithmen dank Big Data mehr als nur eine theoretische Möglichkeit, sie sind eine natürliche Evolution. Schließlich hat Google Map/Reduce speziell dafür erfunden, um Berechnungen für PageRank bei Google vorzunehmen. In den meisten Suchimplementierungen werden diese unendlich wertvollen externen Daten immer noch nicht ausreichend genutzt, weil ein angemessenes Framework fehlt.

  • Etwas besseres als TF/IDF (bitte!)

TF (Termfrequenz) - IDF (Inverse Dokumenthäufigkeit) besteht jetzt seit gut 30-40 Jahren und wird auch heute noch von Suchmaschinen verwendet. Aber, wenn man mal ehrlich ist, ist es nur eine faule Notlösung. 

Also, nicht das wir uns falsch verstehen, es ist eine sehr gute faule Notlösung. Alles passt intuitiv. Dokumente, in denen die Suchbegriffe häufiger erwähnt werden, sollten wichtiger sein, oder? Suchbegriffe, die seltener sind, sind nützlicher, oder? Aber wie immer steckt der Teufel in den Details. TF-IDF hat keine feste mathematische Grundlage. Suchmaschinen und Methoden zur Bewertung von Dokumenten verwenden TF-IDF einfach, weil man es leicht berechnen kann. Einfach ausgedrückt werden dabei Daten verwendet, die im Index herumliegen.

Heutzutage gibt es da aber bessere Alternativen! Warum sollte man nicht die echte Formel für den Informationszuwachs verwenden, um die Gewichtung zu berechnen (anstelle einer künstlich vorgetäuschten Formel, wie TF-IDF es ist)? Das wäre auch mathematisch viel exakter. Warum nicht eine Prognose für die Relevanz erstellen? Ich habe das für meine eigene Suchmaschine schon 1992 gemacht, während der Vorbereitung auf TREC-2. Warum macht das heutzutage nicht jeder? Man bekommt dadurch nicht nur einen echten normalisierten Prozentwert (von 0 bis 100) geliefert, sondern auch eine Schätzung der Wahrscheinlichkeit, dass das Dokument relevant ist. Ist das nicht unglaublich nützlich? 

Der Grund, warum es bisher noch keine besseren Bewertungsalgorithmen gibt, ist natürlich, dass es kein gutes Framework für die Berechnung dieser großen, mathematisch anspruchsvollen Algorithmen gibt. Aber dafür ist jetzt ja Big Data da.

  • Suchmaschinen-Scoring

Mal gefragt: Wie genau ist Ihre Suchmaschine? 

Es ist schon schockierend, dass kaum jemand diese Frage konkret beantworten kann. Search Technologies hat mehr als 500 Kunden, und nur eine Handvoll hat wirklich ein eingehendes Suchmaschinen-Scoring vorgenommen. 

Viele Suchmaschinen bieten Statistiken zu Abfragen, wie etwa die Zahl der Abfragen, die null Ergebnisse geliefert haben, die beliebtesten Abfragen oder die beliebtesten Abfragebegriffe. Aber zeigen diese wirklich auf irgendeine Art, ob der Benutzer letztendlich die Dokumente findet, die er sucht? Natürlich nicht. 

Es ist schon merkwürdig, dass eine so wichtige Technologie keine Möglichkeit für eine solide, reproduzierbare Analyse mit aussagekräftigen Kennzahlen besitzt. Warum? Weil sie schwer zu implementieren ist. Man muss dafür eine kostspielige Analyse riesiger Log-Dateien und/oder manueller Anpassungen der Relevanz vornehmen. Wenn die Suchmaschine weiter verbessert werden soll (und getestet, ehe die neue Version in den produktiven Betrieb übergeht), wird eine Methode benötigt, mit der Hunderttausende oder gar Millionen Abfragen ausgeführt werden können, um Daten zu sammeln. 

Und wieder fehlt wieder ein Framework für die Bewertung der Suchmaschinen. Big Data bietet auch hier eine perfekte Lösung. Wenn wir Query-Logs und Click-Logs in Big Data eingeben, haben wir eine statistisch valide Methode zur Evaluation der Genauigkeit der Suchmaschine. Sobald wir die Genauigkeit der Suchmaschine messen können, können wir diese auch schrittweise verbessern. Dies führt zu einem kontinuierlichen Kreislauf der Optimierung, der die Suchmaschine Stück für Stück den tatsächlichen Geschäftsanforderungen annähert. 

Und es ist einfach, reines Auswählen und Anklicken, und schon bekommt man eine Suche in einer mit Google vergleichbaren Qualität, für jeden verfügbar.

  • Semantische Verarbeitung

Suchmaschinen haben ihre Daseinsberechtigung in der Textverarbeitung und dem Abgleich von Token – Wörter und Ausdrücke finden, die im Text vorkommen. Aber was geschieht mit der Semantik? Muss man nicht auch die eigentliche Bedeutung des Contents verstehen, oder die Intentionen des Autors? 

Latent Semantic Indexing gibt es inzwischen seit mehr als 25 Jahren. Meinen ersten Algorithmus zur Disambiguierung von Wort und Bedeutung habe ich 1993 in WordNet geschrieben. Diese Algorithmen haben aber nie Einzug in die etablierten Suchmaschinen gehalten. Warum nicht? 

Wenn wir semantische Verarbeitung mit dem Wissen über die Welt verbinden, wird es doch erst wirklich spannend. Und woher bekommen wir dieses Wissen über die Welt? Wie wäre es mit dem semantischen Netz? DBpedia, freebase, GeoNames, Wikilinks ... Das sind nur ein paar Beispiele für Datenbanken, die heutzutage verfügbar sind. Diese geben uns Wissen über die Welt auf maschinell lesbare Weise, tiefreichend genug, um interessante Dinge wie die Disambiguierung von Wort und Bedeutung vorzunehmen. 

Eins der Probleme ist die Flexibilität. Semantische Verarbeitung bedeutet viel Aufwand, viel Verarbeitungszeit. Wenn sie gut ausgeführt wird, kann sie sehr kostspielig werden, es werden hunderte Wiederholungen benötigt, was wiederum Wochen dauern kann. 

Big Data hilft uns dabei, diese Barrieren der Flexibilität einzureißen. Experimente und Tests können jetzt in Stunden vorgenommen werden, statt in Tagen. Wenn wir wiederverwendbare Algorithmen und Libraries für Textforschung und semantische Analyse erstellen können und diese für die leichte Wiederverwendung in ein Framework einbauen, kommt alles zusammen, dann wird eine echte semantische Suche möglich werden.

  • Und viel mehr

Es gibt noch viel mehr Algorithmen, die wir liebend gerne erstellen würden, aber immer wieder von den Kosten der Implementierung abgeschreckt wurden. Sachen wie Rechtschreibkorrektur während dem Indexieren (besonders wichtig für kleinste Dokumente, wie Brancheneinträge oder Anzeigen), Entfernen häufiger Abschnitte (vor allem wichtig für Crawler bei Websites), Wortgewichtung abhängig von der Präsentation (nicht alle Wörter in einem Dokument sind gleich wichtig), Dokumentzusammenfassungen, Sentimentanalyse und wirklich akkurate Themenclusterbildung (über Algorithmen wie Latent Dirichlet Allocation).

Ich weiß schon, was jetzt kommt: Ist ja alles schön und gut, aber was ist mit den Algorithmen für den Page Rank? Wo ist die Bewertung der Suchmaschine? 

Geduld. Big Data unterläuft gerade große Änderungen. Es gibt viele kommerzielle Versionen von Hadoop, darunter Cloudera, HortonWorks und MapR. MapReduce wird von YARN abgelöst. Apache Spark ist inzwischen auch gereift, usw. Daher ist es schwierig, die passende Technologie auszuwählen. 

Bis jetzt war Big Data immer etwas, wofür echte Programmierer benötigt werden, es gibt noch keine einfachen Lösungen, in denen man einfach per Klick auswählt. Aber auch das ist nur eine Frage der Zeit. Hier bei Search Technologies arbeiten wir daran, Content-Erwerb, Big Data und Suche zu einem gesamten Framework zusammenzulegen, in dem dann alles mit einem einfachen Klick erledigt werden kann. Wenn wir das erreichen, werden die Kosten für herausragende Qualität stark gesenkt. Auf einmal werden dann unglaubliche, geradezu magische Suchlösungen machbar und möglich ... für jedermann.

Lesen Sie weiter ...

Erkenntnis 3: Suche ist besser als SQL

0