GH GambleHub

Машинное обучение в iGaming

1) Бизнес-кейсы и ценность

Продукт/доход: прогноз LTV, churn (отток), пропенсити к депозиту/покупке, динамические миссии/квесты, next-best-action/offer.
Маркетинг/CRM: look-alike, сегментация, real-time триггеры, оптимизация бонусов (ABO — Abuse-resistant Bonus Optimization).
Риск/Комплаенс: антифрод/AML (velocity, структурирование, графовые признаки), Responsible Gaming (RG) — риск-скор, триггеры вмешательства.
Операции/SRE: предсказание инцидентов, capacity/traffic forecasting, аномалии провайдеров.
Финансы: прогноз GGR/NGR, Fx-чувствительность, детекция манипуляций контрагентов.

Ориентиры эффекта: +3–7% к Net Revenue за счет персонализации, −20–40% к fraud-loss, −10–25% к churn, SLA реагирования RG < 5 с при онлайне.

2) Данные и признаки (Feature Engineering)

Источники: gameplay, платежи/PSP, аутентификация, устройства/ASN/гео, RG/KYC/KYB, маркетинговые UTM, провайдерские логи, саппорт/тексты.

Базовые фичи:
  • Поведенческие окна: N ставок/депозитов и суммы за 10 мин/час/день, recency/frequency/monetary.
  • Последовательности: цепочки игр, время с последней активностью, сессионные признаки.
  • Гео/устройство: страна/рынок, ASN, тип девайса/браузера.
  • Графовые: связи игрок–карта–устройство–IP, компоненты/центральности (fraud rings).
  • Контекстные: время суток/день недели/праздники рынка, провайдер/жанр/волатильность игры.
  • RG/AML: лимиты, самоисключения, флаги скрининга, PEP/санкции (через кэш/асинхрон).
Рекомендации:
  • Нормализуйте валюты и время (UTC + локаль рынка).
  • Историзируйте измерения (SCD II).
  • Согласуйте онлайн/офлайн трансформации (единый код в Feature Store).

3) Архитектура: офлайн ↔ онлайн

3.1 Офлайн контур

Lakehouse: Bronze→Silver (нормализация/обогащение)→Gold (датасеты).
Feature Store (offline): регистр формул фич, point-in-time join, материализация обучающих выборок.
Тренинг: контейнеры с фиксированными зависимостями; трекинг экспериментов (метрики/артефакты/данные).
Валидация: k-fold/temporal split, backtest, off-policy оценка.

3.2 Онлайн контур

Ingest → Stream Processing: Flink/Spark/Beam с окнами/watermarks, идемпотентность.
Feature Store (online): низколатентный кэш (Redis/Scylla) + слепки офлайна.
Сервинг: REST/gRPC эндпоинты, граф скоринга, AB-роутинг, канареечные релизы.
Real-time витрины: ClickHouse/Pinot для панелей/правил.

4) Типовые модели и подходы

Классификация/скоринг: churn/депозит/фрод/RG (LogReg, XGBoost/LightGBM, TabNet, CatBoost).
Ранжирование/рекомендации: факторизация/лист-рангинг (LambdaMART), seq2rec (RNN/Transformers), контекстные бандиты.
Аномалии: Isolation Forest, One-Class SVM, AutoEncoder, Prophet/TSfresh для временных рядов.
Графовые: Node2Vec/GraphSAGE/GNN для колец мошенничества.
Причинность (causal): uplift-модели, T-learner/X-learner, DoWhy/CausalML.
NLP/ASR: тикеты/чаты, классификация жалоб, sentiment, темы.

5) Метрики качества

Классификация: ROC-AUC/PR-AUC, F1 на операционных порогах, expected cost (взвешенные FP/FN), KS для риск-скоринга.
Рекомендации: NDCG@K, MAP@K, coverage/diversity, CTR/CVR в онлайне.
TS/Forecast: MAPE/SMAPE, WAPE, P50/P90 ошибку, покрытие PI.
RG/AML: precision/recall при SLA, средний time-to-intervene.
Экономика: uplift в Net Revenue, fraud saved, ROI кампаний, % бонус-абьюза.

6) Оценка и эксперименты

Офлайн: temporal split, backtest по неделям/рынкам/тенантам.
Онлайн: A/B/n, CUPED/дифф-в-дифф, sequential tests.
Off-policy: IPS/DR для политик персонализации.
Стат. мощность: расчет размера выборки с учетом дисперсии и MDE.

