Прогноз LTV для Free to Play Игр Используя Нейронные Сети

О проекте

Цель проекта - разработать модель предсказывающую lifetime value игрока точнее чем параметрические модели типа BG/NBD. Использовать эту информацию, чтобы выделять пользователей с высоким LTV, называемых китами, которых важно удерживать в игре, потому что они приносят более 50% дохода.
 

Lifetime value (LTV) - доход, который принесет пользователь за все время взаимодействия с игрой.


Free to Play игры - бесплатные игры с доходом от покупок внутриигровых предметов и преимуществ.

Задача

Использовать данные про поведение игрока, его действия, частоту и сумму покупок, для предсказание его LTV.

​Требования к модели:

  1. Улучшить точность в сравнению с параметрическими моделями типа BG/NBD.

  2. Высокая точность в определении китов.

  3. Маштабироваться до тысяч игроков.

  4. Работать для игр разных жанров.

Решение

Фундаментом прогнозных моделей расчета LTV были RFM модели, которые делили пользователей на группы по давности покупки (recency), частоте (frequency), сумме покупки (monetary). Основой RFM моделей выступает предположение, что если пользователь купил недавно, покупает часто или тратит много, то он вероятнее купит снова.


Потом RFM принцип начали использовать в вероятностных моделях типа Pareto/NBD или BG/NBD, известные как "buy till you die" (BTYD) модели. Предполагающие что у пользователя есть осознанный или не осознанный повторяющийся шаблон покупок, которым он пользуется до конца бизнес отношений, в нашем случае до ухода из игры. Эти модели обычно комбинирую 2 параметрических распределения - Бета-распределение (BG) маркирует активен пользователь или нет и отрицательное биномиальное распределение NBD для оценки частоты покупок. Но есть и другие параметрические модели использующие отличающиеся распределения вероятностей.
 

Приступая к разработке моделей прогноза LTV на нейронных сетях решили, что будем сравнивать их точность с параметрической моделью BG/NBD. Основой наших моделей стали многослойный перцептрон и сверточные нейронные сети.


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

Перцептрон состоял из 5 слоев:

  • входной слой состоял из 198 нейронов, количество узлов равно количеству признаков игровой активности.

  • 3 внутренних слоя из 300, 200, 100 нейронов соответственно.

  • выходной слой из 1 нейрона, прогнозирующий LTV данного пользователя за год.


Для тренировки инициализировали веса методом Xavier, использовали ADAM алгоритм обратного распространения ошибки и сигмоиды как функции активации.


Сверточная нейронная сеть CNN - тип нейронной сети с одним или более сверточным слоем. Мы обучили CNN на исторической активности пользователя, представленной в виде временных серий, методику взяли из статьи Deep Convolutional Neural Networks On Multichannel Time Series.


CNN состояла из 10 слоев:

  • входной слой.

  • сверточный слой из 32 фильтров с ядром размерности 7.

  • слой с max pooling операцией.

  • сверточный слой из 16 фильтров с ядром размерности 3.

  • сверточный слой из 1 фильтра с ядром размерности 1.

  • выравнивающий слой из 198 нейронов.

  • 3 внутренних слоя из 300, 200, 100 нейронов соответственно.

  • выходной слой из 1 нейрона, прогнозирующий LTV данного пользователя за год.


Для тренировки также инициализировали веса методом Xavier, использовали ADAM алгоритм обратного распространения ошибки и использовали ReLU как функции активации.
 

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

Результат

Для оценки ошибок использовали среднюю квадратичную логарифмическую ошибку RMSLE и процентную ошибку. Процентную ошибку считали как среднее отклонение предсказанного значения LTV от реального, деленное на максимальное значение реального LTV. Все модели предсказали с процентной ошибкой менее 10%.

Процентная ошибка BG/NBD моделей 

  • 8% на тренировочной выборке

  • 11% на тестовой выборке

  • 43% на выборке из китов  
     

Процентная ошибка для многослойного перцептрона

  • 5% на тренировочной выборке

  • 8% на тестовой выборке

  • 20% на выборке из китов  

Процентная ошибка для CNN 

  • 5% на тренировочной выборке

  • 8% на тестовой выборке

  • 19% на выборке из китов  


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

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

Технологии

  • Python

  • Scikit-learn

  • TensorFlow

  • Keras

  • Docker

Киев, Украина

ул. Дмитриевская, 80

+380 (98) 514 43 77 
is@arcanefuture.com 

  • linkedin
  • facebook