Generative Recommendation for Large-Scale Advertising

Сегодня разбираем статью, где авторы из Kuaishou расширяют парадигму OneRec на рекламный домен. Они выделяют три проблемы, которые в рекламных рекомендациях проявляются особенно остро по сравнению с обычными LLM.

1. Рекламу сложно токенизировать: одно объявление — это сразу видео, текст, продукт, бренд, рекламодатель и бизнес-метаданные.
2. Важно не просто генерировать рекомендации — важен порядок объявлений в выдаче и eCPM.
3. Всё это должно работать в проде с жёсткими ограничениями по latency.

Ответом становится GR4AD (Generative Recommendation for ADdvertising) — генеративная рекламная система, в которой для каждой из этих проблем есть отдельное решение.

Нововведения такие:

- UA-SID (unified advertisement semantic ID) — единый семантический идентификатор объявления. Объявление прогоняют через мультимодальную модель с instruction tuning для получения эмбеда с учётом прикладной семантики (контент, продукт, рекламодатель и так далее). Потом с помощью co-occurrence learning дообучают эмбеддинги под рекламный домен. Это нужно, чтобы модель лучше улавливала совместимость между рекламными сущностями. Далее полученные эмбеды с помощью MGMR RQ-KMeans квантуют в многоуровневые SID. Первые уровни ловят грубую семантику, следующие — уточняют остаточную информацию. Последний токен — хэш бизнес-ID для борьбы с коллизиями.

- LazyAR ускоряет декодер. Самый важный первый токен генерируется честно авторегрессивно, а часть промежуточных слоёв переиспользуется и считается не авторегрессивно. Для сохранения качества на выходы этих слоев навешивается дополнительный MTP-loss.

- VSL+RSPO — VSL добавляет в обучение бизнес-сигнал: модель предсказывает не только последовательность SID-токенов, но и дискретизированный eCPM. Добавляют перевзвешивание: более ценные пользователи и более важные действия получают больший вес. RSPO — RL-style компонента для list-wise-оптимизации. Вместо point-wise-обучения модель учат ранжировать список объявлений так, чтобы улучшать NDCG.

Ещё можно отметить оптимизации, например Dynamic Beam Serving, который подстраивает beam search под стадию генерации и текущую нагрузку. На ранних шагах beam шире. При высоком QPS — уже. Добавляются TTL-кэши, beam-cache, KV-cache, FP8.

Система построена как замкнутый цикл, в котором новые объявления переводятся в UA-SID и попадают в realtime index. При запросе модель генерирует и ранжирует кандидатов, после чего их показывают пользователю. Дальше система собирает reward-сигналы и отправляет их в онлайн-обучение, где обновляются VSL и RSPO. Так, модель постоянно дообучается на живом трафике.

Результаты у статьи впечатляющие. UA-SID сам по себе даёт ограниченный прирост к базовому генеративному ранкеру, основной буст происходит от способа обучения: VSL + RSPO заметно поднимают revenue относительно OneRec-V2. Сервисные оптимизации тоже ощутимые: LazyAR почти удваивает QPS без заметной просадки по качеству, а DBS помогает поймать баланс между скоростью и доходом. В A/B-тестах репортят увеличение рекламной выручки до 4,2% по сравнению с сильным бейзлайном на основе DLRM. Модель здорово масштабируется по качеству в зависимости от beam search width и количества параметров.

В целом работа выглядит как практичная попытка «приземлить» генеративные рекомендации в рекламу. Главная мысль статьи в том, что для использования LLM в рекламе, нужно учитывать специфику домена — например, свои SID, business-aware-лоссы и serving-оптимизации.

@RecSysChannel
Обзор подготовила Маргарита Мишустина
643 просмотров · 21 реакций Открыть в Telegram · Открыть пост на сайте
QARM V2: Quantitative Alignment Multi-Modal Recommendation for Reasoning User Sequence Modeling

Сегодня разбираем статью от Kuaishou о том, как использовать LLM для формирования семантических фичей в ранжирующих моделях.

В индустрии для ранжирования используют трансформеры. История действий пользователя представляется в виде последовательности айтемов, и модель учится предсказывать на её основе, будет ли релевантен тот или иной новый айтем из числа кандидатов.

Когда последовательности становятся длинными, используют двухэтапную схему:

1) General Search Unit (GSU) выбирает из истории пользователя айтемы, наиболее близкие к текущему кандидату;
2) Exact Search Unit (ESU) точно оценивает релевантность кандидата по этой сжатой истории.

Такая схема давно устоялась и хорошо работает. Но в ней всё критически зависит от того, какие именно эмбеддинги используются для айтемов. Классические модели опираются на ID-based-эмбеддинги. Авторы формулируют фундаментальные ограничения такого подхода:

- низкая информативность (эмбеддинг не раскрывает семантику);
- изолированность знаний;
- слабая генерализация без постоянного дообучения;
- проблемы long-tail и cold start.

LLM-эмбеддинги выглядят как альтернатива: они содержат плотную семантику, обобщают знания и хорошо генерализуют. Но на практике их использование в «зафриженном» виде даёт лишь ограниченный прирост качества.

Причина в рассинхроне с задачей рекомендаций:

- Representation Unmatch — LLM понимает айтем, но не его релевантность пользователю;
- Representation Unlearning — эмбеддинги нельзя обучать end-to-end вместе с моделью.

QARM V2 решает эту проблему, адаптируя LLM-эмбеддинги под задачу рекомендаций через механизм Reasoning Item Alignment. Идея подхода в том, чтобы затюнить LLM под генерацию эмбеддингов, одновременно отражающих хорошее понимание айтемов и способных предсказывать их со-встречаемость:

1) на основе коллаборативных моделей собираются item-item-пары в качестве таргета для контрастивного обучения;
2) пары фильтруются, убирается шум и bias на популярные айтемы;
3) для айтемов также генерируются QA-пары в качестве таргета для генерации ответов;
4) обучение идёт по схеме «входные данные -> EMB-токены –> генерация ответов + контрастивный лосс».

Важно, что контрастивный лосс считается по EMB-токенам, и через них же модель отвечает на заранее подготовленные вопросы. В итоге всё понимание айтема сжимается в компактный эмбеддинг, — одновременно семантический и коллаборативный.

Вторая часть пайплайна — построение semantic IDs через квантизацию. Базовый Residual KMeans хорошо ловит грубую семантику, но даёт много коллизий (разные айтемы получают одинаковые коды).

Авторы предлагают гибрид, в котором верхние уровни (Residual KMeans) захватывают грубую семантику, а последний (FSQ) помогает различать близкие айтемы и снижает коллизии.

Дальше подход встраивается в обычную схему GSU/ESU. Сначала с помощью полученных LLM эмбеддингов из истории пользователя выбираются наиболее близкие кандидату айтемы, а затем уже в ESU используются semantic IDs как признаки для более точного ранжирования.

Важно, что эмбеддинги для semantic IDs обучаются end-to-end вместе с ранжирующей моделью, в отличие от зафриженных LLM-эмбеддингов.

По результатам всё выглядит ожидаемо «сильным»: стабильные улучшения в офлайн-метриках, заметный буст в cold-start-сценариях, снижение количества коллизий после новой квантизации. Основные бизнес-метрики (CTR, GMV) демонстрируют ощутимые приросты в онлайн-экспериментах.

В целом работа показывает, что ключевой эффект даёт не просто использование эмбеддингов из LLM, а их правильный алайнмент под задачу рекомендаций.

@RecSysChannel
Разбор подготовила Дарья Тихонович
1 065 просмотров · 25 реакций Открыть в Telegram · Открыть пост на сайте
Efficient Sequential Recommendation for Long Term User Interest Via Personalization

Сегодня разберём недавнюю статью от Meta* на тему сжатия историй в sequential рекомендательных моделях.

Авторы исследуют, как сжимать long-term-историю пользователя так, чтобы её можно было эффективно обрабатывать на инференсе и при этом не потерять в качестве. Это не новая архитектура, а скорее фреймворк или метод сжатия истории, который можно применять к разным моделям. Например, в статье рассматриваются HSTU и HLLM.

Проблема

Sequential recommender обычно строится на трансформерной архитектуре, которая страдает от квадратичной сложности механизма аттешнна. Из-за этого обрабатывать длинные последовательности вычислительно дорого, хоть они и приносят стабильный профит.

В релевантных работах эту проблему решают в два этапа: сначала long-term-историю сокращают (например, семплируют или кластеризуют события), а затем объединяют с последними событиями и прогоняют через модель. В статье приводят примеры подходов KuaiFormer, SIM, TWIN V2.

Идея

Авторы предлагают новый подход — сжимать историю с помощью выучиваемых токенов (personalized experts).

Длинную историю разбивают на сегменты — например по сессиям, дням или фиксированному числу событий. Затем каждый сегмент сжимают в несколько токенов-«экспертов», которые используются для дальнейших предсказаний. При этом последний сегмент истории на момент предсказания не сжимается — модель видит его полностью.

Обучение

Обучение авторегрессивное, используется специальная аттеншн-маска: каждый токен может смотреть на предыдущие токены своего сегмента и на «экспертов» из предыдущих сегментов, при этом сами токены этих сегментов скрыты маской.
Модель обучается стандартно на задачу next item prediction, при этом для «экспертов» лосс не считается.

На инференсе сегменты обрабатывают последовательно, а key- и value-эмбеддинги сжимающих токенов сохраняются. При предсказании следующего айтема используют только текущий сегмент и сохраненные key и value «экспертов» с предыдущих сегментов. Благодаря этому пропадает необходимость обрабатывать всю long-term-историю как одну длинную последовательность.

Интересно, что на обучении появляется лишь небольшой оверхед из-за добавленных токенов, однако на инференсе выигрыш существенный: в экспериментальном сетапе получают примерно четверть от исходной вычислительной стоимости.

Эксперименты

Они проводятся на двух датасетах:

- MerRec — e-commerce датасет из Mercari;
- EB-NeRD — новостной датасет из газеты Ekstra Bladet.

Метод почти полностью сохраняет качество моделей на полной истории и заметно превосходит варианты, где используется только recent-история. На MerRec метрики даже немного лучше бейзлайна с полной историей.

Авторы также показывают, что количество «экспертов» почти не влияет на качество, а сжатое представление long-term-истории можно переиспользовать довольно долго без заметной деградации. Лучше всего сработала такая схема: вставить всех «экспертов» после одного большого претрейн-сегмента.

Как оказалось при анализе результатов, «эксперты» часто содержат информацию по небольшому набору айтемов из истории, релевантных таргетному. Например, для айтема “LEGO” среди наиболее важных элементов из истории оказываются другие LEGO-товары.

Исходный код доступен на GitHub.

@RecSysChannel
Разбор подготовил Никита Степанов
___
Компания Meta признана экстремистской; её деятельность в России запрещена.
1 269 просмотров · 30 реакций Открыть в Telegram · Открыть пост на сайте
Айсберг KV-кэшей, или Как эффективно считать трансформеры

