Предсказать, какие продукты пользователи закажут в следующую покупку (метрика 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
сравнение моделей:
инференс:
- По идентификатору пользователя выдается набор из K наиболее релевантных для него товаров.
- По массиву идентификаторов пользователей выдается массив наборов из K наиболее релевантных для них товаров.