Навчання з підкріпленням
1) Призначення і місце RL в iGaming
RL оптимізує політику дій у часі під невизначеність і зворотний зв'язок:- Персоналізація каталогу ігор (Slate-RL): вибір набору пропозицій для екрану/пуша.
- Оптимізація бонусів/промо: розмір/тип/таймінг з урахуванням ризику аб'юзу.
- Реакції в RG/Retention: коли і як втручатися (м'які нотифікації/пауза/ескалація).
- Операції: динамічне управління лімітами, пріоритизація черг саппорту.
- Трафік і закупівля: біддінг в аукціонах, бюджет-пейсинг.
Чому не тільки supervised: цільова змінна - довгострокова нагорода (LTV, wellbeing, зниження ризику), яку треба оптимально накопичувати, а не просто передбачати.
2) Базове формулювання
Стан (s_t): профіль гравця, контекст сесії, обмеження ринку.
Дія (a_t): оффер, підбірка ігор (slate), тригер RG, ставка біддера.
Нагорода (r_t): змішана метрика (дохід - штрафи RG/AML - вартість).
3) Сімейства методів
3. 1 Бандити (без стану)
Multi-Armed Bandit: (\epsilon)-greedy, UCB, Thompson Sampling.
Контекстні бандити: враховують ознаки гравця/сесії.
Slate/Ranking Bandits: вибір набору пропозицій; коригуємо позиційні ефекти.
3. 2 Повноцінний RL
Policy Gradient / Actor-Critic: REINFORCE, A2C/A3C, PPO - стійкі до великих просторів.
Q-Learning/Deep Q-Networks: дискретні дії, офлайн-навчання з буфером досвіду.
Conservative/Offline RL: CQL, BCQ, IQL - навчаються за логами без онлайн-експлорації.
3. 3 Безпечний/обмежений RL
Constrained RL (CMDP): оптимізація при обмеженнях по RG/AML/бюджету.
Risk-Sensitive: CVaR-RL, penalty shaping, Lagrangian методи.
4) Дизайн нагороди (reward shaping)
Нагорода повинна відображати цінність і ризики:- Дохід: внесок в інкрементальний Net Revenue/LTV (а не «сирі ставки»).
- Відповідальна гра: штрафи за ризик-патерни, перевищення лімітів, що стомлюють стимули.
- Комплаєнс/AML: штрафи за дії, що підвищують ймовірність небезпечної активності.
- Якість досвіду: CTR/CVR/довжина сесії, але з cap/weight, щоб уникати «перегріву».
python reward = w_revdelta_net_revenue \
- w_rgrg_risk_score \
- w_abusebonus_abuse_prob \
- w_costoffer_cost
5) Оффлайн-навчання та оцінка (ключ до безпеки)
Онлайн-експлор заборонений/доріг → використовуємо offline RL і counterfactual evaluation:- IPS/DR: Inverse Propensity Scoring/Doubly Robust на логах рекомендувача.
- Replay/Simulators: симулятори з користувацькими/провайдерськими моделями відгуку.
- Conservative Regularization: штраф за вихід за підтримку даних логів (CQL/IQL).
- Політика-логгер: логуємо ймовірності показів (propensity), щоб була коректна оцінка.
python value_dr = np.mean(w_ips(r - q_hat) + v_hat) # w_ips = π(a s)/μ(a s)
6) Контекстні бандити: швидкий старт
Підхід для «щадного» онлайн-навчання, коли послідовність коротка:- Thompson Sampling (логіт): постерior за коефіцієнтами → вибір дії.
- UCB: для обмежених бюджетів і сильних сар'ів.
- Регуляризація fairness/RG: маскуємо неприпустимі дії, обмежуємо частоту показів.
python β ~ Posterior() # выбор из апостериорного распределения scores = X @ β # контекстные оценки actions = top_k(scores, k=slate_size, mask=policy_mask)
7) Slate-RL (рекомендації наборів)
Мета: максимізувати нагороду всього набору (облік позицій, конкуренції карток).
Методи: Listwise-бандити, slate-Q, policy gradient з факторизацією (Plackett-Luce).
Корекція позицій: propensity по позиціях; рандомізація всередині допустимих кордонів.
8) Безпека, RG/AML і комплаєнс
RL запускається тільки в «guarded mode»:- Жорсткі правила (hard constraints): заборона токсичних офферів, частотні обмеження, «охолодження».
- Policy Shielding: фільтруємо дію політикою RG/AML до і після інференсу.
- Дуальна оптимізація: Lagrange multiplier для обмежень (наприклад, частка «агресивних» офферів ≤ θ).
- Етика та fair-use: виключаємо проксі-фічі, аудит впливу.
python a = policy.sample(s)
if not passes_guardrails(a, s):
a = safe_fallback(s) # правило/минимальный оффер
9) Архітектура даних і сервінгу
Офлайн контур
Lakehouse: логи показів/кліків/конверсій, пропенсіті, cost.
Feature Store (offline): point-in-time фічі, коректні лейбли.
Тренінг: offline RL (CQL/IQL) + симулятори; валідація IPS/DR.
Онлайн/near-real-time
Фічі: швидкі вікна (1-60 хв), ознаки гравця/сесії, ліміти і маски RG/AML.
Сервінг: gRPC/REST, p95 50-150 мс (персоналізація), канареечний роутинг.
Логи: зберігаємо'policy _ id','propensity','slate','guard _ mask', фактичний результат.
10) Метрики та експериментування
Оффлайн: DR/IPS-оцінка value, coverage підтримки, divergence від логера.
Онлайн: інкремент до Net Revenue/LTV, RG-сигнали (time-to-intervene), abuse-rate, CTR/CVR/retention.
Ризик-метрики: CVaR, частка порушень guardrails, частота інтервенцій RG.
Експерименти: A/B/n з каппінгом трафіку і «kill-switch», sequential-testing.
11) Cost-інжиніринг і продуктивність
Складність дій: обмежуємо розмір слейту/простір оферів.
Кеш фіч/рішень: короткі TTL для популярних станів.
Декомпозиція: two-stage (candidate generation → re-rank).
Офлайн-навчання за розкладом: щоденний/тижневий retrain; онлайн - лише легка адаптація (bandits).
12) Приклади (фрагменти)
PPO з безпечним штрафом (ескіз):python for rollout in rollouts:
A = advantage(rollout, value_fn)
loss_policy = -E[ clip_ratio(pi, old_pi) A ]
loss_value = mse(V(s), R)
loss_safety = λ relu(safety_metric - safety_cap)
loss_total = loss_policy + c1loss_value + loss_safety + c2entropy(pi)
step_optimizer(loss_total)
Conservative Q-Learning (ідея):
python loss_cql = mse(Q(s,a), target) + α (E_{a~π}[Q(s,a)] - E_{a~D}[Q(s,a)])
Контекстний бандит з масками RG:
python scores = model(x) # предсказанные полезности scores[~allowed_mask] = -inf # запретные действия a = argmax(scores) if rand()>eps else random_allowed()
13) Процеси, ролі та RACI
R (Responsible): Data Science (моделі RL/бандити), MLOps (платформа/логування/оцінка), Data Eng (фічі/симулятори).
A (Accountable): Head of Data / CDO.
C (Consulted): Compliance/DPO (RG/AML/PII), Legal (умови офферів), Security (секрети/KMS), SRE (SLO/вартість), Product.
I (Informed): Маркетинг/CRM, Операції, Підтримка.
14) Дорожня карта впровадження
MVP (4-6 тижнів):1. Контекстний бандит для вибору 1 оффера з масками RG/AML і логуванням пропенсіті.
2. Офлайн-оцінка IPS/DR, обмежений A/B (5-10% трафіку), kill-switch.
3. Дашборди: value (DR), CTR/CVR, RG-метрики, порушення guardrails.
Фаза 2 (6-12 тижнів):- Slate-бандит (N = 3-5 карток), позиційні корекції; two-stage candidate→re-rank.
- Offline RL (IQL/CQL) з симулятором; регулярний retrain.
- Constrained-RL: ліміти на агресивність/частоти, дуальна оптимізація.
- Політики RG-інтервенцій (safe RL) з суворими caps і аудитом.
- Бюджет-пейсинг і біддинг (аукціони) з CVaR-обмеженнями.
- Міжрегіональна адаптація, chargeback за вартістю інференсу та оферів.
15) Чек-лист перед продом
- Логи містять'policy _ id','propensity', маски/обмеження, результати.
- DR/IPS-оцінка стабільна; підтримка даних достатня (overlap з логером).
- Guardrails: списки заборон, частотні ліміти, cooldown, kill-switch.
- RG/AML/Legal узгодили правила; аудит включено (WORM для кейсів).
- Канарковий реліз і ліміти трафіку; моніторинг value/RG/abuse.
- Документація нагороди та ризиків; картка політики (owner, версія, SLA).
- Вартість під контролем: latency p95, cost/request, розмір слейта, кеш.
16) Анти-патерни
Онлайн-експлор без захисту та офлайн-оцінки.
Нагорода «кліки/ставки» без урахування аб'юза і RG → токсична політика.
Відсутність пропенсіті та коректної causal-оцінки за логами.
Занадто великий простір дій, немає масок/каппінгу.
Змішання регіонів/юрисдикцій без резидентності і правил.
Відсутність kill-switch і канарок.
17) Підсумок
RL дає iGaming-платформі адаптивні політики, які максимізують довгострокову цінність при дотриманні RG/AML/Legal. Ключ до безпечного впровадження - offline/консервативні методи, коректна causal-оцінка (IPS/DR), строгі guardrails, прозора нагорода, дисципліна MLOps і поступовий rollout. Так ви отримаєте зростання Net Revenue/LTV без компромісів щодо відповідальності та комплаєнсу.