![](https://habrastorage.org/getpro/habr/upload_files/e39/fe0/287/e39fe02878a275e89b4b849834eb399e.png)
Рекомендательные системы стали неотъемлемой частью современного ритейла. Они помогают покупателям найти интересующие их товары и услуги, а также предсказывают, что они могут приобрести в будущем на основе их предыдущих покупок. Эти системы играют важную роль в улучшении пользовательского опыта, увеличении конверсии и повышении доходности компаний. В этой статье мы, команда «ДатаЛаб»* (ГК «Автомакон»), рассмотрим, как настроить рекомендательную систему для точного прогнозирования покупок на основе опыта покупателей, исследования закономерностей в покупках и других факторов.
Настройка рекомендательной системы для предсказания покупок на основе предыдущих покупок – это сложная задача, требующая сбора данных, препроцессинга, выбора и обучения модели, а также интеграции в систему. Однако, когда система настроена правильно, она может значительно улучшить пользовательский опыт, повысить конверсию и помочь вашей компании достичь успеха в современном электронном бизнесе.
*«ДатаЛаб» — команда профессионалов в области аналитики, больших данных, разработки программного обеспечения, машинного обучения и искусственного интеллекта.
Автор статьи: Вячеслав Пандов, ведущий инженер по машинному обучению направления «ДатаЛаб».
Новый алгоритм на основе закономерностей
Существует множество алгоритмов машинного обучения, которые можно использовать для предсказания будущих покупок в рекомендательных системах. Мы решили отследить определенные закономерности в поведении покупателей, чтобы понять, как можно изменить работу рекомендательной системы. В ходе эксперимента, обнаружили, что зачастую покупатели выбирают комбинации товаров, если предлагать товары в соответствии с этими комбинациями, то вероятность того, что покупатель положительно отреагирует на предложенную рекомендацию, возрастает.
Рассмотрим, как работает алгоритм на примере. Предположим, что в магазине доступны следующие товары:
Бананы, Молоко, Помидоры, Хлеб, Шоколад, Яблоки, Яйца
И имеются следующие корзины:
Бананы, Хлеб, Яблоки, Яйца
Молоко, Хлеб, Яблоки
Молоко, Помидоры, Шоколад, Яблоки
Представим все наши товары в виде графа – облако связанных друг с другом точек-товаров, в котором чем чаще пара товаров встречается в одной корзине, тем сильнее их связь. По нашим корзинам можно построить следующий граф:
![](https://habrastorage.org/getpro/habr/upload_files/c37/fb8/e2b/c37fb8e2bc6cb2c850ab219c9ac6e9f8.png)
Построим матрицу смежности графа – квадратную матрицу, где строки и колонки – это товары, а на пересечении – сколько раз товары покупались вместе:
![](https://habrastorage.org/getpro/habr/upload_files/a78/974/e92/a78974e9278da245f923be293559ba7e.png)
Построив такую матрицу, мы можем решать сразу 2 задачи:
Предсказание следующего товара в корзине;
«Поиск сопутствующих товаров» или «С этим товаром часто покупают», что в данных терминах эквивалентно задаче предсказания следующего товара в корзине из одного товара.
Рассмотрим на примере корзины, состоящей из одного товара – Хлеба. Для каждого товара посчитаем вероятность его появления в качестве следующего товара:
![](https://habrastorage.org/getpro/habr/upload_files/4d7/aa6/1e9/4d7aa61e91259a4e2b26001c029eaee8.png)
Для удобства обозначим суммы пересечений всех товаров с Хлебом как Σ:
![](https://habrastorage.org/getpro/habr/upload_files/613/496/655/6134966553ebdaabbd63933fd53c586a.png)
Получается, что Яблоки – это ТОП-1 сопутствующий товар, или наиболее вероятный следующий товар в корзине. В ТОП-4 входят также Бананы, Молоко, Яйца. На больших данных получается большее разнообразие.
Как определить, какой товар будет следующим? Для этого положим в нашу виртуальную корзину предсказанный товар – Яблоки, и снова посчитаем вероятности для следующего товара в корзине:
![](https://habrastorage.org/getpro/habr/upload_files/625/e85/176/625e851761983abae06222b13103c56f.png)
Получается, что следующим товаром в корзину пойдет Молоко. В итоге корзина состоит из следующих товаров: Хлеб, Яблоки, Яйца.
Алгоритм можно модифицировать на этапе построение матрицы смежности: при увеличении счетчика пары товаров в корзине можно тем больше уменьшать коэффициент увеличения счетчика для пары товаров, чем длиннее рассматриваемая корзина. Например:
![](https://habrastorage.org/getpro/habr/upload_files/bab/88b/36e/bab88b36e1fed20bc79f2cbe1e89233a.png)
Без должной настройки рекомендательной системы некоторые паттерны и взаимосвязи между товарами могут оставаться незамеченными. Обнаружив подобные закономерности, можно повысить точность прогнозов, что позволит эффективно управлять запасами – стратегически планировать свои запасы и уменьшить риск переизбытка или нехватки товаров, что может привести к оптимизации операций и снижению затрат. Развитие рекомендательной системы – важный этап для достижения более точных прогнозов покупок и повышения качества персонализированных рекомендаций, что значительно влияет на бизнес, способствует росту продаж, повышению уровня удовлетворенности клиентов и конкурентоспособности компании на рынке.