Не так давно мы разбирали статью KVZap от NVIDIA на тему сжатия KV-кэша. В этом посте сделаем шаг назад и посмотрим шире: какие в целом есть проблемы у подхода, почему он становится узким местом в проде и как решаются инфровые челленджи на практике.

В какой-то момент все, кто занимается авторегрессионными трансформерами, приходят к мысли: в каузальном аттеншне прошлые токены не зависят от нового. Значит, K и V для уже увиденных токенов можно посчитать один раз, сохранить и переиспользовать при авторегрессионной генерации. Казалось бы, — вот она, победа.

Но дальше всплывает «айсберг». KV-кэш быстро становится гигантским, потому что растёт сразу по нескольким осям: число слоёв, длина контекста, число KV‑голов, head_dim и dtype. Например, если хранить KV в FP16/BF16 (2 байта), то для контекста 8K порядок цифр на одну последовательность получается примерно такой:

- 2 ГБ для моделей 30B с GQA (зависит от точной архитектуры);
- 4 ГБ для LLaMA‑2‑7B;
- 36 ГБ для GPT‑3‑175B.

И это ещё до того, как мы вспомним о большом количестве одновременных пользователей. Закономерный вопрос: как такое внедрять в прод?

Где обычно ужимают KV-кэш

Хорошая новость: оптимизироваться можно почти по любой размерности, используя разные подходы. Например:

- по головам — Multi‑Query или Grouped‑Query Attention (меньше K/V-голов при том же числе Q-голов);
- по слоям или доступному контексту — Sliding Window Attention (держим только окно последних W-токенов);
- по dtype — квантизации;
- по head_dim — подходы, вроде Multi Latent Attention;
- и отдельный класс — умное сокращение контекста, например KVZip и KVZap.

На последнем пункте остановимся подробнее.

KVZip/KVZap — это «умное выкидывание» токенов (а точнее, KV-пар) по важности для контекста. KVZip оценивает важность через аттеншн при реконструкции промпта (teacher‑forcing) — но для этого нужен дополнительный прогон. KVZap предсказывает важность по скрытому состоянию и режет по порогу, делая сжатие адаптивным. Главное ограничение подхода — пока нет хорошей реализации, совместимой с Paged Attention (неравномерная длина кэша для голов требует работы с блоками переменной длины), что критично для использования в высоконагруженной системе.

Немного GPU-реальности

Даже с красивым прунингом остаётся системная проблема: если аллоцировать KV-кэш как один большой непрерывный блок, память со временем фрагментируется. В итоге могут оставаться «дырки», куда уже не помещаются новые большие кэши, хотя суммарно свободной памяти вроде бы достаточно. Из-за этого возникает серьёзная недоутилизация GPU-памяти.

Типовое решение — Paged Attention: KV-кэш режут на страницы фиксированного размера и управляют ими через таблицу блоков. Вместо одного большого куска появляются небольшие блоки, которыми проще управлять и переиспользовать между запросами.

Как это используют

Есть несколько популярных проектов, которые по-разному решают задачу KV-кэша. Разберём некоторые из них.

1) vLLM — цельный inference‑движок вокруг Paged Attention

Плюсы:
- зрелая реализация paged‑подхода;
- multi‑GPU (tensor parallel) и коммуникации через NCCL;
- опенсорс.

Минусы:
- сложнее «вклинивать» нестандартные политики работы с KV (не всегда удобно расширять под свои эксперименты);
- KV‑кэш в основном локален узлу/серверу (шаринг и распределённое хранение — отдельная задача).

2) LMCache — KV‑кэш как отдельный слой (многоуровневый)

Плюсы:
- явная работа со страницами или блоками и несколькими уровнями кэша (GPU, CPU, SSD, распределённый);
- поддержка распределённого хранения KV;
- фокус на расширяемости и интеграции;
- опенсорс.

Минус:
- сочетание с оптимизациями внутри узла (NVLink/NVSwitch, tensor parallel) зависит от конкретной интеграции с движком и не всегда «из коробки».

В итоге можно сказать, что KV-кэш — важный фактор, который определяет, как модель будет работать в проде. Уже есть подходы, которые помогают сократить объём кэша, но без продуманной архитектуры хранения и управления памятью, проблему они не решают.

@RecSysChannel
Разбор подготовил Кирилл Маляев
1 445 просмотров · 27 реакций Открыть в Telegram · Открыть пост на сайте
RankMixer: Scaling Up Ranking Models in Industrial Recommenders

Сегодня разберём статью от ByteDance. Авторы предлагают модель RankMixer, новую масштабируемую архитектуру ранжирования для индустриальных рекомендаций.

Современные ранжирующие модели часто плохо используют GPU. Многие подходы исторически оптимизировались под CPU, из-за чего GPU-утилизация остаётся низкой. Авторы хотят повысить MFU (Model FLOPs Utilization) — то, насколько эффективно модель использует вычисления.

RankMixer позиционируется как продолжение линейки работ по deep learning в рекомендациях: Wide&Deep, DeepFM, DCNv2 и других моделей, развивающих feature interactions.

Архитектура

На вход подаются гетерогенные признаки: профиль пользователя, профиль видео, видеофичи и сигналы взаимодействий. Раньше такие взаимодействия часто учитывались либо неэффективно, либо через простые схемы вроде конкатенаций. Поэтому в RankMixer предложили другую структуру.

Сначала все признаки переводятся в token-based-представление, то есть представляются токенами одинаковой размерности. На входе получается матрица T×D, где T — число токенов, а D — их размерность.

Дальше токены подаются в RankMixer block, который состоит из двух частей:
- Multi-head Token Mixing,
- Per-token FFN (PFFN).

В Multi-head Token Mixing каждый токен разбивается на H голов, чтобы смешивать разные семантические фрагменты и лучше учитывать гетерогенность признаков.

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

Дальше идёт Per-token FFN, где каждый токен обрабатывается индивидуально. По сути это feed-forward-слой, но применяется он отдельно для каждого токена.

В PFFN также используют Sparse Mixture-of-Experts (MoE). Это позволяет увеличивать capacity модели без такого же роста флопсов: вместо одного FFN берут набор экспертов, и для каждого токена активируют только часть из них.

В статье отдельно обсуждают проблему dying experts, когда работают только несколько доминирующих экспертов. Для борьбы с этим используют routing-стратегию: роутер выбирает несколько экспертов; а также добавляют load balancing losses, чтобы эксперты использовались равномернее.

После нескольких блоков выход агрегируется через pooling, и дальше модель предсказывает таргетные сигналы: например, skip, like, completion и другие.

Эксперименты

В работе есть сравнения по эффективности и качеству. Также авторы провели долгий A/B-эксперимент онлайн в Douyin и Douyin Lite, по итогам которого заменили в проде 16M модель на RankMixer 1B без существенного увеличения времени на инференс.

Для офлайн-оценки взяты стандартные метрики AUC и UAUC. Эксперименты провели сначала на рекомендациях видео, а затем и на рекламе.

В качестве бейзлайнов сравнивают RankMixer с MLP + feature crossing, DCNv2, а также с более современными моделями (например, AutoInt и HiFormer).

Результаты

RankMixer выигрывает у бейзлайнов как в варианте около 100M параметров, так и в варианте около 1B параметров. Полученные улучшения статзначимы.

Также в работе есть графики по скейлингу: рост AUC сопоставляется с числом параметров. RankMixer показывает более выгодное соотношение между качеством и масштабом модели.

В аблейшнах видно, что главный вклад дают два компонента RankMixer block:

1) Удаление Multi-head Token Mixing сильно снижает качество.
2) Замена Per-token FFN на shared FFN тоже ухудшает метрики.

Итоговый вывод авторов — они получили универсальный бэкбон для индустриального ранжирования, который позволяет одновременно улучшить качество рекомендаций и повысить эффективность использования GPU.

@RecSysChannel
Разбор подготовила Василиса Григорьева
1 660 просмотров · 24 реакций Открыть в Telegram · Открыть пост на сайте
SilverTorch: A Unified Model-based System to Democratize Large-Scale Recommendation on GPUs

Сегодня разбираем статью от Meta* на тему кандидатогенерации на основе GPU. Авторы рассказывают, как именно уносят кандидатогенераторы на GPU и какой профит получают.

Индустриальные рекомендательные системы скейлятся на десятки и сотни миллионов айтемов, поэтому приходится строить каскад, где на ранней стадии кандидатов достают из ANN-индекса и дополнительно фильтруют по разным бизнес-правилам.

В работе утверждают, что типичный пайплайн «ANN на CPU + фильтрующий сервис + сетевые вызовы между компонентами» дорогой и неэффективный. Сюда прибавляется проблема неконсистентности: юзерная часть двубашенной модели обновляется часто, а документная — редко, потому что перестроение индекса стоит дорого. Это приводит к миссматчу версий и создаёт целых 30% дропа перформанса.

В SilverTorch объединяют индексацию и фильтрацию на одной видеокарте и реализуют всё как один PyTorch-граф без пересылок между отдельными сервисами. Для фильтрации вместо обратного индекса используют Bloom-index: строят битовые маски по атрибутам (язык, регион и прочее), транспонируют представление так, чтобы обрабатывать куски по 64 документа за инструкцию и избегать рандомных обращений к памяти. Фильтрацию делают сразу во время ANN-поиска, чтобы топ на выходе ANN-индекса содержал строго айтемы, соответствующие всем бизнес-правилам. Bloom-маску строят только по айтемам из выбранных кластеров — это, по оценке авторов, в 30 раз сократило стоимость стадии фильтрации фичей.

Сам ANN-поиск реализован как KNN с кластеризацией (сначала топ центроидов, потом дот-продакты внутри кластеров). Эмбеддинги квантуют в Int8, что в два раза сокращает потребление памяти и сильно поднимает пропускную способность.

Высвободившийся бюджет тратят на OverArch scoring layer — нейросеть, которая усложняет функцию матчинга поверх дот-продакта и даёт более высокий recall. Отдельно говорят, что такой дизайн упрощает мультитаск-ретривал: не нужно строить несколько индексов, так как все таски считаются в одной копии индекса, а потом комбинируются value-моделью.

По результатам на двух industry-scale-датасетах (10 млн и 80 млн айтемов) авторы получили снижение latency более чем в 5 раз, рост пропускной способности в 23 раза и сокращение костов на сёрвинг в 13 раз. Систему уже внедрили в сотни моделей в продуктах Meta, и она сёрвит миллиарды пользователей.

@RecSysChannel
Разбор подготовил Николай Савушкин
___
Компания Meta признана экстремистской; её деятельность в России запрещена.
1 567 просмотров · 30 реакций Открыть в Telegram · Открыть пост на сайте
OpenOneRec Technical Report

Сегодня кратко пересказываем техрепорт от Kuaishou о рекомендательной модели, которая должна быть способна не только рекомендовать, но ещё и понимать, что она рекомендует, и уметь это объяснять.

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

RecIF-Bench

В бенчмарке три домена: short video, ads и products. Всего около 200 тысяч пользователей, больше 15 миллионов айтемов и почти 120 миллионов взаимодействий. Домены при этом сильно отличаются.

