1
 
 
Profil
In deinem persönlichen Profilbereich kannst du den Status deiner Bewerbung einsehen, unvollständige Bewerbungen zwischenspeichern und aktuelle News und Events einsehen
04. November 2025

Learning to Rank – To the Moon and Back (-propagation): Wie Deep Neural Networks lernen, was du liebst

Einführung: Learning to Rank bei OTTO

Stell dir vor, du suchst etwas in einem Onlineshop und findest sofort genau das, was du brauchst. Kein Scrollen, keine Frustration. Nur Volltreffer.

Was herausfordernd klingt, ist die tägliche Mission unserer Suchteams. Mithilfe von Machine Learning lernen wir aus Millionen von Nutzerinteraktionen, was unsere Nutzer*innen anklicken, was sie kaufen und was sie lieben.

Um die Rankingfunktion und Suchrelevanz bei OTTO zu optimieren, setzen wir auf Learning to Rank (LTR)– ein Verfahren zur Ranking-Optimierung. Im Gegensatz zu regelbasierten Algorithmen lernen LTR-Modelle die Relevanz von Produkten für eine Suchanfrage, indem sie historische Nutzerinteraktionen analysieren. Die grundlegende Funktionsweise von LTR kannst du in unseren älteren Blogbeiträgen erfahren:

Unser bisheriges LTR-Modell war ein Gradient Boosted Decision Tree (GBDT). Da jedoch aktuelle E-Commerce-Forschung zunehmend aufzeigt, dass Deep Neural Networks (DNNs) GBDT-basierte Modelle übertreffen können, sahen wir eine Chance, unsere Suchrelevanz weiter zu verbessern. Deshalb sind wir von unserem bewährten GBDT-Modell auf ein Deep-Learning-basiertes Relevanzmodell umgestiegen.

Warum Deep Learning für Learning to Rank?

Nach zahlreichen Iterationen beim Feature Engineering unseres GBDT-Rankingmodells hatten wir einen Punkt erreicht, an dem jede Optimierung unsere Tech-Architektur komplexer machte, während die Performance-Gewinne stetig abnahmen. Um dieses Plateau zu überwinden, verlagerten wir den Fokus von manuellem Feature Engineering auf die Modellarchitektur.

Deep Neural Networks bieten einen flexiblen und skalierbaren Rahmen für Innovationen. Das liegt an der flexiblen Struktur, mit der diese Relevanzmodelle komplexe Beziehung abbilden können und ihrer Fähigkeit, mit massiven Datenmengen effizient umzugehen. Dies reduziert den Bedarf an manuellem Feature Engineering erheblich, da relevante Merkmale direkt aus den Daten gelernt werden können.

Data Science im Fokus

In diesem Beitrag stehen die Data-Science-Innovationen hinter unseren LTR-Modellen im Mittelpunkt. Wenn du mehr über den Software-Engineering-Teil erfahren möchtest, freue dich auf unseren zweiten Blogpost dieser Reise! Dort erfährst du, wie wir Clojure einsetzen, um skalierbare Big-Data-Pipelines aufzubauen und was das Ganze mit Raumfahrt zu tun hat.

Zwei Männer, die sich anschauen und der Spruch "We need to go deeper"
Zwei Männer, die sich anschauen und der Spruch "We need to go deeper"

Du willst noch tiefer in die technischen Feinheiten unserer LTR-Architektur eintauchen? Unser umfassendes Paper liefert alle Details, auf denen dieser Blogpost aufbaut.

Unsere LTR-Trainingsdaten: Die Basis des Models

Im Kontext von Learning to Rank ermöglichen Daten den Modellen, die Relevanz von Produkten für eine bestimmte Anfrage zu identifizieren und die Reihenfolge der Suchergebnisse zu optimieren. Unser LTR-Modell wird auf anonymisierten Nutzerinteraktions-Logs trainiert und nutzt dabei drei Hauptkategorien von Daten:

  • Suchanfrage als Kontext: Die Suchanfrage dient als primäres Kontextsignal und repräsentiert die Nutzerintention. Weitere Kontextsignale wie Nutzerverhalten oder Gerätetyp können ebenfalls einbezogen werden.
  • Produkteigenschaften: Numerische (z. B. Preis), kategoriale (z. B. Marke) und textuelle (z.B. Produktbeschreibung) Attribute der Produkte werden genutzt, um deren Relevanz für die Suchanfrage zu bewerten. Diese Features sind entscheidend, damit das Modell Produkte vergleichen und effektiv ranken kann.
  • Klicks und Bestellungen: Binäre Signale, die angeben, ob ein Produkt angeklickt oder gekauft wurde, dienen als implizite Relevanz-Labels. Diese Interaktionen ermöglichen es dem Modell, Nutzerpräferenzen abzuleiten und Relevanz-Scores für Produkte zu berechnen. So entsteht ein Ranking, das den Erwartungen der Nutzer*innen entspricht.

