
Как мы улучшили эмбеддинг интересов в рекомендационной системе до ROC‑AUC 0.80
Базовый эмбеддинг интересов показывал ROC‑AUC 0.52 (0.41 на коротких запросах). После шести экспериментов метрика выросла до 0.80.
В статье на Habr AI автор делится результатами практического исследования эффективности текстовых интересов в рекомендационной системе. Изначально интересы пользователя преобразовывались в один вектор‑эмбеддинг, который использовался как «монета» для ранжирования. На тестовом наборе метрика ROC‑AUC составила 0.52, а для коротких интересов (до 5 слов) — 0.41, что хуже случайного порядка.
Чтобы понять, где кроются проблемы, команда провела серию экспериментов, изменяя как предобработку текста, так и архитектуру эмбеддинга. Шесть вариантов «починки" включали:
1️⃣ Нормализацию регистра и удаление стоп‑слов;
2️⃣ Переключение с word‑level токенизации на subword (Byte‑Pair Encoding);
3️⃣ Добавление TF‑IDF‑весов к токенам;
4️⃣ Использование более крупной предобученной модели (например, sentence‑transformers v2);
5️⃣ Интеграцию контекстных признаков пользователя (история кликов);
6️⃣ Аугментацию данных с помощью синонимичных замен.
Каждый шаг измерялся на отдельном A/B‑тесте. Наибольший прирост (до 0.73) дал переход на subword‑токенизацию, а совместное применение TF‑IDF и контекстных признаков довело ROC‑AUC до 0.80. При этом время инференса выросло лишь на 12 %, что оказалось приемлемым.
Подробный разбор методов, код и наборы данных доступны в оригинальном посте: https://habr.com/ru/articles/1077866/ .
Для разработчиков рекомендационных систем это напоминание, что простая токенизация часто недостаточна, особенно при работе с короткими запросами. Добавление TF‑IDF‑весов и контекстных признаков может существенно повысить качество без кардинального увеличения вычислительных расходов. Студенты курсов стоит экспериментировать с предобработкой и проверять метрики на разных подмножествах данных.


