uCheckeruChecker
12 мин чтения

AI для прогнозирования оттока подписчиков: модели и практика

Подписчик не открывает письма уже три недели. Это пауза или он ушёл навсегда? Интуиция маркетолога угадывает в половине случаев. ML-модель, обученная на истории поведения, даёт правильный ответ в 80-85% случаев. Разница между этими цифрами — тысячи сохранённых подписчиков и сотни тысяч рублей. Разберём, как это работает на практике.


Зачем предсказывать отток, если можно реагировать

Стандартный подход к оттоку — реактивный. Подписчик нажал «отписаться», система зафиксировала событие, маркетолог через неделю заметил рост unsubscribe rate в отчёте. К этому моменту делать уже нечего: человек ушёл, его решение принято.

Проблема глубже, чем кажется. Кнопку «отписаться» нажимает меньшинство. Большинство просто перестаёт открывать письма. Формально они в базе, фактически — мёртвый груз. Вы платите за хранение, ESP учитывает их при подсчёте метрик, а ваш open rate ползёт вниз. Почтовые провайдеры видят падение вовлечённости и начинают чаще отправлять ваши рассылки в спам — уже для всех подписчиков, включая активных.

Предиктивная модель ловит отток до того, как он произошёл. Не после отписки, не после трёх месяцев молчания, а в момент, когда поведение подписчика начинает меняться. За 5-14 дней до предполагаемого ухода — достаточно, чтобы вмешаться.

Какие данные нужны модели

Churn-модель работает с историей взаимодействий. Не с демографией, не с анкетными данными, а с тем, что человек реально делал. Вот минимальный набор признаков, который даёт стабильный результат:

  • Частота открытий — доля открытых писем за последние 30, 60 и 90 дней. Три окна нужны, чтобы модель видела динамику: стабильная активность, плавное угасание или резкий обрыв — это разные сценарии.
  • Динамика кликов — количество и частота кликов по ссылкам. Подписчик, который открывает, но не кликает, — уже на полпути к выходу.
  • Время с последнего действия — дни с последнего открытия, клика, покупки. Самый простой и самый сильный признак.
  • Частота отправки — сколько писем подписчик получил за период. Если вы отправляете ежедневно, а человек открывает раз в неделю, это не обязательно отток — возможно, это его нормальный ритм.
  • История покупок — для e-commerce. Время с последнего заказа, средний чек, количество заказов. Подписчик без покупок за 120 дней при среднем цикле в 45 дней — серьёзный сигнал.
  • Тип устройства и время открытия — изменение привычного паттерна. Если человек всегда читал утром с десктопа, а последние три открытия — ночью с мобильного, поведение сдвигается.

Отдельно стоит упомянуть данные, которых часто не хватает. Жалобы на спам — Gmail и Yahoo передают feedback loops, но не все ESP корректно их логируют. Перемещение в папку «Промоакции» — косвенный признак угасания интереса, но отслеживается только через специализированные инструменты. Если у вас есть доступ к этим данным — используйте, они заметно повышают точность.

Алгоритмы: что выбрать и почему

Хорошая новость: для churn prediction в email не нужны глубокие нейросети. Задача — бинарная классификация на структурированных данных. Здесь доминируют градиентные бустинги, и это не случайность.

XGBoost и LightGBM остаются рабочими лошадками. Они хорошо справляются с табличными данными, устойчивы к пропускам, быстро обучаются. На базе в 500 000 подписчиков обучение занимает минуты, не часы. Для большинства email-маркетологов этого достаточно.

Логистическая регрессия — для тех, кому важна интерпретируемость. Модель проще, точность чуть ниже, но вы видите вес каждого признака и можете объяснить руководству, почему конкретный подписчик попал в группу риска. На небольших базах (до 50 000) разница с бустингом минимальна.

Random Forest — компромисс. Точнее логистической регрессии, интерпретируемее бустинга. Хорошо работает как baseline, с которого начинаешь и с которым сравниваешь более сложные подходы.

Без собственной модели

Если нет ресурсов на собственную ML-модель — это нормально. Klaviyo, Brevo, HubSpot предлагают встроенный churn-скоринг. Он менее гибкий, но работает из коробки. Главное — начать использовать прогнозы, а не ждать идеальную модель.

Метрики качества: как понять, что модель работает

Accuracy — плохая метрика для оттока. Если 95% подписчиков остаются, модель, которая всем предсказывает «остаётся», покажет accuracy 95% и при этом будет абсолютно бесполезной. Нужны другие инструменты.

