Зачем и как операторы перепроверяют анкетные данные?
Мы занимаемся анализом данных и задачами машинного обучения в банках, телекоме и ритейле. В этой статье я расскажу о том, как мы обрабатываем данные для исследований, с какими проблемами сталкиваемся и как их решаем.
Масштабы
Каждая из сфер, с которыми мы работаем, имеет свои нюансы в плане обработки данных. Так, в банках предъявляются повышенные требования к обезличиванию данных клиентов и их безопасности, но самих данных значительно меньше, чем в телекоме.
Для определенности, в данной статье я буду рассказывать об одном из наших кейсов в телекоме, а именно о крупнейшем операторе одной из стран СНГ. Раскрыть точное название не позволяет NDA.
Число активных абонентов у нашего клиента составляет 10 млн человек, соответственно, число ежедневно генерируемых событий (звонков, СМС, платежей и сессий мобильного интернета) крайне велико, что предполагает использование специальных инструментов обработки больших данных. Мы используем хорошо зарекомендовавшую себя экосистему Hadoop для предобработки и хранения таких массивов информации.
Задачи
В своей работе мы используем разработанную нами систему Eastwind Social Analytics (EWSA), позволяющую на основе данных абонента определить демографические и некоторые дополнительные показатели.
Профиль абонента в EWSA (200+ параметров)
- Социально-демографические (пол/возраст/семейное положение/наличие детей…)
- Социальные связи и активность
- Интересы (кратко- и долгосрочные)
- Геотаргетинг (дом, работа, любимые места)
- Звонковая активность, интернет и роуминговая активность
- Используемые услуги и тариф
- Платежная активность и финансы (уровень доходов, ARPU…)
- Используемый девайс
- Анкетные данные
Таким образом, для каждого из абонентов мы формируем некоторый профиль, который впоследствии можно использовать для сравнения с генеральной совокупностью или с какой-либо подвыборкой, в которой состоит абонент. Такая информация позволяет оператору эффективно определять целевую аудиторию для кампаний целевого маркетинга и изучать базу в целом.
Точность наших инструментов составляет:
Пол – средний 83,89%
Возраст – 70%
Семейное положение – Женат/замужем 74,8%
Наличие детей – 68,66%
Помимо этого, впоследствии такой профиль абонента можно использовать для предсказания оттока абонентов и кредитного скоринга. Кредитный скоринг обеспечивается как в интересах третьих лиц (банков), так и в целях оптимизации услуги «Обещанный платеж». Или собственный кредитный скоринг оператора для продажи контрактных телефонов
Целевой маркетинг, предсказание оттока и кредитный скоринг – это три кита, которые обеспечивают актуальность анализа клиентов для телеком-операторов.
Казалось бы, зачем строить математические модели для определения того, что и так известно из анкетных данных (пол, возраст и семейное положение)?
Дело в том, что в телекоме существуют проблемы передачи сим-карт и устаревания анкетных данных. Наиболее точной оценкой качества анкетных данных является опрос абонентов оператора, что дорого, долго и ограничено ресурсами колл-центра. На примере этого проекта анкетные данные абонентов из биллинга имели совпадение с реальностью на уровне 30-35%
Наиболее точной оценкой качества анкетных данных является опрос абонентов оператора, что дорого, долго и ограничено ресурсами колл-центра. Наша система решает эту проблему путем выявления закономерностей поведения для каждой из групп, которые нужно определить, обучаясь и предсказывая на данных опроса.
Нужно отметить, что система имеет удобный UI, что значительно упрощает работу с ней для неспециалистов по анализу данных. В системе можно проводить отбор абонентов, используя решающие правила, например, выбрать всех неженатых мужчин в возрасте до 40 лет, использующих iPhone и заинтересованных в автомобильной тематике. Далее этот список можно использовать для рассылки специальных предложений, сравнить с другим списком или со всей абонентской базой.
Процесс обработки данных
В этой статье я остановлюсь на том, как именно мы готовим и обрабатываем данные для формирования классической матрицы объекты-признаки, используемой для обучения математических моделей.
Ежедневно со стороны оператора к нам поступает информация об абонентах (один день данных может занимать примерно 160 Гб). После первичной обработки на Mediation, где сырые данные оператора приводятся к стандартизированному и упорядоченному виду, мы загружаем данные в Hadoop, где впоследствии запускаются процессы на формирование признаков, обучение моделей и предсказания на всю базу нашего клиента.
На этапе построения моделей мы занимаемся подготовкой и отбором признаков, которые позволяют нам верно классифицировать абонентов, а после формирования такого набора признаков, модель встраивается в пайплайн подготовки и обработки данных. Далее предсказания, полученные от модели, выгружаются в базу данных, с которой оператор взаимодействует через UI для проведения рассылок и проведения собственных исследований базы.
Процесс обработки данных EWSA
На первом этапе данные оператора об абонентах (звонки, соты, платежи и проч.) фильтруются по активности, типу тарифа (физ- и юрлица) и другим параметрам. Также на этом этапе уже рассчитываются некоторые агрегированные значения, например, для определения степени активности абонента. Затем данные переводятся в HDFS для удобной работы на кластере. Для каждого из номинальных датасетов мы храним данные с некоторой глубиной по времени, это используется для расчета признаков.
HDFS (Hadoop Distributed File System) — файловая система, предназначенная для хранения файлов больших размеров, поблочно распределённых между узлами вычислительного кластера.
Далее через внутренний сервис деплоя запускаются spark-jobs, которые подготавливают признаки, сформированные и отобранные на этапе исследования данных (как именно мы это делаем – опишу в следующей статье). Мы используем pyspark для написания скриптов расчета признаков и описываем зависимости .xml шаблонами, которые легко изменяются и позволяют гибко настраивать и отлаживать процесс. Связанные джобы запускаются последовательно (каждый следующий джоб ждет завершения предыдущего), что позволяет в реальном времени отлеживать какие-либо изменения в данных. Полный цикл предобработки, генерации признаков и обучения модели занимает примерно 6-7 часов и выполняется в ночное время. После того как сформирована матрица объекты-признаки, начинают работу математические модели, параметры и качество которых регулярно репортируется в сводную таблицу.
В следующей статье я раскрою следующие темы:
1.Предварительная обработка данных и проверка на консистентность и информативность. На этом этапе выявляются источники для будущих признаков в модели машинного обучения, происходит анализ статистик данных.
2.Построение гипотез, формирование готовых признаков и их визуализация. Поиск зависимостей и корреляций признаков, оценка эффективности константных (наиболее простых) моделей на данных признаках.