В крупных цифровых сервисах рекомендации — не один алгоритм, а десятки моделей, которые нужно быстро адаптировать под разные продукты: видеосервисы, маркетплейсы, контентные платформы. А каждый новый запуск начинается с одного и того же вопроса: «С какого бейзлайна стартовать, чтобы не тратить месяцы на перебор архитектур и гипотез?».
Раньше командам приходилось либо брать «классическую» модель и долго дорабатывать ее под реальные данные, либо сразу идти в сложные SOTA-архитектуры, которые требуют больше ресурсов и времени на внедрение. Команда рекомендаций Big Data MWS решила изменить этот подход и собрать сильный, но практичный бейзлайн — такой, который можно быстро запускать, проверять и масштабировать.
Так появился eSASRec — улучшенная версия популярной модели SASRec, построенная как модульная система. О том, как команда пришла к этому решению и что в итоге изменилось в ее работе, рассказываем в кейсе.

Бейзлайн, с которого удобно начинать эксперименты
Big Data MWS — это несколько команд, которые занимаются платформами данных, аналитикой и рекомендательными системами. Внутри направления рекомендаций работают команды платформы рекомендаций и поиска, а также продуктовые команды, которые внедряют рекомендации в конкретных сервисах.
Особенность их работы — масштаб и разнообразие задач. Рекомендации используются сразу в десятках сервисов и в сотнях точек контакта с пользователем.
«Так как наша команда делает рекомендации для десятка сервисов в сотнях точках контакта с клиентом, нам критически важно выбрать сильный бейзлайн, с которого начинать эксперименты в каждом новом кейсе».
Никита Зелинский, директор по машинному обучению и исследованию данных МТС Web Services
Долгое время таким бейзлайном служила SASRec — трансформерная модель для последовательных рекомендаций. Она помогает «угадать», что предложить дальше, анализируя историю действий пользователя (что он смотрел, покупал или слушал). Модель хорошо себя зарекомендовала, но со временем стало понятно, что у нее есть ограничения.
Почему классическая SASRec перестала устраивать
SASRec активно используется в индустрии и академии, но на практике с ней возникали сложности:
- любые серьезные улучшения требовали почти целиком переписывать модель;
- модификации из научных статей часто работали только в искусственных тестах;
- было сложно одновременно улучшать точность и разнообразие рекомендаций;
- эксперименты занимали слишком много времени.
Кроме того, многие работы проверяли модели в нереалистичных условиях — например, валидировали их на последнем действии пользователя, фактически «подглядывая в будущее». Для промышленных сервисов такой подход давал искаженную картину.
Команда хотела решить другую задачу — сделать модель, которую можно гибко настраивать под реальные бизнес-цели и проверять в условиях, максимально приближенных к продакшену.
Модульный подход вместо переписывания модели
Работу над eSASRec начали с систематизации всех известных улучшений SASRec. Вместо того чтобы добавлять изменения «поверх» модели, команду интересовала более практичная идея — разложить SASRec на независимые модули.
«Мы хотели сократить время до выбора первого бейзлайна в новых сервисах, чтобы сократить число возможных вариаций архитектур модели для перебора».
Никита Зелинский, директор по машинному обучению и исследованию данных МТС Web Services
В итоге модель разделили на несколько ключевых блоков, которые можно менять отдельно:
- таргеты обучения — как именно модель учится предсказывать действия пользователя;
- архитектура трансформерных слоев — стандартные или, например, LiGR-слои с управлением потоком информации;
- функция потерь — в том числе Sampled Softmax Loss, ускоряющий обучение на больших каталогах;
- стратегии негативного сэмплирования — как формируются «неинтересные» для пользователя примеры.
Такой подход позволил команде быстро собирать и тестировать разные комбинации, не переписывая модель каждый раз с нуля.
Реалистичные эксперименты вместо академических тестов
Отдельный акцент сделали на том, как именно проверять модели. Все эксперименты проводили с временной валидацией. Модель предсказывала будущие действия пользователей, а не угадывала уже известные их истории.
Кроме точности, команда анализировала и beyond accuracy-метрики — покрытие каталога, разнообразие рекомендаций, влияние на популярные и непопулярные объекты. Именно эти показатели часто определяют, будет ли рекомендационная система полезной в реальном продукте.
«Основная сложность заключалась не столько в объеме данных, сколько в необходимости корректной и реалистичной постановки экспериментов: временного разбиения, корректного негативного сэмплирования и одновременного анализа точности и разнообразия рекомендаций на больших каталогах».
Никита Зелинский, директор по машинному обучению и исследованию данных МТС Web Services
В процессе стало ясно, что многие «улучшения», которые хорошо выглядели в отдельных статьях, в таких условиях либо не давали прироста, либо ухудшали результат. Это подтвердило правильность модульного подхода. Он позволяет быстро отсеивать неработающие идеи.
От экспериментов к eSASRec
После тестирования десятков конфигураций команда выделила наиболее удачную комбинацию модулей. Ее и назвали eSASRec (Enhanced SASRec). На данных российского видеосервиса Kion модель показала:
- точность топ-10 рекомендаций — 16,6% против 14,9% у базовой SASRec;
- покрытие каталога — 30% вместо 7,8%.
Рекомендации стали не только точнее, но и заметно разнообразнее — пользователи чаще видели новые фильмы и сериалы, а не только самые популярные позиции.
На других датасетах eSASRec также стабильно превосходила базовую модель и показала рост точности до 23% по сравнению с рядом современных решений. При этом по совокупности метрик она вышла на уровень промышленных моделей вроде HSTU и FuXi-α и осталась проще в применении.
Что изменилось в работе команды и бизнеса
Для инженеров eSASRec стала удобной точкой старта:
- эксперименты, которые раньше занимали недели, теперь укладываются в несколько дней;
- улучшения можно вносить на уровне отдельных компонентов — таргетов обучения, архитектуры слоев, функции потерь и стратегии негативного сэмплирования — без полной замены модели.
- модель проще адаптировать под разные продукты и ограничения инфраструктуры.
Для бизнеса это дало гибкость. Одну и ту же модель можно настраивать под разные цели — максимальную точность, большее разнообразие или баланс между ними. Это особенно важно для сервисов с большими каталогами и разными сценариями потребления контента.
Open source как часть стратегии
Все наработки по eSASRec команда перенесла в open-source библиотеку RecTools, которую Big Data MWS развивает уже несколько лет. В библиотеке можно воспроизвести эксперименты, протестировать разные стратегии и использовать модель в собственных проектах.
Сегодня eSASRec уже применяется внутри «МТС» как базовый бейзлайн и доступна внешним командам и исследователям.
Планы на будущее
Команда планирует проверять подход на более крупных датасетах и расширять набор модулей.
«eSASRec уже используется как бейзлайн внутри МТС и доступен внешним командам через open-source библиотеку RecTools».
Никита Зелинский, директор по машинному обучению и исследованию данных МТС Web Services
eSASRec рассматривается не как «финальная модель», а как основа для дальнейших экспериментов и внедрений. «Самым значимым результатом является демонстрация того, что сильный промышленный бейзлайн можно получить не за счет усложнения архитектуры, а за счет системной модульной инженерии и реалистичной валидации», отмечает Никита Зелинский.
Для рынка это сигнал о том, что даже классические модели могут оставаться конкурентными, если смотреть на них как на гибкий инструмент, а не как на застывшую архитектуру.