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

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

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

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

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

Давайте посмотрим, как построить пост-анализ платформы рекомендаций. Начнем с подхода сверху вниз.

Ниже приведены некоторые моменты, которые следует учитывать.

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

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

Маркетолог должен уметь проводить A / B-тестирование рекомендаций

A / B-тестирование рекомендаций - это отдельная тема. Стандартные инструменты, такие как Optimizely или VWO, действительно могут помочь здесь выяснить, насколько ваши рекомендации работают по сравнению друг с другом, и выбрать победителя.

Строить или покупать?

Build vs Buy - дискуссионная тема. Следует учитывать четыре фактора.

Контроль: - Если ваш бизнес / продукты уникальны или ваш объем слишком велик, приступайте к работе. Если ваш список стирки более или менее покрыт, покупайте.

Стоимость: - Платформы для рекомендаций, как правило, очень дороги, поскольку они даже иногда превращаются в полноценные платформы персонализации. Есть b вариантов костей, которые также имеют урезанный набор функций. Популярные готовые платформы рекомендаций / персонализации продуктов включают Rich Relevance и Dynamic Yield.

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

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

Даже если вы хотите создать свою собственную платформу рекомендаций, я бы посоветовал строить ее на базе платформы рекомендаций без головы, такой как Amazon Personalize. [6]

Какие рекомендации можно дать?

Я разделил то же самое на основанные на запросах (SQL), основанные на правилах, специальные и основанные на машинном обучении. Мы также рассмотрим рекомендации, основанные на рабочем процессе, и некоторые комбинации подходов.

Те, которые основаны на запросе, могут включать

Популярные / Бестселлеры. Простой запрос.

Популярные / бестселлеры во всех жанрах. Для веб-сайта / приложения с фильмами (netflix) это будут лучшие комедии, ужасы и фильмы других жанров.

Популярно в течение указанного периода (30 дней, 60, 90 дней). Простой запрос.

Некоторые из них, основанные на правилах, включают

Перекрестные продажи. Если карта добавлена ​​в корзину или приобретена ранее, порекомендуйте держателя карты.

Повышенные продажи. Если велосипед по стандартной цене добавлен в корзину или приобретен ранее, порекомендуйте премиум-версию.

Ad-hoc включает

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

А как насчет того, кто уже заходил на сайт или в приложение раньше?

Давайте посмотрим на простые методы без машинного обучения (на основе запросов).

Просмотрено ранее, но не заказано. Полезно для веб-сайта электронной коммерции.

Добавлен в корзину раньше, но не заказан. Полезно для веб-сайтов электронной коммерции.

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

Просмотрено перед просмотром, но просмотр не завершен. Полезно для веб-сайта / приложения с фильмами (Netflix)

Все вышеперечисленное можно настроить с продолжительностью. Например, просмотрел / добавлен в корзину за последние 30 дней, но не заказан. Обратите внимание, хотя они выглядят простыми, некоторые из них лучше всего обслуживаются в режиме реального времени с помощью Redis Sorted Sets [8]. Также всегда начинайте с рекомендаций по партиям, прежде чем переходить к рекомендациям в реальном времени.

Теперь давайте посмотрим на несколько машин машинного обучения

Популярные ML включают

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

Совместная фильтрация элементов и элементов. Корреляция элементов для поиска элементов, наиболее похожих по вкусу на текущий элемент. [2]

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

Анализ рыночной корзины. Анализ рыночной корзины - это метод, основанный на теории множеств, который направлен на выявление перекрестных покупок на основе текущих товаров в корзине и частоты покупок. [4]

Факторизация матрицы на основе встраивания глубокого обучения, популярная благодаря fast ai [9]

Всегда стойте на плечах гигантов

В Amazon Personalize есть безголовый набор API-интерфейсов для обмена информацией о пользователях и взаимодействиях, а также для получения набора рекомендаций. Это может быть первым способом начать рекомендательный путь, чтобы продемонстрировать ценность.

Это термины, которые использует Amazon Personalize.

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

Схема: - Amazon personalize использует 3 различных типа наборов данных для рекомендаций по вождению. Пользователи, взаимодействия и предметы. Схема пользователей определяет поля пользователя / клиента, например возраст, уровень и т. д. Схема взаимодействия определяет информацию о взаимодействия. Например, пользователь x просмотрел элемент y 22 марта 2021 года. Схема элементов, с другой стороны, указывает информацию о самом элементе. Например, атрибуты элемента, такие как цвет, марка, категория и т. Д.

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

Задание импорта наборов данных: -. Это пакетное задание для импорта наборов данных.

