Transformers4Rec: NLP-Power für moderne Empfehlungssysteme
Einführung
Da der digitale Handel und der Konsum von Online-Inhalten weiter stark zunehmen, ist die Nachfrage nach effektiven, personalisierten Empfehlungs-Engines höher denn je. Käufer und Streamer erwarten gleichermaßen maßgeschneiderte Empfehlungen, ob sie nach Produkten, Filmen oder Musik suchen. Herkömmliche Empfehlungssysteme, die auf kollaborativem oder inhaltsbasiertem Filtern beruhen, verwenden jedoch statische historische Daten und haben oft Schwierigkeiten, sich an veränderte Nutzerpräferenzen anzupassen. Um diese Einschränkungen zu adressieren, sind Empfehlungssysteme, die dynamische KI-Modelle nutzen, welche sich entwickelndes Nutzerverhalten erfassen, unverzichtbar und beliebt geworden.
Bei einem kürzlich von Zilliz veranstalteten Unstructured Data Meetup teilte Kunal Sonalkar, Data Scientist bei Nordstrom, Einblicke in die Nutzung von Transformers4Rec, um sequenzielle und sitzungsbasierte Empfehlungen zu ermöglichen, die den sich wandelnden Bedürfnissen der Nutzer besser gerecht werden. Dieser Blogbeitrag hebt die wichtigsten Erkenntnisse aus Kunals Präsentation hervor, ergänzt um unsere Perspektive auf die Zukunft von Empfehlungssystemen. Weitere Details finden Sie auch in Kunals vollständigem Vortrag auf YouTube.
Was ist Transformers4Rec?
Transformers4Rec ist eine leistungsstarke und flexible Bibliothek, die für die Erstellung sequenzieller und sitzungsbasierter Empfehlungssysteme mit PyTorch entwickelt wurde. Durch die Integration mit Transformers, einem der beliebtesten Frameworks in der Verarbeitung natürlicher Sprache (NLP), schlägt Transformers4Rec eine Brücke zwischen NLP und Empfehlungssystemen.
Die folgende Abbildung zeigt die Verwendung der transformers4Rec-Bibliothek in einem Empfehlungssystem. Die Eingabedaten für die Bibliothek sind eine Sequenz von Nutzerinteraktionen – etwa Artikel, die ein Nutzer während einer Sitzung ansieht oder in den Warenkorb legt. Transformers4Rec verarbeitet diese Interaktionen, um intelligente Vorhersagen darüber zu treffen, was der Nutzer als Nächstes wünschen könnte. Stellen Sie sich beispielsweise vor, ein Kunde stöbert in einer Online-Buchhandlung. Zuerst sieht er sich mehrere Science-Fiction-Romane an, legt einen davon in den Warenkorb und besucht später einige verwandte Autorenseiten. Transformers4Rec analysiert diese Abfolge von Aktionen und sagt voraus, dass der Kunde an einem weiteren beliebten Science-Fiction-Titel oder einem verwandten Fantasy-Roman interessiert sein könnte.
Figure- How Transformers4Rec works in a recommender system .png
Abbildung: Wie Transformers4Rec in einem Empfehlungssystem funktioniert
Kunal hebt hervor, dass es für den Aufbau eines effektiven Empfehlungssystems entscheidend ist, die Kundenabsicht zu verstehen – etwa die Art des Produkts, an dem sie interessiert sind, und ob sie preissensibel sind –, um Empfehlungen entsprechend anzupassen.
Beispielsweise können zwei Kunden, die nach "shoes" suchen, basierend auf ihren früheren Interaktionen und Präferenzen, wie Budget oder Markenpräferenz, unterschiedliche Empfehlungen erhalten.
shoes.png
Transformers4Rec-Architektur
Wie bereits erwähnt, ist die Architektur von Transformers4Rec darauf ausgelegt, Transformer-Modelle für sequenzielle und sitzungsbasierte Empfehlungen anzupassen, indem Nutzerinteraktionsdaten auf strukturierte Weise verarbeitet werden. Ihre Architektur umfasst vier Hauptkomponenten, die zusammenarbeiten, um Vorhersagen zu treffen: Feature Aggregation, Sequence Masking, Sequence Processing und Prediction Head.
Figure- Transformers4Rec Architecture .png
Abbildung: Transformers4Rec-Architektur
Merkmalsaggregation
Die Merkmalsaggregation-Komponente sammelt Daten über Benutzerinteraktionen – sowohl kontinuierliche als auch kategoriale Variablen –, um ein umfassendes Profil für Empfehlungen zu erstellen. In einem E-Commerce-Empfehlungssystem könnten kategoriale Merkmale beispielsweise Attribute wie Marke und Produkttyp umfassen, während kontinuierliche Merkmale Preis, Rabattquoten oder aktuelle Interaktionen erfassen könnten (z. B. die Anzahl der Klicks auf ein Produkt in den letzten 24 Stunden).
Abbildung- Merkmalsaggregation in Transformers4Rec.png
Abbildung: Merkmalsaggregation in Transformers4Rec
Bevor diese Sequenzen in einen Transformer-Block eingespeist werden, müssen die Interaktionsdaten in ein standardisiertes Format namens Vektoreinbettungen (numerische Darstellungen von Interaktionsdaten in einem hochdimensionalen Raum) vorverarbeitet werden. Eingaben können nach Benutzer-ID oder Sitzungs-ID organisiert werden, wobei die Sequenz der Interaktionen zu einer einzigen Vektordarstellung aggregiert wird, die als „Interaktionseinbettung“ bezeichnet wird. Diese Einbettung enthält Kontextinformationen über Benutzerinteraktionen, wie die Art der Benutzeraktionen, beteiligte Elemente und die Reihenfolge der Interaktionen, und kann in einer Vektordatenbank gespeichert werden, um effizientes Abrufen und semantische Suche zu ermöglichen. Eine robuste Vektordatenbank wie Milvus oder ihr verwalteter Dienst Zilliz Cloud, der sich gut in PyTorch integrieren lässt, kann diesen Prozess optimieren. Zusätzlich enthält Transformers4Rec ein NVTabular-Modul, um Rohdaten einfach in das erforderliche Format umzuwandeln und die Datenvorbereitung besser handhabbar zu machen.
Sequenzmaskierung
Die Sequenzmaskierung-Komponente in Transformers4Rec wendet Masken auf Benutzerinteraktionen an, um Datenlecks zu verhindern und die Sequenzreihenfolge beizubehalten, sodass sichergestellt wird, dass das Modell die zeitliche Abfolge der Ereignisse respektiert. Wenn beispielsweise das nächste Element eines Benutzers vorhergesagt wird, blendet dieses Modul alle zukünftigen Aktionen aus, sodass das Modell auf kausale, schrittweise Weise lernen kann.
Verschiedene Arten der Sequenzmaskierung in Transformers4Rec steuern, was das Modell während des Trainings oder der Inferenz „sieht“, wodurch es aussagekräftige Muster im Benutzerverhalten erfassen kann und seine Fähigkeit verbessert wird, die nächste Interaktion vorherzusagen. Transformers4Rec bietet mehrere Optionen für die Sequenzmaskierung:
Causal Language Modeling (CLM): Diese Technik maskiert zukünftige Elemente in einer Sequenz und trainiert das Modell, jedes Element ausschließlich auf Grundlage vorheriger Elemente vorherzusagen. CLM eignet sich ideal für sequenzielle Empfehlungen, bei denen die Reihenfolge der Interaktionen entscheidend ist.
Masked Language Modeling (MLM): Bei MLM werden bestimmte Positionen in der Sequenz zufällig maskiert, und das Modell lernt, die verborgenen Elemente mithilfe des umgebenden Kontexts vorherzusagen. Diese Technik hilft dem Modell, Beziehungen zwischen Elementen zu verstehen, ohne von einer strikten Reihenfolge abhängig zu sein.
Random Token Detection (RTD): RTD ersetzt ein zufälliges Element in der Sequenz durch ein nicht zugehöriges, und das Modell lernt, dieses falsche Element zu erkennen. Diese Methode lehrt das Modell, echte Muster von zufälligem Rauschen oder Anomalien zu unterscheiden.
Permutation Language Modeling (PLM): Hier werden Elemente in der Sequenz gemischt, und das Modell wird darauf trainiert, Elemente in der neuen, permutierten Reihenfolge vorherzusagen. PLM fördert Flexibilität, indem es dem Modell hilft, Muster in beliebiger Reihenfolge zu erkennen.
Abbildung- Unterschied zwischen Casual LM und Masked LM während der Sequenzmaskierung.png
Abbildung: Unterschied zwischen Casual LM und Masked LM während der Sequenzmaskierung
Üblicherweise werden 20–30 % der Positionseinbettungen vor dem Training maskiert. Die Maskierungswahrscheinlichkeit spielt ebenfalls eine Rolle für die Robustheit des Empfehlungssystems.
Diese Maskierungstechniken ermöglichen es dem Modell, auf verschiedene Weise aus Benutzerinteraktionen zu lernen, wodurch seine Fähigkeit verbessert wird, genaue, kontextbewusste Empfehlungen zu geben.
Sequenzverarbeitung
Die Komponente Sequenzverarbeitung führt Eingabemerkmale Transformer-Modellen zu, um maskierte Elemente oder Positionen in der Interaktionssequenz eines Benutzers vorherzusagen. Transformers4Rec unterstützt verschiedene Architekturen für die Sequenzverarbeitung, darunter XLNet, GPT-2 und LSTM, sodass Benutzer das am besten geeignete Modell für ihr Empfehlungssystem auswählen können.
Die Einbettungen der Interaktionsvektoren werden an den Transformer-Block übergeben, wie im folgenden Codeausschnitt dargestellt. Benutzer können die Architektur des Transformers konfigurieren, indem sie Parameter wie die Anzahl der Schichten und die Sequenzlänge angeben. Ein sequenzieller Block in PyTorch kann erstellt werden, indem die aggregierten Eingaben übergeben, Maskierung angewendet und die gewünschte Modellkonfiguration aktiviert wird, was eine flexible Einrichtung für maßgeschneiderte Empfehlungsaufgaben ermöglicht.
Sequenzverarbeitung in Pytorch .png
Abb.) _Sequenzverarbeitung in Pytorch_
Prediction Head
Der Prediction Head ist das abschließende Modul im Transformers4Rec-Framework, in dem Ausgaben des Transformer-Modells verwendet werden, um umsetzbare Empfehlungen zu generieren.
Abbildung- Ausgaben des Transformer-Modells werden verwendet, um umsetzbare Empfehlungen zu generieren. .png
Abbildung: Ausgaben des Transformer-Modells werden verwendet, um umsetzbare Empfehlungen zu generieren.
Dieses Modul unterstützt verschiedene auf Geschäftsanforderungen zugeschnittene Anwendungsfälle, darunter:
Vorhersage des nächsten Elements: Diese Option sagt das nächste Element voraus, mit dem ein Benutzer wahrscheinlich interagieren wird, basierend auf seinen vorherigen Aktionen, und hilft so, zeitnahe und relevante Empfehlungen bereitzustellen.
Binäre Klassifikation: Hier berechnet das Modell die Wahrscheinlichkeit, dass ein Benutzer auf ein bestimmtes Element klickt. Dies ist wertvoll für die Vorhersage der Klickrate (CTR), da es dabei hilft zu bestimmen, welche Elemente Benutzer am ehesten ansprechen, und somit die Optimierung von Layout und Inhalten unterstützt.
Regression: Regressionsaufgaben ermöglichen die Vorhersage kontinuierlicher Werte, wie etwa der Zeit, die ein Benutzer möglicherweise mit einem Element verbringt, der erwarteten Anzahl von Interaktionen oder sogar eines geschätzten Kaufbetrags.
Das folgende Diagramm veranschaulicht die End-to-End-Produktionspipeline, einschließlich aller vier Komponenten—Feature Aggregation, Sequenzmaskierung, Sequenzverarbeitung und Prediction Head—die zusammenarbeiten, um genaue und kontextbewusste Empfehlungen zu liefern.
Abbildung- End-to-End-Pipeline eines mit Transformers4Rec erstellten Empfehlungssystems.png
Abbildung: End-to-End-Pipeline eines mit Transformers4Rec erstellten Empfehlungssystems
Evaluation und Herausforderungen bei der Verwendung von Transformers4Rec
Der Aufbau eines Empfehlungssystems mit Transformers4Rec erfordert sowohl eine effektive Evaluation als auch eine strategische Planung, um Skalierbarkeits- und Wartungsherausforderungen zu bewältigen.
Systemevaluation
Die Effektivität eines Empfehlungssystems hängt weitgehend davon ab, wie genau es die Bedürfnisse der Benutzer erfüllt. Für Transformers4Rec umfassen gängige Evaluationsmetriken Precision und Recall, die messen, wie gut die Top-‘N’-Empfehlungen des Systems mit den Benutzerpräferenzen übereinstimmen. Zusätzlich werden auch Ranking-Metriken wie Mean Average Precision (MAP) und Normalized Discounted Cumulative Gain (NDCG) verwendet, um die Relevanz und Reihenfolge der empfohlenen Elemente zu bewerten.
Herausforderungen
Die Skalierung eines Empfehlungssystems, das auf Transformers4Rec basiert, ist mit erheblichen Rechenkosten verbunden, insbesondere bei der Bereitstellung in großem Maßstab mit GPU-Ressourcen. Der Aufbau und die Wartung eines solchen Systems erfordern außerdem eine umfangreiche Infrastruktur, die alles von der Datenerfassung und -speicherung bis hin zur Modellbereitstellung und Echtzeit-Inferenz abdeckt.
Die Wahl der richtigen Infrastruktur ist entscheidend, um ein System zu schaffen, das relevante Empfehlungen schnell abrufen kann. Beispielsweise ermöglicht die Verwendung einer Vektordatenbank wie Milvus schnelle Ähnlichkeitssuchen und eine effiziente Speicherung von Vektoreinbettungen, die sich gut in die Empfehlungspipeline integrieren lassen.
Eine weitere wichtige Herausforderung ist der Umgang mit neuen oder sich häufig ändernden Produktkatalogen. Transformers4Rec muss in der Lage sein, genaue Empfehlungen für diese neuen Artikel zu liefern, selbst bei begrenzten historischen Daten. Dies erfordert Anpassungsfähigkeit sowohl im Modell als auch in der Dateninfrastruktur, um Empfehlungen auf Basis frischer Kontexte zu aktualisieren.
Zusammenfassung
In diesem Blog haben wir erörtert, wie Transformers4Rec von NLP inspirierte Techniken nutzt, um dynamische, personalisierte Empfehlungssysteme zu erstellen. Mit Komponenten wie Feature Aggregation, Sequence Masking, Sequence Processing und dem Prediction Head erfasst das Framework komplexe Nutzermuster, um relevante Empfehlungen in Echtzeit bereitzustellen. Wichtige Metriken, darunter Precision, Recall, MAP und NDCG, helfen dabei, die Effektivität des Systems zu bewerten und sicherzustellen, dass Empfehlungen den Bedürfnissen der Nutzer entsprechen.
Wir haben außerdem die Herausforderungen bei der Skalierung von Transformers4Rec besprochen, insbesondere im Hinblick auf Infrastrukturkosten und Speicheranforderungen, bei denen Tools wie die Milvus Vektordatenbank eine effiziente Vektorspeicherung und -abfrage unterstützen. Das Feinabstimmen von Parametern wie Vektordimensionen und Sequenzlänge ist eine wichtige Technik, die die Modellleistung optimiert und Transformers4Rec zu einer flexiblen und leistungsstarken Lösung für moderne Empfehlungssysteme macht.
Weiterführende Literatur
Verständnis der Architektur und Kernkonzepte von Transformer-Modellen
Effiziente Vektorsuche in RecSys mit Milvus und NVIDIA Merlin
Transformation von Anzeigenempfehlungen: SmartNews' Reise mit Milvus
Fortschrittliche Empfehlungsmaschinen mit Milvus' neuer Range Search erschließen
Eine Filmempfehlungsmaschine mit Milvus und Python erstellen
Weiterlesen

VDBBench Adds Cost-Aware Benchmarking for Vector Databases
Compare Zilliz Cloud, Pinecone, and turbopuffer with VDBBench cost-aware vector database benchmarks across latency, freshness, multitenancy, and cold starts.

Expanding Our Global Reach: Zilliz Cloud Launches in Azure Central India
Zilliz Cloud expands to Azure Central India. This new region helps customers meet compliance, reduce latency, and optimize cloud costs when building AI applications.

Vector Databases vs. Key-Value Databases
Use a vector database for AI-powered similarity search; use a key-value database for high-throughput, low-latency simple data lookups.