В видео у пользователей очень длинные истории с сотнями взаимодействий. В рекламе айтемов и кликов меньше. Products — это отдельный e-commerce-домен со своими паттернами.

Для кодирования айтемов используется семантические id, которые добавляются в словарь базовой LLM. История пользователя в виде единой последовательности, а обучение просходит авторегрессивно. Это позволяет обучать архитектуру LLM без изменений по принципу next-token prediction, но в рекомендательном контексте.

Кроме логов взаимодействий, датасет содержит три источника информации: пользователь, айтем и само взаимодействие. Пользователь описывается через текстовый User Portrait: демография, история просмотров, поиски, подписки, покупки и т.д. У айтемов есть мультимодальные эмбеддинги и dense captions (для видео). Во взаимодействиях учитывают разные сигналы: лайки, комментарии, просмотры, дизлайки.

Какие задачи проверяют

Всего выделяют восемь типов задач и распределяют их по четырём уровням. Каждый следующий требует от модели более «общего» поведения. Сначала понимание айтемов и простые рекомендации. Потом условные рекомендации, вроде «предскажи видео, которое лайкнут». И в конце задачи на объяснение рекомендаций.

Как обучают модель

Обучение во многом похоже на OneRec Think. Сначала делают warm-up для айтемных токенов, потом претрейн на основном датасете с добавлением обычных текстов, чтобы предотвратить катастрофическое забывание языка. Полностью это всё равно не спасает, поэтому дальше идут стадии посттрейнинга.

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

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

Результаты

На своём бенчмарке модели ожидаемо обгоняют базлайны. Интересно, что есть трейд-офф между обычной 8B и 8B Pro: вторая лучше в рекомендациях, но обычная 8B часто сильнее в задачах, где нужно говорить и объяснять.

На Amazon-бенчмарках тоже показывают хорошие цифры, но эти эксперименты по сути нельзя воспроизвести, так как слишком много закрытых деталей и дополнительного дообучения.

@RecSysChannel
Разбор подготовил Иван Артемьев
1 668 просмотров · 18 реакций Открыть в Telegram · Открыть пост на сайте
Massive Memorization with Hundreds of Trillions of Parameters for Sequential Transducer Generative Recommenders

Скейлинг рекомендательных моделей — один из ключевых трендов рексистем последних лет. Исследователи Яндекса в рамках подхода Argus показывали, что качество моделей сильнее всего растёт при увеличении длины последовательности, которую обрабатывает трансформер. Однако рост до десятков и сотен тысяч событий сопряжен уже с инфраструктурными сложностями, и применение таких моделей в реалтайме за разумное время не представляется возможным.

Сегодня рассказываем о статье, в которой авторы из Meta* предлагают элегантный двухстадийный фреймворк. Вместо того, чтобы тяжелым трансформером держать в контексте 1 млн событий, можно в офлайне сжать всю lifelong-историю, а в рантайме использовать это сжатое представление.

Идея сама по себе не нова, но в близких по духу работах SIM, TWIN V2 или Transact V2 утилизация lifelong-контекста была сопряжена либо с тривиальным и неэффективным сжатием последовательности, либо с обработкой ограниченного подмножества событий, что в итоге ведёт к сильной просадке качества.

В статье сжатие истории проводят так: берётся полная история пользователя, над которой строят квазилинейный аттеншн, и вводят ряд суммаризирующих эмбеддингов — рассматривают до 128 штук. Модифицированный аттеншн помогает обрабатывать сверхдлинные последовательности за разумное время, а нелинейность, введенная с помощью SiLU, позволяет лучше моделировать сложные взаимодействия. Для эффективного сжатия истории авторы также вводят дополнительный reconstructive loss, чтобы из полученных эмбеддингов можно было как можно лучше восстановить исходную последовательность.

Эмбеддинги складываются в кэш, который обновляется асинхронно. Во время инференса их берут и строят target attention между сжатыми представлениями и айтемами-кандидатами.

Результаты офлайн-экспериментов оказались примерно сопоставимы с HSTU, вместе с этим скорость инференса при увеличении длины последовательности остаётся практически константной.

A/B-тест проводился, скорее всего, на базе Reels, в качестве бейзлайна выступала HSTU-модель. Ключевая внутренняя метрика вовлеченности C-task выросла на 0,5%, а дополнительные метрики удержания — O1 и O2 tasks — на 0,2% и 0,04%. Утверждается, что рост O2 даже на 0,01% — это существенный успех.

@RecSysChannel
Разбор подготовил Руслан Кулиев
___
Компания Meta признана экстремистской; её деятельность в России запрещена.
1 489 просмотров · 28 реакций Открыть в Telegram · Открыть пост на сайте
OneRec-Think: In-Text Reasoning for Generative Recommendation

Сегодня обсудим работу, в которой продолжается история с генеративными рекомендациями от Kuaishou. Авторы по-прежнему хотят заменить классический рекомендательный стек одной генеративной моделью, но теперь ещё и добавить туда LLM-ный ризонинг и диалог.

OneRec хорошо предсказывает следующий айтем по истории пользователя, но остаётся узкодоменной моделью: у неё нет широкого world knowledge, как у LLM, и нет развитых механизмов следования инструкциям и рассуждения. Поэтому авторы добавляют в OneRec-Think ризонинг, рассчитывая улучшить точность рекомендаций. Причём он используется непосредственно в процессе предсказания следующего айтема.

Тут возникают две сложности. Во-первых, LLM изначально не знает, что такое рекомендательные айтемы (видео, треки и прочее). Во-вторых, даже если заставить её «думать», она не умеет думать именно в рекомендательном домене: длинные и шумные истории пользователей ломают красивый ризонинг.

Авторы решают эти проблемы в три этапа.

Сначала делают Itemic Alignment. В словарь добавляют айтем-токены (3×8К = 24К новых токенов) и учат модель понимать айтем-токены в одном контексте с текстовыми. Делают это аккуратно: сначала замораживают бэкбон и обучают только эмбеддинги новых токенов, чтобы сохранить языковые способности модели, а затем размораживают все параметры и обучают модель совместно. Используют несколько задач, включая интерпретацию пользовательской истории, sequential next-item prediction и декодирование айтемов в текстовые описания.

Дальше — Reasoning Activation. Просто взять полную историю и попросить «подумай» не работает: слишком много шума и длинный контекст. Поэтому ризонинг-траектории извлекают хитрее. Берут таргет-айтем и с помощью внешней модели близости айтемов g(·,·) достают top-k (k=10) самых релевантных айтемов из истории пользователя. На этом подмножестве модель способна сгенерировать осмысленное объяснение того, почему пользователь взаимодействовал с таргетным айтемом. Эти объяснения затем используют как SFT-данные: уже на полной истории учат сначала генерировать ризонинг-трейс, а потом — следующий айтем.

И финальный этап — Reasoning Enhancement. Модель сэмплит несколько объяснений, а дальше под каждое считают reward — не в бинарной форме «угадал / не угадал», а на основе степени совпадения семантических токенов предсказанных кандидатов с таргетным айтемом. Для этого используется beam search по продолжениям. В результате ризонинг-траектории, ведущие к более точным предсказаниям, получают больший вес и становятся более вероятными.

В статье обсуждают, как такую модель можно внедрить при больших RPS. Авторы предлагают схему Think-Ahead: вычислительно тяжёлую часть — генерацию ризонинга и первых шагов декодирования айтем-токенов — считают офлайн и сохраняют для пользователя набор возможных префиксов.

В онлайне обычный OneRec ограничивается этим множеством и быстро достраивает финальный айтем. За счёт этого снижается стоимость инференса и одновременно в продакшн-систему переносятся знания LLM, зашитые в ризонинг-префиксы.

В результате модель не только генерирует объяснения и учитывает текстовые ограничения, но и сохраняет качество предсказания следующего айтема, что подтверждают онлайн-эксперименты.

@RecSysChannel
Разбор подготовил Артём Матвеев
1 656 просмотров · 30 реакций Открыть в Telegram · Открыть пост на сайте
KVzap: Fast, Adaptive, and Faithful KV Cache Pruning

Сегодня посмотрим на совсем свежую статью от NVIDIA о сжатии KV-кэша. KV-кэш — это сохраненные K- и V-стейты трансформера для последующей авторегрессивной генерации токенов в декодере. В первую очередь проблема сжатия возникает на стадии генерации в LLM, однако она актуальна и для ускорения инференса рекомендательных моделей, например, имеющих encoder-decoder-архитектуру.

Размер KV-кэша линейно зависит от числа слоёв трансформера L, от числа аттеншн-голов H, от длины входной последовательности T и от размерности векторов D. Таким образом, он имеет размерность (2, L, H, T, D), где 2 соответствует хранению K- и V-кэшей в одном тензоре. Сжатие по L-размерности достигается чередованием обычных MHA-слоёв и слоёв со Sliding Window Attention (SWA): GPT-OSS-120B, Gemma3, Kimi-Linear, и др. Для сжатия по размерности H применяют Grouped Query Attention (GQA), в котором одни и те же KV-головы используются в нескольких Q-головах: Llama3, GLM 4.5, Qwen3-235B-A22B. Вдоль размерности D сжатия добиваются с использованием хранения латентных представлений KV-векторов значительно меньшей размерности — Multi-head Latent Attention (MLA): DeepSeek V2.

Текущая SOTA для сжатия вдоль размерности T — KVzip, который:

1. получает входной промпт пользователя;
2. просит модель его повторить, аугментируя промпт следующим образом: «user: <input prompt>. Repeat the previous context exactly. assistant: »;
3. для каждой KV-головы для каждого вектора k_i из input prompt запоминают наибольший по длине повторённого промпта вес аттеншна (а в случае GQA максимум берётся и по группе Q-голов);
4. фиксированный процент K_i и v_i, соответствующих наименьшим запомненным весам, удаляются;
5. сжатый промпт подаётся модели.

Во-первых, такая схема скоринга очень дорога. Во-вторых, она применима только к стадии cache prefilling — стадия cache decoding сохраняется целиком. Последняя проблема особенно актуальна в контексте рассуждающих моделей, которые на стадии декодинга генерируют тысячи токенов.

В работе предлагают дистиллировать слегка модифицированные скоры KVzip в легковесный MLP. Для каждого слоя трансформера и каждого входного скрытого состояния MLP предсказывает вектор скоров из H (число KV-голов) компонент, после чего откидываются KV-пары, скоры которых не превосходят некоторый порог. Таким образом, степень сжатия зависит от информативности промпта. Локальный контекст из ближайших 128 токенов, однако, сохраняется полностью. MLP обучается поверх обученной модели на специальном датасете, содержащем целевые скоры KV-пар.

Поскольку MLP не добавляет значительной вычислительной сложности и применяется к входным токенам поточечно, KVzap можно использовать как во время prefilling’a, так и во время декодинга. Сжатие prefilling-стадии также становится дешевле.

Эвалятся авторы на Qwen3-8B, Llama-3.1-8B-Instruct, и Qwen3-32B, KV-кэш удаётся сжать в 2–4 раза при незначительных потерях качества.

