Сама суть цепочки рекламных каналов вызывает непреодолимое желание узнать, что, скорее всего, произойдет дальше в цепочке.
Будет конвертация или нет? Но это похвальное желание часто сталкивается с проблемой.
Если вы попытаетесь сохранить сумму ложно положительный результаты находятся в разумных пределах, количество истинных положительных результатов не впечатляет. Как следствие, результаты анализа зачастую не позволяют принимать адекватные управленческие решения.
Для адекватного прогнозирования требуется больше данных, чем просто короткие цепочки пользователей.
Но это не значит, что от этой задачи следует отказаться.
В этой статье мы немного расскажем вам о серии экспериментов по разработке алгоритма прогнозирования конверсии.
Эта статья является продолжением двух предыдущих на схожие темы.
Вот первый , Вот второй .
Постановка задачи
Любой, кто имел дело с машинным обучением в контексте прогнозирования, знаком с ЛСТМ ( РНН нейронные сети).Но для нас «прогнозирование» сводится к еще более простой задаче.
Предсказать конверсию — значит отнести конкретную цепочку к классу «конвертации в будущем».
По LSTM есть огромное количество отличного материала по созданию системы прогнозирования значений.
Временные ряды И буквы в словах .
В нашем случае задача была, на первый взгляд, еще проще.
- Анализируя взаимодействие каналов, мы можем создать что-то вроде алфавита, где буквы — это отдельные каналы.
Например – «(канал) 1», «(канал) 2»,…
- Из букв получается огромное количество «слов» в виде цепочек, представляющих собой все возможные комбинации взаимодействий пользователя и каналов.
Например, цепочка = «1», «2», «1», «3»; цепочка = "2", "4", "4", "1";.
Рисунок 1. Обработка грубых данных для удаления слишком коротких и разделения слишком длинных цепочек.
Наша цель — определить комбинацию касаний, которая максимизирует вероятность конверсии по всей потребительской базе для цепочек выбранной длины.
Для этого из всей выборки выбираем слова (цепочки) необходимой длины.
Если цепочка длиннее заданной, она разбивается на несколько цепочек нужной длины.
Например - (1,2,3,4) -> (1,2,3), (2,3,4).
Процесс обработки показан на рисунке 1.
Первая попытка простого решения.
В этой попытке мы обучили сеть LSTM с «почти необработанными» цепочками одинаковой длины и получили значение РУК АУК где-то около 0,5, что говорит нам о том, что точность классификатора стремится к эффективности подбрасывания монеты.
Упс.
Не работает. Но стоило ли пытаться сделать это глупо? Внезапно это будет поездка.
Но нет. Мне пришлось немного подумать.
Анализ происходящего
Ключевое наблюдение 1 Однородные цепи бесполезен в этом исследовании.Их преобразование зависит только от длины цепочки и номера канала, классификатора для них в разработке логистическая мультирегрессия с двумя факторами.
Категориальный коэффициент — это номер канала, а числовой коэффициент — длина цепочки.
Это оказывается достаточно прозрачно, хотя и бесполезно, поскольку достаточно длинные цепочки в любом случае вызывают подозрение в конвертации.
Поэтому их вообще можно не рассматривать.
Здесь следует отметить, что размер выборки существенно уменьшается, поскольку обычно около 80% всех цепей являются однородными.
Ключевое наблюдение 2 Вы можете отбросить все (по сути) неактивные каналы, чтобы ограничить объем данных.
Ключевое наблюдение 3 На любую цепочку можно подать заявку горячий кодирование.
Это устраняет проблему, которая может возникнуть, если вы помечаете каналы числовой последовательностью.
Например, выражение 3 – 1 = 2 не имеет смысла, если числа являются номерами каналов (рис.
2.).
Помимо прочего, мы пытались закодировать цепочку множеством странных способов, основанных на различных предположениях о природе цепочек.
Но так как нам это никак не помогло, то и говорить об этом не будем.
Рис.
2. Второе преобразование данных.
Удалите все однородные цепочки, нанесите однократное горячее кодирование.
Вторая попытка простого решения
Для разных вариантов цепного кодирования были опробованы следующие инструменты классификации:- ЛСТМ
- Несколько LSTM
- Многослойный перцептрон (2,3,4 слоя)
- Случайный лес
- Классификатор повышения градиента (GBC)
- СВМ
- Глубокая сверточная сеть (в два слоя, на всякий случай)
Результат не вызвал оптимизма.
AUC ROC выросла до 0,6, но в нашем случае этого было явно недостаточно.
Третья попытка: простое решение.
Все произошедшее естественным образом привело к мысли, что самое главное — это разнообразие в составе каналов цепочек и реальный состав каналов при условии одинаковой длины цепочек.
Это не такая уж тривиальная идея, ведь принято считать, что порядок тоже важен.
Но предыдущие эксперименты с LSTM показали, что даже если это и правда, то это нам мало чем поможет. Поэтому нам необходимо максимально сосредоточиться на составе цепи.
Например, вы можете удалить все дубликаты из цепочки и отсортировать полученный список.
Это можно сделать с помощью чего-то вроде этого простого кода Python:
Преобразование в кортеж необходимо для того, чтобы в дальнейшем использовать эту цепочку в качестве ключа в словаре шаблонов.sorted_chain = tuple(sorted(list(set(chain))))
После этого вы сможете посчитать, сколько и каких цепочек у вас получилось.
Получается как на рисунке 3.
Рис.
3. Сортировка и подсчет узоров цепочек На первом проходе мы можем рассчитать средний коэффициент конверсии для каждой цепочки «шаблонов» в данных.
Теперь сортируем полученный список по убыванию конверсии и получаем классификатор с параметром «обрезание по конверсии».
Проверяя преобразованную указанным способом тестовую цепочку на наличие одного из паттернов из списка с конверсией большей заданной, мы классифицируем ее как вызывающую конверсию, или бесполезную.
Теперь мы можем протестировать все входящие цепочки с помощью этого классификатора коэффициента конверсии и спрогнозировать результат. На основе того, что получилось, мы создали единственный в этой статье график, показывающий преимущество такого подхода.
Кривая ROC для этого подхода, который называется проверкой шаблона.
Рис.
4. ROC-кривые для разных классификаторов.
Для нашего нового метода AUC = 0,7. Это уже что-то.
Не совсем победа, но и далеко не подбрасывание монеты.
Комментарий.
Этот метод можно реализовать и без использования one-hot, как описано здесь для ясности, но если вы хотите добиться успеха, то это уже может потребоваться.
выводы
Когда люди, знакомые с машинным обучением, слышат слово «паттерн», они сразу думают: «сверточные нейронные сети!» Да.Это правда, но мы не будем об этом сейчас писать.
Мы представили здесь то, что мы считаем хорошим методом преобразования цепочек, который сразу позволяет получить классификатор (предиктор), работающий лучше, чем непосредственное использование даже самых передовых технологий.
С его помощью уже можно выявить группу пользователей с высокой вероятностью конверсии и не бояться тысяч ложных срабатываний.
По нашим данным при выборе порога в алгоритме конверсии 0,25 мы получили для 5112 конверсий тестовой выборки 523 истинных позитива и 1123 ложных позитива, что в принципе терпимо при условии, что в группе было 67 тысяч человек.
тест. P.S. Чтобы быть в курсе новостей компании Максилект и узнавать обо всех публикациях первыми, подписывайтесь на наши страницы в ВК , ФБ или Telegram-канал .
Теги: #maxilect #рекламные каналы #рекламные каналы #маркетинговые инструменты #маркетинговые инструменты #Google Analytics #коэффициент конверсии #конверсия сайта #цифровой маркетинг #цифровой маркетинг #прогнозирование #Веб-аналитика #Интернет-маркетинг #Контекстная реклама #Повышение конверсии
-
Встреча Php-Разработчиков В Уфе
19 Oct, 24