Вопрос или проблема
Мы пытаемся создать рекомендательную систему для супермаркета с разнообразными типами товаров (от быстроразворачиваемых продуктов до медленноразворачивающихся электронных товаров). Некоторые товары покупаются чаще и в больших объемах, а некоторые товары приобретаются только один раз.
У нас есть данные о покупках за 4 месяца от более чем 25 тыс. клиентов по более чем 30 тыс. SKU из более чем 100 категорий. Мы запустили ALS-WR в Spark для генерации рекомендаций. К нашему удивлению, мы получаем 15 лучших рекомендаций для каждого клиента, которые довольно общие и мало варьируются.
Мы попробовали несколько способов диверсификации рекомендаций, такие как-
– вычисленный “рейтинг” = нормализованное количество покупок
– вычисленный “рейтинг” = лог количества покупок
– вычисленный “рейтинг” = 1 (если количество покупок > 1)
– Мы использовали следующую комбинацию параметров – лямбда = 0.01 до 300, альфа = 5 до 50, ранг = 10, 20, 30 и количество итераций = 10, 20
– предпочтение учитывается явно.
Считаете ли вы, что ALS можно использовать для таких гетерогенных данных? Если да, то какие изменения сделают рекомендации разнообразными и персонализированными?
Нет – метод чередующихся наименьших квадратов (ALS) не предназначен для гетерогенных данных.
Один из вариантов создания рекомендательной системы для гетерогенных данных заключается в том, чтобы разбить товары на более распространенные и менее распространенные. Затем нужно построить отдельную модель для каждой из групп. Таким образом, результаты не будут доминироваться общими, универсальными товарами. Затем можно создать разнообразную и персонализированную страницу результатов, взяв взвешенную выборку из каждой из групп.
Ответ или решение
Проблема недостаточной вариативности рекомендаций при использовании алгоритма ALS-WR (Alternating Least Squares with Weighted Ratings) для системы рекомендаций в супермаркете представляет собой сложный вызов, особенно в контексте гетерогенных данных, таких как покупательские привычки различных клиентов по более чем 30000 товарных наименований из 100+ категорий.
### 1. Почему ALS-WR может выдавать однотипные рекомендации?
Algoritm ALS основывается на матричной факторизации, где пользовательские предпочтения и свойства предметов представлены в виде латентных признаков. При heterogeneity данных, таких как частота покупок и наличие товаров, которые продаются с разной активностью, модель может сосредоточиться на более распространенных товарах, игнорируя менее популярные предметы, что приводит к получению схожих рекомендаций для различных пользователей.
### 2. Почему установленные варианты номинаций не помогают?
Вы пробовали различные варианты вычисления “рейтинга” (нормализованное количество покупок, логарифм и др.), а также меняли параметры модели (lambda, alpha, rank и количество итераций). Если рекомендационные результаты по-прежнему остаются однотипными, это может указывать на то, что ALS не делает достаточно различий между пользователями на основе их уникальных предпочтений.
### 3. Возможности улучшения модели
Несмотря на ограниченные возможности ALS в контексте гетерогенных данных, можно предпринять несколько шагов для улучшения персонализации и разнообразия рекомендаций:
#### a. Разделение товаров на группы
Рассмотрите возможность разделения товаров на «популярные» и «менее популярные» группы или бины. Для каждой группы можно строить отдельные модели ALS, которые будут учитываться, учитывая частоту покупок. Это позволит избежать доминирования популярных товаров в списках рекомендаций.
#### b. Использование частоты покупок как веса
Поскольку в вашем случае вы имеете дело с товарами с разной частотой покупок, использование частоты как веса в модели может помочь. Меньший вес популярным товарам или дача большего веса более редким товарам поможет создать более разнообразные рекомендации.
#### c. Интеграция дополнительных источников данных
Изучите возможность использования дополнительных источников данных. Это может быть информация об отзывах, рейтингах или даже временные факторы (например, сезонные мероприятия), которые могут также учитываться при выборе товаров.
#### d. Альтернативные алгоритмы рекомендаций
Кроме ALS, вы можете рассмотреть возможность использования других подходов к алгоритмическим рекомендациям, таких как фильтрация на основе контента или гибридные методы, которые объединяют различные методы рекомендаций.
#### e. Настройка границ для рекомендаций
Установите культурные ограничения на предложенные рекомендации. Например, можно установить, что нижняя граница категории товаров не должна превышать определённый процент от общего числа рекомендованных товаров.
### Заключение
Для решения проблемы однотипных рекомендаций в вашей системе ALS в условиях гетерогенных данных необходимо применение комбинации вышеуказанных методов. Разделение товаров на группы, использование различных весов, а также рассмотрение дополнительных алгоритмов может помочь в создании более персонализированных и разнообразных рекомендаций. Системный подход и тщательная настройка параметров могут существенно повлиять на качество и разнообразие выдвигаемых рекомендаций для ваших клиентов.