Пример расчета порога по стоимости (псевдокод):
python cost_fp = 5. 0 # false alarm cost_fn = 50. 0 # missed fraud threshold = pick_by_expected_cost (scores, labels, cost_fp, cost_fn)

7) Приватность, этика, комплаенс

PII-минимизация: псевдонимы, изоляция маппингов, CLS/RLS.
Резидентность: раздельные контуры EEA/UK/BR; без кросс-регионных join’ов без основания.
DSAR/RTBF: удаление/редакция в фичах и логах; Legal Hold для кейсов/отчетности.
Fairness/предвзятость: аудит фич, disparate impact, контроль proxy-переменных.
Explainability: SHAP/feature importance, карточки моделей (owner, дата, данные, метрики, риски).
Безопасность: KMS/CMK, секреты вне логов, WORM-архивы релизов.

8) MLOps: жизненный цикл

1. Data & Features: схемы/контракты, DQ-правила (completeness/uniqueness/range/temporal), lineage.
2. Тренинг: контейнеры, автотюнинг, трекинг экспериментов.
3. Валидация: тесты совместимости схем, bias/fairness, performance-тесты.
4. Релиз (CI/CD/CT): канареечные/поэтапные выкаты, фича-флаги, «темный запуск».
5. Сервинг: автоскейлинг, кэширование, gRPC/REST, timeouts/ретраи.
6. Мониторинг: дрейф данных/предсказаний (PSI/KL), latency p95, error-rate, coverage, «silent metrics».
7. Re-train: расписание/триггеры по дрейфу/деградации метрик.
8. Инциденты: runbook, откат модели, fallback (правило/простая модель).

9) Feature Store (ядро согласованности)

Офлайн: point-in-time вычисления, anti-leakage, версия формулы фич.
Онлайн: низкая латентность (≤ 10–30 мс), TTL, согласованность с офлайном.
Контракты: имя/описание, владелец, SLA, формула, тесты соответствия online/offline.

Пример спецификации фичи (YAML):
yaml name: deposits_sum_10m owner: ml-risk slo: {latency_ms_p95: 20, availability: 0. 999}
offline:
source: silver. payments transform: "SUM(amount_base) OVER 10m BY user_pseudo_id"
online:
compute: "streaming_window: 10m"
tests:
- compare_online_offline_max_abs_diff: 0. 5

10) Онлайновый скоринг и правила

Гибрид ML+Rules: модель → скор + объяснения; правила — hard-guard/этика/закон.
Сшивка: CEP-паттерны (structuring/velocity/device switch) + ML-скоринг.
SLA: p95 энд-ту-энд 50–150 мс для персонализации, ≤ 2–5 с для RG/AML алертов.

Псевдокод маршрутизации:
python features = feature_store. fetch(user_id)
score = model. predict(features)
if score > T_RG:
trigger_intervention(user_id, reason="RG_HIGH_RISK", score=score)
elif score > T_BONUS:
send_personal_offer(user_id, offer=choose_offer(score, seg))

11) Данные для обучения: выборки и лейблы

Событийные окна: t0 — референс, t0+Δ — лейбл (депозит/черн/фрод).
Leakage-контроль: point-in-time join, исключение будущих событий.
Балансировка: стратификация/веса классов, focal loss для редких классов.
Этика: исключить чувствительные атрибуты/прокси, контролировать влияние.

12) Экономика и производительность

Стоимость фич: считайте cost/feature и cost/request, избегайте тяжелых online-join’ов.
Кэш: горячие фичи в RAM, холодные — lazy.
Материализация: офлайн агрегации; онлайн только критичное.
Квоты: лимиты на реплеи, бэктесты по окнам времени; chargeback по командам.

13) Примеры SQL/псевдокода

