Розробка AI-системи прогнозування відтоку абонентів в телекомунікаціях
Телеком — класична вертикаль для churn prediction: чіткі дані про поведінку абонента, регулярні трансакції, вартість залучення нового клієнта в 5-7 разів вища за утримання. Точна модель дозволяє спрямувати бюджет утримання лише на тих, хто дійсно піде.
Специфіка телеком churn
Типи відтоку:
- Voluntary churn: абонент свідомо переходить до конкурента або відмовляється від послуги
- Involuntary churn: відключення через неплатіж
- Early churn: відхід у перші 90 днів (особливий сегмент, часто fraud або misfit)
Контрактні vs. передоплачені:
- Постоплачені тарифи (contract): чітка дата розірвання. Модель прогнозує розірвання при поновленні.
- Передоплачені (prepaid): немає явного контракту. Визначення відтоку через неактивність: 30/60/90 днів без поповнення.
Інженерія ознак з BSS/OSS систем
Використання послуг:
features_usage = {
# Голос
'voice_outgoing_min_30d': sum(voice_outgoing_last_30d),
'voice_incoming_min_30d': sum(voice_incoming_last_30d),
'unique_called_numbers': len(unique_called_30d),
'international_calls_flag': has_intl_calls_last_month,
# Дані
'data_usage_gb_30d': sum(data_usage_last_30d),
'data_usage_trend': data_30d - data_60_30d, # зростання/спадання споживання
'wifi_calls_ratio': wifi_calls / total_calls,
# SMS (зменшується, але все ще інформативно)
'sms_out_30d': sms_count_outgoing,
# Фінанси
'arpu': avg_monthly_revenue,
'arpu_trend': arpu_30d - arpu_90d,
'payment_delays': count(payment_delay > 5d),
'last_payment_days_ago': days_since_last_payment
}
Взаємодія з оператором:
features_interaction = {
'cs_contacts_30d': count(support_contacts_last_30d),
'complaints_90d': count(formal_complaints_90d),
'nps_score': last_nps_response,
'app_logins_30d': mobile_app_logins_count,
'mcare_self_service_ratio': self_service_actions / total_contacts,
'billing_disputes': count(billing_disputes_ever)
}
Конкурентний контекст:
- Номери перенесені в мережу конкурента за останні 30 днів (MNP-статистика за сегментом)
- Ціна конкурентного тарифу-аналога: чим вищий розрив у ціні, тим вищий ризик
Multi-horizon моделі
30-денний горизонт: для персональних офер утримання (SMS, дзвінок агента) 90-денний горизонт: для сегментних кампаній утримання 180-денний горизонт: для стратегічного аналізу клієнтської бази
Різні горизонти — різні ознаки:
- 30 днів: сигнали останнього тижня важливі (дзвінок в CS, негативний NPS)
- 90 днів: тренди за 3 місяці (поступове зниження використання)
Uplift модель для ROI утримання
Наївний підхід: запропонувати знижку всім абонентам високого ризику. Проблема: частина піде в будь-якому випадку, частина залишиться без знижки. Знижка потрібна лише "persuadables".
Матриця 2×2:
| Без пропозиції | З пропозицією | |
|---|---|---|
| Залишиться | Sure Things | Sure Things |
| Піде | Lost Causes | Persuadables |
Uplift model: Uplift = P(retained | treated) - P(retained | not treated)
Целюємо лише Persuadables з uplift > 0.
Meta-learner (T-Learner):
# T-Learner: два окремі класифікатори для treatment та control
model_treatment = LightGBMClassifier().fit(X_treated, y_treated)
model_control = LightGBMClassifier().fit(X_control, y_control)
uplift = model_treatment.predict_proba(X)[:, 1] - model_control.predict_proba(X)[:, 1]
Персоналізація офер утримання
Коли і що пропонувати:
Час:
- За 30-60 днів до завершення контракту: максимальна чутливість
- Після негативного NPS: протягом 48 годин
- Після скарги в CS: відразу через агента
Модель вибору пропозиції: Next Best Offer: мультикласна класифікація (знижка / бонусний трафік / апгрейд тарифу / безплатний роумінг). Ознаки: CLV, ARPU, тип споживання, історія офер.
Графіки: базова churn модель на BSS-даних — 4-5 тижнів. Система з uplift modeling, NBO та CRM-інтеграцією для кампаній утримання — 3-4 місяці.







