Как мы использовали обучение с подкреплением, чтобы нацеливать предложения на клиентов

Введение

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

XChannel поддерживает 3 типа кампаний в магазине:

  1. Кампании на основе близости
  2. Социальные кампании
  3. Социальные кампании на основе близости

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

  1. Должны ли мы привлекать покупателя? — Хотя присутствие покупателя в определенном проходе является основным сигналом для привлечения покупателя, мы также используем несколько вторичных индикаторов. Отправка предложений в магазине сопряжена с риском, когда речь идет о релевантности и потенциальном негативном клиентском опыте.
  2. Когда мы привлекаем их? — Как только мы решили привлечь клиента, следующее решение — когда. Одна из проблем в этом контексте состоит в том, чтобы отличить кого-то, кто просто проходит мимо прохода или кто просто поверхностно интересуется продуктом, от кого-то, кто серьезно заинтересован в покупке продукта в этом проходе. Интуитивно думать, что продолжительность их пребывания в торговом ряду свидетельствует о серьезности их покупательских намерений.
  3. С каким предложением их привлечь? — XChannel позволяет связать несколько предложений с кампанией. Таким образом, конкретное предложение для целевой аудитории выбирается динамически на основе вероятности его принятия.

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

Учебные задачи

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

  1. Проблема начальной загрузки. Упражнение по сбору данных требует, чтобы мы прогнали различные комбинации данных, чтобы они охватывали все возможности. Таким образом, большая часть таргетинга кампании тратится только на сбор данных. Это также означает, что мы можем столкнуться с плохим качеством обслуживания клиентов заранее, просто чтобы улучшить качество обслуживания клиентов в будущем.
  2. Обучение становится менее актуальным. Продукты, связанные с кампанией, и сама кампания время от времени меняются. Типичные кампании длятся не более нескольких недель. Таким образом, к тому времени, когда мы соберем данные, они могут стать менее актуальными, поскольку сама кампания могла измениться.
  3. Слишком много переменных. Две вышеупомянутые проблемы усугубляются тем фактом, что нам нужно собирать данные для кампании по слишком большому количеству переменных, включая, среди прочего, данные о клиентах, данные кампании и данные магазинов. Все эти комбинации данных расширяют данные, необходимые для обучения модели с использованием методов контролируемого обучения.

Все вышеперечисленные проблемы со сбором данных заставили нас взглянуть на Reinforcement Learning (RL) как на альтернативу. RL набирает большую популярность в последние несколько лет с тех пор, как ребята из DeepMind обучили агента RL играть в игру Atari в 2013 году. RL продемонстрировал огромный потенциал в своей способности учиться онлайн путем методов проб и ошибок.

Краткое введение в обучение с подкреплением

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

Алгоритмы RL используются для решения задач, которые моделируются как Марковский процесс принятия решений (MDP), который представляет собой процесс стохастического управления с дискретным временем. MDP обычно используются для решения задач последовательного принятия решений в стохастических условиях. Другими словами, MDP обеспечивают математическую основу для моделирования проблем, когда нам нужно принять ряд решений таким образом, чтобы максимизировать некоторое вознаграждение.Но поскольку среда является стохастической, результат каждого из эти решения отчасти случайны, а отчасти основаны на принятом решении.

Ключевыми элементами MDP являются среда и агент (рис. 1). Средой может быть игра, робот или, в нашем случае, система доставки предложений. Агент может быть программной системой, которая учится взаимодействовать с окружающей средой посредством периодических действий и получает вознаграждение в процессе.

Когда агент взаимодействует со средой посредством своих действий, среда переходит в новое состояние. Этот переход иногда связан с вознаграждением. Агент использует это вознаграждение, чтобы больше узнать об окружающей среде. Целью RL является обучение программного агента взаимодействию со средой таким образом, чтобы он мог максимизировать будущие вознаграждения. Последовательность действий, предпринимаемых агентом, называется политикой, а политика, максимизирующая будущее вознаграждение, называется оптимальной политикой. Поэтому алгоритмы RL пытаются изучить оптимальную политику для стохастической среды, смоделированной как MDP, взаимодействуя с ней методом проб и ошибок (известных также как исследование и эксплуатация) и наблюдая за вознаграждением, полученным в процессе.

