Изучение подходов машинного обучения для принятия решения о том, как разместить игровые автоматы на веб-сайте, чтобы добиться максимальной эффективности

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

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

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

Для достижения вышеизложенного был реализован трехэтапный подход.

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

Процесс

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

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

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

Давайте изучим данные, которые были в нашем распоряжении

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

  • Сначала у нас были проблемы с качеством данных, которые мы должны были решить и
  • Во-вторых, у нас были проблемы при попытке объединить данные, поскольку у нас было два разных источника с несовместимыми идентификаторами. Объем наших данных составил 14 тыс. строк данных о производительности и позиционных данных комбайнов.

Наиболее важные особенности:

Товарооборот – показатель производительности игры и целевая переменная в нашей реализации.

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

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

Обработка данных

Чисто, чисто, чисто. Да, вы зарегистрировались, данные не были готовы к использованию. Не беспокойтесь, однако, у нас есть стратегия, чтобы успокоиться и показать им немного любви.

Прежде чем начать наши исследования и внедрение, нам нужно было унифицировать наши данные. Компания предоставила нам 7 разных таблиц данных в формате csv, как я упоминал ранее, которые были сгенерированы из двух разных баз данных и имели совершенно разное форматирование друг с другом. У нас было более 400 тысяч строк данных о позициях, однако нам пришлось фильтровать только те записи, по которым у нас также были данные о производительности. Поскольку эти записи не имели одинаковых идентификаторов, нам пришлось придумать другие способы фильтрации и объединения данных, и мы решили использовать метод, называемый расстоянием Левенштейна, и вычислить разницу в символах, таких как название игр, имя создателя этой игры, а затем сопоставьте это с точной датой записи. Всякий раз, когда показатель сходства превышал 85 %, мы были уверены, что сопоставляем записи правильно.

Исследование данных

Выполнив все задачи по обработке данных и приведя данные в единое форматирование, мы приступили к исследовательскому анализу данных и столкнулись со следующими проблемами:

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

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

Наконец, нам пришлось компенсировать несбалансированность данных, поскольку у нас было много игр с более чем 500-дневным появлением, а многие другие только с 5-дневным появлением, что добавляло много шума в наши данные.

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

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

Решение проблемы

Теперь давайте рассмотрим подход, который мы использовали для решения этой проблемы.

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

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

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

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

Поскольку мы сформулировали нашу проблему и согласовали методологию, которой мы будем следовать для ее решения, мы можем двигаться вперед с нашим системным конвейером.

На этом рисунке мы можем видеть наш системный конвейер от начала до конца. У нас есть этапы Data Engineering и Feature Engineering в отношении наших данных, за которыми следуют этап моделирования, этап объяснений и, наконец, рекомендации с контрфактами. В этом конвейере два итерационных процесса, целью которых является поиск наилучшего сочетания разработки функций и моделирования.

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

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

А теперь давайте рассмотрим каждый шаг воронки

Инженерия данных

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

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

Разработка функций

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

Двумя наиболее эффективными стратегиями разработки признаков были:

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

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

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

Моделирование

Переходя к следующей части реализации, мы находимся на этапе построения оценщика. Мы использовали множество различных алгоритмов, и те из них, которые дали наилучшие результаты, получили ансамбль алгоритмов Extreme Gradient Boost в сочетании с глубокими нейронными сетями.

Оценка

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

Тестовый набор был разделен на сегменты для более точной оценки на основе распределения значений оборота. Наша основная цель — оценить каждую корзину отдельно и изучить процент ошибок по сравнению со значением оборота.

Наконец, для лучшего контроля мы использовали еще один метод машинного обучения, называемый якорями, который может обнаруживать аномалии в принятии решений нашим оценщиком. Это метод глубокой оценки модели, основанный на статье Рибейро, Сингха и Гестрина от 2018 года.

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

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

Пояснения

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

Хотите узнать больше о ценностях Шепли? (https://shap.readthedocs.io/en/latest/)

Что такое объяснения Шепли и как мы использовали их в нашей реализации? Концепция Шепли заключается в следующем:

Допустим, у нас есть командная игра. Ценности Шепли говорят нам, насколько каждый игрок внес свой вклад в результат.

В нашей реализации, в рамках коллективных усилий по оценке Оборот, насколько каждая функция способствовала оценке Оборота. Наша цель состояла в том, чтобы выяснить, будут ли данные о местоположении вносить наибольший вклад в принятие решений алгоритмом, что является первым вопросом этого завершающего проекта. Чтобы убедиться, что все требования выполнены, мы руководствовались документом под названием The Shapley Value in Machine Learning of Rozemberczki 2022, который стал катализатором для внедрения этого метода при сохранении статистической значимости.

Рекомендации

Используя наш лучший оценщик и знания о принятии решений, мы продолжаем внедрение техники машинного обучения под названием «Контрфактические объяснения», которая была предложена группой машинного обучения Гарварда в 2018 году в качестве метода моделирования объяснимости. Чтобы объяснить, что он делает, мы будем использовать следующий пример.

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

Для нашей конкретной системы мы будем снабжать систему записью игры и определять нашу цель по обороту (скажем, наша цель — увеличение оборота на 25%), а затем контрфактуалы будут предлагать модификации этой игры, которые приведет к тому, что увеличение товарооборота.

Кости

Мы использовали DICE для нашей реализации, которая представляет собой пакет Python, который реализует контрфактические объяснения для задач регрессии и дает нам возможность диктовать наши собственные ограничения, что делает его идеальным для нашей проблемы.

Хотите попробовать сами? (https://github.com/interpretml/DiCE)

Затем результаты контрфактических объяснений можно использовать для формирования общего оптимизированного решения для всех игр в сетке.

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

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

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

Заключение

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

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

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

Спасибо!