Manchmal wenden sich die Leute an Yandex, um einen Film zu finden, dessen Name aus ihren Köpfen sprang. Sie beschreiben die Handlung, unvergessliche Szenen, lebendige Details: zum Beispiel [wie heißt der Film, in dem ein Mann eine rote oder blaue Pille wählt]. Wir haben uns entschlossen, die Beschreibungen vergessener Filme zu studieren und herauszufinden, woran sich die Leute in den Filmen am meisten erinnern.
Heute werden wir nicht nur einen Link zu unserer
Studie teilen, sondern auch kurz darüber sprechen, wie sich die semantische Suche von Yandex entwickelt hat. Sie erfahren, welche Technologien der Suche helfen, die Antwort zu finden, auch wenn es einfach unmöglich ist, die genaue Anfrage zu formulieren.
Außerdem haben wir Rätselregler mit Beispielen für die Anfragen realer Personen hinzugefügt. Fühlen Sie sich wie eine Suchmaschine und versuchen Sie, die Antwort zu erraten.
Alle Suchmaschinen begannen mit einer Wortsuche. Yandex konnte bereits zu Beginn die Morphologie der russischen Sprache berücksichtigen, aber es war immer noch dieselbe Suche nach Wörtern aus einer Abfrage auf Seiten im Netzwerk. Wir haben für jedes Wort Listen aller bekannten Seiten geführt. Wenn die Anfrage einen Satz enthielt, reichte es aus, die Wortlisten zu kreuzen - hier ist die Antwort. Es hat in jenen Tagen, als es nur wenige Websites gab, großartig funktioniert, und die Frage nach dem Ranking war noch nicht so akut.
Runet entwickelte sich, Websites wurden immer mehr. Dem Wortkreuzungsfaktor wurden zwei weitere Faktoren hinzugefügt. Einerseits haben uns die Benutzer selbst geholfen. Wir begannen zu überlegen, welche Websites und für welche Fragen sie sich entscheiden. Es gibt keine genaue Übereinstimmung der Wörter, aber löst die Site das menschliche Problem? Dies ist ein nützliches Signal. Auf der anderen Seite wurden Links zwischen Websites, die zur Bewertung der Bedeutung der Seiten beigetragen haben, zur Rettung gebracht.
Drei Faktoren sind sehr wenige. Besonders wenn sie oft von den sehr talentierten Suchmaschinenoptimierern ausprobiert werden. Aber mehr von Hand zu verdauen war schwierig. Und hier begann die Ära des maschinellen Lernens. 2009 führen wir Matrixnet ein, das auf Gradientenverstärkung basiert (später bildete diese Technologie die Grundlage für die fortschrittlichere Open-Source-Bibliothek
CatBoost ).
Seitdem gab es immer mehr Faktoren, weil wir nicht mehr manuell nach Beziehungen zwischen ihnen suchen müssen. Ein Auto hat es für uns getan.
Für die Geschichte aller nachfolgenden Änderungen in der Suche werden nicht nur der Beitrag, sondern auch die Bücher ausreichen, sodass wir versuchen werden, uns auf die wichtigsten zu konzentrieren.
Ranking ist nicht nur ein Vergleich von Abfragewörtern und Seite für eine lange Zeit. Zwei Beispiele.
Bereits 2014 haben wir die Technologie der Dokumentanmerkung mit charakteristischen Abfragen eingeführt. Angenommen, in der Vergangenheit gab es eine Anfrage [eine Serie aus Brasilien über den Fleischkönig], für die bereits eine gute Antwort bekannt ist. Dann gibt ein anderer Benutzer eine Abfrage ein [die brasilianische Serie, in der es einen Fleischkönig und einen Milchkönig gab], für die die Maschine die Antwort noch nicht kennt. Aber diese Fragen haben viele gemeinsame Wörter. Dies ist ein Signal dafür, dass die in der ersten Anforderung gefundene Seite in der zweiten möglicherweise relevant ist.
Ein weiteres Beispiel. Lassen Sie uns Nachforschungen anstellen [die brasilianische Serie, in der es einen Fleischkönig und einen Milchkönig gab] und [ein serielles tödliches Erbe]. Von der Gesamtzahl haben sie nur ein Wort - "Serie", und dies reicht nicht aus, um Anfragen explizit abzugleichen. In diesem Fall haben wir begonnen, die Geschichte der Suche zu betrachten. Wenn zwei unterschiedliche Anforderungen an denselben Standorten in der Ausgabe nachgefragt werden, können wir davon ausgehen, dass die Anforderungen austauschbar sind. Dies ist nützlich, da wir jetzt den Text beider Abfragen verwenden, um nach nützlicheren Seiten zu suchen. Dies funktioniert jedoch nur bei wiederholten Anfragen, wenn bereits mindestens einige Statistiken vorhanden sind. Was tun mit neuen Anfragen?
Der Mangel an Statistiken kann durch Inhaltsanalyse ausgeglichen werden. Und bei der Analyse homogener Daten (Text, Sprache, Bilder) zeigen sich neuronale Netze am besten. 2016 haben wir der Habr-Community erstmals von
der Palekh-Technologie erzählt , die zum Ausgangspunkt für die breitere Nutzung neuronaler Netze in der Suche wurde.
Wir haben begonnen, das neuronale Netzwerk zu trainieren, um die semantische (semantische) Nähe des Anforderungstextes und des Seitentitels zu vergleichen. Zwei Texte werden in Form von Vektoren im mehrdimensionalen Raum dargestellt, so dass der Kosinus des Winkels zwischen ihnen die Wahrscheinlichkeit der Auswahl einer Seite durch eine Person und damit die semantische Nähe gut vorhersagt. Auf diese Weise können Sie die Nähe der Bedeutungen auch von Texten bewerten, in denen sich keine Wörter überschneiden.
Ein Beispiel für Schichtarchitektur für Neugierige Auf die gleiche Weise haben wir begonnen, Abfragetexte zu vergleichen, um Verknüpfungen zwischen ihnen zu identifizieren. Ein echtes Beispiel unter der Haube einer Suchmaschine: Für eine Abfrage [amerikanische Serie darüber, wie Methamphetamin gekocht wird] ist es das neuronale Netzwerk, das die Phrasen [schlecht bedeuten] und [schlecht brechen] als ähnlich in der Bedeutung findet.
Anfragen und Überschriften sind bereits gut, aber wir haben die Hoffnung nicht aufgegeben, neuronale Netze im Volltext der Seiten zu verwenden. Wenn wir eine Benutzeranfrage erhalten, beginnen wir außerdem, die besten Seiten unter Millionen von Indexseiten auszuwählen. In Palekh haben wir jedoch nur in den neuesten Phasen des Rankings (L3) neuronale Netzwerkmodelle verwendet - bis zu etwa 150 der besten Dokumente. Dies kann zum Verlust guter Antworten führen.