Diese Daten bilden die Grundlage für alle Machine Learning Modelle, denn sie liefern den nötigen Input für Rankingfunktionen, damit die Modelle Muster erkennen und auf neue Szenarien generalisieren können.

Two-Tower-Architektur: das Herz unseres Learning-to-Rank-Modells

Nach umfangreichen Experimenten haben wir uns für eine Two-Tower-Deep-Neural-Network-Architektur entschieden. Dieser Ansatz vereint Performance und Skalierbarkeit. In zentralen Kennzahlen wie Klicks und Umsatz übertraf dieser Ansatz unser vorheriges Gradient Boosted Decision Tree-Modell sowohl in Offline-Experimenten als auch in einem Online-A/B-Test.

Das Two-Tower-DNN besteht aus zwei neuronalen Netzen, die unterschiedliche Inputdaten verarbeiten und ihre Outputs kombinieren, um einen Relevanz-Score für jedes Suchanfrage-Produkt-Paar zu berechnen.

  • Query-Tower: Der Query-Tower verarbeitet die Suchanfrage, indem er deren Tokens mithilfe eines Embedding-Layers in Vektoren transformiert. Die Token-Embeddings werden aufsummiert, um einen einzelnen Dense-Vector zu erzeugen, der den Kontext der Anfrage repräsentiert. Weitere Signale wie Nutzerverhalten oder Gerätetyp können hinzugefügt werden, um die Kontextrepräsentation anzureichern.
  • Product-Tower: Der Product-Tower verarbeitet Produktattribute wie numerische Attribute (z. B. Preis), kategorische Attribute (z. B. Marke) und textuelle Attribute (z. B. Produkttitel). Numerische Features werden normalisiert, kategoriale Features mithilfe eines Embedding-Layers in Dense-Vectors umgewandelt, und textuelle Features ähnlich wie die Suchanfrage verarbeitet. Diese transformierten Features durchlaufen ein Deep Neural Network, das einen Dense-Vector für ein Produkt erzeugt.

Die vom Query-Tower und Product-Tower erzeugten Dense-Vectors werden über ein Skalarprodukt kombiniert. Das Ergebnis ist ein Relevanz-Score, der quantifiziert, wie relevant ein Produkt für die jeweilige Suchanfrage ist. Im nächsten Abschnitt tauchen wir tief in die Modellarchitektur ein.

Architektur unseres Learning-to-Rank-Modells im Detail

Die folgende Abbildung zeigt die Two-Tower-Architektur unseres LTR-Modells. Wir führen durch alle Schritte des Modelltrainings, vom Vorbereiten der Rohdaten bis zur Berechnung des Trainings-Loss.

Grafische Darstellung einer Two-Tower Learning-to-Rank Architektur
Grafische Darstellung einer Two-Tower Learning-to-Rank Architektur

1) Feature Engineering
Unsere Daten werden mit drei verschiedenen Ansätzen prozessiert, die jeweils vom Datentyp abhängen:

  • Numerische Features werden normalisiert, z.B. mit Z-Standardisierung für Verteilungen mit leichten Rändern (light-tailed) oder Power-Law-Normalisierung für rechtsschiefe Verteilungen, um eine konsistente Skalierung sicherzustellen.
  • Kategorische Features werden in Indizes umgewandelt, die in den folgenden Schritten als Input für Embedding-Layer dienen.
  • Textuelle Features werden als Bag-of-Words-Vektoren dargestellt, die das Vorkommen spezifischer Wörter in Attributen wie Produkttiteln oder Beschreibungen erfassen.

2.1a) Query-Embedding
Der Query-Tower verarbeitet die Suchanfrage und Kontextsignale. Die Suchanfragen werden tokenisiert, und die Tokens mithilfe eines Embedding-Layers in Dense-Vectors transformiert.

