🚀 Testen Sie Zilliz Cloud, die vollständig verwaltete Milvus, kostenlos – erleben Sie 10x schnellere Leistung! Jetzt testen>>

milvus-logo
LFAI
  • Home
  • Blog
  • Empfehlen von Inhalten mithilfe der semantischen Vektorsuche

Empfehlen von Inhalten mithilfe der semantischen Vektorsuche

  • Scenarios
June 08, 2021
milvus

Da 71 % der Amerikaner ihre Nachrichtenempfehlungen von sozialen Plattformen beziehen, sind personalisierte Inhalte schnell zu einer Art und Weise geworden, wie neue Medien entdeckt werden. Ganz gleich, ob die Nutzer nach bestimmten Themen suchen oder mit empfohlenen Inhalten interagieren, alles, was sie sehen, wird von Algorithmen optimiert, um die Klickraten (CTR), das Engagement und die Relevanz zu verbessern. Sohu ist eine an der NASDAQ notierte chinesische Online-Medien-, Video-, Such- und Spielegruppe. Es nutzte Milvus, eine von Zilliz entwickelte Open-Source-Vektordatenbank, um eine semantische Vektorsuchmaschine in seiner Nachrichten-App zu entwickeln. In diesem Artikel wird erläutert, wie das Unternehmen mithilfe von Nutzerprofilen die personalisierten Inhaltsempfehlungen im Laufe der Zeit verfeinert und so die Nutzererfahrung und das Engagement verbessert hat.

Die Benutzerprofile von Sohu News werden aus dem Browserverlauf erstellt und angepasst, wenn die Benutzer nach Nachrichteninhalten suchen und mit diesen interagieren. Das Empfehlungssystem von Sohu nutzt die semantische Vektorsuche, um relevante Nachrichtenartikel zu finden. Das System ermittelt eine Reihe von Schlagwörtern, von denen erwartet wird, dass sie für jeden Nutzer aufgrund seines Surfverhaltens von Interesse sind. Es sucht dann schnell nach relevanten Artikeln und sortiert die Ergebnisse nach Beliebtheit (gemessen an der durchschnittlichen CTR), bevor es sie den Nutzern anbietet.

Allein die New York Times veröffentlicht 230 Artikel pro Tag, was einen Eindruck von der Menge neuer Inhalte vermittelt, die ein effektives Empfehlungssystem verarbeiten können muss. Die Aufnahme großer Mengen von Nachrichten erfordert eine Ähnlichkeitssuche im Millisekundenbereich und die stündliche Zuordnung von Tags zu neuen Inhalten. Sohu hat sich für Milvus entschieden, weil es riesige Datenmengen effizient und genau verarbeitet, den Speicherverbrauch während der Suche reduziert und Hochleistungsimplementierungen unterstützt.

Verstehen des Arbeitsablaufs eines Nachrichtenempfehlungssystems

Die auf semantischer Vektorsuche basierende Inhaltsempfehlung von Sohu basiert auf dem Deep Structured Semantic Model (DSSM), das zwei neuronale Netze verwendet, um Benutzeranfragen und Nachrichtenartikel als Vektoren darzustellen. Das Modell berechnet die Kosinus-Ähnlichkeit der beiden semantischen Vektoren, dann wird die ähnlichste Gruppe von Nachrichten an den Empfehlungskandidaten-Pool gesendet. Anschließend werden die Nachrichtenartikel auf der Grundlage ihrer geschätzten CTR in eine Rangfolge gebracht, und die Artikel mit der höchsten vorhergesagten Klickrate werden den Nutzern angezeigt.

Kodierung von Nachrichtenartikeln in semantische Vektoren mit BERT-as-service

Um Nachrichtenartikel in semantische Vektoren zu kodieren, verwendet das System das Tool BERT-as-service. Wenn die Wortzahl eines Inhalts bei Verwendung dieses Modells 512 überschreitet, kommt es während des Einbettungsprozesses zu Informationsverlusten. Um dies zu vermeiden, extrahiert das System zunächst eine Zusammenfassung und kodiert sie in einen 768-dimensionalen semantischen Vektor. Dann werden die beiden relevantesten Themen aus jedem Nachrichtenartikel extrahiert und die entsprechenden vortrainierten Themenvektoren (200 Dimensionen) anhand der Themen-ID identifiziert. Anschließend werden die Themenvektoren in den 768-dimensionalen semantischen Vektor, der aus der Artikelzusammenfassung extrahiert wurde, eingefügt, wodurch ein 968-dimensionaler semantischer Vektor entsteht.