Der Grund ist vorhersehbar - begrenzte Ressourcen und hohe Anforderungen an die Reaktionsgeschwindigkeit. Die strengen Einschränkungen der Berechnungen hängen mit einer einfachen Tatsache zusammen: Sie können den Benutzer nicht zum Warten zwingen. Aber dann haben wir uns etwas ausgedacht.
2017 haben wir das Korolev-Suchupdate vorgestellt, das nicht nur die erweiterte Nutzung neuronaler Netze, sondern auch ernsthafte Arbeiten an der Architektur zur Einsparung von Ressourcen beinhaltete. Genauer gesagt, mit Diagrammen von Ebenen und anderen Details, die wir bereits in einem anderen Beitrag über Habré erzählt haben, aber jetzt werden wir die Hauptsache daran erinnern.
Anstatt den Dokumenttitel zu übernehmen und seinen semantischen Vektor während der Abfrageausführung zu berechnen, können Sie diesen Vektor vorberechnen und in der Suchdatenbank speichern. Mit anderen Worten, wir können einen wesentlichen Teil der Arbeit im Voraus erledigen. Gleichzeitig brauchten wir natürlich mehr Platz zum Speichern von Vektoren, aber dies sparte uns Prozessorzeit. Das ist aber noch nicht alles.
Ein weiteres Schema für Neugierige Wir haben einen zusätzlichen Index erstellt. Es basiert auf der Hypothese: Wenn Sie eine ausreichend große Liste der relevantesten Dokumente für jedes Wort oder jede Phrase für eine Abfrage mehrerer Wörter verwenden, befinden sich unter diesen Dokumenten Dokumente, die für alle Wörter gleichzeitig relevant sind. In der Praxis bedeutet dies Folgendes. Für alle Wörter und gängigen Wortpaare wird ein zusätzlicher Index mit einer Liste von Seiten und deren vorläufiger Relevanz für die Abfrage gebildet. Das heißt, wir übertragen einen Teil der Arbeit von Stufe L0 in die Indizierungsstufe und speichern erneut.
Infolgedessen konnten wir aufgrund einer Änderung der Architektur und der Umverteilung der Lasten neuronale Netze nicht nur im L3-Stadium, sondern auch für L2 und L1 verwenden. Die Möglichkeit, einen Vektor im Voraus und mit weniger strengen Leistungsanforderungen zu bilden, ermöglichte es uns außerdem, nicht nur den Seitentitel, sondern auch dessen Text zu verwenden.
Mehr ist mehr. Im Laufe der Zeit begannen wir, neuronale Netze in der frühesten Phase des Rankings zu verwenden. Wir lehren neuronale Netze, implizite Muster in Wortreihenfolge und ihre relativen Positionen zu identifizieren. Und sogar um die semantische Ähnlichkeit von Texten in verschiedenen Sprachen aufzudecken. Jeder dieser Bereiche wird in einem separaten Artikel behandelt, und wir werden versuchen, in naher Zukunft mit ihnen zurückzukehren.
Heute haben wir uns erneut daran erinnert, wie Suchmaschinen lernen, die Antwort unter den Bedingungen einer vagen Abfrage und mangelnder Information zu finden. Die Suche nach Filmen anhand ihrer Beschreibung ist nicht nur ein Sonderfall solcher Anfragen, sondern auch ein großartiges
Forschungsthema . Daraus lernen Sie: Woran erinnern sich die Menschen im Kino am meisten, mit welchen unterschiedlichen Genres und Kinematographen verschiedener Länder verbunden sind, welche Handlungsbewegungen einen besonderen Eindruck hinterlassen.