@RecSysChannel
Разбор подготовил Сергей Макеев
1 803 просмотров · 25 реакций Открыть в Telegram · Открыть пост на сайте
Orthogonal Low Rank Embedding Stabilization

Сегодня разбираем статью от авторов из Netflix о стабилизации обучаемых эмбедов пользователя/документа. В двухбашенной архитектуре с поздним связыванием классическая проблема при дообучении — «разворот» пространств эмбеддингов пользователя/документа при сохранении результирующего dot product. Это происходит из-за того, что отдельные координаты эмбедов (например 1-я или i-ная координата вектора документа) не имеют никакого специального смысла, важно лишь их суммарное взаимодействие с соответствующим вектором пользователя.

Из-за нестабильности приходится пересчитывать эмбеддинги всех айтемов после каждого этапа дообучения модели, что увеличивает затраты на вычисления. Также необходимо синхронизировать версии пользовательской и документной частей моделей, что зачастую невозможно.

Авторы статьи предлагают элегантное решение проблемы, комбинируя две идеи:
- эффективное сингулярное разложение матрицы взаимодействий пользователя/документа;
- приведение к выбранному референсному пространству с помощью ортогональной задачи Прокруста.

Обозначим таблицу эмбеддингов документов как T (размерностью n * e, где n — количество документов, а e — размерность эмбеддингов), а таблицу эмбеддингов пользователей — как W (размерностью m * e, где m — количество пользователей). Тогда их произведение будет иметь смысл матрицы взаимодействий (X=TWᵀ). Сами документные и пользовательские эмбеддинги могут быть нестабильны при обучении: даже небольшие пертурбации в начальных условиях приводят к существенно разным результатам. При этом сингулярное разложение матрицы взаимодействий остаётся единственным с точностью до знаков сингулярных векторов.

Однако получить напрямую SVD-разложение матрицы X вычислительно сложно: O(mn²). В статье предлагают воспользоваться тем, что матрица X — это произведение двух низкоранговых матриц TWᵀ, и сделать QR-разложение каждой из них, что линейно по сложности относительно n и m. А затем сделать SVD-разложение уже низкоранговой (e * e) матрицы RₜRwᵀ, SVD(RₜRwᵀ)=UᵣSVᵣᵀ.

Кроме самого сингулярного разложения X потребуются ещё и матрицы перехода в новое пространство для T и W (Mₜ и Mw соответственно), такие чтоб TMₜ = US¹ᐟ², а WMw = VS¹ᐟ², что сохранит матрицу взаимодействий X: TMₜ(WMw)ᵀ = USV = TWᵀ. Однако, имея сингулярное разложение RₜRwᵀ, их вычислить несложно: Mₜ = Rwᵀ Vᵣ S⁻¹ᐟ²; Mw = Rₜᵀ Uᵣ S⁻¹ᐟ².

Второй шаг — перевести полученное стандартизированное представление эмбеддингов к некому референсному пространству. В качестве такого можно выбрать результат произвольной версии модели (например, первый) и зафиксировать его.

Дальше задача сводится к поиску матрицы, отображающей получившееся на очередном шаге дообучения представление в референсное пространство. Хотя такое отображение можно искать среди произвольных матриц, удобно ограничить поиск только среди ортогональных. Формально, имея матрицы Tₖ (текущее пространство) и T₀ (референсное пространство) требуется найти такую ортогональную матрицу R, что RTₖ ~= T₀. Эта задача называется ортогональной задачей Прокруста.

Финально, получив матрицы отображения на первом (Mₜ и Mw) и втором (R) шагах, мы имеем преобразование, которое стабилизует пространства эмбеддингов документов (MₜR) и пользователей (MwR). Так как преобразование ортогональное, то значения матрицы взаимодействий не меняются. При этом размерность матрицы — e * e, что делает её хранение и применение очень лёгкой операцией, которую можно добавить последним слоем нейросети.

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

@RecSysChannel
Разбор подготовил Артём Ваншулин
1 653 просмотров · 30 реакций Открыть в Telegram · Открыть пост на сайте
Какие статьи 2025 года перечитывают эксперты Рекомендательной. Часть 2

Вместе с авторами канала продолжаем вспоминать самые обсуждаемые статьи о рекомендательных системах за прошедший год.

ActionPiece: Contextually Tokenizing Action Sequences for Generative Recommendation

Совместная работа DeepMind и авторов SasRec о токенизации в генеративном ретривале. Каждое взаимодействие пользователя представляется в виде множества контентных фичей айтема, которые потом токенизируются на основе частоты их совстречаемостей — подобно тому, как делается в BPE. Что интересно, мерджиться в один токен могут как фичи одного айтема, так и фичи смежных айтемов. Из приятного — есть открытый репозиторий с кодом.

Correcting the LogQ Correction: Revisiting Sampled Softmax for Large-Scale Retrieval

Статья от исследователей из Яндекса о LogQ-коррекции отличается своей математичностью и обобщаемостью: её результат можно использовать в любой задаче с любой моделью, лишь бы она обучалась на softmax-лосс над большим каталогом. Предложенная корректировка точнее аппроксимирует знаменатель softmax, при этом получается заменой буквально пары строк относительно классической LogQ-коррекции. Рост метрик наблюдается как на закрытых данных, так и на публичных, в чём можно удостовериться, прогнав код из открытого репозитория.

Scaling Recommender Transformers to One Billion Parameters

Ещё одна статья от Яндекса с рецептом масштабирования рекомендательных трансформеров до 1 миллиарда параметров. Именно в ней представлен подход ARGUS. Его внедрение в Яндекс Музыку привело к самому большому одномоментному улучшению платформы от нейросетевых подходов: +2,26% к суммарному времени прослушивания и +6,37% к вероятности лайка.

PinFM: Foundation Model for User Activity Sequences at a Billion-scale Visual Discovery Platform

Foundational-модели в LLM — стандарт индустрии: обучать специфичные модели с нуля слишком дорого, поэтому обычно берут универсальную модель и дообучают под задачу. В рекомендациях модели меньше, но для каждой поверхности обучать новые модели с миллиардами эмбеддингов всё равно дорого. Поэтому в Pinterest предложили единую foundational-рекомендательную модель, которую дообучают под разные поверхности.

В статье много практических трюков: комбинация InfoNCE-лоссов под близкие задачи, серьёзные инженерные оптимизации (cross-attention с дедупликацией, int4-квантизация эмбеддингов), добавление компактных контентных эмбеддингов на этапе файнтюна. Для cold start предлагают на файнтюне заменять часть айтемов в последовательности на рандомные, а для свежих айтемов использовать агрессивный дропаут. В продакшне это дало рост метрик: сохранения сниппетов +1,2% на главной и +0,72% на странице сниппета, а сохранения свежих айтемов на главной — +5,7%.

@RecSysChannel
Статьи отобрали Сергей Макеев, Руслан Кулиев, Артём Матвеев
1 840 просмотров · 27 реакций Открыть в Telegram · Открыть пост на сайте
Какие статьи 2025 года перечитывают эксперты Рекомендательной. Часть 1

Прошедший год заметно изменил то, как мы представляли себе рекомендательные системы: границы между кандидатогенерацией, ранжированием и генеративностью начали стираться, а LLM всё чаще становятся частью рекомендательных алгоритмов. Мы собрали важные статьи, к которым эксперты Рекомендательной возвращаются снова и снова. Если вам есть что добавить или с чем поспорить — приходите обсуждать в комментарии!

OneRec Technical Report и OneRec-V2 Technical Report

Самая хайповая серия статей этого года. Авторы первыми в мире объединили все стадии рекомендательной системы в единую генеративную нейросеть. Адаптировали техники, которые давно и активно применяются в других областях: претрейне, GRPO RL. Модель выкатили на 25% трафика одной из самых больших рекомендательных систем в мире с 400 млн DAU. В OneRec-V2 авторы уже реализуют описанные в первой части идеи ухода от схемы encoder-decoder и улучшения RL-обучения.

OneRec-Think: In-Text Reasoning for Generative Recommendation

Исследователи одними из первых объединяют генеративные рекомендательные технологии и LLM. В статье показаны не только новые способности модели (текстовый интерфейс рекомендаций, ризонинг), но и внедрение в продакшн. Аналогичная работа от Deepmind вышла чуть раньше, но здесь авторы пошли дальше: добавили ризонинг и усложнили процедуру обучения.

Meta Lattice: Model Space Redesign for Cost-Effective Industry-Scale Ads Recommendations

Авторы построили фундаментальную модель, сочетающую различные органические и рекламные поверхности Meta*. Она объединяет ручное признаковое пространство и обработку сырых историй пользователей. Архитектура состоит из последовательных блоков трансформерных и interaction-слоёв. В статье — очень подробное описание и впечатляющие результаты внедрения.

RecGPT Technical Report и RecGPT-V2 Technical Report

В техрепорте от Taobao рассказывается о создании их рекомендательной системы — на базе множества LLM. RecGPT позволяет хорошо учитывать не только коллаборативный сигнал, но и намерения, которыми руководствуются пользователи при выборе товаров, а также объяснять свои рекомендации на основе контекста и пользовательской истории. Подход получил развитие в техрепорте RecGPT-V2.

PLUM: Adapting Pre-trained Language Models for Industrial-scale Generative Recommendations

В этой работе авторы из Youtube и Google DeepMind рассматривают возможность переиспользовать предобученные LLM для задачи генеративного ретривала. Предложили два ключевых улучшения: инициализацию трансформера предобученной текстовой моделью, а также продолженный претрейн с использованием доменных данных (метаданных видео и пользовательских историй просмотров). В результатах показывают, что оба изменения независимо улучшают модель по метрикам генерации кандидатов. Статья выделяется тем, что в ней соединяется много современных трендов: RecSys+LLM, SemanticID и генеративная постановка задачи рекомендаций.

@RecSysChannel

Лучшие статьи отобрали Николай Савушкин, Виктор Януш, Маргарита Мишустина
___
Meta признана экстремистской организацией, а Facebook и Instagram запрещены на территории РФ
1 709 просмотров · 23 реакций Открыть в Telegram · Открыть пост на сайте
🎉Подводим итоги: лучшее за год в Рекомендательной

У нас в RecSys Channel есть традиция: каждый год мы вспоминаем популярные посты, которые пользователи читали и лайкали больше всего. Так что прямо сейчас предлагаем немного замедлиться и оглянуться назад. Будет интересно узнать, совпадает ли наш топ-5 с публикациями, которые запомнились вам.

Какие рексис-тренды будут развивать в Яндексе в 2025 году

В начале года в рекомендательных системах было полно многообещающих направлений: от масштабирования и семантических айди до графовых нейросетей и использования диффузионок. О том, на какие из них делали ставки в Яндексе, нам рассказала группа исследования перспективных рекомендательных технологий. В новом году ждём новых трендов!

Исследователи Яндекса выложили в опенсорс Yambda — датасет на 5 млрд событий