Über Kafta kommen ständig neue Inhalte herein, die in semantische Vektoren umgewandelt werden, bevor sie in die Milvus-Datenbank eingefügt werden.

Extrahieren semantisch ähnlicher Tags aus Nutzerprofilen mit BERT-as-service

Das andere neuronale Netz des Modells ist der semantische Vektor des Nutzers. Semantisch ähnliche Tags (z. B. Coronavirus, Covid, COVID-19, Pandemie, neuartiger Stamm, Lungenentzündung) werden aus Nutzerprofilen auf der Grundlage von Interessen, Suchanfragen und Browserverlauf extrahiert. Die Liste der erfassten Tags wird nach Gewicht sortiert, und die 200 wichtigsten werden in verschiedene semantische Gruppen unterteilt. Permutationen der Tags innerhalb jeder semantischen Gruppe werden verwendet, um neue Tag-Phrasen zu generieren, die dann durch BERT-as-service in semantische Vektoren kodiert werden

Für jedes Benutzerprofil gibt es zu den Tag-Phrasen eine Reihe von Themen, die mit einer Gewichtung versehen sind, die das Interessenniveau des Benutzers angibt. Die beiden wichtigsten Themen aus allen relevanten Themen werden ausgewählt und vom Modell für maschinelles Lernen (ML) kodiert, um in den entsprechenden semantischen Tag-Vektor eingefügt zu werden, wodurch ein 968-dimensionaler semantischer Vektor für den Benutzer entsteht. Selbst wenn das System für verschiedene Nutzer dieselben Tags generiert, wird durch die unterschiedliche Gewichtung der Tags und der zugehörigen Themen sowie die explizite Varianz zwischen den Themenvektoren der einzelnen Nutzer sichergestellt, dass die Empfehlungen einzigartig sind.

Das System ist in der Lage, personalisierte Nachrichtenempfehlungen zu geben, indem es die Kosinusähnlichkeit der semantischen Vektoren berechnet, die sowohl aus den Benutzerprofilen als auch aus den Nachrichtenartikeln extrahiert wurden.

Sohu01.jpg Sohu01.jpg

Berechnen neuer semantischer Benutzerprofilvektoren und Einfügen in Milvus

Die Vektoren der semantischen Nutzerprofile werden täglich berechnet, wobei die Daten des vorangegangenen 24-Stunden-Zeitraums am folgenden Abend verarbeitet werden. Die Vektoren werden einzeln in Milvus eingefügt und durchlaufen den Abfrageprozess, um den Benutzern relevante Nachrichtenergebnisse zu liefern. Nachrichteninhalte sind von Natur aus aktuell, so dass die Berechnungen stündlich durchgeführt werden müssen, um einen aktuellen Newsfeed zu generieren, der Inhalte enthält, die eine hohe prognostizierte Klickrate haben und für die Nutzer relevant sind. Die Nachrichteninhalte werden außerdem nach Datum sortiert, und alte Nachrichten werden täglich gelöscht.

Verringerung der Zeit für die semantische Vektorextraktion von Tagen auf Stunden

Für das Abrufen von Inhalten mit Hilfe semantischer Vektoren müssen täglich zig Millionen von Tag-Phrasen in semantische Vektoren umgewandelt werden. Dies ist ein zeitaufwändiger Prozess, der selbst bei Verwendung von Grafikprozessoren (GPU), die diese Art der Berechnung beschleunigen, Tage in Anspruch nehmen würde. Um dieses technische Problem zu überwinden, müssen die semantischen Vektoren aus der vorherigen Einbettung so optimiert werden, dass beim Auftauchen ähnlicher Tag-Phrasen die entsprechenden semantischen Vektoren direkt abgerufen werden.

Der semantische Vektor des bestehenden Satzes von Tag-Phrasen wird gespeichert, und ein neuer Satz von Tag-Phrasen, der täglich erzeugt wird, wird in MinHash-Vektoren kodiert. Die Jaccard-Distanz wird verwendet, um die Ähnlichkeit zwischen dem MinHash-Vektor der neuen Tag-Phrase und dem gespeicherten Tag-Phrasen-Vektor zu berechnen. Wenn der Jaccard-Abstand einen vordefinierten Schwellenwert überschreitet, werden die beiden Sätze als ähnlich betrachtet. Wenn der Ähnlichkeitsschwellenwert erreicht ist, können neue Phrasen die semantischen Informationen aus früheren Einbettungen nutzen. Tests haben ergeben, dass ein Abstand von über 0,8 in den meisten Fällen eine ausreichende Genauigkeit gewährleistet.

