Wie bewerten Sie eine Suchmaschine?

7

Ich bin ein Student, der eine Studie durchführt, um den bestehenden Algorithmus einer Suchmaschine zu verbessern.

Ich möchte wissen, wie ich die Suchmaschine - die ich verbessert habe - bewerten kann, um zu quantifizieren, wie stark der Algorithmus verbessert wurde.

Wie soll ich den alten und den neuen Algorithmus vergleichen?

Danke

    
ahmed 01.10.2009, 14:01
quelle

10 Antworten

11

Dies wird normalerweise getan, indem eine Testsuite mit Fragen erstellt und dann bewertet wird, wie gut die Suchantwort auf diese Fragen antwortet. In einigen Fällen sollten die Antworten eindeutig sein (wenn Sie slashdot in eine Suchmaschine eingeben, erwarten Sie, dass slashdot.org Ihr Top-Hit ist), können Sie sich diese als eine Klasse von harten Abfragen mit 'richtigen' Antworten vorstellen.

Die meisten anderen Abfragen sind von Natur aus subjektiv. Um Verzerrungen zu minimieren, sollten Sie mehrere Nutzer bitten, Ihre Suchmaschine zu testen und die Ergebnisse für den Vergleich mit dem Original zu bewerten. Hier ist ein Beispiel für ein Informatikpapier, das etwas Ähnliches macht:

Ссылка

Was den spezifischen Vergleich der Algorithmen anbelangt, hängt das, was Sie messen, davon ab, was Sie wissen wollen. Sie können beispielsweise die Effizienz bei Berechnungen, Speichernutzung, Crawling-Overhead oder Zeit vergleichen, um Ergebnisse zurückzugeben. Wenn Sie versuchen, ein sehr spezifisches Verhalten zu erzeugen, wie das Ausführen von Spezialsuchen (z. B. eine Literatursuche) für bestimmte Parameter, dann müssen Sie dies explizit testen.

Heuristiken für Relevanz sind auch eine nützliche Überprüfung. Wenn jemand beispielsweise Suchbegriffe verwendet, die wahrscheinlich "programmierungsbezogen" sind, erhalten Sie tendenziell mehr Ergebnisse von stackoverflow.com ? Würden Ihre Suchergebnisse besser sein, wenn Sie das getan hätten? Wenn Sie eine Reihe von Vertrauensgewichtungen für bestimmte Websites oder Domains bereitstellen (z. B. Bewertung .edu oder .ac.uk -Domänen als vertrauenswürdiger für technische Ergebnisse), müssen Sie die Effektivität dieser Gewichtungen testen.

    
ire_and_curses 01.10.2009, 14:56
quelle
10

Lassen Sie mich zunächst damit beginnen, Ihnen zu sagen, dass Sie versucht haben, traditionelle Recherchemethoden auf Suchmaschinenergebnisse anzuwenden. Viele SEO's haben dies vor dir getan, und im Allgemeinen behalten sie das für sich, da das Teilen von "erstaunlichen Ergebnissen" normalerweise bedeutet, dass du nicht mehr ausnutzen oder die Oberhand behalten kannst. Ich sagte, dass ich so gut wie möglich einige Hinweise und Dinge teilen kann .

  1. Identifizieren Sie Welchen Teil des Algorithmus möchten Sie verbessern?

Verschiedene Suchen führen unterschiedliche Algorithmen aus.

Breite Suchanfragen

In einem weiten Such-Modus geben Suchmaschinen zum Beispiel eine Vielzahl von Ergebnissen zurück. Der gemeinsame Teil dieser Ergebnisse beinhaltet

  1. Newsfeeds
  2. Produkte
  3. Bilder
  4. Blogposts
  5. Lokale Ergebnisse (dies basiert auf einer Geo IP-Suche).

Welche dieser Ergebnistypen in die Mischung geworfen werden, hängt vom Wort ab.

Beispiel: Katzen gibt Bilder von Katzen und Nachrichten zurück, Schuhe gibt lokale Einkäufe für Schuhe zurück. (Dies basiert auf meinem IP in Chicago am 6. Oktober)

Das Ziel bei der Rückgabe von Ergebnissen für breite ist es, ein bisschen von allem für jeden bereitzustellen, damit alle glücklich sind.

Regionale Modifikatoren

Im Allgemeinen wird jedes Mal, wenn ein regionaler Begriff an eine Suche angehängt wird, die Ergebnisse stark verändert. Wenn Sie nach "Chicago web design" suchen, weil das Wort Chicago angehängt ist, werden die Ergebnisse mit den besten 10 regionalen Ergebnissen beginnen. (Dies sind die einzelnen Liner auf der rechten Seite der Karte), nach 10 Listings wird im Allgemeinen "Ergebnis Mode" angezeigt.

