рекомендательные системы · машинное обучение · LightGBM · e-commerce · графы знаний · веб-аналитика17 октября в 12:02 · 5 мин

Архитектура сессионных рекомендаций: как графы и LightGBM отбирают товары

В статье описывается процесс построения рекомендательной системы для интернет-магазина на базе платформы Coveo. Автор детально разбирает методику формирования кандидатов с использованием исторического графа переходов пользователей, векторных метаданных (описания и изображения) а также поисковых запросов. Финальный отсортированный список формируется с помощью модели ранжирования на базе библиотеки LightGBM, оптимизированной под метрику NDCG@20.

# Как собрать список из 20 рекомендаций: графы, векторы и LightGBM

Проблема построения релевантных рекомендаций в e-commerce сводится к вопросу: посетитель открыл товар A. Что предложить ему дальше? История переходов может подсказать товар B, похожее описание — товар C, а визуальное сходство — товар D. Однако простое суммирование баллов с разнородных источников часто приводит к искажению смыслов. Как корректно объединить эти сигналы и выбрать топ-20 товаров из сотен кандидатов?

В этой статье разбирается работающая система, реализованная с использованием данных Public Data Release от конференции SIGIR eCOM. Авторы проекта показывают полный цикл: от сбора исторических данных и построения графа товаров до обучения модели ранжирования и генерации рекомендаций через локальный HTTP API.

*Упоминание авторского подхода: важно помнить, что качество рекомендательной системы зависит не только от сложности модели, но и от качества подготовленных признаков. В данном кейсе критическую роль играет корректное разделение обучающей и тестовой выборок во времени, чтобы избежать утечки информации из будущих покупок в текущие рекомендации.*

Стратегия отбора кандидатов и построение графа

Основой системы является исторический граф товаров. Вершинами графа выступают идентификаторы товаров (SKU), а ребра — направленные связи, отражающие последовательность действий пользователей. Типы связей определяются как: просмотр → просмотр, просмотр → добавление в корзину и просмотр → покупка. Если пользователь после просмотра товара A купил товар B, система фиксирует связь A → B, но обратная связь B → A не формируется автоматически, если она не подтверждена данными.

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

Кроме исторического графа, система использует несколько дополнительных источников для формирования предварительного списка кандидатов (кандидатов до 300 штук): * Сходство описаний и изображений: Используются готовые векторные представления от платформы. Для каждого пространства описаний и изображений рассчитывается взвешенная сумма векторов просмотренных товаров, которая нормируется. Сходство кандидатов оценивается по косинусному расстоянию к этому вектору. * Поисковый запрос: Если пользователь выполнил поиск перед просмотром, вектор запроса сравнивается с векторами товаров. Доступность этого признака маскируется, чтобы модель знала, рассчитан ли он корректно. * Историческая популярность: Используется как резервный источник для заполнения свободных мест в списке кандидатов.

Формирование признаков и обучение ранжировщика

Полученный список из 300 кандидатов объединяется в единый набор признаков (фичей). Поскольку баллы от графа, векторных сходств и популярности имеют разную физическую природу и не могут быть просто сложены, используется модель машинного обучения для определения финального порядка.

Для обучения применяется библиотека LightGBM. Выбор модели обусловлен её способностью эффективно работать с разнородными признаками, включая категориальные данные (например, ценовую группу) и числовые метрики. Модель обучается на исторических данных периода B, где цели (законченные покупки) разнесены во времени от периода обучения для исключения перетекания данных.

Парное обучение и метрика NDCG@20

Ключевым аспектом обучения является использование парного ранжирования (Pairwise Learning). Вместо прямой оптимизации вероятности покупки, модель учится правильно упорядочивать товары. Используются пары из набора кандидатов: один товар помечается как целевой (1), если он был куплен в будущем в рамках сессии, а другой — как нецелевой (0).

Функция потерь учитывает метрику NDCG@20 (Normalized Discounted Cumulative Gain). Это означает, что модель стремится поставить целевые товары как можно выше в топ-20 списка рекомендаций. Перестановка товаров оценивается по тому, насколько изменится NDCG при их смене местами. Если оба товара находятся ниже 20-го места, вес пары равен нулю, так как они не влияют на метрику.

Обученная модель генерирует единый балл ранжирования для каждого кандидата. Этот балл не интерпретируется как вероятность покупки, а служит для сортировки списка.

Результаты оценки и выводы

Оценка качества системы проводилась на отложенном периоде данных (период D). В качестве метрики использовалась Hit@20 — доля сессий, в которых хотя бы один купленный товар попал в первые 20 рекомендованных позиций.

Сравнение различных конфигураций показало значимый вклад комплексного подхода: * Граф + метаданные + LightGBM: 58,96% попаданий. * Граф + LightGBM (без метаданных): 50,27% попаданий. * Только популярные товары: 0,27% попаданий.

Разница между полным вариантом и вариантом без метаданных демонстрирует, что учет семантической близости товаров и их изображений существенно повышает релевантность рекомендаций. Однако автор отмечает статистические ограничения эксперимента: отсутствие A/B-тестирования и ограниченность периода наблюдений не позволяют с высокой долей уверенности разделить вклада каждого конкретного компонента (описания, изображения или поискового запроса) и исключить возможную утечку данных в исторических срезах метаданных.

В заключение отмечается, что система успешно реализована, код открыт и может быть воспроизведен локально. Дальнейшие исследования запланированы для анализа влияния увеличения квоты для товаров, подобных по описанию, что может открыть новые возможности для расширения ассортимента рекомендаций.

Первоисточники

Habr AI ↗
← Вернуться в эфир