Precision — из всех, кому модель предсказала отток, сколько действительно ушли. Низкий precision — вы тратите ресурсы на реактивацию людей, которые и так бы остались.

Recall — из всех, кто реально ушёл, скольких модель предупредила. Низкий recall — отток проходит мимо модели, и смысл прогнозирования теряется.

На практике работает F1-score — среднее гармоническое precision и recall. Для email-оттока хороший F1 начинается от 0.65. Отличный — выше 0.75. Если ваша модель показывает F1 0.80 на тестовой выборке — это сильный результат.

Ещё один полезный инструмент — AUC-ROC. Он показывает, насколько хорошо модель разделяет два класса при разных порогах. AUC 0.85+ для churn prediction — рабочий уровень. Ниже 0.75 — стоит пересмотреть набор признаков.

АлгоритмПлюсыМинусы
Логистическая регрессияПрозрачность, скорость, веса признаковНе ловит нелинейные зависимости
Random ForestУстойчив к выбросам, хороший baselineМедленнее бустинга, хуже на дисбалансе классов
XGBoost / LightGBMВысокая точность, быстрое обучениеЧёрный ящик, требует тюнинга гиперпараметров
Встроенный скоринг ESPНоль настройки, работает сразуНет контроля, нельзя адаптировать под специфику

Подготовка данных: где обычно ломается

Модель — это 20% работы. Остальные 80% — подготовка данных. И именно здесь большинство проектов буксует.

Дисбаланс классов. Отток — это 3-8% базы. Модель, обученная на сырых данных, научится предсказывать «остаётся» для всех и будет формально точной. Решение — SMOTE для синтетической балансировки, взвешивание классов в функции потерь или стратифицированная выборка. На практике взвешивание классов в XGBoost (параметр scale_pos_weight) работает проще всего.

Определение «оттока». Когда подписчик считается ушедшим? Не открывал 30 дней? 60? 90? Нажал «отписаться»? Универсального ответа нет — зависит от частоты рассылок и цикла покупки. Если вы отправляете раз в неделю, 30 дней без открытий — четыре пропущенных письма, это сигнал. Если раз в месяц — 30 дней — одно письмо, рано делать выводы.

Невалидные адреса как шум. Это тот фактор, который часто упускают. Если в базе 10-15% невалидных адресов, модель обучается на ложных данных. Мёртвый ящик не открывает письма — модель считает его «ушедшим подписчиком» и ищет паттерны там, где их нет. Результат — ложные срабатывания и сниженная точность по всей базе.

Churn-модель, обученная на грязной базе, предсказывает не отток подписчиков, а долю невалидных адресов. Сначала чистка — потом прогнозирование.

Валидация базы как фундамент прогнозирования

Любая модель хороша ровно настолько, насколько чисты данные, на которых она обучена. Для churn prediction это критично вдвойне: вы предсказываете поведение людей, а не технические ответы серверов. Каждый невалидный адрес в обучающей выборке — это шум, который снижает точность прогноза для настоящих подписчиков.

Что конкретно портит модель: одноразовые адреса (зарегистрировались ради скидки, ящик исчез через сутки), спам-ловушки (никогда не были живыми подписчиками), адреса с опечатками (gmial.com вместо gmail.com), корпоративные catch-all (сервер принимает всё, но ящик не читается).

В uChecker мы решаем именно эту задачу. Каждый адрес проходит проверку синтаксиса, DNS, SMTP и AI-скоринг риска. На выходе вы получаете не бинарное «валидный / невалидный», а уровень риска для каждого адреса. Перед обучением churn-модели достаточно исключить адреса с высоким риском — и качество прогноза ощутимо вырастет.

От прогноза к действию: три сценария

Модель выдала скор. Что дальше? Прогноз без действия — бесполезная таблица. Вот три сценария, которые закрывают большинство ситуаций.

Сценарий 1: ранний win-back (скор 0.5–0.7). Подписчик теряет интерес, но ещё не ушёл. Здесь работает контент, а не скидки. Отправьте полезный материал — подборку, кейс, инструкцию. Покажите ценность рассылки, не прибегая к финансовым стимулам. По нашим данным, контентный win-back возвращает 15-25% подписчиков из этой группы.

Сценарий 2: агрессивный win-back (скор 0.7–0.9). Подписчик почти ушёл. Контент не поможет — нужен конкретный повод остаться. Персональная скидка, бонус за следующий заказ, эксклюзивный доступ. Важно: одно письмо, а не серия. Серию в этом состоянии воспринимают как давление.

