Легализация марихуаны подтолкнула многих розничных торговцев, впервые обращающихся к ней, искать эту прекрасную возможность. Только для того, чтобы вскоре понять, что государственное налогообложение и жесткая конкуренция, часто ограничивающая сектор, быстро сокращают эти возможности и прибыль. Короче говоря, многие в этих ранних юридических государствах (Колорадо) вскоре поняли, что сокращение прибыли требует немного большего понимания того, что и как продавать. К счастью, индустрия каннабиса возникла во время нового технологического взрыва, известного как машинное обучение и наука о данных. Что, в свою очередь, привело к появлению стартапов, стремящихся предоставить понимание и аналитику тем, кто сейчас испытывает трудности с розничными торговцами. В одном из таких стартапов, Zefyr, я помогал создавать GoZefyr.com, поисковую систему для пространственной аналитики каннабиса. Позже это помогло мне разработать несколько методов машинного обучения, и более интересный из них я представлю ниже.

Почему обучение с подкреплением?

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

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

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

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

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

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

Технические вопросы

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

Определение наблюдений и состояния

Для первых нескольких версий я использовал модель с упрощенным DQN (первая форма DRL, смотрите видео, чтобы узнать больше), используя статическое состояние, описываемое 3 диспансерами, расположенными в сетке 5x5. Каждый диспансер определил свое место на сетке и свое меню по 3/4 различным категориям (цветы (сатива / гибрид), съедобные, концентраты). Каждая категория меню представляет собой набор элементов, упорядоченных по цене. Каждый товар представлен ценой и распределением, которое наилучшим образом соответствует рейтингу продукта и количеству THC с точки зрения нормального распределения, представленного средним значением и стандартным отклонением.

Используйте методы Монте-Карло

Примерно в 2005 году я работал над разработкой модели анализа рисков с помощью пакета программного обеспечения для геомеханики ствола скважины, над которым я помогал работать, под названием STABView. Количественный анализ риска, как его называют, основан на использовании распределений вероятностей для моделирования входных данных значения и предоставления ответов в форме вероятности или риска. Базовая математика называется методами Монте-Карло цепи Маркова, которые по совпадению имеют много общего с основами математики RL. Методы Монте-Карло - отличный способ смоделировать неопределенность, которая угрожает при обсуждении рейтингов потребителей или количества THC, обнаруженного в суставе. Интуитивно наш мозг все время моделирует эти распределения при принятии решений. Поэтому казалось естественным просто представить модели одни и те же распределения. Поскольку наша модель будет загружена в нейронную сеть с глубоким обучением, которая научится моделировать на основе распределений. Что касается моделирования распределений, это просто делается с использованием описательной статистики онлайн-рейтингов клиентов и различных справочных источников для значений THC. Во многих случаях значения THC были оценены, но это только усилило преимущества использования методов Монте-Карло.

Моделирование потребительской демографии

В большинстве систем RL для решения проблемы используется один агент, но в этом случае я использую несколько агентов, каждый из которых представляет клиента. Все агенты в модели по-прежнему будут использовать один и тот же мозг RL. Каждая сетка в сетке карты 5x5 сверху содержит несколько агентов в зависимости от населения сетки. Каждый квадрат сетки представляет собой демографический регион почтового индекса. Фактически, в реальных данных Zefyr мы моделируем клиентов, используя реальные демографические данные. Эти демографические данные будут определять сумму денег, которую клиент должен потратить, а также возможные предпочтения. Опять же, чтобы быть справедливым, все эти ценности моделируются как распределения, которые будут использоваться для оценки сохраняющегося богатства агентов и понижения их предпочтений. В качестве части входного состояния мы добавим агентов, остающееся богатство после каждой покупки / действия, и значение, чтобы представить демографический регион клиентов. Наша демографическая модель основана на наборе данных ESRI Tapestry, который также создается с помощью методов машинного обучения.

Как совершить покупку: как это работает

