Построение модели Next Best Action
Это продолжение серии постов о построении NBA. В прошлом посте мы рассказывали, что классическое uplift-моделирование плохо подходит для банковских продуктов. Чтобы получить статистически значимый результат, нужно провести кучу A/B-тестов и отправить миллионы сообщений.
Поэтому мы сделали несколько инженерных допущений:
1. Стали считать эффект только после взаимодействия с коммуникацией. Если клиент вообще не открыл письмо или не кликнул по баннеру, это приравнивается к отсутствию коммуникации:
Это допущение упрощает дальнейшее моделирование и позволяет отказаться от сложного персонального Uplift. Теперь его можно рассчитать по формуле:
2. Оценили влияние канала на продукт без персонализации по пользователю. Для этого перешли в пространство логитов. Теперь базовая модель предсказывает вероятность подключения продукта без каких-либо коммуникаций, а влияние канала рассматривается как добавка к этому прогнозу, которая зависит не от конкретного человека, а от связки «канал + продукт»:
После этого значение снова переводится в обычную вероятность, а Expected Value рассчитывается через обновлённую формулу:
Формула для сигмоиды (σ):
3. Разделили задачу на компоненты. После всех преобразований большая задача фактически распалась на три отдельные модели:
• Модель отклика на продукт — показывает вероятность подключения без дополнительных коммуникаций.
• Модель клика в канале — предсказывает вероятность того, что клиент вообще взаимодействует с выбранным каналом.
• Модель эффекта канала — оценивает, насколько канал способен увеличить вероятность подключения.
Такой подход оказался практичнее прямого uplift-моделирования и позволил построить систему, которую можно обучать на реальных данных.
Но появилась новая проблема: так как вероятность подключения продукта рассчитывается отдельной моделью, то при работе с 66 продуктами нужно обучить и поддерживать десятки моделей одновременно. В следующем посте расскажем, как автоматизировать этот процесс.
💜 Этот пост написал Евгений Наговицын, ML-разработчик в Точка Банк
Это продолжение серии постов о построении NBA. В прошлом посте мы рассказывали, что классическое uplift-моделирование плохо подходит для банковских продуктов. Чтобы получить статистически значимый результат, нужно провести кучу A/B-тестов и отправить миллионы сообщений.
Поэтому мы сделали несколько инженерных допущений:
1. Стали считать эффект только после взаимодействия с коммуникацией. Если клиент вообще не открыл письмо или не кликнул по баннеру, это приравнивается к отсутствию коммуникации:
P(Y_Pr=1|Z=0, At=1,C,x) ≈ P(Y_Pr=1| At=0,x)
Z — {0, 1} — факт клика на коммуникацию.
Это допущение упрощает дальнейшее моделирование и позволяет отказаться от сложного персонального Uplift. Теперь его можно рассчитать по формуле:
Δ(x,C,Pr) ≈ P(Z=1|At=1,C,x) * (P(Y_Pr=1|Z=1, At=1,C,x) - P(Y_Pr=1| At=0,x))
2. Оценили влияние канала на продукт без персонализации по пользователю. Для этого перешли в пространство логитов. Теперь базовая модель предсказывает вероятность подключения продукта без каких-либо коммуникаций, а влияние канала рассматривается как добавка к этому прогнозу, которая зависит не от конкретного человека, а от связки «канал + продукт»:
logit (P(Y_Pr=1|Z=q, At=1,C,x)) = logit (P(Y_Pr=1| At=0,x))+ δ_C,Pr
δ_C,Pr — добавка к логиту подключения от канала C для продукта Pr.
После этого значение снова переводится в обычную вероятность, а Expected Value рассчитывается через обновлённую формулу:
EV(x,C,Pr) ≈ P(Z=1|At=1,C,x) * [σ(logit (P(Y_Pr=1|At=0,x)) + δ_C,Pr) - P(Y_Pr=1|At=0,x)] * LTV(x, Y_Pr) - Cost(C)
Формула для сигмоиды (σ):
sigma(x)=\frac{1}{1+e^{-x}}
sigma(x) — результат функции (значение от 0 до 1);
e — математическая константа (число Эйлера, ≈2.71828);
x — входное число, например, результат линейного уравнения модели.
3. Разделили задачу на компоненты. После всех преобразований большая задача фактически распалась на три отдельные модели:
• Модель отклика на продукт — показывает вероятность подключения без дополнительных коммуникаций.
P(Y_Pr=1 | At=0,x)
• Модель клика в канале — предсказывает вероятность того, что клиент вообще взаимодействует с выбранным каналом.
P(Z=1 | At=1,C,x)
• Модель эффекта канала — оценивает, насколько канал способен увеличить вероятность подключения.
δ_C,Pr
Такой подход оказался практичнее прямого uplift-моделирования и позволил построить систему, которую можно обучать на реальных данных.
Но появилась новая проблема: так как вероятность подключения продукта рассчитывается отдельной моделью, то при работе с 66 продуктами нужно обучить и поддерживать десятки моделей одновременно. В следующем посте расскажем, как автоматизировать этот процесс.
💜 Этот пост написал Евгений Наговицын, ML-разработчик в Точка Банк