Die Ergebnisse in den "Top Ten Local" tendieren dazu, sich drastisch von denen in der organischen Auflistung unten zu unterscheiden. Dies liegt daran, dass die lokalen Ergebnisse (von Google Maps) auf völlig unterschiedliche Daten für das Ranking angewiesen sind.

Beispiel: Eine Telefonnummer auf Ihrer Website mit der Ortsvorwahl von Chicago hilft Ihnen bei lokalen Ergebnissen ... aber NICHT bei den allgemeinen Ergebnissen. Gleiches mit Adresse, gelbem Buch und so weiter.

Ergebnisse Geschwindigkeit

Derzeit (Stand: 10/06/09) ist Google Betatest "Koffein" Das Haupthighlight dieses Engine Build ist, dass es Ergebnisse in fast der Hälfte der Zeit liefert. Google mag zwar nicht langsam sein, aber die Beschleunigung eines Algorithmus ist wichtig, wenn jede Stunde Millionen von Suchanfragen durchgeführt werden.

Spam-Listen reduzieren

Wir haben alle eine mit Spam gespickte Suche erlebt. Die neue Version von Google Caffeine Ссылка ist ein gutes Beispiel dafür. In den letzten 10+ war eine der größten Online-Kämpfen zwischen Suchmaschinen-Optimierer und Suchmaschinen. Gaming Google (und andere Suchmaschinen) ist sehr profitabel und was Google verbringt die meiste Zeit im Kampf.

Ein gutes Beispiel ist wieder die neue Version von Google Caffeine. Bisher haben meine Recherchen und auch einige andere im Bereich SEO festgestellt, dass dies der erste Build in mehr als 5 Jahren ist, der Onsite-Elemente (wie Keywords, interne Seitenverknüpfungen usw.) mehr Gewicht beimisst als frühere Builds. Zuvor schien jede "Veröffentlichung" eingehende Links mehr und mehr zu bevorzugen ... Dies ist der erste Schritt, der einen Schritt zurück zum "Inhalt" macht.

Möglichkeiten, einen Algorithmus zu testen.

  1. Vergleiche zwei Builds derselben Engine. Dies ist derzeit möglich, durch den Vergleich von Koffein (siehe Link oben oder Google, Google Koffein) und dem aktuellen Google.

  2. Vergleichen Sie lokale Ergebnisse in verschiedenen Regionen. Versuchen Sie, Suchbegriffe wie Webdesign zu finden, die lokale Ergebnisse ohne einen lokalen Schlüsselwortmodifikator zurückgeben. Verwenden Sie dann einen Proxy (über Google gefunden), um von verschiedenen Orten aus zu suchen. Sie sollten sicherstellen, dass Sie den Standort der Proxies kennen (finden Sie eine Website bei Google, die Ihre IP-Adresse geo IP-Postleitzahl oder Stadt angibt). Dann können Sie sehen, wie unterschiedliche Regionen unterschiedliche Ergebnisse liefern.

Warnung ... Wählen Sie nicht den Begriff Schlosser ... und seien Sie vorsichtig bei Begriffen, die, wenn Sie Ergebnisse zurückgeben, viele Spam-Einträge haben. Google local ist ziemlich einfach zu spammen, besonders in kompetitiven Märkten.

  1. Wie in einer früheren Antwort erwähnt, vergleichen Sie, wie viele "Klickbacks" Benutzer benötigen, um ein Ergebnis zu finden. Sie sollten wissen, dass derzeit keine großen Suchmaschinen "Absprungraten" als Indikatoren für die Genauigkeit von Websites verwenden. Dies ist wahrscheinlich, weil es einfach wäre, es so aussehen zu lassen, als hätte Ihr Ergebnis eine Absprungrate im Bereich von 4-8%, ohne dass es tatsächlich einen so niedrigen Wert hat ... mit anderen Worten, es wäre einfach zu spielen.

  2. Verfolgen Sie, wie viele Suchvariationen Benutzer durchschnittlich für einen bestimmten Begriff verwenden, um das gewünschte Ergebnis zu finden. Dies ist ein guter Indikator dafür, wie gut eine Engine den Abfragetyp intelligent erraten kann (wie oben in dieser Antwort erwähnt).

** Haftungsausschluss.Diese Ansichten basieren auf meiner Branchenerfahrung vom 6. Oktober 2009. Eine Sache an SEO und Suchmaschinen ist, dass sie sich jeden Tag ändern. Google könnte Koffein morgen veröffentlichen, und das würde sich sehr ändern ... das heißt, das ist der Spaß der SEO-Forschung!

Prost

    
Julian Sutter 07.10.2009 23:47
quelle
2