С смоделированным необработанным состоянием я построил остальную часть модели, используя простую глубокую Q-сеть. Не вдаваясь в подробности; модель приняла в качестве входных данных сплющенное состояние и обработала его через несколько скрытых слоев, чтобы отобразить действие в виде трех выходных данных, представляющих диспансер, категорию меню и пункт. Каждый агент / потребитель был смоделирован для одной и той же сети, но различается по демографическим характеристикам. Следовательно, в начале каждого прогона моделирования, который длился 7 или 30 виртуальных дней, каждому агенту давалась случайно выбранная сумма денег, основанная на их демографических характеристиках (это часть Монте-Карло). Эта сумма представляет собой свободные средства для покупки продукта. Агент не будет получать больше денег до окончания забега. В течение каждого дня агент получал информацию о состоянии меню модели, включая его доход и демографические предпочтения, и они генерировали выходные данные, представляющие действие или покупку. Покупка совершается для агента за вычетом суммы денег и любых дорожных расходов. Для агента добавляется стоимость проезда к каждому квадрату сетки, чтобы добраться до места. Например, агент в квадрате 1,1 должен будет заплатить удвоенные транспортные расходы, чтобы добраться до амбулатории в квадрате 3,3. В исходном примере я использовал Денвер в качестве тестового примера. На этом этапе, если у клиента не было достаточно денег, чтобы совершить успешную покупку, я штрафую агента -0,1 вознаграждения. Это сделано для того, чтобы агент каждый день успешно покупал товар. Если есть небольшое штрафное вознаграждение, оно возвращается агенту сейчас, но общая оценка покупок выполняется позже.

Оценка вознаграждений, удовлетворение потребителя

Оценка всех покупок выполняется в конце прогона, что позволяет агенту клиента дождаться общего отложенного вознаграждения и, таким образом, обеспечивает лучшее сравнение продуктов. Для каждой покупки случайно выбранный обзор и значения THC выбираются с использованием методов Монте-Карло, но на основе выбранного элемента. Эти значения в сочетании с демографическими данными клиентов формулируются нормализованными, чтобы обеспечить вознаграждение за покупку. Среднее значение берется из суммы всех вознаграждений за покупки, что дает общее среднее вознаграждение, которое возвращается в DQN для обучения. Секретный соус здесь, и я не буду вдаваться в подробности, - это оценка вознаграждения за покупку, которая в конечном итоге оказывается числом от 0 до 1. При этом 1 является действительно хорошей покупкой.

Как выглядит результат

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

Пример изображения выше является простой копией исходного примера, который был запущен в Денвере. Опять же, чтобы избежать всего этого, я воспроизвел результаты на нескольких снимках экрана. Одна из вещей, которую я сразу заметил, - это пара регионов с очень низкими средними показателями удовлетворенности клиентов рядом с несколькими пунктами диспансера. В других местах модель, казалось, довольно точно предсказывала, в чем проблема в этих регионах? Не будучи из Денвера и канадца, я был немного удивлен, пока в разговоре со своими американскими коллегами не узнал, что на самом деле это очень депрессивные регионы, и мои результаты не были такими удивительными. Похоже, что даже аптеки, расположенные недалеко от депрессивных регионов, все еще занимались маркетингом для конечных потребителей, что еще больше усилило мою модель. В целом я был приятно удивлен своими результатами и в настоящее время занимаюсь дополнительным исследованием. Имитация точных покупок потребителей также предоставляет отличную модель для быстрого тестирования продуктов, мест и мест в альтернативном меню диспансера и даже, возможно, агента в диспансере RL. Есть и другие способы развить DQN, возможно, перейти к полноценной модели PPO.

Источник

Я не могу предоставить исходный код модели, но если есть достаточный интерес, я могу предоставить более полную и надежную демонстрацию модели DQN, созданной с помощью Keras. Альтернативой, которую я также рассмотрел, является использование модели PPO, встроенной в Unity, с полным интерфейсом 3D-карты для запуска и демонстрации моделирования. Принимая во внимание мои другие временные обязательства и рабочие исследования, это, вероятно, всего лишь мечта, но мне также было бы очень интересно услышать, как эта модель могла сработать для вас ...