Back to top

Suchmaschinen-Scoring: Ein neues Zeitalter für die Relevanz bei Suchmaschinen

Eine intelligentere Suchmaschine bauen

Wir haben ja schon viel über die Bewertung von Suchmaschinen und Zyklen der kontinuierlichen Verbesserung geredet. Jetzt haben wir diesen Prozess einmal zusammen mit einem Kunden im Detail umgesetzt.

Eine faszinierende Erfahrung. Wir treffen uns alle ein bis zwei Tage für zwei Stunden. In der Zeit arbeiten wir daran, Abfragestrukturen zu modifizieren, Gewichtungen zu optimieren, Ergebnisse zu untersuchen, Bewertungen in Solr Explain zu analysieren und dabei eine Bewertung der Leistung der Suchmaschine für jeden unserer Schritte vorzunehmen, damit wir den Fortschritt nachvollziehen können.

Abfragen testen, Relevanzbewertung messen, wieder testen

Die Erfahrung war ein echter Augenöffner. Einerseits, weil der Zyklus der kontinuierlichen Verbesserung exakt so abläuft, wie wir ihn in der Theorie immer beschrieben haben. Interessant ist dabei auch, wie groß die Auswirkungen kleiner Fehler waren. Wenn man rein von den Kennzahlen geleitet wird (wie in unserem Fall), kann das schon ernüchternd wirken, wenn in einigen Fällen wirklich großartige Ideen doch eher nur kleine Verbesserungen bringen.

Außerdem, weil die Query Processing Language (QPL) so herausragend strukturiert ist, dass man eigentlich jede Abfragestruktur oder Gewichtung in QPL umsetzen und die Ergebnisse sofort sehen kann. Es ist sehr angenehm, mit QPL zu arbeiten. Wir konnten damit einige sehr fortschrittliche Sachen auf relativ einfache Art und Weise hinbekommen. 

Bisher haben wir fast 100 verschiedene Experimente durchgeführt. Im folgenden Diagramm sieht man die Bewertung der Suchmaschine für jeden Test, wobei auch die Verbesserung der Bewertung zu jedem Test erkennbar ist:

 

 

Ich kam mir bei dem ganzen Prozess eher wie ein Baseball-Manager vor, als wie ein Computerprogrammierer. Es geht alles darum, die besten Durchschnittswerte zu finden. Man setzt neue Spieler ein (neue Abfragestrukturen) und sieht, welche Leistung diese bringen. Werden sie durchschnittlich mehr Spiele gewinnen, als sie verlieren? Wie sieht der WAR-Wert aus? (WAR steht für Wins Above Replacement und gibt in Baseball-Statistiken an, wie viel ein Spieler dem Team bringt, im Vergleich zu einem durchschnittlichen Ersatzspieler)

Tests und Messungen helfen uns dabei, die Strukturen der Abfrage zu verfeinern und anzupassen und die Gewichtungen genauer festzulegen, indem wir diese anhand der Bewertungen überprüfen. Also sehr ähnlich, wie wenn man mit seinen Spielern arbeitet und jedem dieser Spieler hilft, sein volles Potenzial zu entfalten, damit, wenn alle auf dem Feld stehen, das ganze Team reibungslos zusammenspielt und das Spiel gewinnt.

Feineinstellung der Suchrelevanz mit chirurgischer Präzision

Als nächstes die täglichen Operationen an der Suchmaschine: Einem Operationssaal nicht unähnlich schauen dir jeden Tag verschiedene Leute (manchmal bis zu 10 Personen) dabei zu, wie du die Suchmaschine auseinander nimmst und an den Abfragestrukturen operierst.

Der Vergleich mit einem Chirurgen liegt daher nahe, weil man bei jedem Schritt ebenso vorsichtig sein muss. Nichts darf dem Zufall überlassen werden. Jede einzelne Abfrage muss doppelt überprüft werden, ebenso jeder einzelne Aufbau und jede einzelne Statistik. Wir haben zahlreiche Probleme und Bugs im System gefunden, darunter Fälle, in denen die Abfragestrukturen nicht richtig gepasst haben, die Gewichtungen nicht eingestellt waren, die mathematische Bestimmung der Daten nicht korrekt funktioniert hat, bei denen Bugs im Lemmatisierer und bei der Lemmatisierung von Akronymen gefunden wurden, sowie Probleme mit der zufälligen Erweiterung des Thesaurus oder der Dokumentsicherheit und dergleichen mehr.