Um etwas auszuwerten, müssen Sie definieren, was Sie von ihm erwarten. Dies wird helfen zu definieren, wie man es misst.
Dann werden Sie in der Lage sein, die Verbesserung zu messen In Bezug auf eine Suchmaschine, denke ich, dass Sie in der Lage sein können, ihre Fähigkeit zu messen, Dinge zu finden, ihre Genauigkeit bei der Rückführung, was relevant ist Es ist eine interessante Herausforderung.

    
remio 01.10.2009 14:21
quelle
2

Ich glaube nicht, dass Sie eine endgültige mathematische Lösung finden werden, wenn das Ihr Ziel ist. Um einen gegebenen Algorithmus zu bewerten, benötigen Sie Standards und Ziele, die erfüllt werden müssen.

  • Was ist Ihre Vergleichsbasis gegen?
  • Was klassifizierst du als "verbessert"?
  • Was halten Sie für eine "erfolgreiche Suche"?
  • Wie groß ist Ihre Testgruppe?
  • Was sind Ihre Tests?

Wenn Sie beispielsweise den Prozess der Seitenrangfolge verbessern möchten, entscheiden Sie, ob Sie die Effizienz des Algorithmus oder die Genauigkeit beurteilen. Bewertungseffizienz bedeutet, dass Sie Ihren Code für einen konsistenten großen Datensatz zeitlich festlegen und Ergebnisse aufzeichnen. Sie würden dann mit Ihrem Algorithmus arbeiten, um die Zeit zu verbessern.

Wenn es Ihr Ziel ist, die Genauigkeit zu verbessern, müssen Sie definieren, was "ungenau" ist. Wenn Sie nach "Cup" suchen, können Sie nur sagen, dass die erste angebotene Seite die "beste" ist, wenn Sie selbst genau definieren können, welche die beste Antwort für "Cup" ist.

Mein Vorschlag für Sie wäre, den Umfang Ihres Tests einzuschränken . Definieren Sie eine oder zwei Eigenschaften einer Suchmaschine, die Sie verfeinern möchten, und arbeiten Sie daran, sie zu verbessern.

    
Paulo 05.10.2009 21:09
quelle
2

Informationswissenschaftler verwenden üblicherweise Präzision und recall als zwei konkurrierende Qualitätsmaßstäbe für ein Information-Retrieval-System (wie eine Suchmaschine).

Sie können also die Leistung Ihrer Suchmaschine relativ zu Google messen, indem Sie beispielsweise die Anzahl relevanter Ergebnisse in den Top 10 (nennen Sie diese Genauigkeit) und die Anzahl wichtiger Seiten für diese Suchanfrage, die Ihrer Meinung nach hätte sein sollen, zählen die Top 10 waren aber nicht (nenne das Rückruf).

Sie müssen die Ergebnisse der einzelnen Suchmaschinen bei einigen Suchanfragen dennoch manuell vergleichen, aber mindestens einen Messwert für die Auswertung. Und die Balance dieser beiden ist auch wichtig: Sonst können Sie trivial perfekte Präzision erhalten, indem Sie keine Ergebnisse oder perfekten Rückruf zurückgeben, indem Sie jede Seite im Web als Ergebnis zurückgeben.

Der Wikipedia-Artikel über Präzision und Erinnerung ist ziemlich gut (und definiert das F-Messung , die beides berücksichtigt).

    
npdoty 08.10.2009 19:30
quelle
1

In den Kommentaren, die Sie gesagt haben: "Ich habe von einer Möglichkeit gehört, die Qualität der Suchmaschinen zu messen, indem ich zähle, wie oft ein Benutzer auf einen Zurück-Button klicken muss, bevor er den gewünschten Link findet, aber ich kann diesen verwenden Technik, weil Sie Benutzer brauchen, um Ihre Suchmaschine zu testen, und das ist Kopfschmerzen selbst ". Nun, wenn Sie Ihren Motor für ein paar Tage kostenlos im Internet haben und ein wenig Werbung machen, werden Sie wahrscheinlich mindestens ein paar Dutzend Versuche bekommen. Geben Sie diesen Benutzern zufällig die alte oder neue Version und messen Sie diese Klicks.

Andere Möglichkeit: Gehen Sie davon aus, dass Google per Definition perfekt ist, und vergleichen Sie Ihre Antwort für bestimmte Fragen mit der Antwort. (Vielleicht die Summe der Entfernung Ihrer Top-Ten-Links zu ihren Gegenstücken bei Google, zum Beispiel: wenn Ihr zweiter Link der zwölfte Link von Google ist, ist das 10 Entfernung). Das ist eine große Annahme, aber viel einfacher zu implementieren.

    
Emilio M Bumachar 07.10.2009 21:52
quelle
0