На рисунке ниже показаны ключевые элементы MDP и процесс обучения агента. Агент в каждый дискретный интервал времени получает состояние среды. Затем агент генерирует действие. Среда реагирует на действие переходом в новое состояние и возвращает новое состояние вместе с соответствующим вознаграждением агенту.

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

Алгоритмы RL

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

  1. Q-Learning принадлежит к группе алгоритмов, называемых алгоритмами на основе ценности. Он направлен на то, чтобы присвоить значение каждой паре состояние-действие на основе их потенциала, чтобы максимизировать будущие вознаграждения. Интуитивно это похоже на шахматиста, который просматривает все возможные ходы с заданной позиции на доске и выбирает тот, который имеет наибольшие шансы на будущую победу. Звучит логично, не так ли?
  2. REINFORCE (он же Stochastic Policy Gradient) относится к семейству алгоритмов, называемых алгоритмами на основе политик. Он пытается напрямую изучить политику путем выборки из распределения вероятностей возможных действий в данном состоянии. Грубо говоря, это похоже на шахматиста, делающего случайный ход и пытающегося запомнить (или забыть) этот ход на основе положительного (или отрицательного) награда получена. Эти награды могут быть получены в будущем после того, как будет сделано несколько ходов. Ключевая идея, лежащая в основе Градиента политик, заключается в настройке распределения выборки действий таким образом, чтобы повышать вероятность действий, ведущих к более высокой отдаче, и снижать вероятности действий, которые ведут к более низкой отдаче, пока вы не достигнете оптимальной политики. Вот пример агента, который учится играть в игру Pong, используя градиент политики.

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

Формулировка проблемы XChannel

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

В основном это сводится к проверке того, что -

  1. Все выбранные действия и признаки состояния релевантны. Другими словами, переходы состояний предсказуемы выбранным действием и характеристиками состояния.
  2. Полученная награда действительно осмысленно определяется как действиями, так и состояниями.

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

В контексте MDP модель XChannel состояла из следующего:

Среда — клиент, который получает уведомления/предложения и действует в соответствии с ними. Поскольку одно и то же предложение может вызывать разные реакции в разное время, среда является стохастической.

Агент — система уведомлений о предложениях XChannel, которая через определенные промежутки времени решает, будет ли, когда и как привлекать клиента, отправляя уведомление о предложении.

Действие — ДА/НЕТ в зависимости от того, решим ли мы привлечь клиента или нет в данный момент времени

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

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

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

С этими определениями Среды, Агента, Действия и Вознаграждения наша проблема RL сводится к следующему:

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

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

Реализация

На рис. 2 ниже показаны ключевые компоненты системы. Система состоит из трех логических компонентов:

Listener — отслеживает новые устройства и ранжирует их, когда они находятся в непосредственной близости от наших маяков. Как только они находятся в пределах досягаемости, он собирает все соответствующие данные (состояние) клиента и его устройства и передает их Принимающему решение. Listener также отслеживает действия пользователей и назначает вознаграждения в зависимости от вовлеченности пользователей.

Decider — компонент, который инкапсулирует нашу модель RL. Он принимает данные о состоянии пользователя/устройства и любые связанные с ним вознаграждения и решает, стоит ли привлекать клиента и когда. Он также выбирает предложение для взаимодействия с клиентом.

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

Используемая модель RL представляет собой глубокую Q-сеть (DQN), которая представляет собой глубокую нейронную сеть, которая изучает функцию значения состояния-действия (Q).

Как мы уже обсуждали, алгоритмы RL теоретически разработаны на основе марковского процесса принятия решений (MDP), в котором какое-то долгосрочное вознаграждение оптимизируется в последовательной настройке.

Обсуждение

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

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

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

  1. Вознаграждение +X для пользователя, открывающего уведомление о предложении и действующего в соответствии с ним.
  2. Вознаграждение -X для пользователя, открывшего уведомление о предложении и проигнорировавшего его.
  3. Вознаграждение -Y для пользователя, не открывающего уведомление (Y ‹ X)

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

Стабильность. Традиционная глубокая Q-сеть страдает от нескольких проблем, влияющих на их стабильность и сходимость.

  1. По мере того, как он продолжает исследовать траектории новых состояний, он может «забыть» ранее изученные правила («испытывать амнезию»).
  2. Поскольку и значение входного признака, и целевое значение Q постоянно меняются, решение может стать нестабильным.

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

Заключение

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

Первоначально опубликовано на http://www.xemobi.com/