Пост о Yambda — крупнейшем в мире датасете в области рекомендательных систем. Рассказали, зачем он нужен, какие у него ключевые особенности и какие методы оценки использовали наши исследователи. А ещё Александр Плошкин, один из авторов, представил работу на ACM RecSys Такие моменты точно хочется вспомнить в завершение года.

TransAct V2: Lifelong User Action Sequence Modeling on Pinterest Recommendation

Руслан Кулиев разобрал статью Pinterest о том, как использовать максимально длинную историю действий в рекомендациях — даже когда у тебя 500 миллионов пользователей, миллиарды пинов и строгие тайминги на инференс. Тут всё как в новогодней сказке: испытания непростые, ограничения жёсткие, но хэппи-энд неизбежен, как сельдь под шубой.

PLUM: Adapting Pre-trained Language Models for Industrial-scale Generative Recommendations

Одна из недавних публикаций Владимира Байкалова также вошла в число популярных. Это разбор совместной работы от Google DeepMind и YouTube, которая продолжает тему генеративных рекомендаций, начатую в предыдущей статье авторов — TIGER. На этот раз основная идея — использование предобученных больших языковых моделей в рекомендательных пайплайнах (в случае Google — это Gemini). За подробностями приглашаем в разбор.

Scaling Recommender Transformers to One Billion Parameters

В завершение подборки — ещё одна важная для нас работа. Инженеры из группы исследования перспективных рекомендательных технологий выложили на arXiv статью о подходе ARGUS, а в дальнейшем представят работу на конференции KDD’26. В статье описан опыт масштабирования рекомендательных трансформеров, вдохновлённый нашумевшей работой Actions Speak Louder than Words.

В новом году ждём развития старых и появления новых рекомендательных трендов. Спасибо, что вы с нами. С наступающим! А впереди у нас — подборки лучших статей от авторов канала.

@RecSysChannel
1 982 просмотров · 43 реакций Открыть в Telegram · Открыть пост на сайте
GenSAR: Unified Generative Search and Recommendation

Сегодня разбираем статью от исследователей из Renmin University of China и Kuaishou Technology, представленную на RecSys'25. Работа посвящена объединённому моделированию поиска и рекомендаций с использованием генеративного подхода на основе больших языковых моделей.

Современные коммерческие платформы (e-commerce, видео, музыка) предлагают одновременно и поиск, и рекомендации. Совместное моделирование этих задач выглядит перспективно, однако авторы выявили ключевой trade-off: улучшение одной задачи часто приводит к деградации другой.

Причина кроется в различных информационных требованиях:

Поиск фокусируется на семантической релевантности между запросами и айтемами — традиционные варианты поиска часто основаны на предобученных языковых моделях (BGE, BERT);
Рекомендации сильно зависят от коллаборативных сигналов между пользователями и айтемами — ID-based-рекомендации дают отличные результаты.

GenSAR — унифицированный генеративный фреймворк для сбалансированного поиска и рекомендаций.

Для каждого айтема берутся два эмбеддинга: семантический (из текста) и коллаборативный (из user-item-взаимодействий). Оба прогоняются через отдельные MLP-энкодеры и приводятся к одной размерности, затем конкатенируются в общий вектор.

Объединённый вектор квантуется через общие кодбуки: на каждом уровне выбирается ближайший код, его индекс записывается в идентификатор, а сам код вычитается из текущего вектора. Накопленная последовательность — это shared prefix, содержащий общую информацию обоих эмбеддингов.

Далее остаточный вектор делится пополам. Одна половина подаётся в семантические кодбуки, другая — в коллаборативные. В итоге:

Semantic ID (SID) = shared codes + semantic-specific codes;
Collaborative ID (CID) = shared codes + collaborative-specific codes.

Лосс состоит из суммы:
1) Reconstruction loss: декодеры должны восстановить исходные эмбеддинги по кодам.
2) Loss for residual quantization: считается для трёх наборов кодбуков (shared, semantic, collaborative) и включает codebook loss + commitment loss для каждого.

Выход модели зависит от задачи:
- Рекомендации → CID (коллаборативный сигнал важнее);
- Поиск → SID (семантика важнее);
Модель различает задачи через task-specific-промпты. Обучение — joint training на смешанных батчах с балансировкой лоссов между задачами.

Оффлайн-эксперименты проводились на публичном датасете Amazon и коммерческом датасете Kuaishou. Сравнение с бейзлайнами: SASRec, TIGER (рекомендации), DPR, DSI (поиск), JSR и UniSAR (совместные модели).

На Amazon GenSAR показывает +12,9% по Recall@10 для рекомендаций и +12,8% для поиска относительно лучшего бейзлайна UniSAR. На коммерческом датасете Kuaishou прирост составляет +10,4% и +11,7% соответственно.

Ablation study подтверждает важность обоих компонентов:
— Без CID качество рекомендаций падает на 8,9%;
— Без SID качество поиска падает на 14,7%;
— Dual-ID подход даёт +12,7% к рекомендациям по сравнению с single-ID.

@RecSysChannel
Разбор подготовили Михаил Сёмин и Никита Мирошниченко
1 899 просмотров · 45 реакций Открыть в Telegram · Открыть пост на сайте
LONGER: Scaling Up Long Sequence Modeling in Industrial Recommenders

Сегодня разбираем статью от ByteDance, представленную на RecSys'25. Работа посвящена эффективным end-to-end-рекомендациям на GPU с использованием длинных пользовательских последовательностей (до 10 тыс. событий). Авторы рассматривают кейсы Douyin (китайского TikTok) — как в рекламе, так и в e-commerce.

Основная проблема длинных последовательностей — квадратичная сложность аттеншна по длине L. Авторы предлагают архитектуру LONGER, решающую эту задачу.

1) Token Merging. Рядом стоящие токены в истории группируются по K штук. Группировка выполняется либо простой конкатенацией, либо через лёгкий внутренний трансформер (InnerTrans). Это уменьшает эффективную длину последовательности с L до L/K. Для типичных настроек (L=2000, d=32) TokenMerge(K=4) снижает FLOPs аттеншна примерно на 40–50% при минимальной потере качества.

Авторы аккуратно разбирают TokenMerge и InnerTrans в ablation study:
— без Merge (L=2000): FLOPs ≈ 3,73e9;
— c Merge (K=8, concat, L=250): FLOPs ≈ 3,03e9, ΔAUC +1,58%, ΔLogLoss −3,48%;
— добавление InnerTrans даёт ещё небольшой, но устойчивый буст.

Таким образом, TokenMerge не только снижает вычислительные затраты, но и даёт буст по метрикам качества, в сравнении с ванильным вариантом.

2) Global Tokens. На вход подаётся конкатенация глобальных токенов и пользовательской истории. Глобальные токены играют роль «якорей» (User Profiles, Context & Cross Features).

3) Тонкости обучения. Dense- и sparse-параметры (огромные embedding-таблицы) находятся на GPU-кластере. Обучение в BF16/FP16, часть активаций не хранится, а пересчитывается на backward. На инференсе используется KV Cache Serving.

Эксперименты и результаты

В офлайне LONGER решает задачу предсказания conversion rate (CVR) на 5,2 млрд примеров (130 дней данных Douyin Ads) на кластере 48 × A100. По сравнению с базовым Transformer даёт +0,21% AUC и −0,39% LogLoss.

Онлайн A/B-тесты в Douyin Ads:
— Live Streaming: ADSS +1,06%, ADVV +1,17%
— Short Video: ADSS +2,10%, ADVV +2,15%
— Mall: ADSS +1,82%, ADVV +1,41%

Онлайн A/B-тесты в Douyin E-commerce:
— Live Streaming: Order/U +7,92%, GMV/U +6654%
— Short Video: Order/U +4,61%, GMV/U +5,28%

@RecSysChannel
Разбор подготовил Михаил Сёмин
1 916 просмотров · 46 реакций Открыть в Telegram · Открыть пост на сайте
MiniOneRec: An Open-Source Framework for Scaling Generative Recommendation [2/2]

Завершаем разбор статьи MiniOneRec. В первой части обсуждали SFT и семантические ID, а теперь посмотрим, что происходит дальше: RL-дообучение, генерация траекторий и насколько авторы смогли воспроизвести индустриальные результаты на открытых данных.

RL-дообучение: GRPO и генерация траекторий

После SFT и алайнмента применяется reinforcement learning по аналогии с OneRec — используется GRPO. Модель уже умеет генерировать последовательности семантических токенов, каждая из которых соответствует айтему. Генерируются несколько траекторий (beam search или dynamic sampling), затем по каждой считается награда. Награда включает два компонента: корректность следующего айтема и ранжирование согласно frozen collaborative модели (SASRec в реализации авторов).

Чтобы модель генерировала только валидные токены, используется constrained beam search: логиты, не соответствующие существующим айтемам из кодбука, маскируются. То есть стратегия гарантирует, что каждая сгенерированная последовательность соответствует реальному айтему.

GRPO здесь в «ванильной» версии: есть ограничение на отклонение от начальной политики, чтобы избежать reward hacking — классического случая, когда модель накручивает награду, но начинает генерировать бесполезные последовательности.

Результаты и масштабирование

Авторы говорят о законе масштабирования: модели большего размера достигают лучшего качества (меньше лосс). Но есть важный момент: все модели обучаются одинаковое количество эпох на одном и том же датасете. Нет параметризации по количеству данных, а значит это не полноценный закон масштабирования, а скорее наблюдение: «большая модель лучше маленькой». С другой стороны, до этой работы таких результатов на открытых датасетах не было — и это важное подтверждение работоспособности индустриальных подходов вне Kuaishou.

В целом, MiniOneRec повторяет ключевые идеи OneRec — но делает это на открытых данных, с полностью доступным кодом и понятными экспериментами. Авторы аккуратно воспроизводят семантическую токенизацию Tiger, SFT поверх LLM, алайнмент между NLP и рекомендациями и RL-дообучение через GRPO. Это первая попытка показать, что индустриальные результаты действительно можно повторить за пределами приватных данных.

@RecSysChannel
Разбор подготовил Илья Мурзин
1 936 просмотров · 27 реакций Открыть в Telegram · Открыть пост на сайте
MiniOneRec: An Open-Source Framework for Scaling Generative Recommendation [1/2]

Сегодня начинаем разбирать неожиданно вышедшую статью MiniOneRec. В ней использованы подходы из нашумевшей серии техрепортов OneRec от Kuaishou. Авторы MiniOneRec — исследователи из университетов Китая и Сингапура — фактически берут ключевые идеи OneRec, переносят их в минимально жизнеспособный фреймворк и подтверждают, что они действительно работают на открытых данных. Это выглядит как попытка «повторить OneRec», но в академии и без доступа к приватным датасетам. И действительно, LLM-подходы в NLP работают слишком хорошо, чтобы не пытаться перенести их в другие домены — в том числе в рекомендации.

Семантические ID и подготовка данных

Первое препятствие, которое сразу появляется в рекомендациях, — огромный каталог документов. Нельзя просто взять LLM и обучить её поверх ID в десятки или сотни миллионов: embedding/de-embedding-слои и softmax станут непригодными. Поэтому MiniOneRec, как и OneRec, используют семантические ID из работы TIGER.