Sie müssen positive und negative Qualitäten klar erkennen, wie schnell man die Antwort bekommt, die sie suchen oder wie viele "falsche" Antworten sie auf dem Weg dorthin bekommen. Ist es eine Verbesserung, wenn die richtige Antwort # 5 ist, aber die Ergebnisse 20-mal schneller zurückgegeben werden? Solche Dinge werden für jede Anwendung anders sein. Die richtige Antwort ist möglicherweise bei der Suche nach einer Wissensdatenbank wichtiger, aber für eine Telefonunterstützungsanwendung kann eine schnelle Antwort erforderlich sein.

Ohne Parameter kann kein Test als Sieg bezeichnet werden.

    
Deverill 01.10.2009 14:42
quelle
0

Nehmen Sie die Tatsache zur Kenntnis, dass die Qualität der Suchergebnisse letztlich subjektiv ist. Sie sollten mehrere Bewertungsalgorithmen für Ihren Vergleich haben: Das alte, das neue und einige Kontrollgruppen (z. B. Scoring nach URI-Länge oder Seitengröße oder ein ähnlich absichtlich gebrochenes Konzept). Wählen Sie nun eine Reihe von Abfragen, die Ihre Algorithmen auswerten, etwa hundert. Angenommen, Sie haben insgesamt 4 Algorithmen. Erstellen Sie eine 4x5-Tabelle, in der die ersten 5 Ergebnisse einer Abfrage für jeden Algorithmus angezeigt werden. (Sie könnten Top Ten machen, aber die ersten fünf sind viel wichtiger.) Achten Sie darauf, zufällig zu bestimmen, welcher Algorithmus in jeder Spalte erscheint. Dann plumpst du einen Menschen vor dieses Ding und lässt sie auswählen, welches der 4 Ergebnissets ihnen am besten gefällt. Wiederholen Sie den Vorgang für den gesamten Abfragesatz. Wiederholen Sie dies für so viele weitere Menschen, wie Sie stehen können. Dies sollte Ihnen einen fairen Vergleich basierend auf den Gesamtgewinnen für jeden Algorithmus geben.

    
Bob Aman 11.10.2009 18:26
quelle
0

Ссылка

Erstellen Sie eine App wie diese, die die Daten vergleicht und extrahiert. Führen Sie dann einen Test mit 50 verschiedenen Dingen durch, nach denen Sie suchen müssen, und vergleichen Sie sie dann mit den gewünschten Ergebnissen.

    
Mitchell Skurnik 11.10.2009 22:55
quelle
0

Ich musste eine Suchmaschine professionell testen. Das habe ich gemacht.

Die Suche enthielt Fuzzy-Logik. Der Benutzer würde in eine Webseite "Kari Trigger" eintippen, und die Suchmaschine würde Einträge wie "Gary Trager", "Trager, C", "Corey Trager" usw. mit jeweils einer Punktzahl von 0- & gt; 100 so abrufen dass ich sie von am wahrscheinlichsten zu am wenigsten wahrscheinlich einstufen würde.

Zuerst habe ich den Code so umgestaltet, dass er im Batch-Modus von der Webseite entfernt werden konnte, indem eine große Datei von Suchanfragen als Eingabe verwendet wurde. Für jede Zeile in der Eingabedatei würde der Stapelmodus das oberste Suchergebnis und seine Punktzahl ausgeben. Ich habe Tausende von tatsächlichen Suchanfragen aus unserem Produktionssystem geerntet und sie durch das Batch-Setup geführt, um eine Basislinie zu erstellen.

Von nun an würde ich jedes Mal, wenn ich die Suchlogik änderte, den Stapel erneut ausführen und dann die neuen Ergebnisse mit der Basislinie vergleichen. Ich habe auch Werkzeuge geschrieben, um die interessanten Teile des Diff leichter zu sehen. Zum Beispiel war es mir ziemlich egal, ob die alte Logik "Corey Trager" als 82 zurückgab und die neue Logik sie als 83 zurückgab, also würden meine Werkzeuge diese herausfiltern.

Ich hätte nicht so viel durch Hand-Crafting-Testfälle erreichen können. Ich hätte einfach nicht die Vorstellungskraft und Einsicht gehabt, um gute Testdaten zu erstellen. Die realen Daten waren so viel reicher.

Also, zur Erinnerung:

1) Erstellen Sie einen Mechanismus, mit dem Sie die Ergebnisse der Ausführung neuer Logik gegenüber den Ergebnissen der vorherigen Logik vergleichen können. 2) Test mit vielen realistischen Daten.
3) Erstellen Sie Werkzeuge, die Ihnen helfen, mit dem Diff zu arbeiten, das Rauschen herauszufiltern und das Signal zu verbessern.

    
Corey Trager 12.10.2009 20:11
quelle

Tags und Links