Real-Time Content Personalization via Contextual Bandits & Matryoshka Embeddings
Erstellt am: 14. April 2026
Ein Live-Empfehlungssystem auf Basis von LinUCB-Banditen mit Cholesky-Updates und adaptiven Matryoshka-Embeddings – designed für Inhalte mit einem Time-to-Live < 48h.
Klassische kollaborative Filter scheitern in Umgebungen mit extrem kurzen Inhalts-Lebenszyklen: Wenn ein Artikel verschwindet, bevor genügend Interaktionsdaten vorliegen, kollabiert die Empfehlungsqualität. Dieses Projekt löst das Cold-Start-Paradoxon durch einen Linear Upper Confidence Bound (LinUCB) Algorithmus, der Exploration und Exploitation mathematisch ausbalanciert.
Das Herzstück ist die Payoff-Schätzung pro Artikel
zum Zeitpunkt
:
wobei
die gelernten Nutzerpräferenzen,
den Kontextvektor des Artikels und
den Exploration-Trade-off steuert.
Statt des üblichen Sherman-Morrison-Updates für
nutzt das System eine Cholesky-Zerlegung
. Dies garantiert bei hochfrequenten Online-Updates numerische Stabilität und positive Definitheit der Kovarianzmatrix – Rundungsfehler werden strukturell eliminiert.
Zur Artikelrepräsentation kommen Matryoshka-Embeddings zum Einsatz. Diese erlauben adaptive Dimensionalität: Ein Vektor
kann auf
mit
gekürzt werden, ohne den semantischen Kern zu verlieren – entscheidend für latenzarme Inferenz bei hunderten Kandidaten in Echtzeit.
Die gesamte Bandit-Logik ist in Julia implementiert und über Oxygen.jl als API-Layer in die Web-Infrastruktur eingebunden. Das Frontend in Nuxt 4 folgt einem Brutalist Design-Paradigma: Ein Card-Deck-Format spielt jede Nutzerinteraktion (Swipe/Click) sofort als Reward-Signal zurück in den Banditen.