2.2a) Aggregation
Diese Suchanfragen-Token-Embeddings werden aufsummiert, um einen einzelnen Dense-Vector zu erzeugen, der den Kontext der Suchanfrage repräsentiert.

2.1b) Produkt-Encodings
In diesem Schritt werden alle Features transformiert und in eine Dense-Vector-Repräsentation für jedes Produkt zusammengeführt.

  • Numerische Features werden im Feature-Engineering normalisiert und direkt verwendet.
  • Kategorische Features werden über Embedding-Layer in Dense-Vectors umgewandelt.
  • Textuelle Features werden durch Embedding-Layer verarbeitet, wobei die Embeddings der einzelnen Wörter zu einer Dense-Vector-Repräsentation aufsummiert werden.

Die resultierenden Embeddings und normalisierten numerischen Features werden zu einem einzigen Dense-Vector konkateniert, der anschließend in das Deep Neural Network eingespeist wird.

2.2b) Deep Neural Network
Das DNN im Product‑Tower ist dafür verantwortlich, die Dense-Product-Vectors aus dem Schritt des Product-Encodings in kompakte Embeddings zu transformieren. Diese Embeddings erfassen die komplexen Feature-Interaktionen, die für das nachgelagerte Relevanz-Scoring erforderlich sind.

Netzwerkarchitektur:
Der Product-Tower verarbeitet die konkatenierten Feature-Vektoren durch eine Abfolge von Fully-Connected-Layern. Jedes Layer folgt einer Sequenz von Operationen:

  1. Fully-Connected-Layer: Der Input wird linear transformiert und in einen neuen Repräsentationsraum projiziert.
  2. Aktivierung: Eine ReLU-Aktivierungsfunktion führt Nichtlinearität ein.
  3. Normalisierung: Layer-Normalisierung stabilisiert das Training und verbessert die Konvergenz.
  4. Skip Connections: Der Input jedes Layers wird zum Output addiert, was einen effizienten Gradientenfluss sicherstellt und das Training tieferer Netze ermöglicht.

Das Netzwerk besteht aus drei solchen Layern, die jeweils auf dem vorherigen Aufbauen, um bessere Produktrepräsentationen zu lernen. Der finale Output ist ein Dense-Vector fester Größe (512 Dimensionen), der das Produkt so repräsentiert, dass es für das Relevanz-Scoring in Kombination mit den Suchanfragen-Embeddings genutzt werden kann.

Das Two-Tower-Modell wird mit dem Adam Optimizer trainiert. Die beste Konfiguration des Product-Towers umfasst 3 Layer, eine Hidden-Size von 1024 und eine Dropout-Rate von 0.

3) Dot-Product
Der letzte Schritt in der Two-Tower-Architektur kombiniert die Outputs des Query-Towers und des Product-Towers, um einen Relevanz-Score für jedes Produkt zu berechnen. Dies geschieht über ein Skalarprodukt, das die Übereinstimmung zwischen Suchanfragen- und Produkt-Embeddings quantifiziert.

Das Suchanfragen-Embedding, erzeugt vom Query-Tower, repräsentiert den Kontext der Suchintention des Nutzers, während das Produkt-Embedding, erzeugt vom Product-Tower, die Features eines bestimmten Produkts enkodiert.
Das Skalarprodukt zwischen diesen beiden Embeddings ergibt einen Skalarwert, der angibt, wie gut das Produkt zur Suchanfrage passt.

Mathematisch lässt sich dies ausdrücken als: 

Dot-Product-Funktion
Dot-Product-Funktion

Hierbei ist h_c das Suchanfragen-(Context)-Embedding und h_p das Produkt-Embedding.

4) Softmax
Nachdem die Relevanz-Scores für alle Kandidatenprodukte pro Suchanfrage berechnet wurden, erfolgt im nächsten Schritt die Normalisierung dieser Scores in Wahrscheinlichkeiten. Dies geschieht durch die Softmax-Funktion, die Scores in eine Wahrscheinlichkeitsverteilung transformiert. Für eine gegebene Suchanfrage wird die Wahrscheinlichkeit p_i, das Produkt i aus der Kandidatenmenge auszuwählen, berechnet als: 

Softmax-Funktion
Softmax-Funktion