Решения: - Выберите рецепт (одну из моделей машинного обучения черного ящика, предоставленную Amazon), обучите его и оцените версию решения модели. Версия решения указывает показатели [7] модели, которые могут побудить вас решить, раскрывать ли ее через API (на персональном жаргоне это называется кампанией).

Таким образом, вы создаете схему, импортируете данные, подтверждающие ее, и создаете решение (и его версию), выбирая модель (и) ML (рецепты) для использования. После этого предоставьте API вывода модели рекомендаций с помощью кампании персонализации AWS. Ниже представлен пакетный процесс. С процессом в реальном времени намного проще работать, и для него требуется только отправлять события в реальном времени в API персонализации Amazon. Я бы рекомендовал начать с пакетного процесса, а затем перейти к процессу в реальном времени.

Обратите внимание: я не рекомендую персонализировать Amazon как лучшую альтернативу. Вы также можете рассмотреть альтернативы SOTA с открытым исходным кодом. Кроме того, Amazon Personalize становится дорогим из-за своей методологии выставления счетов TPS. Однако это хороший способ быстро продемонстрировать ценность перед отправкой альтернативы, выращенной в домашних условиях. Я бы посоветовал сделать это в автономном режиме и использовать вашу CMS для статической генерации рекомендаций для отображения веб-сайта.

Что еще следует рассмотреть?

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

Мои два цента - это использование платформы клиентских данных (CDP), такой как Сегмент, для фактической идентификации пользователя и его поведения во всех ваших свойствах. Вы также можете подумать о создании собственного CDP. CDP позволяет вам получить 360-градусный обзор вашего клиента, который можно использовать для получения дальнейших рекомендаций. (Сегмент также поставляется с продуктом под названием Personas, который позволяет вам обращать информацию о клиентах ETL - стандартную и рассчитываемую с использованием SQL, например доход клиента для клиента в качестве характеристики, которая может быть отправлена ​​обратно для выработки дальнейших рекомендаций)

Другой вариант - никогда не выходить из системы и идентифицировать пользователя, как только он заходит на веб-сайт, и использовать данные аналитики Google для рекомендаций. Обратите внимание, поскольку Google Analytics не предоставляет вам поток в реальном времени (даже с Google Analytics 360), единственной альтернативой является прокси-сервер на стороне сервера данных Google Analytics, а также перенаправить его в Amazon Personalize.

Бандиты для непрерывного обучения

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

Каким образом модели машинного обучения Amazon Personalize будут связаны с моделями на основе запросов для единого связного решения?

Архитектура ниже подробно описывает это. Обратите внимание, что в качестве Data Lakehouse я использовал снежинку. Не стесняйтесь обращаться ко мне, если у вас возникнут вопросы.

Каковы другие показатели оценки

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

Какие рекомендации могут потребоваться по электронной почте?

С рекомендациями по электронной почте немного сложнее. Хотя это все равно будет определяться размещением на веб-сайте; показ рекомендуемого контента (например, изображений) будет более сложным при использовании стандартной платформы электронного маркетинга, такой как Mailchimp. Было бы предпочтительнее создать собственный блог, но это тема для другого блога.

[1] https://analyticsindiamag.com/collaborative-filtering-vs-content-based-filtering-for-recommender-systems/

[2] https://analyticsindiamag.com/collaborative-filtering-vs-content-based-filtering-for-recommender-systems/

[3] https://medium.com/analytics-vidhya/collaborative-based-recommendation-system-using-svd-9adc5b6b3b8

[4] Примечание. Анализ рыночной корзины лучше всего работает в случае супермаркета / розничной торговли. Его оценочные показатели также сильно отличаются от других. Https://towardsdatascience.com/a-gentle-introduction-on-market-basket-analysis-association-rules-fa4b986a40ce

[5] Рекомби называет это сценариями. По сути, так же, как и места размещения. Https://docs.recombee.com/scenarios.html#scenarios.

[6] Всегда становитесь на плечи гигантов, если есть альтернатива.

[7] Amazon персонализирует метрики: https://stackoverflow.com/questions/58381854/how-to-interpret-solution-metrics-in-aws-personalize

[8] Мы использовали наборы Redis Sorted, позволяющие сохранять взаимодействия в порядке обратного отсортированного времени. Получение последнего просмотренного будет тогда, чтобы просто получить последние предметы набора. Просмотр элементов, но не упорядоченный, означал бы запрос двух наборов и их различие. Это позволило нам получить максимальную производительность при затратах и ​​помогло нам перейти в режим реального времени. Обратите внимание, что мы использовали версию Redis для Redis labs.

[9] https://towardsdatascience.com/collaborative-filtering-using-fast-ai-f33cfea62812