Сценарий 3: мягкое отпускание (скор выше 0.9). Здесь win-back неэффективен. Подписчик ушёл ментально, осталось техническое оформление. Лучшая стратегия — снизить частоту отправки до минимума (раз в месяц) или перевести в отдельный сегмент с другим контентом. Через 90 дней без активности — удалить из основной базы. Это не потеря, это гигиена.

Частая ошибка

«Мы скучаем по вам» с грустным смайликом — не win-back. Это раздражает. Подписчик ушёл не потому, что забыл о вас, а потому что перестал видеть ценность. Дайте ценность, а не эмоциональный шантаж.

Внедрение: от нуля до рабочей системы

Пошаговый план, который работает для команд без выделенного data-scientist-а:

  1. Почистить базу. Загрузите список в валидатор, удалите невалидные и высокорискованные адреса. Без этого шага всё остальное не имеет смысла.
  2. Определить «отток» для вашего бизнеса. Зафиксируйте критерий: например, «не открывал 5 последних писем или 45 дней без активности». Критерий должен соответствовать вашей частоте отправки.
  3. Собрать исторические данные. Минимум — 6 месяцев логов открытий и кликов. Лучше — 12. Экспортируйте из ESP в CSV или подключите через API.
  4. Построить baseline. Логистическая регрессия на 5-7 признаках. Не бустинг, не нейросеть — простая модель, которую можно поднять за день. Оценить F1 и AUC-ROC.
  5. Автоматизировать скоринг. Раз в неделю прогоняйте базу через модель, обновляйте скоры. Интегрируйте результат в ESP через тег или custom property.
  6. Настроить триггеры. Автоматический win-back при достижении порогового скора. Разные сценарии для разных уровней риска.
  7. Измерить результат через 8-12 недель. Сравните churn rate до и после. Посмотрите, сколько подписчиков вернулись через win-back. Посчитайте ROI.

Что реально ожидать

Обещать снижение оттока «в разы» было бы неправдой. Вот цифры, которые мы наблюдаем у команд, внедривших churn prediction с чистой базой:

  • Снижение оттока на 15-25% за первый квартал. Не на 200%, не «в разы» — на пятую-четвёртую часть. На базе в 200 000 это 3 000–5 000 сохранённых подписчиков.
  • Рост open rate на 3-7%. За счёт удаления неактивных и адресной реактивации колеблющихся.
  • Экономия на ESP. Меньше мёртвых адресов в базе — меньше платите за хранение и отправку.
  • Улучшение репутации домена. Меньше bounce-ов, выше вовлечённость — почтовые провайдеры лучше относятся к вашим рассылкам.

Удержать подписчика стоит в 5-7 раз дешевле, чем привлечь нового. Даже скромное снижение оттока даёт ощутимый финансовый эффект при масштабе.

Ошибки, которые убивают эффект

Несколько граблей, на которые наступают регулярно:

  • Обучение на грязных данных. Повторю: невалидные адреса в обучающей выборке — главный источник ложных срабатываний. Валидация базы перед обучением модели — обязательный шаг.
  • Одинаковый win-back для всех. Подписчик со скором 0.5 и подписчик со скором 0.9 — это разные люди в разных состояниях. Один шаблон не работает.
  • Модель обучена и забыта. Поведение подписчиков меняется: сезонность, смена продуктовой линейки, изменение частоты рассылок. Дообучайте модель раз в квартал, минимум.
  • Игнорирование порога. Порог скора — не константа. Слишком низкий — завалите win-back-ами тех, кто и так остаётся. Слишком высокий — пропустите реальный отток. Начните с 0.6 и калибруйте по результатам.

Итого

Churn prediction в email — не экспериментальная технология и не привилегия крупных компаний с data-science-отделом. Инструменты доступны: от встроенного скоринга в ESP до XGBoost, который поднимается за день. Алгоритмы понятны, данные у вас уже есть.

Узкое место — качество данных. Модель, обученная на базе с 10% невалидных адресов, будет стабильно ошибаться. Модель, обученная на чистых данных, начнёт экономить вам деньги с первого месяца.

Порядок действий: почистить базу, определить критерий оттока, построить baseline-модель, автоматизировать скоринг, настроить триггерные сценарии. Не параллельно, а последовательно. Каждый шаг зависит от предыдущего.

Начните с фундамента — проверьте базу в uChecker. Чистые данные — чистые прогнозы.

прогноз оттока подписчиковchurn prediction emailAI отток emailмашинное обучение email retentionудержание подписчиковвалидация email