GH GambleHub

Sistemas de recomendación

Sistemas de recomendación

El sistema de recomendación no es solo un «modelo CTR». Es la cadena dado → los candidatos → el ranking → la política → la acción → la realimentación, que optimiza inkrementalnuyu el valor bajo las restricciones reales (la velocidad, de frecuencia kapy, una variedad, la ética/komplaens).

1) Datos, señales y vistas

Eventos: vistas/clics/adiciones/compras/depósitos, tiempo de espera, cancelaciones.
Contenido/catálogo: atributos (categorías/géneros/estudios/precio/frescura/volatilidad).
Perfiles de usuario: RFM, preferencias, dispositivos/canales, ranuras de tiempo.
Contexto: hora/día/días festivos/partidos, local/TZ, sitio de exhibición.
Calidad: recetas de punto en tiempo, idempotencia de eventos, dedoop/antibot, enmascaramiento PII.
Embeddings: user/item/context en espacio compartido (MF/Word2Vec2Nat/transformers), multimodal (texto/imágenes).

2) Arquitectura: Recall → Rank → Re-rank → Action

1. Recall de candidatas (200-5000 candidatos): ANN (FAISS/ScaNN), popularidad/tendencias, filtros basados en reglas.
2. Ranking (20-200): LTR (GBM/NN), Tower-architectures, binarios/objetivos múltiples (click, conversion, value).
3. Policy-aware re-rank (5-30 en la lista final): diversificación/novedad/serendipia, cuotas de marca/categoría, RG/cumplimiento, caps de frecuencia, fairness.
4. Acción: exhibición/push/e-mail/escaparate personal con couldowns y «reloj tranquilo».
5. Feedback: registro 'impression→click→action→value', retroalimentación negativa (skip, queja).

3) Paradigmas modelo

Content-based: proximidad por signos de aitem y perfil; ideal para un comienzo frío de Aitems.
Filtrado colaborativo: usuario-usuario/item-item por matriz de interacciones.
Factorizaciones/embeddings: MF/BPR/NeuMF, MLP de dos tiempos (torre de usuario × torre de item).
Aprender a Rank: pairwise/listwise (LambdaMART, RankNet), optimización de NDCG @ k.
Sesiones/secuenciales: GRU4Rec, SASRec, Transformers (T5-style) - orden/contexto en la sesión.
Bandidos contextuales: LinUCB/Thompson para adaptaciones en línea rápidas y creativas.
RL: SlateQ/DQN/Policy Gradient para una recompensa de varios pasos (retención/LTV).
Enfoques causales/uplift: recomendaciones que tienen en cuenta el aumento en lugar de «CTR crudo».

4) Objetivos, limitaciones y formulación de la tarea

Objetivos: CTR/CTCVR, renta/margen/LTV, retención, satisfacción, velocidad.
Limitaciones: diversificación, cuotas de proveedores/categorías, caps de frecuencia, RG/cumplimiento, fairness/ética, SLA p95.

Policy-aware re-rank (ejemplo de escalamiento):
[
\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
]

donde Penalty - violaciones de cuotas/RG/frecuencia/monotonía.

5) Métricas y evaluación

Offlayn

Relevancia/clasificación: AUC/PR-AUC, Recall @ k, MAP, NDCG @ k.
Negocio: eRPM/eCPM, proxy-LTV, margen esperado.
Calibración: Brier, ECE (importante para umbrales/políticas).
Списки: coverage/diversity/novelty/serendipity.

onlayn

Pruebas A/B/Multi-marco: CTR, CTCVR, ingreso/sesión, retención, quejas/revocaciones (guardrails), latency/timeout.
Evaluación causal: CUPED, cuasiexperimentos (DiD/control sintético) en aleatorización limitada.
Uplift-métricas: Qini/AUUC, uplift @ k - para recomendaciones de treatment-aware.

6) Inicio frío y rareza

Nuevos usuarios: popular @ segment, encuesta de contenido, contenido basado en el primer clic, bandido con amplia inteligencia.
Nuevos aitemas: metadatos/embebidos de texto/imágenes + look-alike por estudio/categoría.
Dominios pequeños: transfer learning, multi-task (torre compartida), distillation cross-domain.

