Как работает Item2Vec

Метод заимствует архитектуру Word2Vec из NLP. В текстовой задаче Word2Vec обучается предсказывать, какие слова встречаются рядом в предложениях. Item2Vec делает то же самое, но «предложения» — это сессии пользователя (последовательность просмотренных или купленных товаров), а «слова» — идентификаторы товаров.

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

Товар A: [0.12, -0.45, 0.87, ..., 0.33]  ← куртка
Товар B: [0.14, -0.41, 0.85, ..., 0.31]  ← похожая куртка
Товар C: [-0.72, 0.90, -0.11, ..., 0.05] ← зонт (другой кластер)

cosine_similarity(A, B) = 0.97  ← высокая схожесть
cosine_similarity(A, C) = 0.22  ← низкая схожесть

Преимущества перед классическими методами

Критерий Матричная факторизация Item2Vec
Идентификация пользователя Обязательна Не требуется
Работа с анонимными сессиями Сложно Нативно
Масштабируемость на большой каталог Умеренная Высокая
Учёт порядка товаров в сессии Нет (в базовом варианте) Возможен через Skip-gram
Обновление при добавлении товаров Пересчёт матрицы Инкрементальное дообучение

Важно: Item2Vec учитывает совместное потребление, а не атрибуты товаров. Два физически непохожих товара (спортивная бутылка и гантели) могут оказаться векторно близкими, если их регулярно покупают вместе — и это поведенчески корректно.

Где применяется в e-commerce

Рекомендации «Похожие товары». Для выбранного товара берутся k ближайших соседей по вектору. Запрос к векторной базе данных (ANN-search) выполняется за миллисекунды даже при миллионных каталогах.

Cross-sell в корзине. Из добавленных в корзину товаров берётся векторное центроидное представление — и ищутся ближайшие соседи, которых ещё нет в корзине.

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

Ограничения

Cold start для товаров. Новый товар, добавленный в каталог после последнего обучения, не имеет вектора до следующего цикла переобучения. Типичный выход — назначать ему вектор ближайшего по атрибутам товара.

Длина сессии. Очень короткие сессии (1–2 товара) дают мало контекста. Модель надёжнее для товаров с умеренной частотой просмотров — хиты и аутсайдеры каталога обычно представлены хуже.

Отсутствие явного пользовательского контекста. Item2Vec не знает ничего о демографии, истории покупок или лояльности конкретного пользователя. Для персонализированных рекомендаций его комбинируют с пользовательскими эмбеддингами или системами типа Two-Tower.