Суть простая: каждый документ кодируется короткой последовательностью токенов. Из исходного текста (название + описание) получают эмбеддинг: текст прогоняется через замороженную Qwen3-Embedding-4B, затем hidden states последнего слоя усредняются (mean pooling) в один вектор, который и подаётся в трёхуровневую RQ-VAE-кластеризацию. На каждом уровне отнимается ближайший из 256 центроид (получается semantic_id_0), формируется остаток, который проходит ту же процедуру кластеризации следующего уровня — в итоге документ получает трёхтокенную семантическую подпись. Это резко уменьшает словарь: вместо миллионов ID становится 3x256 дополнительных к словарю токенов. У Tiger и OneRec эта идея ключевая, и MiniOneRec полностью повторяет её.

Авторы также отмечают проблему коллапса кластеров (слишком много документов в одном кластере), поэтому в коде используют не случайную инициализацию, а RQ k-means из оригинального OneRec. Это увеличивает энтропию кластеров и улучшает токенизацию.

SFT и перенос NLP в рекомендации

После токенизации авторы делают SFT поверх предобученной LLM (берут Qwen). В случае с академией это более чем оправдано: экономятся ресурсы, не нужно тренировать архитектуру с нуля и сразу есть сильный старт. Истории пользователя подаются в виде последовательностей семантических токенов, а модель учится предсказывать следующий айтем.

В этот процесс также привносят новизну вида алайнмента между NLP и рекомендациями. Авторы подмешивают в обучение разные форматы примеров, с тем чтобы перенести world knowledge модели на новые токены.

Получается несколько типов задач:

- история на естественном языке — нужно предсказать следующий айтем в виде семантических токенов;

- история в виде семантических токенов — нужно предсказать текстовое описание следующего айтема;

- просто перевод айтема между двумя представлениями — из текста в семантические токены и наоборот.

Этот шаг даёт самый большой прирост качества. В аблейшенах видно, что это важнее, чем стартовать со случайных весов. Вместе с тем сама идея достаточно проста: смешивать рекомендации с задачами NLP, чтобы модель лучше экстраполировала знания. Это похоже на недавнюю работу от Google — PLUM, хотя авторы на неё не ссылаются (возможно результаты получены параллельно).

В следующей части обзора расскажем о RL-дообучении, масштабировании и результатах.

@RecSysChannel
Разбор подготовил Илья Мурзин
2 196 просмотров · 39 реакций Открыть в Telegram · Открыть пост на сайте
OneTrans: Unified Feature Interaction and Sequence Modeling with One Transformer in Industrial Recommender

Сегодня разберём статью о OneTrans — нейросетевом ранкере от TikTok. Его можно было бы назвать аналогом HSTU от Meta* или TransAct от Pinterest, но ни на одну из этих работ авторы не ссылаются, упоминают только Wukong и RankMixer.

Исследователи называют свою разработку единой ранжирующей моделью в рамках каскадного рекомендательного стека, которая заменяет финальный ранкер за счёт того, что совмещает sequence-моделирование и взаимодействие признаков (feature interaction).

Классический подход к финальному ранжированию, ставший стандартом индустрии, обычно предполагает, что историю пользователя обрабатывают отдельно от обработки ручных счётчиков. Сначала входную последовательность событий пропускают через Sequence Modeling Block, где вытаскивают и сжимают информацию о пользователе, необходимую для построения рекомендаций. Потом сжатое представление попадает в Interaction-блок. Параллельно набор Non-Seq-фичей (например, ручные счëтчики) конкатенируют или каким-то другим способом подают в тот же Interaction-блок.

OneTrans одновременно моделирует и последовательные, и Non-Seq-входы внутри единой модели OneTrans. Архитектура ранкера — на схеме: последовательности (голубые блоки S на схеме) и non-seq (NS, оранжевые) айтемы токенизируют по отдельности. Блоки поведения пользователей разделяют специальными блоками [SEP], после чего единую последовательность подают на вход OneTrans Pyramid Stack. Внутри этой пирамиды последовательность S итеративно сжимают до тех пор, пока её длина не совпадёт с NS.

OneTrans Block — казуальный трансформер с RMSNorm, Mixed Causal Attention и Mixed FFN. Под Mixed авторы понимают смешанную параметризацию: у S-токенов общие QKV/FFN-матрицы, а каждый NS получает свои токен-специфичные веса.

По результатам экспериментов на индустриальных датасетах, OneTrans эффективно масштабируется с ростом параметров: систематиически обгоняет сильные бейзлайны и показывает рост на 5,68% per-user GMV в онлайн-A/B-тестах.

*Компания Meta, владеющая Instagram, признана экстремистской; её деятельность в России запрещена.

@RecSysChannel
Разбор подготовил Артём Матвеев
2 056 просмотров · 40 реакций Открыть в Telegram · Открыть пост на сайте
Balancing Fine-tuning and RAG: A Hybrid Strategy for Dynamic LLM Recommendation Updates

Сегодня разберём статью от компании Google DeepMind, главный фокус которой в последнее время — LLM в рекомендациях. У рекомендательных моделей есть ряд преимуществ относительно более традиционных рексистем: богатое понимание мира, ризонинг, способность объяснять, почему был порекомендован тот или иной объект, и многое другое. Но это не отменяет слабые места, например, проблему динамики в интересах пользователей и корпусе айтемов. Именно этот аспект авторы разбирают в статье.

Эксперименты проводятся в YouTube Shorts. Авторы выясняют: нужно ли вообще обновлять рекомендательную LLM в таком домене, или со своим знанием мира она и так справится. Отвечают интересным экспериментом: кластеризуют тематики шортсов и по логам пользователей собирают тройки (c1, c2, c_next) кластеров, с которыми кто-то последовательно провзаимодействовал. Делают так отдельно для нескольких месяцев, после чего для всех пар (c1, c2) собирают топ-5 переходов в c_next для каждого месяца i: {c_next_1, …, c_next_5}_i. Далее для пар (c1, c2) считают IoU множеств переходов за соседние месяцы (i vs. i+1) и получают низкое значение 0,17, что подчеркивает высокую изменчивость паттернов пользователей во времени. Отсюда возникает необходимость постоянного обновления рекомендательной LLM.

В статье сравниваются два метода: fine-tuning и RAG. Первый обновляет веса модели через дообучение на новом трафике. Второй, грубо говоря, усиливает промпт недостающей информацией о пользователе и домене, при этом никак не влияет на саму модель.

Fine-tuning. Модель дообучается предсказывать следующий кластер, с которым провзаимодействовало большинство пользователей: (c_1, c_2, …, c_n) → c_{n+1}. Описания кластеров поступают в LLM в словесной форме. Из минусов метода — сложность, возможность переобучения и высокие вычислительные затраты. Из-за последнего дообучение происходит лишь ежемесячно.

RAG. Точно так же представляет историю в виде последних взаимодействий с кластерами (обновленные интересы пользователя), но ещё и добавляет в промпт наиболее популярное продолжение для этой последовательности взаимодействий (обновленные реалии домена). Поскольку множество всевозможных историй вида (c_1, c_2, …, c_k) невелико и конечно, инференс производится несколько раз в неделю, а предпосчитанные кандидаты для каждой истории достаются в реальном времени лукапом.

В офлайн-эксперименте проверяют, нужен ли RAG и стоит ли пересчитывать кандидатов раз в несколько дней. Оказывается, что на оба вопроса ответ положительный. В A/B-тесте отчитываются о приростах Satisfied User Outcomes, Satisfaction Rate и об уменьшении Dissatisfaction Rate и Negative Interaction.

@RecSysChannel
Разбор подготовил Сергей Макеев
2 009 просмотров · 23 реакций Открыть в Telegram · Открыть пост на сайте
CIKM’25 в разгаре: интересные статьи с третьего дня конференции

По наблюдению наших инженеров, в этом году хорошие доклады на CIKM распределены крайне неравномерно: в одни тайм-слоты интересного мало, зато в другие несколько любопытных работ представляют параллельно. О том, что запомнилось 12 ноября, рассказал разработчик службы рекомендательных технологий Яндекса Иван Артемьев.

Первая половина дня была более спокойной, зато вторая — очень насыщенной, так что пришлось делиться на группы и бегать между комнатами.

В первой половине была одна запоминающаяся статья — DAS: Dual-Aligned Semantic IDs Empowered Industrial Recommender System. Авторы прямо во время обучения семантических ID замешивают коллаборативный сигнал. В дополнении раскладывали на семантики не только айтемы, но и пользователей — и применяли пользовательские ID в рекомендательной системе.

Во второй половине дня было три классных работы.

⚫️MPFormer: Adaptive Framework for Industrial Multi-Task Personalized Sequential Retriever

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

⚫️TBGRecall: A Generative Retrieval Model for E-commerce Recommendation Scenarios Taming Ultra-Long Behavior Sequence in Session-wise Generative Recommendation

⚫️Taming Ultra-Long Behavior Sequence in Session-wise Generative Recommendation

В этих двух работах обучают кандидатогенератор для задачи генерации сессий. При этом в последней — добавляют очень большую историю (до 100 000 айтемов) в сжатом виде, чтобы учитывать долгосрочные интересы пользователей.


@RecSysChannel
1 825 просмотров · 27 реакций Открыть в Telegram · Открыть пост на сайте
CIKM’25: начинаем репортаж с конференции в Сеуле

В эти дни в Южной Корее проходит международная конференция CIKM 2025, на которую отправилась часть команды рекомендательных технологий Яндекса.

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

Так, в программе этого года заявлены доклады от Pinterest (TransAct V2, PinRec), Kuaishou (QARM, Pantheon) и Meituan (EGA-V1). С нетерпением ждём подробностей от наших инженеров.

Кроме туториалов и воркшопов, будет AnalytiCup 2025 — конкурсный трек с задачами по анализу данных. В этом году его проводят Alibaba International и FinVolution.

Впечатлениями от первого дня конференции поделился Николай Савушкин, руководитель службы рекомендательных технологий:

Отличное начало — сильные доклады от Pinterest и живое общение с участниками. В конце дня были интересные выступления от eBay и Google. От eBay докладывала русскоязычная исследовательница, пообщались после её презентации о ресёрче в компании. Основная программа стартует завтра.


Продолжим держать вас в курсе! А пока несём немного атмосферных фото из Сеула.

@RecSysChannel
1 601 просмотров · 42 реакций Открыть в Telegram · Открыть пост на сайте
PLUM: Adapting Pre-trained Language Models for Industrial-scale Generative Recommendations

Сегодня разбираем совместную статью Google DeepMind и YouTube. Об этой работе было известно заранее — на конференции RecSys авторы проекта, включая Ed Chi и Lichan Hong, упоминали, что готовится статья о генеративных рекомендациях. Через пару недель после конференции она действительно вышла.

