Information Retriever
رفتن به کانال در Telegram
3 970
مشترکین
+224 ساعت
+127 روز
+10330 روز
آرشیو پست ها
Research Is Not Engineering at a Slower Speed.
https://voiceinthemachine.com/2026/06/10/research-is-not-engineering-at-a-slower-speed/
Я когда-то уже писал пост про то, чем занималась моя R&D команда, а тут вышел довольно интересный write up про различия между ресерчем, R&D и продуктовой разработкой от очень опытного чувака (сам Ян Лекун его рекомендует). Tldr такой, что в ресерче и продуктовой разработке все просто и понятно (с точки зрения ролей, системы оценивания и тд), а в R&D — наоборот. И что компании часто смешивают внутри R&D кучу всякой деятельности.
У меня ровно так и было — команда одновременно делала:
* и ресерч — копание в статьях, создание новых моделей и архитектур; была наша собственная амбиция догнать и перегнать дипмайнд по части рекомендашек
* и довольно большой объем продуктовой разработки — копание в конкретных продуктовых доменах, активное участие в доведении моделей до прода, много внедрений каждое полугодие
* и строила инфру — инструменты для работы с данными, обучения и внедрения моделей
В статье также много места посвящено тому, где компании часто спотыкаются:
1. Оценивают ресерчеров по инженерным метрикам
2. Называют инженерную деятельность прорывным ресерчем
3. Теряют тот ресерч, который зародился сам по себе и не вписывается в рамки существующих процессов
Со всеми пунктами тоже согласен, видел похожее на практике. Чтобы был сильный ресерч, нужны соответствующие люди, с нужными навыками и опытом. Все эти три пункта мешают найму/росту таких людей; скорее их отталкивают.
До сих пор довольно много про это думаю в контексте рексистем — как правильно организовать такую команду, как её правильно оценивать, как найти/взрастить нужных людей, органично интегрироваться в структуру большой организации. Мыслей и идей за последний год накопилось много, надеюсь, доведется их как-нибудь реализовать.
Команда ванрека выпустила новый тех репорт, про ризонинг, на 108 страниц. Скоро начнут выпускать пятитомники))
https://arxiv.org/abs/2606.06260
Deep RecSys Course — В С Ё!
Вот и все! Неплохой получился курс: интересный, весёлый, порой немного грустный, а главное поучительный...
Получилось 13 лекций:
1. Введение в рекомендательные системы
2. ML дизайн рекомендательных систем
3. Двухбашенные нейросети I: обучение
4. Двухбашенные нейросети II: архитектура
5. Нейросетевое ранжирование I: обработка признаков
6. Нейросетевое ранжирование II: слои
7. Рекомендации на последовательностях
8. Графовые нейросети
9. Ранжирование в рекламной сети Яндекса (гостевая лекция)
10. Обучение с подкреплением I: exploration и бандитные алгоритмы
11. Обучение с подкреплением II: REINFORCE
12. Генеративные рекомендации
13. Исследования Sber AI Lab в области рексистем
Большая часть семинаров — это разборы основных статей по теме; по сути, мы провели небольшой научный семинар в рамках курса.
А ещё у нас были домашние задания, подготовленные специально для курса:
1. Бейзлайны: item-to-item CF, ALS, эвристики
2. Двухбашенные нейросети, где нужно было пощупать разные лоссы, включая logQ коррекцию
3. Нейросетевое ранжирование: PLE, unified embeddings, DCN-v2, многоголовость, ResNet/DenseNet
4. Авторегрессивные трансформеры для next-item prediction
И, наконец, есть финальный проект, который ребята еще сдают; в рамках него нужно на основе статьи сделать свое собственное мини-исследование.
Все материалы можно найти на Github, а записи — на YouTube. Для ленивых есть отдельный плейлист.
Я очень рад, что получилось сделать такой большой курс, и даже записать его и выложить целиком. На это, конечно, потребовалось просто гигантское количество времени)) Раньше ребята, которые выходили работать ко мне в команду, получали эти знания по крупицам целыми ГОДАМИ. А здесь можно получить те же знания, посмотрев 30+ часов концентрированного контента.
Хочу сказать спасибо:
1. Артёму Матвееву и Владимиру Байкалову, которые выделили свое драгоценное свободное время, чтобы подготовить и провести целых 11 семинаров, а также помогли подготовить и проверить кучу домашних заданий
2. Нашим гостям Сергею Макееву, Александру Андрееву, Маргарите Мишустиной и Алексею Васильеву, которые сделали в рамках курса отличные гостевые доклады
3. ФКН НИУ ВШЭ и в частности Евгению Соколову за то, что фактически спонсировали всю эту мою активность. И еще и разрешили сделать её открытой. Без ВШЭ и Евгения никакого открытого курса бы не было!
4. Нашей замечательной команде курса в ШАД, с которой началась эта эпопея по созданию рексис курса. И в частности Дане Ткаченко, который изначально позвал меня вместе делать курс в ШАДе
А вам, дорогие мои читатели, спасибо, что читали, слушали и поддерживали. Fin. :)
Deep RecSys Course XIII.
Сегодня было финальное занятие курса — гостевая лекция от Лёши Васильева, руководителя команды рекомендательных систем Sber AI Lab. Лёша в подробностях рассказывал про статьи, в написании которых участвовала его команда; некоторые из них мы уже упоминали в рамках курса.
Был блок статей про оценку качества:
1. Quality Metrics in Recommender Systems: Do We Calculate Metrics Consistently?
2. An Analysis of Sequential Patterns in Datasets for Evaluation of Sequential Recommendations
3. Time to Split: Exploring Data Splitting Strategies for Offline Evaluation of Sequential Recommenders
И про алгоритмы:
1. Turning Dross Into Gold Loss: is BERT4Rec really better than SASRec?
2. Autoregressive Generation Strategies for Top-K Sequential Recommendations
3. Let It Go? Not Quite: Addressing Item Cold Start in Sequential Recommendations with Content-Based Initialization
У Лёши есть тг-канал — @recsys_themes. Подписывайтесь!
Wake up, honey, a new Google DeepMind RecSys paper just dropped.
Вышла статья ORBIT: Preserving Foundational Language Capabilities in GenRetrieval via Origin-Regulated Merging от авторов TIGER и PLUM.
Если натюнить LLM на рекомендательную задачу, она теряет способность "разговаривать", если не тюнить — качество рекомендаций плохое. Как получить модель, которая одновременно и разговаривает, и хорошо рекомендует?
Про PLUM. В PLUM они файнтюнили Gemini на задачу рекомендаций в два этапа:
1) Сначала учили модель понимать каталог через две задачи — предсказание следующего айтема и восстановление метаданных айтема по semantic ID
2) Затем дообучали на generative retrieval
В статье были черри-пикнутые примеры на тему того, что после первой стадии модель все еще понимает естественный язык. Но про вторую стадию таких примеров не было, что наводило на мысль, что после generative retrieval fine-tuning модель так уже не умеет, то есть разговорные способности теряются. Собственно, в новой статье они это явно рассказали.
Что делают в новой статье. Используют model merging — простое усреднение параметров нескольких чекпойнтов модели. Берут исходный "разговорный" чекпойнт LLM (здесь это 1B версия Gemma3) и усредняют его с дообученной на рекомендации версией. Если усреднять уже в самом конце дообучения, то работает плохо, а вот если по мере дообучения раз в какое-то количество шагов — работает хорошо.
Origin-Regulated Merging. Метод Soup-to-go, который раз в K шагов делает слияние моделей, уже довольно неплохо работает. Но авторы смогли относительно него еще улучшиться — заметили, что чем "дальше" их модель от исходного разговорного чекпойнта, тем больше падают способности, связанные с текстом. Они ввели метрику близости между чекпойнтами модели (рассматривают два варианта — евклидово расстояние и доля несовпадающих по знаку параметров) и задали пороговое значение метрики, после которого должно срабатывать слияние текущего чекпойнта с исходной LLM. Сначала слияние происходит часто (e.g., каждые 500 шагов), затем реже (каждые 3к шагов).
Мое мнение.
* Как всегда, пользуются надежным рецептом успеха — адаптируют к рексистемам общие deep learning техники. Кажется, в DL такой трюк используют с 2022-го года — начиная со статьи Model Soups
* Для замера рекомендательного качества используют очень нереалистичный сетап из TIGER — Amazon reviews с leave-one-out сплитом, еще и всего 20 событий в истории пользователя
* И важный момент — усредненная модель всё еще существенно хуже на рекомендательных задачах, чем просто зафайнтюненная модель; и хуже на разговорных, чем исходный чекпойнт LLM
Сегодня у нас в дипрексис курсе было большое занятие про генеративные рекомендации. Лекция получилась насыщенная, тем много, если вам интересно, что сейчас происходит в области — стоит посмотреть!
О чем рассказывал:
1. Что такое генеративные модели — сейчас словом "генеративный" называют все что попало; и рекомендаций это тоже коснулось. Если хотите уметь подловить человека, когда он использует термин неправильно — эта секция для вас))
2. Генеративное ранжирование — в 2024 году вышла нашумевшая статья "Actions speak louder than words...", которая много кого вдохновила (включая меня) на то, чтобы перейти на авторегрессивное обучение рекомендательных моделей и сделать попытку их замасштабировать (spoiler: так появился ARGUS). Узнать, действительно ли в этой статье были "генеративные рекомендации" или это фейк можно по ссылке...
3. Generative retrieval & semantic IDs — в 2023 году вышла статья "Recommender systems with generative retrieval", которая представила концепт "semantic IDs" (дискретные представления объектов на основе контента для рекомендаций) и объединила его с концептом генеративного ретривала из DSI. Сначала статью не заметили, но на сцену VideoRecSys воркшопа RecSys'24 вышел небезызвестный Эд Чи и понеслось: сейчас все вокруг внедряют generative retrieval вместо двухбашенных моделей, а semantic IDs стали ключевым строительным кирпичиком и для генеративных кандгенов, и для одностадийных рексистем, и для разговорных рексистем. Чтобы уметь поддержать светскую беседу про семантические айдишники, надо всего лишь нажать сюда
4. Одностадийные рексистемы — в 2025 году вышел очередной next big thing в рекомендациях — OneRec. В статье инженеры из Kuaishou описали успешный рецепт внедрения одностадийной рексистемы: generative retrieval + encoder-decoder + RL. Но есть один нюанс — узнать его можно по ссылке...
5. Разговорные рексистемы — в наше время рекомендательные системы очень хорошо удерживают внимание пользователей. Когда заработает долгосрочный RL из прошлой лекции, все станет еще хуже)) Единственное решение — дать пользователям больше контроля над рекомендациями. Но всякие разные настройки/ползунки/фильтры не работают, люди ими банально не пользуются. Выход есть — и это разговорные рекомендации! Чтобы узнать, чем занимаются инженеры из YouTube и Spotify прямо сейчас в 2026 году, нужно всего лишь... (тык)
На семинаре был разбор той самой статьи "Recommender systems with generative retrieval" из пункта 3.
В курсе осталось одно занятие — гостевая лекция. Фух! Можно приступать к следующей фазе захвата рекомендательного мира 👀
В первые две минуты аниме Lazarus (последняя на текущий момент работа Шиничиро Ватанабэ, автора моего любимого Ковбоя Бибопа) есть сцена, в которой герой в автомобиле пользуется разговорными рекомендациями — просит включить музыку с нужным вайбом.
А у нас вышло новое, одиннадцатое занятие Deep Recsys курса. Оно, конечно, не про разговорные рекомендации, но тоже тема интересная!
На лекции:
1. Сделали переход от next item prediction к RL
2. Обсудили алгоритм REINFORCE: рассмотрели all-actions и reward-to-go версии, вывели оптимальный baseline, сделали off-policy correction
На семинаре разобрали статью Top-K Off-Policy Correction for a REINFORCE Recommender System про применение REINFORCE в Youtube.
YouTube | Github
P.S: курс постепенно подходит к концу. Осталось три занятия — одна гостевая лекция и два занятия про генеративные модели.
Deep RecSys Course X.
Начинаем серию из двух занятий про обучение с подкреплением!
На лекции:
1. Закончили тему графовых моделей - обсудили unsupervised graph learning, модели от Twitter и TikTok.
2. Обсудили задачу RL бандитов - что такое feedback loop и зачем нужен exploration, формализацию бандитной задачи, простые алгоритмы ее решения.
На семинаре обсуждали использование бандитных алгоритмов в Ютубе:
1. Разобрали статью про кандген — Online Matching: A Real-time Bandit System for Large-scale Recommendations
2. Немного затронули ранжирование — Long-Term Value of Exploration: Measurements, Findings and Algorithms
YouTube | Github
Deep RecSys Course IX.
Возвращаемся после перерыва с новым занятием — в этот раз с гостевой лекцией от Риты Мишустиной, руководителя группы нейросетевого ранжирования рекламы в Яндексе. Запись лекции прикладываю, а вот Q&A с Ритой после лекции, который продлился больше часа, был не под запись :)
Рита рассказывала про весь стек ранжирования рекламы в Яндексе — от базогенерации до аукциона. Самый детальный рассказ был про то, чем непосредственно занимается команда Риты — нейросетевые модели на поздних стадиях ранжирования, в которых есть раннее связывание информации про пользователя, контекст (площадку) и баннер.
Рассказ получился хороший, думаю по нему можно онбордить новых сотрудников в МЛ рекламы Яндекса :)
YouTube | Github
Deep RecSys Course VIII.
Залил на ютуб запись восьмого занятия курса. Кратенько про содержимое:
1. На лекции поговорили про трансформеры в Яндексе и затем про графовые нейросети — моделирование user-item взаимодействий в виде двудольного графа, эволюцию Пинтереста от GraphSAGE к обучаемым эмбеддингам
2. На семинаре Сергей Макеев и Александр Андреев @life_struggle_mosaic выступили с подробным разбором нашего решения RecSys Challenge 2025
YouTube | Github
+4
Deep RecSys Course VII.
Преодолели экватор курса!
Я уже, конечно, знатно подустал, столько лекций делать. Подготовка каждой лекции занимает у меня до четырех фулл-тайм дней даже при условии, что я далеко не все лекции делаю с нуля. Набросать структуру лекции, расписать текстовый скрипт о чем буду говорить (это, по сути, подготовка главы для книги), изучить материал и доуточнить содержимое лекции (пройтись по старым и новым статьям), сделать скелет презентации, добавить иллюстрации и ссылки.
К счастью сейчас будет небольшой перерыв на пару недель, после следующей лекции. Планирую посетить Японию :)
Вышло седьмое занятие про трансформеры и анализ истории пользователя. Успели покрыть:
1. Ранжирование (DIN, BST, TransAct, OneTrans, MixFormer)
2. Кандген/representation learning (SASRec, BERT4Rec, PinnerFormer)
3. И еще был небольшой recap механизма внимания и трансформеров в начале лекции
В лекции должна была быть и четвертая часть, в которой я рассказываю про свои похождения в Яндексе — различные трансформерные модели и архитектуры, которыми я занимался с командой. Но её не успели, осталось на следующий раз.
На семинаре Владимир Байкалов разбирал статьи про моделирование пользователей в Пинтересте — PinnerFormer и TransAct (да-да, там есть и более свежие статьи, но они скорее относятся к более поздним лекциям курса).
YouTube | Github.
Deep RecSys Course VI.
Канал временно превратился в инструмент анонса выхода новых занятий курса на ютубе, но я надеюсь вас это не смущает :)
Вышло шестое занятие, на котором мы продолжили тему нейросетевого ранжирования.
На лекции поговорили про:
1. Моделирование взаимодействия признаков — от линейных моделей и факторизационных машин до DCN-v2 и новомодных трансформерных моделей
2. Что мы используем в качестве глубоких слоев (ResNet / DenseNet)
3. Про multi-task modeling — одновременное обучение на разные типы сигнала и специальные архитектуры типа MMoE (mutli-gate MoE). А ещё немного затронули entire space multi-task modeling
4. И чуть-чуть поговорили про position bias в ранжировании и как с ним бороться, а также про knowledge distillation.
В следующем году количество лекций про ранжирование скорее всего увеличится до трех, много идей во что можно углубиться.
На семинаре Артём Матвеев разобрал статью про DCN-v2.
YouTube | Github.
Deep RecSys Course V.
Новое занятие курса уже на ютубе (а слайды — на github). Начали тему нейросетевого ранжирования:
1. На лекции обсудили, когда и почему стоит использовать нейросети для ранжирования (вместо градиентного бустинга). Затем поговорили про формирование входного вектора для нейросети — как работать с категориальными и вещественными признаками, а также с выходами других моделей.
2. На семинаре Артём Матвеев разобрал статью Unified Embedding: Battle-Tested Feature Representations for Web-Scale ML Systems и сказал пару слов про On Embeddings for Numerical Features in Tabular Deep Learning.
P.S: ещё выступал вчера на коллоквиуме ФКН по теме своей последней статьи, когда появится запись — напишу.
Deep RecSys Course IV.
На четвертой неделе курса мы продолжили обсуждение двухбашенных моделей и нейросетевой генерации кандидатов.
Если на прошлом занятии речь шла про базовую архитектуру и обучение двухбашенный моделей, то в этот раз детально разбрали архитектуру башен:
1. Обучаемые эмбеддинги, их плюсы и минусы
2. Контентное кодирование и inductive bias
3. Unsupervised representation learning как альтернатива для выучивания векторных представлений
4. Методы кодирования пользователей
Также немного поговорили про методы нейросетевого кандгена, которые выходят за рамки двухбашенных моделей — multi-interest модели, mixture of logits, generative retrieval.
Получилось за две лекции рассказать всю базу про нейросетевой кандген, за исключением деталей про трансформеры и генеративный ретривал. Но про них будут отдельные лекции. Для сравнения, в прошлом году в ШАДе была всего одна сжатая лекция про нейросетевой кандген (слайды). Я уставший, но довольный :)
2. На семинаре Артём Матвеев рассказывал про практические аспекты обучения нейросетевых моделей для рекомендаций — какими инструментами для обучения мы пользуемся, на какие принципы опираемся и какой код пишем для обучения моделей.
Github | YouTube
P.S: суммарное время просмотра курса на ютубе — уже 400 часов. Это можно было бы один раз почти весь One Piece посмотреть :)
Variable-Length Semantic IDs for Recommender Systems
Задумывались ли вы когда-нибудь почему все семантические айдишники одинаковой длины? Нет? А я задумывался! И даже написал статью на эту тему :)
Недавно я наткнулся на область Emergent Communication (EC). Она никак напрямую не связана с рекомендательными системами — в ней исследуют как в рамках решения общих задач агенты вырабатывают общий язык для коммуникаций. Самая популярная формулировка задачи — Lewis Game: один агент (sender) видит объект, описывает его (в случае языковой игры — символьно), другой агент (receiver) читает описание и пытается угадать, что это был за объект.
Внезапно, это было очень похоже на моё собственное видение обучения семантических айдишников — я смотрю на этот процесс как на языковую игру. По Виттгенштейну, язык — это что-то сильно зависящее от контекста; он формируется под конкретные ситуации и цели. И вот как раз языковая игра — это такой концепт, в котором смысл слов определяется исключительно самой игрой. И, на мой взгляд, cемантические айдишники — это ни что иное как попытка создать язык для описания айтемов. Процесс, через который мы это делаем — это ровно та же языковая Lewis Game, в которой энкодер описывает айтемы, а декодер восстанавливает их по описанию.
И вот в области EC уже некоторое время (как минимум с 2017-го года) занимались похожей задачей, но в контексте всяких других объектов; например, картинок. Интересно, что методы и сам взгляд на задачу сильно отличались от recsys community — в EC на задачу смотрели как на MARL (multi-agent reinforcement learning), и для обучения моделей использовали REINFORCE. Были ранние попытки использовать гумбель-софтмакс релаксацию, и даже в какой-то момент (не так давно) заметили прямую аналогию с dVAE (discrete VAE) и решили попробовать максимизировать ELBO, но опять-таки использовали для этого REINFORCE =)
Один из плюсов такого взгляда на задачу (через язык) был в том, что ученые в EC также задавались и вопросом эффективности возникающих языков. И вопросом их сходства с естественным языком; одна из конечных целей — научить агентов разговаривать, прямо как у нас в рекомендациях. И вот в естественном языке есть такая штука, как ZLA (Zipf's Law of Abbreviation) — для часто возникающих сущностей (объектов, ситуаций, etc) мы используем более короткие описания. Оказалось, что чтобы получить такой же эффект для emergent language, нужно всего лишь добавить штраф на длину передаваемого сообщения, то есть заставить агентов её минимизировать.
А почему то же самое не должно быть верно для рекомендаций? Если мы описываем айтемы эффективно, то наверно для популярных айтемов, с которыми мы часто сталкиваемся, можно сделать короткие описания. А для тяжелого хвоста и холодных айтемов — наоборот длинные. Это нам, во-первых, поможет сделать гораздо эффективней все модели, в которых используются семантические айдишники (за тот же бюджет в токенах можно уместить гораздо больше информации, а ещё сам generative retrieval ускорить). А во-вторых — для создания разговорных рексистем мы хотим совместить наш язык описания айтемов вместе с естественным языком, которым оперирует LLM (см. PLUM). И если естественный язык для всех сущностей использует описания переменной длины, то почему наш "язык айтемов" работает не также? Чтобы разговорные рексистемы заработали, нам нужно постараться максимально устранить этот vocabulary gap!
В общем, tldr — для рекомендаций это все тоже прекрасно работает, и как раз в статье я это и проверил. А ещё — предложил для обучения дискретных представлений переменной длины новый метод, доформулировав его в виде G-S dVAE (что, на самом деле, в EC до конца не довели). И еще показал, что такие "variable-length" семантические айдишники хорошо работают на downstream задачах типа sequential recommendation.
Если дочитали до конца и не уснули — спасибо! И в качестве награды вам две ссылочки, на саму статью и на код:
arXiv | Github.
Deep RecSys Course, третье занятие.
1. Двухбашенные нейросети. Это была одна из самых важных лекций курса — обсудили архитектуру, фолдинг, sampled softmax loss, contrastive learning, влияние температуры, косинуса как функции близости, различные источники негативов. Даже вывели LogQ коррекцию.
2. Рексистемы глазами исследователя. На 2-м занятии мы разбирали как видит рексистемы инженер, а здесь — как их видит исследователь. И какие ошибки при этом совершает :) При подготовке я во многом основывался на докладе про оффлайн-оценку качества с RecSys Summer School 2025 (см. пост); добавил парочку новых примеров и щепотку своего личного мнения. Обсуждали как формулировать цели, зачем нужны research questions, как выбирать датасеты, алгоритмы и метрики для экспериментов.
Как и всегда, записи на YouTube, а материалы — на Github.
P.S: суммарное время просмотра курса уже 195 часов!
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