Durch diesen Prozess wird die tägliche Konvertierung der oben erwähnten zig Millionen Vektoren von Tagen auf etwa zwei Stunden reduziert. Obwohl andere Methoden zur Speicherung semantischer Vektoren je nach den spezifischen Projektanforderungen geeigneter sein könnten, ist die Berechnung der Ähnlichkeit zwischen zwei Tag-Phrasen unter Verwendung der Jaccard-Distanz in einer Milvus-Datenbank nach wie vor eine effiziente und genaue Methode für eine Vielzahl von Szenarien.

Sohu02.jpg Sohu02.jpg

Überwindung der "schlechten Fälle" bei der Klassifizierung von Kurztexten

Bei der Klassifizierung von Nachrichtentexten stehen für kurze Nachrichtenartikel weniger Merkmale zur Verfügung als für längere. Aus diesem Grund versagen Klassifizierungsalgorithmen, wenn Inhalte unterschiedlicher Länge durch denselben Klassifikator laufen. Milvus hilft bei der Lösung dieses Problems, indem es nach mehreren Informationen zur Klassifizierung von Langtexten mit ähnlicher Semantik und zuverlässigen Werten sucht und dann einen Abstimmungsmechanismus verwendet, um die Klassifizierung von Kurztexten zu ändern.

Identifizierung und Beseitigung falsch klassifizierter Kurztexte

Die genaue Klassifizierung jedes Nachrichtenartikels ist entscheidend für die Bereitstellung nützlicher Inhaltsempfehlungen. Da kurze Nachrichtenartikel weniger Merkmale aufweisen, führt die Anwendung desselben Klassifikators für Nachrichten unterschiedlicher Länge zu einer höheren Fehlerquote bei der Klassifizierung von Kurztexten. Daher werden BERT-as-service und Milvus eingesetzt, um schnell falsch klassifizierte Kurztexte in Stapeln zu identifizieren, sie korrekt neu zu klassifizieren und dann Stapel von Daten als Korpus für das Training gegen dieses Problem zu verwenden.

BERT-as-service wird verwendet, um eine Gesamtzahl von fünf Millionen langen Nachrichtenartikeln mit einer Klassifikatorbewertung von mehr als 0,9 in semantische Vektoren zu kodieren. Nach dem Einfügen der langen Textartikel in Milvus werden die Kurznachrichten in semantische Vektoren kodiert. Jeder semantische Kurznachrichtenvektor wird zur Abfrage der Milvus-Datenbank verwendet, um die 20 besten Langnachrichtenartikel mit der höchsten Kosinus-Ähnlichkeit zur Ziel-Kurznachricht zu erhalten. Wenn 18 der 20 semantisch ähnlichsten Langnachrichten in der gleichen Klassifizierung erscheinen und diese sich von der der abgefragten Kurznachrichten unterscheidet, wird die Klassifizierung der Kurznachrichten als falsch angesehen und muss an die 18 Langnachrichtenartikel angepasst werden.

Mit diesem Verfahren lassen sich fehlerhafte Klassifizierungen von Kurznachrichten schnell erkennen und korrigieren. Stichprobenstatistiken zeigen, dass die Gesamtgenauigkeit der Textklassifizierung nach der Korrektur der Kurztextklassifizierungen über 95 % liegt. Indem die Klassifizierung von Langtexten mit hoher Zuverlässigkeit zur Korrektur der Klassifizierung von Kurztexten genutzt wird, wird die Mehrheit der fehlerhaften Klassifizierungen in kurzer Zeit korrigiert. Dies bietet auch einen guten Korpus für das Training eines Kurztextklassifikators.

![Sohu03.jpg](https://assets.zilliz.com/Sohu03_a43074cf5f.jpg "Flussdiagramm der Entdeckung von "schlechten Fällen" bei der Kurztextklassifizierung.")

Milvus kann Echtzeitempfehlungen für Nachrichteninhalte und mehr liefern

Milvus hat die Echtzeitleistung des Nachrichtenempfehlungssystems von Sohu erheblich verbessert und auch die Effizienz der Identifizierung von falsch klassifiziertem Kurztext erhöht. Wenn Sie mehr über Milvus und seine verschiedenen Anwendungen erfahren möchten:

  • Lesen Sie unseren Blog.
  • Interagieren Sie mit unserer Open-Source-Community auf Slack.
  • Nutzen Sie die beliebteste Vektordatenbank der Welt auf GitHub oder tragen Sie zu ihr bei.
  • Testen und implementieren Sie KI-Anwendungen schnell mit unserem neuen Bootcamp.

Like the article? Spread the word

Weiterlesen