Разработка Системы Рекомендаций Внутриигровых Предметов для Free to Play Игр

О Проекте

Целью проекта было изучить данные про действия, поведение и внутриигровые покупки игроков free to play видеоигр и понять как использовать эту информацию для рекомендации внутриигровых предметов. Так как правильная рекомендация предметов помогает издателям игр максимизировать покупки внутри игры и увеличить возврат пользователей.

Предмет это объект внутри игры который игрок может получить или приобрести и это важный источник доходов в free to play играх.

Задача

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

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

  1. Предсказать какой предмет игрок купит следующим.

  2. Понять стиль игры пользователя и рекомендовать подходящие предметы в адекватный момент в игре.

  3. Легко интегрировать рекомендации предметов в игру.

  4. Обновлять рекомендации по мере игры.

  5. Увеличить конверсию в покупателя рекомендуя нужные предметы.

Решение

Изучив 2 основных подхода к созданию системы рекомендаций:

  1. Коллаборативная фильтрация. Использует принцип, что если двум пользователям нравятся одинаковые предметы, то вероятно что пользователи похожи или если одному пользователю нравятся 2 предмета, то вероятно что предметы похожи.

  2. Кластеризация игроков по стилям игры и рекомендация предметов на их основе. Например кластеризация стилей использования транспортных средств игроками в Battlefield 3. Похожие исследования проводились для игр Destiny, Tomb Raider, Tera и Battlefield 2

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

Поэтому мы решили сделать свой ML-алгоритм, рекомендующий следующие покупки и за основу выбрали ансамбли деревьев принятия решений, среди которых остановились на Extremely Randomized Trees (ERT).

Данные

Наши данные, состояли из логов игровых сессий для каждого игрока. Так как мы не использовали решения на базе LSTM и RNN, чтобы модели тренировались быстро, то написали код считающий mean/variance/skew/kurtosis/maximum статистики для каждой временной серии каждого пользователя. Добавляя эти данные в вектор признаков пользователя сформировали вектор подаваемый на модель.

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

 

Тренировка Моделей

Чтобы тренировать модель на большой выборке мы разделили выборку на несколько частей и тренировали небольшое количество деревьев (~20) на каждой под-выборке. Финальный ансамбль сформировали из множества маленьких ансамблей, что дало очень устойчивую модель.

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

Результат

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

  1. Точность 40% для товара с максимальной вероятностью покупки.

  2. Точность 68% для 2 товаров с максимальными вероятностями покупки.

  3. Точность 81% для 3 товаров с максимальными вероятностями покупки.  

Параллельно мы сравнили ERT с Нейронной Сетью и получили, что ERT и NN дают одинаковую точность, но ERT лучше масштабируется в операционной среде.

Технологии

  • Python

  • Scikit-learn

  • Vertica

  • MongoDB

  • Docker

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

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

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

  • linkedin
  • facebook