Методы глубокого обучения оказались прорывом во многих областях машинного обучения, таких как классификация изображений, обработка естественного языка или обучение с подкреплением. Однако мы все еще ждем, чтобы увидеть преимущества этих методов в отношении более бизнес-ориентированных вариантов использования, таких как классификация оттока, сегментация поведения или прогнозирование. В настоящее время эти проблемы основаны на более традиционном подходе контролируемого обучения с ручной разработкой функций, и мы хотели бы показать, что глубокое обучение имеет некоторые преимущества перед этими методами:

  • Рассмотрение непосредственно необработанных данных транзакций в качестве входных данных для вашей модели вместо ручного агрегирования транзакций (со средним, суммой или макс.). Это уменьшает ручную работу и человеческий фактор при выборе переменной для агрегирования и метода агрегирования. Модель глубокого обучения автоматически создает свои собственные функции в зависимости от количества, которое она пытается предсказать.
  • Рассмотрение дополнительных полей путем встраивания из таких категорий, как мобильный тариф или устройство. Традиционные подходы рассматривали бы в качестве входных данных для модели флаг только для наиболее распространенных планов, в то время как глубокое обучение может рассматривать все планы вместе и получать значимые представления в отношении количества, которое оно пытается предсказать.
  • Обнаруживайте подписи клиентов или событий, интерпретируя сеть. Глядя на промежуточный уровень модели глубокого обучения, бизнес-аналитик может понять различные аспекты, вызывающие отток. Хотя модели глубокого обучения могут быть сложными, важно понимать, почему делается прогноз.
  • Гибкость для разветвления новых источников данных. Учитывая архитектуру сети, добавление ветви для новых типов данных не требует усилий, поэтому одна сеть может содержать ввод изображений, транзакции, данные профиля без необходимости предварительной обработки.

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

1. Данные

Мы рассматриваем отток телекоммуникационных компаний для рынка предоплаты. Для простоты мы определяем отток как отсутствие активности использования в течение 1 месяца и рассматриваем 30 дней использования до начала окна оценки оттока (с коротким буферным окном между окнами, называемыми маркетингом и окном задержки данных). Флаг оттока равен 1, если абонент отбыл, и 0 в противном случае.

Данные об использовании содержат 12 переменных с такой информацией, как количество исходящих вызовов, объем загруженных данных в мегабайтах, количество подключений для передачи данных или количество SMS. Вся эта информация доступна для каждого из 30 дней и нормализована для каждого столбца, поэтому у каждого подписчика есть изображение 12x30, представляющее его поведение при использовании. 36 изображений / подписчиков представлены на первом изображении (рисунок 1).

Кроме того, мы включаем последний план каждого подписчика. Существует 55 различных планов, включая тарифный план только для передачи данных, голосовой план, план для социальных сетей или другое количество пакетов.

Данные включают 13 818 подписчиков.

2. Сверточная сеть для использования

Вход в сеть - это изображение размером 12x30, представляющее поведение пользователя за последние 30 дней.

Мы выбрали простую архитектуру с двумя сверточными слоями с одним выпадающим слоем после каждого, одним плотным слоем и предсказанием. Мы используем функции активации relu для всех слоев, кроме последнего, где требуется сигмоид.

  • Первый сверточный слой применяет фильтры 7x1 к строкам для каждой из переменных. Его можно рассматривать как недельный временной фильтр, и мы не группируем столбцы вместе, поскольку порядок переменной не имеет никакого значения.
  • Второй сверточный слой применяет 1x12, таким образом, беря все столбцы вместе (опять же, порядок переменной не имеет никакого значения).

Без особой тонкой настройки мы достигаем AUC 0,87 для невидимых данных. Для сравнения: точно настроенный случайный лес, оснащенный всеми просто агрегированными переменными (среднее, максимальное, сумма), не превышает 0,82.

Что видит сеть

Основываясь на (1), мы смотрим, какие входные изображения максимизируют промежуточные слои, в частности сверточный слой.

Мы ясно видим, что каждый из фильтров кодирует разный период времени, разные переменные или комбинацию переменных. Например, два верхних правых изображения показывают, что этот фильтр представляет собой предпоследнюю неделю с некоторыми различиями в обработке последней недели и 15 дней в центре. Второй нижний рисунок - это кодирование соединений для передачи данных, особенно в выходные дни, а также объема загрузки и продолжительности соединения (столбцы 6, 9 и 11). Как и ожидалось, второй уровень демонстрирует более сложные шаблоны, чем первый, поскольку сеть создает все больше и больше функций высокого уровня в отношении оттока.

3. Встраивание плана

Чтобы улучшить нашу модель и наше понимание динамики оттока, мы хотели бы добавить в модель план подписчиков. Чтобы сначала понять, что встраивание делает с данными, мы строим небольшую сеть, которая прогнозирует отток только с планом только через один уровень встраивания. Модель создаст 56-кратное кодирование данных (количество отдельных планов) и спроецирует это представление в двумерный вектор.

Чтобы сосредоточиться на эффекте встраивания, мы замораживаем конечный плотный слой с весами 1 и смещением 0. Мы проверяем два результата модели: конечную среднюю вероятность для каждого плана и 2D-проекции слоя встраивания. Мы наблюдаем, что:

  • 2D-проекция встраивания на самом деле состоит только из одного измерения, которое представляет собой среднюю склонность к плану (левый рисунок).
  • Сеть точно соответствует прогнозируемой склонности по плану к фактической средней склонности по плану (рисунок справа).
  • Все планы не имеют оттока (например, 55, 25, 53,…), спроектированы четко отделенными от планов, которые содержат некоторые случаи оттока.

Нам удалось преобразовать категориальную переменную, которую нельзя было напрямую использовать в рамках модели (50 категорий - это немного слишком много с нашим количеством наблюдений, чтобы их можно было рассматривать в древовидном алгоритме), в 2 новые переменные (встраиваемое измерение 1 и встраиваемое измерение. 2) даже очень просто. Эти новые переменные могут использоваться остальной частью сети, а представление категорий может быть скорректировано, например, в отношении сверточной сети.

4. Многоотраслевая модель.

Теперь, когда мы проверили эффект внедрения, мы можем объединить оба входа (использование и планы) в одну сеть. Мы используем ту же архитектуру, которая описана выше для каждой ветви, мы объединяем две ветви и добавляем один плотный слой в конце.

Комбинация использования и плана с этой архитектурой приводит к AUC для невидимых данных 0,88, что выше, чем для одиночной сверточной сети с данными об использовании. Обратите внимание, что объединить эти две ветви через слой конкатенации очень просто, и ее можно легко расширить на большее количество ветвей, то есть на большее количество различных входных данных.

Заключение

В заключение мы показали, что можем использовать методы глубокого обучения для решения типичных бизнес-задач и добиться более высокой производительности, чем традиционные методы. Мы также могли бы напрямую использовать функции, которые были бы недоступны без встраивания, и это можно обобщить на любые другие «неоднозначные числовые» функции, такие как изображения, текст и т. Д. Поскольку понимание результатов и решений, принимаемых моделью, имеет решающее значение, мы делаем акцент на том, как интерпретировать результаты внедрений и модели с помощью визуализации. Например, сеть реконструирует некоторые временные паттерны и взаимодействия переменных, которые можно увидеть на Рисунке 3.

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