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

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

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

Но сначала,…

Что такое рекомендательная система?

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

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

Где мы используем рекомендательные системы?

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

Предыстория

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

Знаете, примите вызов.

Путешествуйте по мирам науки о данных и побеждайте в битвах с ИИ.

Аааа, вызовы.

Знаешь, о чем ты сожалеешь, когда уже слишком поздно.

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

Примерно год назад это было, когда компания по электронному маркетингу и автоматизации, в которой я работаю (Moosend), поручила мне новый проект.

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

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

Что такое системы рекомендаций

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

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

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

Персональные рекомендации по продуктам - это подарок ИИ к слову электронной коммерции, поскольку они могут помочь вам повысить рейтинг кликов (CTR) и уровень продаж.

Как я уже сказал, существует 5 различных типов рекомендательных систем ИИ:

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

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

Таким образом, мы предлагаем похожие «мобильные телефоны» тому, кого интересуют мобильные телефоны с определенными характеристиками.

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

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

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

Гибридные системы представляют собой комбинацию рекомендательных систем на основе содержания и совместной фильтрации.

Оцените каждый продукт из обеих моделей и взвесьте каждый результат; окончательные рекомендации будут основаны на линейной комбинации двух оценок.

Механизмы правил связывания или анализа рыночной корзины немного отличаются от предыдущих.

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

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

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

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

Совместная фильтрация

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

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

В режиме на основе памяти вы измеряете расстояние между всеми векторами (покупателями) между собой и рекомендуете товары из наиболее похожих.

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

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

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

Модель рекомендательной системы №1 (Мой первый снимок)

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

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

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

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

Следующим шагом процесса является разделение матрицы R на две: одну для клиентов (P) и одну для продуктов (Q) с их скрытыми факторами. Затем мы настраиваем обе матрицы с помощью лямбда-функции и измеряем частоту ошибок по значениям исходной матрицы R. Когда частота ошибок падает с заданного порога, мы прерываем процесс.

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

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

Показатели эффективности

Чтобы отслеживать эффективность нашей модели, мы должны измерить качество рекомендаций, которые она дает.

В рекомендательных системах мы измеряем производительность движка с помощью Precision @ k и Recall @ k, которые широко используются в сценариях поиска информации.

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

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

Кроме того, мы использовали еще одно измерение для нашей системы под названием Оценка, чтобы измерить общую производительность. Мы определяем показатель точности как сумму наборов рекомендаций, с которыми взаимодействовал клиент (минимум 1 взаимодействие / набор), деленную на общее количество рекомендаций клиентов.

Во всех моделях мы измеряем производительность моделей из пяти (k = 5) рекомендуемых продуктов.

Хороший, плохой и уродливый

Предупреждение о спойлере:

Минусов у модели больше, чем плюсов.

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

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

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

Заключение

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

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

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

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