7) Diversificación, novedad, serendipia

Algoritmos: MMR, xCafAD, PM-2; multas por monotonía.
Cuotas: min/max por categoría/marca/clase de riesgo.
Estabilidad de listas: inercia de posiciones, histéresis de actualizaciones; no «parpadear» las entregas.

8) Infraestructura y MLOps

Feature Store: recetas PIT, TTL para fiches de sesión, paridad online/offline.
Servicios ANN: FAISS/ScaNN, sharding/caché, replicación.
Ranker: fichas en tiempo real, calibración, firmas de versiones.
Policy/Re-rank La capa: ограничения/квоты/RG/частоты/diversity.
SLA: end-to-end p95 ≤ 100–300 мс; fallback (popular-seguro) en degradación.
Observabilidad: trazados 'correlation _ id', fich drift (PSI), métricas de calidad en línea, «stop-crane».

9) Seguridad, privacidad, ética

Minimización de PII, RLS/CLS, enmascaramiento.
Filtros RG/de cumplimiento antes de la exhibición, gotas de frecuencia, «reloj silencioso».
Diagnóstico fairness por segmentos; Explicabilidad de las razones de la exhibición; la vía de apelación.

10) Pseudo-código: Recall → Rank → Re-rank híbrido

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 para creativos (sketch)

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: retroalimentación negativa y gotas de frecuencia

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) Tabla de decisión (esbozo de política)

CondiciónContextoAcciónRestriccionesComentario
`new_user & low_history`onbordingpopular@segment + content-seedgotas de frecuencia, RGinicio en frío
`session_len>3 & diversity_low`SesiónMMR/xQuAD re-rankmin 3 categoríasserendipnost
`uplift_push≥τ`offerypush personalDo-Not-Disturb, zhaloby≤Khincremento, no CTR
`risk_RG≥τ`Cualquieracontenido de riesgoRG/cumplimientoseguridad

13) Anti-patrones

Optimizar el «CTR crudo» en lugar del incremento y el valor.
Falta de una capa de re-rank → exceso de monotonía, «túnel de visión».
Las caras son del futuro; mezcla de TZ; definiciones de señal no versionadas.
No hay calibración de probabilidad → umbrales/políticas incorrectos.
Ignorar RG/ética/fairness → quejas/riesgos/multas.
En línea/fuera de línea, rassinhron fich y métrica - «reducción» en la venta.
Ausencia de fallback y «stop grúa».

14) Lista de comprobación de inicio de recomendación

  • Sistema de pasaporte: objetivos, limitaciones, métricas, propietarios, versiones
  • Recall/Rank/Re-rank divorciados; ANN se calienta, los cachés están personalizados
  • Fichas PIT, calibración, referencias fuera de línea (NDCG/PR-AUC)
  • Diseño A/B y guardrails; informe decision-ready (efecto/riesgos)
  • Restricciones: diversidad/cupos/RG/caps de frecuencia - implementados y monitorizados
  • SLA p95, rastros, alertas, «stop-crane» y popular-safe fallback
  • Documentación, rúnicas, plan de mejoras incrementales

Resultado

Un sólido sistema de recomendación es el transportador policy-aware: Recall/Rank/Re-rank híbrido que optimiza el valor incremental bajo las limitaciones de velocidad, ética y diversidad. Al agregar bandidos/RL para la adaptación en línea, la disciplina de MLOps y una correcta evaluación causal, no obtienes «listas por el bien de las listas», sino soluciones administradas que aumentan ROMI, LTV y la satisfacción del usuario - de manera estable y segura.

Contact

Póngase en contacto

Escríbanos ante cualquier duda o necesidad de soporte.¡Siempre estamos listos para ayudarle!

Iniciar integración

El Email es obligatorio. Telegram o WhatsApp — opcionales.

Su nombre opcional
Email opcional
Asunto opcional
Mensaje opcional
Telegram opcional
@
Si indica Telegram, también le responderemos allí además del Email.
WhatsApp opcional
Formato: +código de país y número (por ejemplo, +34XXXXXXXXX).

Al hacer clic en el botón, usted acepta el tratamiento de sus datos.