SofiaKhutsieva / ML_recommendation_system

Рекомендательная система для онлайн-гипермаркета Instacart (Проект в skillbox)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ML_recommendation_system

Задача

Предсказать, какие продукты пользователи закажут в следующую покупку (метрика MAP@10).

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

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

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

Результат

основная логика кода вынесена в функции:
download_dataset - Загрузка и объединение датасетов
define_top_10_per_user - Определение для каждого пользователя топ 10 продуктов
prepare_dataset - Подготовка датасета
prepare_coo_matrix_for_collaborative_filtering - Подготовка разряженной матрицы для коллаборативной фильтрации
train_collaborative_filtering - Обучение для коллаборативной фильтрации
inference_collaborative_filtering - Инференс для коллаборативной фильтрации
prepare_features_for_lightFM - Подготовка признаков для lightFM
prepare_coo_matrix_for_lightFM - Подготовка разряженной матрицы для lightFM
train_lightFM - Обучение lightFM
inference_lightFM - Инференс lightFM

сравнение моделей:

image

инференс:

  • По идентификатору пользователя выдается набор из K наиболее релевантных для него товаров.
  • По массиву идентификаторов пользователей выдается массив наборов из K наиболее релевантных для них товаров.

image

About

Рекомендательная система для онлайн-гипермаркета Instacart (Проект в skillbox)


Languages

Language:Jupyter Notebook 100.0%