Empfehlungssysteme
Empfehlungssysteme
Das Empfehlungssystem ist nicht nur ein „CTR-Modell“. Es ist eine Datenpipeline → Kandidaten → Ranking → Politik → Aktion → Feedback, die den inkrementellen Wert unter realen Einschränkungen (Geschwindigkeit, Frequenzkappen, Vielfalt, Ethik/Compliance) optimiert.
1) Daten, Signale und Darstellungen
Veranstaltungen: Ansichten/Klicks/Ergänzungen/Käufe/Einzahlungen, Dwell-Time, Stornierungen.
Inhalt/Katalog: Attribute (Kategorien/Genres/Studios/Preis/Frische/Volatilität).
Benutzerprofile: RFM, Präferenzen, Geräte/Kanäle, Zeitfenster.
Kontext: Stunde/Tag/Feiertage/Spiele, Ort/TZ, Schauplatz.
Qualität: Point-in-Time-Rezepte, Event-Idempotenz, Dedup/Antibot, PII-Maskierung.
Embeddings: user/item/context in shared space (MF/Word2Vec2Rec/transformers), multimodal (Text/Bilder).
2) Architektur: Recall → Rank → Re-rank → Action
1. Kandidatenrückruf (200-5000 Kandidaten): ANN (FAISS/ScaNN), Popularität/Trends, regelbasierte Filter.
2. Ranking (20-200): LTR (GBM/NN), Tower-Architekturen, Binär-/Multi-Cell-Targets (Click, Conversion, Value).
3. Policy-aware re-rank (5-30 in der finalen Liste): Diversifikation/Neuheit/Serendipität, Marken-/Kategoriekontingente, RG/Compliance, Frequency Caps, Fairness.
4. Aktion: Display/Push/E-Mail/persönliches Schaufenster mit Kuldowns und „Silent Clock“.
5. Feedback: Log 'impression→click→action→value', negatives Feedback (Skip, Beschwerde).
3) Modellparadigmen
Content-based: Nähe nach Merkmalen und Profil; ideal für den Kaltstart von Aitems.
Kollaborative Filterung: user-user/item-item nach Interaktionsmatrix.
Factorization/Embedding: MF/BPR/NeuMF, Double Tower MLP (User Tower × Item Tower).
Learning-to-Rank: pairwise/listwise (LambdaMART, RankNet), NDCG @ k Optimierung.
Sitzung/sequentiell: GRU4Rec, SASRec, Transformers (T5-style) - Reihenfolge/Kontext in der Sitzung.
Kontext-Banditen: LinUCB/Thompson für schnelle Online-Adaptionen und Kreative.
RL: SlateQ/DQN/Policy Gradient für mehrstufige Auszeichnung (Hold/LTV).
Kausale/Uplift-Ansätze: Empfehlungen, die das Wachstum und nicht die „rohe CTR“ berücksichtigen.
4) Ziele, Grenzen und Aufgabenstellung
Ziele: CTR/CTCVR, Umsatz/Marge/LTV, Retention, Zufriedenheit, Geschwindigkeit.
Einschränkungen: Diversifikation, Anbieter-/Kategoriekontingente, Frequenzkappen, RG/Compliance, Fairness/Ethik, SLA p95.
[
\textstyle Score = \alpha \cdot \hat p_{\text{click}} + \beta \cdot \text{Value}
\gamma \cdot \text{Fatigue} + \delta \cdot \text{Novelty} - \sum_j \lambda_j \cdot \text{Penalty}_j
]
wobei Penalty Quoten-/RG/Frequenz-/Monotonie-Verstöße sind.
5) Metriken und Bewertung
Offline
Relevanz/Ranking: AUC/PR-AUC, Recall @ k, MAP, NDCG @ k.
Geschäft: eRPM/eCPM, proxy-LTV, erwartete Marge.
Kalibrierung: Brier, ECE (wichtig für Schwellenwerte/Richtlinien).
Списки: coverage/diversity/novelty/serendipity.
Den Online
A/B/Mehrwegtests: CTR, CTCVR, Umsatz/Sitzung, Retention, Reklamationen/Abmeldungen (Guardrails), Latency/Timeout.
Kausale Bewertung: CUPED, Quasi-Experimente (DiD/synthetische Kontrolle) bei begrenzter Randomisierung.
Uplift-Metriken: Qini/AUUC, uplift @ k - für treatment-aware Empfehlungen.
6) Kaltstart und Spärlichkeit
Neue Nutzer: popular @ segment, Content-Umfrage, Content-based auf den ersten Klick, Bandit mit breiter Intelligenz.
Neue Aitems: Metadaten/Text-Embeddings/Bilder + look-alike nach Studio/Kategorie.
Kleine Domains: Transfer Learning, Multi-Task (Shared Tower), Cross-Domain Distillation.
7) Diversifikation, Neuheit, serendipity
Algorithmen: MMR, xQuAD, PM-2; Strafen für Monotonie.
Quoten: min/max nach Kategorie/Marke/Risikoklasse.
Stabilität der Listen: Trägheit der Positionen, Hysterese der Aktualisierungen; nicht „blinken“ Ausgabe.
8) Infrastruktur und MLOps
Feature Store: PIT-Rezepte, TTL für Session-Fich, Online-/Offline-Parität.
ANN-Dienste: FAISS/ScaNN, Sharding/Cache, Replikation.
Ranker: Echtzeit-Funktionen, Kalibrierung, Versionssignaturen.
Policy/Re-rank layer: limits/quotas/RG/frequency/diversity.
SLA: end-to-end p95 ≤ 100–300 мс; fallback (popular-safe) beim Abbau.
Beobachtbarkeit: 'correlation _ id' -Traces, PSI, Online-Qualitätsmetriken, Stop-Crane.
9) Sicherheit, Privatsphäre, Ethik
Minimierung von PII, RLS/CLS, Maskierung.
RG/Compliance-Filter vor der Show, Frequenzkappen, „stille Stunden“.
Fairness-Diagnostik nach Segmenten; Erklärbarkeit der Gründe für die Anzeige; Weg der Berufung.
10) Pseudocode: Recall → Rank → Re-rank hybrid
python
Recall cand_emb = ann.recall(user_embed, topk=500)
cand_rule = popular.by_segment(user.segment, k=200)
cands = dedup(cand_emb + cand_rule)
Rank features = featurize(user, cands, context) # user/item/context scores = ranker.predict(features) # p(click), value
Policy-aware re-rank final = rerank(
cands, scores,
constraints=dict(
diversity_min={'category': 3},
brand_quota={'A':0.3,'B':0.3},
rg_filter=True,
freq_caps=get_user_caps(user)
),
objective_weights=dict(ctr=0.6, value=0.3, novelty=0.1)
)
return final[:N]
Thompson Sampling für Kreative (Skizze)
python beta priors per creative: (α, β)
samples = {cr: np.random.beta(alpha[cr], beta[cr]) for cr in creatives}
chosen = max(samples, key=samples.get)
show(chosen)
update(alpha, beta, reward=click)
11) Pseudo-SQL: negatives Feedback und Frequenzkappen
sql
-- Последний показ и флаги «скрыть/жалоба» → баним на 7 дней
WITH last_impr AS (
SELECT user_id, item_id,
MAX(ts) AS last_ts,
BOOL_OR(feedback_hide) AS hidden,
BOOL_OR(feedback_report) AS reported
FROM impressions
GROUP BY 1,2
)
SELECT i.
FROM inventory i
LEFT JOIN last_impr l ON l.user_id=:uid AND l.item_id=i.item_id
WHERE COALESCE(l.hidden,false)=false
AND COALESCE(l.reported,false)=false
AND (l.last_ts IS NULL OR l.last_ts < NOW() - INTERVAL '7 day');
12) Entscheidungstabelle (Policy Sketch)
13) Anti-Muster
Optimierung der „rohen CTR“ anstelle von Inkrement und Wert.
Das Fehlen einer Re-Rank-Schicht → ein Übermaß an Monotonie, ein „Sehtunnel“.
Gesichter aus der Zukunft; Mischen von TZ; nicht versionierte Signaldefinitionen.
Keine Kalibrierung der Wahrscheinlichkeiten → falsche Schwellenwerte/Richtlinien.
Ignorieren RG/Ethik/fairness → Beschwerden/Risiken/Strafen.
Online/Offline-Rassynchron von Fich und Metrik - „Drawdown“ in der Produktion.
Kein Fallback und kein „Stopp-Kran“.
14) Empfehlungsstart-Checkliste
- Systemdatenblatt: Ziele, Einschränkungen, Metriken, Besitzer, Versionen
- Recall/Rank/Re-rank sind geschieden; ANN aufgewärmt, Caches eingerichtet
- PIT-Daten, Kalibrierung, Offline-Benchmarks (NDCG/PR-AUC) bestanden
- A/B-Design und Guardrails; decision-ready report (Wirkung/Risiken)
- Limits: diversity/quotas/RG/frequency caps - implementiert und überwacht
- SLA p95, Traces, Alerts, Stop-Crane und Popular-Safe Fallback
- Dokumentation, Runybuks, Plan für inkrementelle Verbesserungen
Ergebnis
Ein starkes Empfehlungssystem ist eine Policy-Aware-Pipeline: ein hybrider Recall/Rank/Re-Rank, der den inkrementellen Wert unter den Einschränkungen von Geschwindigkeit, Ethik und Vielfalt optimiert. Durch das Hinzufügen von Banditen/RLs zur Online-Anpassung, MLOps-Disziplin und korrekter kausaler Bewertung erhalten Sie keine „Listen für Listen“, sondern überschaubare Lösungen, die ROMI, LTV und Benutzerzufriedenheit steigern - stabil und sicher.