Hierbei bezeichnet s_i den Relevanz-Score für das Produkt i, und n ist die Gesamtzahl der Kandidatenprodukte für diese Suchanfrage. Diese Normalisierung ist entscheidend für das Training mit der Cross-Entropy-Loss-Funktion, weil sie den Vergleich zwischen vorhergesagten Wahrscheinlichkeiten und Ground-Truth-Labels ermöglicht.

5) Cross-Entropy-Loss
Der Cross-Entropy-Loss (CE-Loss) ist der letzte Schritt beim Training unseres Learning to Rank-Modells. Er misst den Unterschied, zwischen den durch die Softmax-Funktion erzeugten, vorhergesagten Wahrscheinlichkeiten und den Ground-Truth-Wahrscheinlichkeiten, die aus realen Nutzerinteraktionen wie Klicks oder Bestellungen abgeleitet werden. Wir interpretieren Interaktionen als implizite Relevanzlabels und überführen sie in Wahrscheinlichkeiten; der Cross-Entropy-Loss richtet daraufhin die Ranglisten des Modells an den Nutzerpräferenzen aus.

In der folgenden Abbildung stellen die roten Balken die vom Modell vorhergesagten Relevanz-Wahrscheinlichkeiten dar, während die blauen Balken die tatsächliche Ground-Truth-Relevanz basierend auf Nutzerinteraktionen zeigen.

Der Cross-Entropy-Loss misst die Abweichung zwischen diesen beiden Verteilungen. Für sehr relevante Produkte (z. B. Produkt 1 und 2, bei denen die blauen Balken hoch sind) zwingt der Loss das Modell dazu, die vorhergesagte Wahrscheinlichkeit (roter Balken) zu erhöhen. Für irrelevante Produkte (z. B. Produkt 3 bis 10, bei denen die blauen Balken für Ground-Truth-Relevanz null sind) bestraft der Loss hohe vorhergesagte Wahrscheinlichkeiten und reduziert sie.

Dieser Mechanismus stellt sicher, dass das Modell lernt, relevanten Produkten hohe Wahrscheinlichkeiten und irrelevanten Produkten niedrige Wahrscheinlichkeiten zuzuordnen.

Visualisierung des Cross-Entropy-Loss im Learning-to-Rank-Modell – Vergleich von vorhergesagten und tatsächlichen Relevanzwerten
Visualisierung des Cross-Entropy-Loss im Learning-to-Rank-Modell – Vergleich von vorhergesagten und tatsächlichen Relevanzwerten

Mathematisch ist der CE-Loss definiert als: 

Cross-Entropy-Loss-Funktion
Cross-Entropy-Loss-Funktion

Wobei (y_i ) ̃ das normalisierte Ground-Truth-Label für Produkt i  ist und p_i die durch die Softmax-Funktion vorhergesagte Wahrscheinlichkeit darstellt. Durch die Minimierung dieses Loss lernt das Modell den Produkten, mit denen mehr interagiert wird, höhere Wahrscheinlichkeiten zuzuordnen. Das verbessert die Ranking-Qualität.

Ergebnisse und Wirkung

In einem 8-wöchigen A/B-Test lieferte unser neuronales Ranking-Modell:

• +1,86 % Klicks
• +0,56 % Umsatz

Diese Verbesserungen zeigen, dass unsere Suchergebnisse für Nutzer*innen relevanter und ansprechender geworden sind. Auf Basis dieser starken Ergebnisse haben wir entschieden, das neue Modell auszurollen und damit die Suche bei OTTO noch relevanter zu machen.

Ausblick

Nach dem Live-Gang unseres neuen LTR-Modells steht schon die nächste Rakete in Richtung Personalisierung auf der Startrampe. Durch die Integration nutzerspezifischer Signale wollen wir die die Rankingfunktionen noch genauer an individuelle Präferenzen anpassen. Durch Personalisierung wird unsere Suche nicht nur hochrelevant, sondern auch einzigartig auf jede*n Nutzer*in zugeschnitten. Wir haben eine starke und vielseitige Grundlage für zukünftige Verbesserungen geschaffen und freuen uns auf die Möglichkeiten, die vor uns liegen.

Möchtest du Teil des Teams werden?

10 Personen gefällt das

0Noch keine Kommentare

Dein Kommentar
Antwort auf:  Direkt auf das Thema antworten

Geschrieben von

Team Jarvis
Team Jarvis
Developer Team @ OTTO

Ähnliche Beiträge

Gespeichert!

We want to improve out content with your feedback.

How interesting is this blogpost?

We have received your feedback.