Исследование продолжает трек генеративных рекомендаций, заданный предыдущей работой авторов TIGER. На этот раз основная идея — использование предобученных больших языковых моделей в рекомендательных пайплайнах (в случае Google — это Gemini). Простая LLM из коробки не подходит: модель не знает ни о корпусе айтемов, ни о пользовательских поведенческих сценариях, что приводит к плохим результатам. Чтобы исправить это, команда предлагает фреймворк PLUM, включающий три стадии: item tokenization, continued pre-training и task-specific fine-tuning. Кратко разберём каждую из них.

1) Item tokenization. За основу взята работа TIGER. В ней семантические идентификаторы (SIDs) формировались через RQ-VAE поверх текстового описания товара (эксперименты были на открытых датасетах Amazon). В PLUM к этому подходу добавляют коллаборативный сигнал и мультимодальные контентные представления. Используются уже готовые аудио-, видео- и текстовые эмбеддинги YouTube, которые конкатенируются и проходят через энкодер RQ-VAE.

Новые предложенные компоненты:

Multi-Resolution Codebooks: число идентификаторов в кодбуках уменьшается от слоя к слою, чтобы верхние уровни разделяли крупные семантические категории, а нижние — более гранулярные признаки.
Progressive Masking: модель обучается восстанавливать не полный набор SIDs, а его префикс.

Ключевая вещь в архитектуре — дополнительный contrastive learning на RQ-VAE, который вводит коллаборативный сигнал прямо в процесс токенизации. Берутся пары айтемов, встречавшихся рядом в пользовательской истории как позитивные пары, обучается с помощью InfoNCE по батчу. Так коллаборативный сигнал тоже участвует в формировании кодбуков без отдельной стадии дообучения как, например, в OneRec. В итоге SIDs начинают отражать не только контентную информацию об айтемах, но и коллаборативные пользовательские связи между ними.

2) Continued Pre-Training (CPT). Здесь языковая модель дообучается с увеличенным словарём, в который, помимо изначальных токенов, встроены токены айтемов. Модель обучается на смешанной задаче (supervised + self-supervised). Цель этой стадии — заставить LLM встроить в общее семантическое пространство представления токенов и SIDs.

3) Task-Specific Fine-Tuning. Это полноценное обучение на задачу генеративного ретривала: модель предсказывает релевантные айтемы в пользовательских историях (обучение на next token prediction).

В целом идея PLUM строится на прямой аналогии между словами в языковых моделях и айтемами в RecSys: если в NLP слова токенизируются для работы с огромным словарём, то в рекомендациях можно аналогично токенизировать айтемы.

Эксперименты и результаты

Основная модель — Mixture-of-Experts с ~900 млн активных параметров (всего 4,2 млрд).

В онлайн-A/B-тестах PLUM показывает рост ключевых метрик: CTR и вовлечённости пользователей, особенно в коротких видео (YouTube Shorts). Аблейшены подтверждают, что важны все предложенные компоненты.

В работе показывают законы масштабирования для предложенного фреймворка: при увеличении размера моделей при разном фиксированном вычислительном бюджете ошибки на обучении и валидации снижаются, но самые большие модели (около 3 млрд активных параметров, 20 млрд всего) пока упираются в ограничения вычислительных ресурсов. Исследователям не хватило времени, данных и мощностей, чтобы хорошо обучить модели такого размера, однако инженеры считают, что при дальнейшем масштабировании качество может вырасти ещё больше.

Финальная PLUM-модель дообучается ежедневно на ~0,25 млрд примеров, тогда как предыдущие LEM (Large Embedding Models) подходы требовали многомиллиардных датасетов.

@RecSysChannel
Разбор подготовил Владимир Байкалов
4 498 просмотров · 31 реакций Открыть в Telegram · Открыть пост на сайте
TBGRecall: A Generative Retrieval Model for E-commerce Recommendation Scenarios

Разбираем работу Alibaba, архитектурно напоминающую ARGUS, используемый в Рекламе Яндекса. Модель TBG Recall, описанная в статье, генерирует кандидатов для главной страницы Taobao, крупнейшего e-commerce-сервиса компании.

Во многих работах для рекомендаций применяются генеративные и последовательные модели, но они предполагают, что история пользователя — это строгая последовательность событий. В e-commerce всё иначе: пользователь делает запрос и получает «пачку» товаров, потом ещё одну — внутри таких пачек никакой упорядоченности нет, поэтому обычные sequence-based-подходы здесь работают не совсем корректно.

В качестве решения авторы вводят предсказание следующей сессии, где сессия понимается как один запрос пользователя. Модель учится предсказывать, какие товары пользователь увидит в следующей выдаче.Также в работе используют incremental training, чтобы регулярно обновлять модель на свежих данных без перерасхода GPU.

Архитектура

Как уже сказали, в основе TBGRecall — next session prediction: история пользователя кодируется в вектор и сравнивается с векторами кандидатов через ANN-индекс, как в классических двухбашенных моделях. Слово «генеративная» в названии относится не к инференсу, а к способу обучения — авторегрессионному.

В начале каждой сессии стоит контекстный токен — обобщённое описание запроса. При инференсе он формируется из текущего контекста пользователя и напрямую влияет на итоговый вектор, с которым рекомендательная система делает запрос в индекс. По нашим наблюдениям, контекстные токены дают почти двукратный прирост качества — особенно в сервисах вроде Поиска и Рекламы, где контекст крайне важен.

Кодирование и обучение

Каждое событие описывается набором признаков: Item ID, Action, SideInfo (ID продавца или категория), Context и Timestamp. Вход модели — сумма этих векторов. Сначала они проходят через tower-модули, а затем через HSTU-блоки. Для контекстных и айтемных токенов используются отдельные tower-модули — небольшие проекции, без которых качество падает (что совпадает с нашим опытом в ARGUS).

Основная схема обучения — session-wise autoregressive approach с маской внимания, которая не позволяет айтемам внутри одной сессии «видеть» друг друга. Также применяется session-wise ROPE (sw-ROPE) — позиционные эмбеддинги, нумерующие сессии. Мы пока не видели стабильного выигрыша от подобных схем, но идея любопытная.

Лосс состоит из трёх частей:
1. Lnce — воспроизводит логирующую политику, учит отличать реальные айтемы в сессии от случайных негативов.
2. Lclick — отличает кликнутые айтемы от показанных.
3. Lpay — отличает купленные от всех прочих.

Все три компоненты считаются по разным продуктовым сценариям и взвешиваются по числу сессий в них. Отдельного претрейна или fine-tune-фазы, как в ARGUS, нет — всё обучение проходит за один этап.

Инференс и результаты

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

На закрытом датасете (около 2 трлн записей) TBGRecall превзошёл собственный dual-tower baseline компании. В A/B-тестах модель показала +0,5% по числу транзакций и +2% по обороту. Новый кандидат-генератор теперь отвечает за 24% показов на поверхности Guess You Like — одной из ключевых страниц Taobao.

В целом, TBGRecall — это шаг от классической двухбашенной архитектуры к генеративному обучению. Контекстные токены дают сильный прирост, MoE и SW-ROPE работают стабильно, а near-line-инференс показывает себя лучше, чем ожидалось.

@RecSysChannel
Разбор подготовил Николай Савушкин
1 963 просмотров · 31 реакций Открыть в Telegram · Открыть пост на сайте
OnePiece: Bringing Context Engineering and Reasoning to Industrial Cascade Ranking System [2/2]

Продолжаем разбор техрепорта от Shopee. Так чем же интересен reasoning?

Авторы берут hidden state из последнего блока backbone, подают на вход в декодер с блочно-каузальным attention. По словам авторов, блоки позволяют учитывать больше информации о каждом токене.

Блоки в итоге учатся на разные таски:
— Retrieval: binary-cross-entropy loss (будет клик или не будет, добавят товар в корзину или нет, купят ли) и bidirectional contrastive learning (симметричный User to Item и Item to User).
— Ranking: вместо BCL используют set contrastive learning на успешных случаях, чтобы расширить границы положительных и отрицательных исходов.

Для тренировки моделей авторы воспроизводят ежедневное онлайн-дообучение, которое ждёт систему в проде. Данные упорядочены между собой по дням, но внутри них семплы пошаффлены. Результат за каждый день сохраняется и оценивается по итогам следующего. Период данных для обучения — месяц.

Сделав вход модели более информативным, а также добавив многошаговый reasoning, авторы улучшили результаты работы модели. Внедрение нового фреймворка в основной сценарий персонализированного поиска помогло добиться +2% GMV/UU и +2,90% дохода от рекламы.

@RecSysChannel
Разбор подготовил Виктор Януш
1 899 просмотров · 17 реакций Открыть в Telegram · Открыть пост на сайте
OnePiece: Bringing Context Engineering and Reasoning to Industrial Cascade Ranking System [1/2]

Сегодня разберём очередной техрепорт от Shopee — маркетплейса, популярного в Южной Америке и Азии. Авторы представляют новый фреймворк OnePiece, где адаптируют LLM и к retrieval, и к ранжированию.

Идеи, на которых основан подход, простые, но интересные:

— Structured context engineering: обогатить историю взаимодействия с пользователями.
— Block-wise latent reasoning. Авторы в некотором роде придумали, как прикрутить к рекомендательным системам reasoning от LLM.
— Progressive multi-task training: прогрессивно усложнять обучающие задачи для учёта фидбека.

По названию материала можно было бы подумать, что речь пойдёт про одностадийную модель, но нет. Как заведено в современных рекомендательных системах, стадии две: retrieval и ranking.

В основе модели — энкодер с трансформером. Размеры в статье не приводят, но по косвенным признакам, модель не очень большая.

Подробности можно рассмотреть на схеме. Начнём с retrieval. Вход стандартный: история взаимодействий, описание контекста через пользовательские фичи. Из интересного — preference anchors, которые помогают собрать топы товаров по количеству покупок, добавлению в корзину или кликов. Можно сказать, что это аналог RAG (от LLM) для рекомендашек.

Для стадии ранжирования — то же самое, плюс множество кандидатов, как в подходе с target-aware-трансформером.

Представление входов довольно стандартное. Товары описываются набором ID: название, магазин, категория. Запросы представлены мешком слов. Токены получаются с помощью MLP над конкатенацией эмбеддингов.

Если не использовать маскирование, получится полный attention между всеми кандидатами. Чтобы сэкономить compute и избежать артефактов в зависимостях, авторы выбрали промежуточный вариант: делят кандидатов на рандомные группы и подают на вход по одной.

Backbone тоже стандартный и не стоит отдельного внимания. А вот reasoning интересный. Почему? Расскажем в следующем посте!

@RecSysChannel
Разбор подготовил Виктор Януш
1 895 просмотров · 16 реакций Открыть в Telegram · Открыть пост на сайте
Kuaishou: обзор ключевых статей и техрепортов

Собрали в карточках краткие описания семи больших работ Kuaishou, включая те, на основе которых вырос OneRec и его продолжения.

Материал поможет быстро сложить в голове картину того, как компания шаг за шагом пришла к созданию первых генеративных рекомендательных систем в индустрии.

Ссылки на работы, упомянутые в посте:

