Что такое Uplift-моделирование

Uplift-моделирование (также называемое causal modeling, treatment effect modeling или incremental modeling) — это подход в машинном обучении, направленный на оценку каузального эффекта воздействия (treatment) на поведение пользователей. В отличие от классических моделей предсказания, цель uplift-модели — не просто предсказать результат, а предсказать разницу между поведением при воздействии и без него.

🔹 В чём суть Uplift-моделирования?

Цель — ответить не на вопрос:

«Каков шанс, что клиент купит продукт?»
а на:

«Как изменится вероятность покупки, если мы отправим клиенту рекламное предложение?»

То есть оценка каузального эффекта между воздействием и откликом.
Uplift-моделирование моделирует разницу между:

  • Treatment group — группа, которая получила воздействие (например, промоакция);

  • Control group — группа, которая воздействия не получила.

🔹 Обозначения и формальная постановка

Пусть:

  • T∈{0,1}T \in \{0, 1\} — бинарная переменная воздействия (0 = контроль, 1 = treatment);

  • Y∈{0,1}Y \in \{0, 1\} — бинарный отклик (например, покупка);

  • XX — вектор признаков пользователя.

Uplift — это разность между двумя условными вероятностями:

Uplift(x)=P(Y=1T=1,X=x)P(Y=1T=0,X=x)\\text{Uplift}(x) = P(Y=1 \\mid T=1, X=x) - P(Y=1 \\mid T=0, X=x)

То есть, насколько вероятность желаемого действия изменяется под воздействием.

🔹 Пример из бизнеса

Рассмотрим e-mail маркетинг:

  • У вас есть база клиентов.

  • Вы можете отправить им e-mail с купоном.

  • Но отправка стоит денег, и некоторые клиенты бы и так купили.

Классическая модель предсказания покажет, кто купит.
Uplift-модель покажет, у кого покупка произойдёт только если отправить письмо — именно их и нужно таргетировать.

🔹 Четыре группы пользователей

Uplift позволяет разделить клиентов на категории в терминах каузального воздействия:

Группа Что делает без воздействия Что делает при воздействии Uplift эффект
Persuadables Нет действия Есть действие Положительный
--- --- --- ---
Sure Things Есть действие Есть действие Нулевой
--- --- --- ---
Lost Causes Нет действия Нет действия Нулевой
--- --- --- ---
Do Not Disturb Есть действие Нет действия Отрицательный
--- --- --- ---

Uplift-моделирование пытается найти именно persuadables — тех, на кого воздействие сработает.

🔹 Классические модели ≠ Uplift

Классическая модель предсказывает P(Y=1∣X)P(Y = 1 \mid X).
Но это не даёт информации, был ли результат следствием воздействия.

Даже идеально точная модель отклика не может определить uplift, если в данных нет признака, был ли клиент в контрольной группе или в treatment.

🔹 Как обучаются Uplift-модели

Есть несколько подходов к обучению uplift-моделей:

1. Two-Model Approach (две модели)

Строятся две отдельные модели:

  • Одна обучается на treatment-группе: P(Y=1∣T=1,X)P(Y=1 \mid T=1, X);

  • Другая — на контрольной: P(Y=1∣T=0,X)P(Y=1 \mid T=0, X);

Затем для каждого клиента оценивается разность:

Uplift(x)=P^T=1(Y=1X=x)P^T=0(Y=1X=x)\\text{Uplift}(x) = \\hat{P}\_{T=1}(Y=1 \\mid X=x) - \\hat{P}\_{T=0}(Y=1 \\mid X=x)

Плюсы: простота, совместимость с любым ML.
Минусы: возможны ошибки из-за несовпадения распределений (covariate shift), отсутствие общей координации.

2. Transformed Outcome Method

Создаётся переменная-таргет:

Z=YTpY(1T)1pZ = \\frac{Y \\cdot T}{p} - \\frac{Y \\cdot (1 - T)}{1 - p}

где p=P(T=1)p = P(T=1) — доля treatment-группы.

Затем строится модель, предсказывающая ZZ по XX. Это будет оценка uplift.

3. Uplift Decision Trees

Реализуют дерево решений, где сплит в узле делается не на основе Gini/Entropy, а на разнице uplift-эффекта между дочерними узлами.

Примеры: UpliftRandomForest, HonestTree, CausalTree.

4. Meta-learners (T-learner, S-learner, X-learner, R-learner)

Методы из каузального ML, которые используют идеи раздельного обучения, взвешенного таргета и переформулировки задачи.
Особенно полезны при наличии смещений, несбалансированных групп.

🔹 Метрики оценки uplift-моделей

Классические метрики (Accuracy, AUC) не подходят, потому что задача другая.

Применяются:

  • Qini-кривая и Qini-коэффициент: аналог ROC, отражает разницу между treatment и control в sorted списке.

  • Uplift@K: средний uplift среди K% пользователей с наибольшим предсказанным эффектом.

  • Incremental Gain: суммарный прирост отклика при таргетировании.

🔹 Реальные применения

  1. Маркетинг и CRM
    Кому отправить купон, скидку, рассылку, push-уведомление.

  2. Медицина
    Определение, как пациент отреагирует на лечение (персонализированная медицина).

  3. Финансы
    Кредитные предложения: дать ли займ клиенту с учётом возможной реакции.

  4. Платформы и удержание
    Кто из пользователей останется только если получить напоминание / подарок.

  5. A/B тесты с ML
    Построение модели на A/B данных, чтобы понять, кто реагирует на изменения в интерфейсе или ценообразовании.

🔹 Пример: рассылка email-предложения

Пользователь Признаки XX T (было письмо) Y (покупка)
A {…} 1 1
--- --- --- ---
B {…} 0 1
--- --- --- ---
C {…} 1 0
--- --- --- ---
D {…} 0 0
--- --- --- ---

Классическая модель говорит: A и B «покупатели».
Uplift-модель говорит: только A - persuasible. B бы купил и без письма.

🔹 Библиотеки и инструменты

  • scikit-uplift — Python-библиотека для построения моделей uplift.

  • EconML — от Microsoft, для оценки каузальных эффектов.

  • CausalML — библиотека от Uber.

  • [grf (R)] — Generalized Random Forests для каузального анализа.

  • [DoWhy / CausalNex] — более общие фреймворки для причинного вывода.

Uplift-моделирование становится особенно актуальным в задачах, где не просто важно знать, что человек сделает, а понять, что на него повлияет, чтобы оптимизировать воздействие и сэкономить ресурсы.