Что такое 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=1∣T=1,X=x)−P(Y=1∣T=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=1∣X=x)−P^T=0(Y=1∣X=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=Y⋅Tp−Y⋅(1−T)1−pZ = \\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: суммарный прирост отклика при таргетировании.
🔹 Реальные применения
-
Маркетинг и CRM
Кому отправить купон, скидку, рассылку, push-уведомление. -
Медицина
Определение, как пациент отреагирует на лечение (персонализированная медицина). -
Финансы
Кредитные предложения: дать ли займ клиенту с учётом возможной реакции. -
Платформы и удержание
Кто из пользователей останется только если получить напоминание / подарок. -
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-моделирование становится особенно актуальным в задачах, где не просто важно знать, что человек сделает, а понять, что на него повлияет, чтобы оптимизировать воздействие и сэкономить ресурсы.