OneRec: Unifying Retrieve and Rank with Generative Recommender and Iterative Preference Alignment
OneRec Technical Report
OneRec-V2 Technical Report
QARM: Quantitative Alignment Multi-Modal Recommendation at Kuaishou
TWIN V2: Scaling Ultra-Long User Behavior Sequence Modeling for Enhanced CTR Prediction at Kuaishou
Pantheon: Personalized Multi-objective Ensemble Sort via Iterative Pareto Policy Optimization
OneLoc: Geo-Aware Generative Recommender Systems for Local Life Service

@RecSysChannel
Обзор подготовил Владимир Байкалов
1 931 просмотров · 27 реакций Открыть в Telegram · Открыть пост на сайте
PinRec: Outcome-Conditioned, Multi-Token Generative Retrieval for Industry-Scale Recommendation Systems

Сегодня разбираем статью от Pinterest о модели PinRec. В индустрии существуют два основных подхода к transformer-based retrieval. Первый — классическая двухбашенная схема: трансформер анализирует пользовательскую историю и сжимает её в эмбеддинг, с которым затем обращаемся к HNSW-индексу, построенному на айтемных эмбеддингах. Второй подход — появившиеся относительно недавно генеративные модели, в которых трансформер порождает непосредственно список айтемов, релевантных для данного юзера, например генерируя их в виде последовательностей семантических айдишников.

В модели PinRec авторы совмещают обе парадигмы и получают нечто среднее: с одной стороны, трансформер генерирует последовательность, однако это последовательность не айтемных идентификаторов, а сырых эмбеддингов, с каждым из которых затем ходим в HNSW-индекс для поиска ближайших айтемных эмбеддингов.

В базовой версии модель представляет собой трансформер с каузальной маской, авторегрессивно предсказывающий каждый следующий айтем, с которым провзаимодействовал пользователь, при условии его предыдущей истории. Учится модель на sampled softmax loss с logQ-коррекцией и mixed-negative sampling (используются in-batch и random-негативы). На инференсе предсказываем по истории пользователя эмбеддинг следующего айтема, дописываем его в сыром виде в конец истории и повторяем такой процесс несколько раз — в результате генерируем последовательность эмбеддингов и от каждого из них набираем ближайшие айтемы в HNSW-индексе.

Помимо указанного совмещения парадигм ключевые новшества статьи — это две идеи, навешиваемые поверх базовой версии модели.

Во-первых, авторы предлагают способ, при помощи которого можно обуславливать генерацию на желаемые действия пользователя — не прибегая к SFT и RL. При предсказании следующего айтема будем давать модели информацию о действии, совершенном юзером с этим айтемом. А именно, будем конкатить выход из трансформера, сжимающий предыдущую историю, с эмбеддингом действия и уже из этого конката предсказывать следующий айтем. Такая схема позволяет на инференсе подставить эмбеддинг нужного нам действия и предсказать наиболее вероятные айтемы при условии этого действия.

Во-вторых, авторы замечают, что взаимодействия пользователя с айтемами в сервисе совершенно не обязательно имеют строго последовательную логику и жёсткую очередность. А задача next item prediction как раз предполагает, что для каждой предыстории есть ровно один верный предикт — тот айтем, с которым пользователь провзаимодействовал следующим.

В статье предлагается изменить постановку задачи: важно угадать не в точности следующий айтем, а хотя бы один из будущих айтемов в некотором временном окне. Для этого вводится такая модификация лосса — обычный sampled softmax loss посчитаем по всем айтемам в этом окне и затем возьмём минимум из полученных значений. Тогда и на инференсе можно предсказывать не по одному эмбеддингу за раз, а сразу целыми окнами. В статье утверждается, что это повышает и качество, и разнообразие кандидатов, а за счёт генерации целыми окнами значительно ускоряет инференс.

Авторы репортят, что описываемая ими модель внедрена как один из кандидатогенераторов в Pinterest на весь их внушительный industrial scale. При этом получены значимые приросты онлайн-метрик: на поверхности homefeed +0,28% fulfilled sessions, +0,55% timespent и +3,33% кликов.

Помимо архитектурных идей статья содержит интересные детали сервинга модели в продакшене (используется Triton Inference Server с Python-бэкендом). Также авторы сравнивают в своём сетапе трансформер с архитектурой HSTU (не в пользу последней), проводят эксперименты со скейлингом трансформера вплоть до миллиарда параметров и репортят, что добавление в модель таблицы id-based-эмбеддингов с 10 миллиардами параметров докидывает +14% к recall@10 поверх только контентных эмбеддингов.

@RecSysChannel
Разбор подготовил Сергей Лямаев
2 157 просмотров · 25 реакций Открыть в Telegram · Открыть пост на сайте
Подборка статей с RecSys 2025

Делимся ещё несколькими работами, которые показались любопытными инженерам Яндекса. В сегодняшней подборке: диффузионки, которые генерируют целые плейлисты, борьба с cold start, обучение семантических ID на все задачи сразу и презентация с иллюстрациями из мультика «Холодное сердце».

Prompt-to-Slate: Diffusion Models for Prompt-Conditioned Slate Generation

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

Каждый объект каталога кодируется вектором-эмбеддингом. Слейт фиксированной длины представляют как конкатенацию этих векторов. Текстовый промпт кодируется трансформером и подаётся в Diffusion Transformer через cross-attention. Диффузионная часть пошагово «разшумляет» случайный вектор в латент слейта. Готовые латенты проецируются в ближайшие объекты каталога с фильтрацией дублей.

Такой подход даёт согласованность набора, стохастичность и разнообразие (несколько валидных слейтов для одного промпта). В экспериментах на музыкальных плейлистах и e-commerce-бандлах модель показала до +17% по NDCG и +6,8% взаимодействий в онлайне.

Not All Impressions Are Created Equal: Psychology-Informed Retention Optimization for Short-Form Video Recommendation

Хорошая идея для рексистем с плотным пользовательским сигналом. В таргет ставится ретеншн (вернётся ли пользователь в сервис завтра), а в текущей сессии выделяются пиковый и последний документы — психологически именно они запоминаются и влияют на решение вернуться. Для поиска пика используют как положительные, так и отрицательные взаимодействия в сессии.

Semantic IDs for Joint Generative Search and Recommendation

Довольно простая, но, скорее всего, рабочая мысль — учить семантические ID документов сразу на все задачи. По сути то же, что и обучение многоголовых сетей, только применительно не к эмбедам, а к семантической токенизации документов.

Let it Go? Not Quite: Addressing Item Cold Start in Sequential Recommendations with Content-Based Initialization

Авторы сначала учат эмбеддинги документов только на контенте, а затем доучивают на ID, контролируя, чтобы норма изменения эмбеддинга оставалась малой. Говорят, это хорошо работает на «холодных» документах, и при этом на «горячих» качество почти не проседает. А ещё в презентации статьи были шикарные иллюстрации с героями из мультика «Холодное сердце».

@RecSysChannel
Статьи выбрали Александр Шуваев и Андрей Мищенко
1 616 просмотров · 13 реакций Открыть в Telegram · Открыть пост на сайте
Новые впечатления с RecSys 2025

Продолжаем смотреть на конференцию RecSys глазами инженеров Яндекса. Сегодня подсветим три интересные работы и вдохновляющий keynote от Xavier Amatriain.

Scaling Generative Recommendations with Context Parallelism
on Hierarchical Sequential Transducers

Авторы рассказали, как наращивают длину пользовательской истории при обучении HSTU-моделей. Оказалось, что использование истории длиной более 10 К событий всё ещё даёт прирост продуктовых метрик. Работа исключительно инженерная, но полезная для масштабирования используемых длин в истории.

Исследователи используют подход context parallelism: шардинг q/k/v по длине последовательностей в батче на P частей. При вычислении аттеншна ключи и значения нужно агрегировать со всех частей. Вместо стандартной схемы all-gather предлагают использовать all-to-all, чтобы пересылать только нужные блоки. Как итог, память под активации и KV-кэш на каждом GPU снизилась в ~1/P, а поддерживаемая длина истории выросла с 3 K до 16 K токенов.

RankGraph: Unified Heterogeneous Graph Learning for
Cross-Domain Recommendation

На конференции прозвучало несколько докладов о графовых нейросетях (GNN), но особенно выделился этот. В онлайновых A/B-тестах решение показало рост продуктовых метрик: +0,92% к кликам и +2,82% к конверсиям.

Для построения графа используются все доступные поверхности — лента, видео, рекламные объявления. Формируется единый гетерогенный граф, включающий пользователей и айтемы из разных доменов. Модель основана на RGCN (Relational Graph Convolutional Network) и обучается на contrastive-лоссы (triplet loss и InfoNCE). Для каждого отношения (типа ребра) агрегируются сообщения от соседей этого типа; затем результаты объединяются через «mixer» и обновляют представление узла.

Ключевой момент — сохранение самопетель (self-loop), чтобы прежнее представление узла также учитывалось при обновлении. Модель используется как для кандидат-генерации (user-to-item и item-to-item), так и как источник эмбеддингов пользователей и объектов, которые затем передаются в другие доменные модели в качестве фичей.

Scaling Retrieval for Web-Scale Recommenders: Lessons from Inverted Indexes to Embedding Search

LinkedIn поделились историей эволюции своей retrieval-системы. Начинали, как многие, с инвертированных индексов: решение быстрое и объяснимое, но требует ручного тюнинга (query expansion, переписывание запросов). Сверху добавили ML — learning to retrieve, графовые методы, атрибутные связи. Это помогало, но ограничения оставались: много ручной работы, оффлайн-билд индекса раз в неделю, больно интегрировать эмбеддинги.

Следующий шаг — embedding-based retrieval на ANN внутри старой системы. Но с такой архитектурой тяжело экспериментировать: квантование портило качество, CPU не тянуло, итерации шли медленно.

Решение — построить с нуля GPU retrieval-систему. Теперь это огромные sparse/dense матрицы в GPU-памяти без «костыльного» ANN. KNN считается честно и быстро, а терм-поиск и эмбеддинги можно гибко комбинировать. Внедрили множество оптимизаций: кастомные CUDA-кернелы, bfloat16, батчинг, шардирование по регионам.

Результаты: –75% инфраструктурных затрат и +30% к скорости экспериментов. В продакшене на кейсе job-matching это дало +4,6% к числу поданных заявок и +5,8% к budget utilization в промовакансиях.

Главный инсайт: inverted index хороши для классического поиска, но в современных ML-рексис они быстро достигают потолка. GPU-based EBR (Embedding-Based Retrieval) даёт гибкость и multi-objective-оптимизацию уже на этапе retrieval, а значит — приносит больше пользы для бизнеса.

Напоследок — впечатление от выступления Xavier Amatriain, посвящённого комплексному подходу к развитию рекомендательных систем:

Главный тезис: нельзя сильно вырасти, если сосредотачиваться на улучшении одной метрики. Развитие должно охватывать сразу несколько уровней — пользовательский опыт, в том числе с применением генеративного AI, алгоритмический стек рекомендаций и сам продукт.

@RecSysChannel
Заметки собрали Александр Шуваев, Влад Тыцкий, Артём Ваншулин
1 655 просмотров · 19 реакций Открыть в Telegram · Открыть пост на сайте