Wenn man so genau auf die Details achtet, kann man Abweichungen entdecken, die normalerweise gar nicht auffallen. So haben wir beispielsweise einen Algorithmus erstellt, der die seltensten Begriffe in einer bestimmten Abfrage findet und als Schlüsselbegriffe bestimmt, um dann Titel hervorzuheben, die diese Schlüsselbegriffe enthalten. Nachdem wir diesen Algorithmus hinzugefügt hatten, verzeichnete die Bewertung der Suchmaschine einen geringen Anstieg. Erfolg!

Dann haben wir uns genauer angesehen, was denn laut diesem Algorithmus als Schlüsselbegriff bei beliebten Abfragen herauskommt. Die Ergebnisse waren ziemlich merkwürdig. Bei der Abfrage |powered hang gliders| wurden „powered“ und „hang“ als Schlüsselbegriffe ausgegeben. Bei |world war| war der Schlüsselbegriff „world“. Also modifizierten wir den Algorithmus so, dass im Thesaurus nach Ausdruckserweiterungen gesucht wird – wenn eine Erweiterung für einen Ausdruck existiert, sollte diese Erweiterung zum „Schlüssel“ werden. Auf diese Art wurde der Schlüsselbegriff für |world war| dann auch tatsächlich der ganze Begriff „world war“, nicht nur „world“, was auch deutlich sinnvoller ist.

Man muss also auf jede Feinheit achten und ständig überprüfen. Einen großen Teil unserer Zeit verbringen wir damit, dass wir die Ergebnisse der Abfrage ansehen und uns fragen: „Sieht das so gut aus? Ist es besser als vorher? Warum, oder warum nicht?“ Es hilft auch stark weiter, wenn man sich Solr Explain genau ansieht (um herauszufinden, warum die Dokumente in die Ergebnisliste aufgenommen wurden).

 

Über Suchmaschinen-Scoring bestimmen, was funktioniert

Als letztes noch ein Kommentar zum Suchmaschinen-Scoring, das sich als sehr effektiv erwiesen hat, um Dinge aufzuspüren, die verbessert werden müssen. Wir konnten damit Fälle bestimmen, in denen die alte Suchmaschine bereits gut war und die neue Suchmaschine schlechter funktionierte. In diesen Fällen konnten wir dann die Ergebnisliste genauer ansehen und bestimmen, welche relevanten Dokumente fehlten oder zu tief aufgeführt waren. In den meisten Fällen sehen wir die Ergebnisse und bekommen bestätigt, dass die neue Suchmaschine besser funktioniert. Manchmal zeigt sich aber, dass etwas nicht stimmt, oder noch weiter optimiert werden kann. Dieser Prozess führt dazu, dass wir neue Abfragestrukturen entwickeln und andere Anpassungen vornehmen, um eine noch intelligentere Suchmaschine zu entwickeln.

Aber eins scheint eindeutig: Die alten Methoden für die Feineinstellung der Genauigkeit in der Suchmaschine sind tot. Man muss das Suchmaschinen-Scoring als zentrale Komponente der Relevanzalgorithmen nutzen – nur so erreicht man gute Ergebnisse. Sobald man (die richtigen) Log-Daten hat, wird dieser Prozess für die Verbesserung der Leistung der Suchmaschine extrem mächtig (und macht dazu auch mehr Spaß!). Inkrementelle Verbesserungen der Bewertung sind eine echte Leistung, wenn diese durch echte Daten gestützt werden (der korrekte Weg, unserer Meinung nach). Wenn man die Bewertung um 0,02 verbessern kann, ist das ein Grund zum Feiern!

Hinsichtlich der Relevanz der Suchmaschinen sind wir in ein Zeitalter der Aufklärung eingetreten. Und das ist gut so.

-- Paul

0