Практический опыт: Big Data в компании «Билайн»

В нашем сегодняшнем материале – кейс, иллюстрирующий реальный опыт анализа больших данных в крупной телекоммуникационной компании «Билайн» – с уклоном в практические и технические детали.

Примеры решаемых задач

  • Задачи обработки естественного языка (Natural Language Processing)

Обработка текстовой информации на естественном языке, как известно – одна из самых сложных задач Data Mining. Команда «Билайна» пользуется как «классикой жанра» (Bag of Words – мешок слов, TF-IDF), так и более новыми методами Deep Learning – например, поиск синонимов осуществляется при помощи структуры данных word2vec, библиотек Natural Language Toolkit и готовых алгоритмов Apache Spark.

  • Задачи на графах (Social Network Analysis)

Задачи на графах (а конкретнее – анализ социальных сетей в широком смысле этого слова) весьма требовательны к ресурсам, но «изобретать велосипед» специалистам не нужно: в Apache Spark уже реализована часть алгоритмов, которые активно и успешно используются в «Билайне». Плюс, конечно, собственные алгоритмы для более специфических задач – вообще же анализ социальных сетей нужен для верного построения маркетинговой политики: если знать, с кем крепче всего «связаны» лояльные клиенты (не обязательно самого оператора сотовой связи – речь может идти, например, о новом тарифном плане), то можно определить группу потенциальных клиентов, которые наиболее лояльно отнесутся к маркетинговым акциям.

  • Задачи прогнозирования (Predictive Modeling)

Постановка задачи прогнозирования или классификации, говоря бизнес-языком, выглядит достаточно просто. Допустим, мы имеем набор объектов (абонентов) и множество описывающих их признаков (пол, возраст, регион проживания и т. д.). Из набора объектов мы выделяем поднабор – так называемую обучающую выборку, – для каждого объекта которого известно значение целевой переменной (то есть ответ на некий интересующий нас вопрос – вероятность ухода конкретного абонента в отток, перехода на другой тарифный план и т.п.). Собственно задача прогнозирования заключается в том, чтобы предсказать значение целевой переменной для всего остального набора данных. Все это используется для таргетированных маркетинговых кампаний, а с практической точки зрения специалисты «Билайна» используют нейронные сети, деревья решений, композиции алгоритмов. В этом им помогает язык Python с его многочисленными библиотеками, ну а если обучающая выборка подходит под определение больших данных, то обращаются к Apache Spark или Vowpal Wabbit.

  • Задачи кластеризации (Cluster Analysis)

В случае кластерного анализа (задач кластеризации), в отличие от задач прогнозирования (классификации), обучающей выборки специалисты «на руках» не имеют. Типичная задача – поиск закономерностей в неразмеченных данных, то есть таком наборе объектов, для которого есть соответствующее множество признаков, однако конкретного соответствия ни для одного объекта не имеется. Кластерный анализ отвечает на вопрос, можно ли разделить набор данных на так называемые кластеры, то есть поднаборы данных, внутри которых объекты обладают сходными признаками. В «Билайне» кластерный анализ используется для сегментации абонентской базы, в ходе которой изучаются особенности конкретного сегмента (при помощи вышеописанных задач прогнозирования). Среди конкретных методов – классический алгоритм K-средних и более продвинутые методы кластеризации на графах и иерархической кластеризации.

Как в «Билайне» решают задачи

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

  • Сбор данных. После того, как завершен этап постановки задачи и обрисовано примерное направление ее решения, запускается процесс сбора и агрегации данных – процесс ETL (Extract Transform Load, «извлечение, трансформация, загрузка»). На этом этапе загружается большое количество не связанных между собой данных, происходит их очистка и объединение. Инструментарий этого этапа – Hive, Pig и Apache Spark.
  • Построение алгоритма. Вначале из всех собранных данных берется небольшой поднабор, который поместится в оперативной памяти обычного ПК. Путем эксперимента специалист выявляет пропуски в данных, решает, как их следует заполнять, отбирает и создает признаки, подбирает и тестирует алгоритмы и необходимые параметры – по ходу дела решая множество вспомогательных задач. По завершении этого процесса обычно готов прототип будущего рабочего алгоритма. Среди используемых на этом этапе инструментов – библиотеки R и Python, вроде skikit-learn и pandas.
  • Масштабирование алгоритма и его обучение на больших данных. На этом этапе готовый прототип алгоритма обучают на больших данных – то есть запускается процесс обучения все того же алгоритма, но уже на гораздо большем объеме данных. Для этого специалисты работают с инструментами, специализирующимися на больших данных, — Apache Spark и Wovpal Rabbit.

Разумеется, описанный процесс решения стоящих перед data scientist’ами «Билайна» — далеко не единственный вариант развития событий. Частенько алгоритм сразу обучается на больших данных; бывает и так, что задача состоит только в том, чтобы корректно извлечь и агрегировать данные (и тогда алгоритм действий сокращается до одного – первого – этапа). В среднем от рождения идеи до ее окончательной реализации проходит от пары дней до месяца, с учетом тестирования и оптимизации – оперативно, а значит, эффективно.

По материалам: Habrahabr

комментария 2

  1. Artem:

    Спасибо за статью подняли настроение, когда прочитал про Wovpal Rabbit :).

  2. Аноним:

    методами Deep Learning – например, поиск синонимов осуществляется при помощи структуры данных word2vec.
    Читооо!? Как-то не очень грамотно.

Добавить комментарий

Ваш e-mail не будет опубликован.

закрыть

Поделиться

Отправить на почту
закрыть

Вход

закрыть

Регистрация

+ =