how to build a website



Рекомендательная система
для интернет-магазина

Пример проекта

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

Отрасль: Ретейл

Пользователи: Покупатели - пользователи онлайн магазина одежды.

Описание проекта

Рекомендательная система для интернет-магазина по продаже модной одежды. 

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

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

В системе используется комбинация из двух основных подходов к реализации рекомендательных систем: фильтрация содержимого (content filtering) и совместная фильтрация (collaborative filtering).

Подход на основе фильтрации содержимого подразумевает создание профиля для каждого пользователя и продукта – набора свойств, характеризующих его природу. Профили позволяют системе связать пользователей с соответствующими продуктами. Заполнение профилей требует времени и участия живого эксперта.

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

Выполненные работы:

Рекомендательная система была реализована как отдельная от основного сайта магазина веб-служба (web service), предоставляющая свою функциональность через REST программный интерфейс (RESTful API).

Были выполнены следующие работы: 

  • Проектирование программного интерфейса и интеграции рекомендательной системы с существующим сайтом магазина.
  • Реализация функций по регистрации и хранению отзывов и покупок пользователей в рекомендательной системе (БД PostgreSQL).
  • Реализация функций по выдаче списка рекомендованных продуктов для пользователя.
  • Интеграция с системой учёта остатков в магазине для корректировки рекомендаций с учётом доступности моделей и размеров.

Алгоритмы:

  • Фильтрация содержимого (content filtering)
  • Совместная фильтрация (collaborative filtering)
  • Matrix factorization, UV-decomposition, SVD-decomposition

Технологии:

  • Язык программирования: Python
  • Веб-фреймворк: Django
  • Библиотеки: numpy, scipy, skikit-learn
  • БД: PostgreSQL
  • Облачная платформа: Heroku Cloud Application Platform
Объём проекта:
  • Около 20 000 строк кода на Python
  • 4 месяца, 3 разработчика

© Copyright 2020 ПроВайд Лабс - все права защищены