Point-in-time выборка для churn (30 дней тишины):
sql
WITH base AS (
SELECT user_pseudo_id, MIN(event_time) AS first_seen
FROM silver. fact_bets
GROUP BY user_pseudo_id
),
agg AS (
SELECT user_pseudo_id,
DATE(t. event_time) AS asof,
SUM(amount_base) FILTER (WHERE type='deposit' AND event_time >= t. event_time - INTERVAL '30' DAY AND event_time < t. event_time) AS dep_30d,
COUNT() FILTER (WHERE type='bet' AND event_time >= t. event_time - INTERVAL '7' DAY) AS bets_7d
FROM silver. fact_events t
GROUP BY user_pseudo_id, DATE(t. event_time)
)
SELECT a. user_pseudo_id, a. asof, a. dep_30d, a. bets_7d,
CASE WHEN NOT EXISTS (
SELECT 1 FROM silver. fact_events e
WHERE e. user_pseudo_id=a. user_pseudo_id AND e. event_time > a. asof AND e. event_time <= a. asof + INTERVAL '30' DAY
) THEN 1 ELSE 0 END AS label_churn_30d
FROM agg a;
Онлайн окно депозитов (Flink SQL, 10 мин):
sql
SELECT user_id,
TUMBLE_START(event_time, INTERVAL '10' MINUTE) AS win_start,
COUNT() AS deposits_10m,
SUM(amount_base) AS sum_10m
FROM stream. payments
GROUP BY user_id, TUMBLE(event_time, INTERVAL '10' MINUTE);

14) Дорожная карта внедрения

MVP (4–6 недель):

1. Каталог сигналов и Feature Store v1 (5–10 фич для Payments/Gameplay).

2. Базовая модель churn/депозита (XGBoost) + A/B на 10–20% трафика.

3. Онлайновый сервинг с кэшем (p95 < 150 мс) и канареечными релизами.

4. Мониторинг дрейфа/качества, карточка модели, runbook отката.

Фаза 2 (6–12 недель):
  • RG/AML-скоринги, графовые признаки, real-time триггеры.
  • Uplift-модели для бонусов, контекстные бандиты, off-policy оценка.
  • Авто-ре-трейн по дрейфу/календарю, автоматизация документации.
Фаза 3 (12–20 недель):
  • Персонализация каталога игр (seq2rec), мульти-объективная оптимизация (доход/ответственность).
  • Мульти-региональный сервинг, SLAs/квоты, chargeback по фичам/инференсу.
  • Fairness-аудит и стресс-тесты, DR-учения и WORM-репозитории релизов.

15) RACI

R (Responsible): MLOps (платформа/сервинг), Data Science (модели/эксперименты), Data Eng (фичи/пайплайны).
A (Accountable): Head of Data / CDO.
C (Consulted): Compliance/DPO (PII/RG/AML/DSAR), Security (KMS/секреты), SRE (SLO/стоимость), Finance (эффект/ROI), Legal.
I (Informed): Продукт/Маркетинг/Операции/Поддержка.

16) Чек-лист перед продом

  • Фичи согласованы online/offline, тесты репроходимости пройдены.
  • Карточка модели (owner, данные, метрики, риски, fairness) заполнена.
  • Канареечный релиз/фичфлаг; SLA и алерты latency/ошибок/дрейфа.
  • Политики PII/DSAR/RTBF/Legal Hold соблюдены; логи обезличены.
  • Runbook инцидентов/отката; fallback-стратегия.
  • Эксперименты оформлены (гипотезы, метрики, длительность, MDE).
  • Стоимость инференса и фич вписана в бюджет; квоты и лимиты включены.

17) Анти-паттерны

Расхождение онлайн/офлайн фич → нерепроходимость.
Синхронные внешние API в «горячем пути» без кэша и таймаутов.
Непрозрачные формулы метрик/отсутствие карточек моделей.
Переобучение/дрейф без мониторинга и перетренировки.
PII в аналитике и тренировке без CLS/RLS/минимизации.
«Одна большая модель на все» без доменной декомпозиции.

18) Итог

ML в iGaming — не набор «магических» моделей, а дисциплина: согласованные данные и фичи, воспроизводимый офлайн-тренинг, надежный онлайновый сервинг, строгий MLOps, прозрачные метрики и этика/комплаенс. Следуя этому руководству, вы построите систему, которая стабильно увеличивает доход и удержание, снижает риски и соблюдает регуляторные требования — в масштабе, быстро и предсказуемо.

Contact

Свяжитесь с нами

Обращайтесь по любым вопросам или за поддержкой.Мы всегда готовы помочь!

Начать интеграцию

Email — обязателен. Telegram или WhatsApp — по желанию.

Ваше имя необязательно
Email необязательно
Тема необязательно
Сообщение необязательно
Telegram необязательно
@
Если укажете Telegram — мы ответим и там, в дополнение к Email.
WhatsApp необязательно
Формат: +код страны и номер (например, +380XXXXXXXXX).

Нажимая кнопку, вы соглашаетесь на обработку данных.