Как работает 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.