RecSys Challenge 2025.
Мы в этом году впервые решили поучаствовать в RecSys Challenge. Соревнование уже подходит к концу, но, надеюсь, успеем что-то сделать :)
Данных не очень много — <10 млн взаимодействий с товарами (покупки, добавления и удаления из корзины), <10 млн поисковых запросов и 150 млн визитов страниц товаров. Домен, судя по всему, grocery-like.
Нужно обучить такой универсальный вектор пользователя (то есть энкодер), чтобы из него можно было легко предсказать купит ли пользователь что-то в течение 14 дней, если да — то какие товары / категории товаров. И еще какие-то три скрытые задачи, описание которых не дано.
Так вот — организаторы допустили таргет лик, и решили добавить еще одну стадию в соревнование, продлив его на 10 дней. Дадут новый датасет. Вообще, сделать контеcт по рекомендательным системам без лика не так-то просто, но от ACM RecSys не ожидал :)
Ссылочка на соревнование
Мы в этом году впервые решили поучаствовать в RecSys Challenge. Соревнование уже подходит к концу, но, надеюсь, успеем что-то сделать :)
Данных не очень много — <10 млн взаимодействий с товарами (покупки, добавления и удаления из корзины), <10 млн поисковых запросов и 150 млн визитов страниц товаров. Домен, судя по всему, grocery-like.
Нужно обучить такой универсальный вектор пользователя (то есть энкодер), чтобы из него можно было легко предсказать купит ли пользователь что-то в течение 14 дней, если да — то какие товары / категории товаров. И еще какие-то три скрытые задачи, описание которых не дано.
Так вот — организаторы допустили таргет лик, и решили добавить еще одну стадию в соревнование, продлив его на 10 дней. Дадут новый датасет. Вообще, сделать контеcт по рекомендательным системам без лика не так-то просто, но от ACM RecSys не ожидал :)
Ссылочка на соревнование
🔥20😁8🤔2
Мультивселенная схлопнулась.
В прошлом марте я написал пост про статьи Google Deepmind по рекомендашкам за последний год. В те времена я даже иногда переводил тг посты на англ и выкладывал на линкедине (тык). И что я сегодня вижу :)
P.S: кто такой Ed Chi можно почитать в другом посте
В прошлом марте я написал пост про статьи Google Deepmind по рекомендашкам за последний год. В те времена я даже иногда переводил тг посты на англ и выкладывал на линкедине (тык). И что я сегодня вижу :)
P.S: кто такой Ed Chi можно почитать в другом посте
🔥45🤔6👏3
Хабр
ARGUS: как масштабировать рекомендательные трансформеры
Привет! Меня зовут Кирилл Хрыльченко. Я руковожу командой, которая занимается R&D для рекомендательных технологий в Яндексе. Одна из наших основных задач — развивать...
Хабростатья про масштабирование рексистем и Аргуса.
Написали большую статью по мотивам недавнего выступления на Датафесте. Я постарался добавить побольше новых подробностей, интересной внутренней кухни и всего такого :)
Если вы инженер и хотите сделать в своей рексистеме что-то похожее — это лучший источник информации про Аргуса. Если пользователь (например, Яндекс Музыки / Маркета / Лавки / Алисы), то это возможность получше понять, что стоит за сформированными для вас рекомендациями.
Статья — https://habr.com/ru/companies/yandex/articles/919058/.
Написали большую статью по мотивам недавнего выступления на Датафесте. Я постарался добавить побольше новых подробностей, интересной внутренней кухни и всего такого :)
Если вы инженер и хотите сделать в своей рексистеме что-то похожее — это лучший источник информации про Аргуса. Если пользователь (например, Яндекс Музыки / Маркета / Лавки / Алисы), то это возможность получше понять, что стоит за сформированными для вас рекомендациями.
Статья — https://habr.com/ru/companies/yandex/articles/919058/.
❤44🔥24👍7👏2
Practical ML Conf 2025.
Я, как и в прошлом году, буду на Practical ML Conf в программном комитете помогать готовить для вас доклады по RecSys :)
Это самая большая конференция по прикладному машинному обучению от Яндекса. В этом году она пройдёт 27 сентября. На конференции будет 6 треков: CV, NLP, Speech, RecSys, MLOps, Data Science. Ещё не поздно подать заявку на выступление (дедлайн через пару дней, 23 июня) — ссылочка.
Я, как и в прошлом году, буду на Practical ML Conf в программном комитете помогать готовить для вас доклады по RecSys :)
Это самая большая конференция по прикладному машинному обучению от Яндекса. В этом году она пройдёт 27 сентября. На конференции будет 6 треков: CV, NLP, Speech, RecSys, MLOps, Data Science. Ещё не поздно подать заявку на выступление (дедлайн через пару дней, 23 июня) — ссылочка.
🔥27👍8
IR семинар.
Уже почти три года я организую в Яндексе семинар по рексистемам (там также разбираются статьи про поиск и рекламу, поэтому он называется "IR семинар"), чуть-чуть упоминал историю его возникновения в посте с итогами года на канале.
Составил облако слов из названий статей, которые мы разобрали за это время (всего был 131 доклад).
Уже почти три года я организую в Яндексе семинар по рексистемам (там также разбираются статьи про поиск и рекламу, поэтому он называется "IR семинар"), чуть-чуть упоминал историю его возникновения в посте с итогами года на канале.
Составил облако слов из названий статей, которые мы разобрали за это время (всего был 131 доклад).
❤28👍3👏2
4 место RecSys Challenge 2025.
Только что закончилось соревнование RecSys Challenge 2025. Если верить лидерборду, наша команда заняла 4-е место. А на втором — ребята из RecSys команды AI лабы Сбербанка (@AleXXL1986), с чем их и поздравляем!
В соревновании нужно было сделать универсальный эмбеддинг пользователя, поверх которого организаторы обучали свою MLP'шку на шесть разных задач (больше деталей в другом посте). Мы сделали конкат нескольких векторов:
* обучили Argus-подобный трансформер над историей пользователя
* обучили графовую нейросеть TwHIN
* вручную скрафтили набор пользовательских фичей
* сделали нейросеть над фичами (PLE от Yandex Research + DCN-v2).
Данных в соревновании было не очень много, поэтому наши нейросетевые подходы давали профит поскольку-постольку))
Отдельно хочется упомянуть нашу любимую рулетку под названием "задача hidden2" :)
Держите мой персональный топ названий команд:
1. cosine-clowns
2. Teletubbies
3. meowTeam
4. recommanders
5. recsysadmin
6. Mission Impossible
7. happysquirrels
8. embednbreakfast
9. Pinocchio
10. NoNameLarrys
Только что закончилось соревнование RecSys Challenge 2025. Если верить лидерборду, наша команда заняла 4-е место. А на втором — ребята из RecSys команды AI лабы Сбербанка (@AleXXL1986), с чем их и поздравляем!
В соревновании нужно было сделать универсальный эмбеддинг пользователя, поверх которого организаторы обучали свою MLP'шку на шесть разных задач (больше деталей в другом посте). Мы сделали конкат нескольких векторов:
* обучили Argus-подобный трансформер над историей пользователя
* обучили графовую нейросеть TwHIN
* вручную скрафтили набор пользовательских фичей
* сделали нейросеть над фичами (PLE от Yandex Research + DCN-v2).
Данных в соревновании было не очень много, поэтому наши нейросетевые подходы давали профит поскольку-постольку))
Отдельно хочется упомянуть нашу любимую рулетку под названием "задача hidden2" :)
Держите мой персональный топ названий команд:
1. cosine-clowns
2. Teletubbies
3. meowTeam
4. recommanders
5. recsysadmin
6. Mission Impossible
7. happysquirrels
8. embednbreakfast
9. Pinocchio
10. NoNameLarrys
❤45🔥23👏9
Andrew Zhai (один из авторов PinnerFormer, TransAct, MultiBiSage и визуального бэкбона пинов) проработал в Пинтересте 9 лет, дошел до Distinguished Engineer, а затем ушел делать свой стартап. Больше двух лет стартап был в стелсе — и вот, час назад, появился этот пост =)
👀31👍11🥴4🔥2❤1
Подтверждаю, мы у себя тоже попробовали. В некоторых сценариях работает лучше, чем наши обычные архитектуры. "На масштабе 100М объектов" — это, наверно, про нас :)
❤1
Forwarded from айти канал
📦 Python пакет для TabM
Небольшая новость для тех, кто следит за DL для табличных данных. Мы тут выпустили Python пакет для TabM — нашей tabular DL архитектуры, о которой я рассказывал раньше.
С момента анонса TabM прошел проверку практикой, и если в одном предложении, то TabM значительно усилил нишу практичных бейзлайнов в табличном DL. То есть взять TabM и получить хорошие результаты люди смогли в самых разных контекстах: и на Kaggle, и на масштабе 100M объектов, и в академических исследованиях.
Пакет делает чуть более доступным как сам TabM, так и эффективное ансамблирование, и предлагает такое:
- PyTorch реализация TabM
- PyTorch слои и функции для построения своих эффективных ансамблей.
- Jupyter/Colab пример с обучением TabM.
💻
Ссылки:
- Пакет
- Colab пример
- Статья
Небольшая новость для тех, кто следит за DL для табличных данных. Мы тут выпустили Python пакет для TabM — нашей tabular DL архитектуры, о которой я рассказывал раньше.
С момента анонса TabM прошел проверку практикой, и если в одном предложении, то TabM значительно усилил нишу практичных бейзлайнов в табличном DL. То есть взять TabM и получить хорошие результаты люди смогли в самых разных контекстах: и на Kaggle, и на масштабе 100M объектов, и в академических исследованиях.
Пакет делает чуть более доступным как сам TabM, так и эффективное ансамблирование, и предлагает такое:
- PyTorch реализация TabM
- PyTorch слои и функции для построения своих эффективных ансамблей.
- Jupyter/Colab пример с обучением TabM.
💻
pip install tabmСсылки:
- Пакет
- Colab пример
- Статья
GitHub
GitHub - yandex-research/tabm: (ICLR 2025) TabM: Advancing Tabular Deep Learning With Parameter-Efficient Ensembling
(ICLR 2025) TabM: Advancing Tabular Deep Learning With Parameter-Efficient Ensembling - yandex-research/tabm
❤19👍10👏1
YouTube
Ilya Sutskever, U of T honorary degree recipient, June 6, 2025
Meet #UofT honorary degree recipient Ilya Sutskever, recognized for his excellence in the academy and outstanding service to the public good, for his trailblazing work and global impact as a scholar and visionary in artificial intelligence.
Read the U of…
Read the U of…
What’s the best next step?
Чуть больше месяца назад Илья Суцкевер получил honorary degree в своем родном университете Торонто, и видеозапись его выступления почти сразу выложили на YouTube (ссылка). Для меня это видео уже стало классикой — несколько раз переслушивал. Особенно запал в душу следующий отрывок:
А еще три недели назад вышло интервью Джеффри Хинтона, тоже хорошее (ссылка). Например, там он рассказывает, как пришёл работать в Google в 65 лет, чтобы заработать пару миллионов долларов :) И как ушел почти ровно через десять лет прямо перед конференцией в MIT, чтобы иметь возможность свободно рассказывать про риски AI.
Чуть больше месяца назад Илья Суцкевер получил honorary degree в своем родном университете Торонто, и видеозапись его выступления почти сразу выложили на YouTube (ссылка). Для меня это видео уже стало классикой — несколько раз переслушивал. Особенно запал в душу следующий отрывок:
I will offer one bit of useful state of mind, which, if one adopts it, makes everything much easier — which is: to accept reality as it is, and to try not to regret the past, and try to improve the situation.
And the reason I say it is because it’s so hard to adopt it. So easy to think: oh, like some bad past decision, or bad stroke of luck, something happened, something’s unfair — and it’s so easy to spend so much time thinking like this, while it’s just so much better and more productive to say: okay, things are the way they are. What’s the best next step?
And I find that whenever I do this myself, everything works out so much better. But it’s hard. It’s hard. It’s a constant struggle with one’s emotion.
And that’s why I mention it to you. Perhaps some of you will adopt it yourself.
This is a reminder to adopt this mindset as best as one can — and also a reminder for myself.
Constant struggle.
А еще три недели назад вышло интервью Джеффри Хинтона, тоже хорошее (ссылка). Например, там он рассказывает, как пришёл работать в Google в 65 лет, чтобы заработать пару миллионов долларов :) И как ушел почти ровно через десять лет прямо перед конференцией в MIT, чтобы иметь возможность свободно рассказывать про риски AI.
❤41🔥5👍2
Sampled Softmax for Large-Scale Retrieval.
В рекомендашках на стадии генерации кандидатов часто используются двухбашенные модели, в которых пользователи и айтемы отдельно кодируются в векторы нейросетевыми «башнями», и затем с помощью скалярного произведения определяется, насколько пользователю релевантен тот или иной айтем. Мы умеем быстро находить для пользователя примерный топ айтемов с максимальным скалярным произведением (например, с помощью HNSW), даже для очень больших каталогов с миллионами айтемов.
У таких моделей должна быть способность глобального сравнения — возможность для пользователя сравнивать между собой «скоры» всевозможных айтемов из каталога. Ранжирующие лоссы, на которые учатся верхние стадии, для обучения нам не подходят — при таком обучении у модели нет цели научиться ранжировать для пользователя все айтемы, ей важно научиться ранжировать только то, что обычно попадает к нему в выдачу. Если YouTube обычно показывает испанцам видео на испанском, а итальянцам на итальянском, то модели не нужно уметь сравнивать видео на испанском с видео на итальянском, и она может «наложить» (англ. folding) векторы айтемов из этих двух групп друг на друга в векторном пространстве.
А вот что нам подходит — это softmax-лосс. Можно сформулировать задачу рекомендации в виде экстремальной классификации, в которой каждому айтему соответствует свой класс (экстремальной — потому что много классов). Если пользователь лайкнул трек, то что это был за трек? Считаем для каждого трека некоторый скор (читай «логит»), затем превращаем скоры в вероятностное распределение, применив softmax. Учим модель максимизировать правдоподобие правильного класса — минимизируем кросс-энтропийную функцию потерь. При таком обучении в саму модель заложено, что мы должны уметь делать глобальное ранжирование между всеми айтемами в каталоге.
У такого лосса есть одна «большая» проблема — чем больше каталог, тем сложнее посчитать сам softmax. В знаменателе есть сумма экспонент от логитов по всему каталогу. Нам в целом не нужно считать сам лосс, важен только градиент, но в градиенте эта сумма тоже присутствует. Чтобы это побороть, можно использовать сэмплирование негативов — вместо суммы скоров по всему каталогу считать её по небольшому сэмплированному подмножеству. Популярные стратегии сэмплирования — равномерное (выбираем айтемы из каталога абсолютно случайно) и униграммное (пропорционально популярности айтема). Частный случай униграммного — in-batch сэмплирование: при обучении нейросетей мы набираем «батчи» из положительных пар (пользователь, айтем), и можно для каждого пользователя из батча использовать в качестве негативов чужие позитивы из этого же батча.
Почему же всё-таки недостаточно простого равномерного сэмплирования? Здесь поможет следующая интуиция: «полный» softmax-лосс неявно занимается майнингом негативов — у айтемов из каталога, которым модель даёт высокий скор, большой вклад в градиент. Это отличительное свойство softmax-а — например, у BPR-лосса, если модель сильно ошибается в каком-то айтеме, его вклад в градиент всё равно сильно ограничен. Поэтому, если мы хотим аппроксимировать softmax-лосс, нам важно сэмплировать как можно больше «сложных, информативных» негативов, в которых модель ошибается и у которых был бы большой вклад в градиент. А равномерное сэмплирование, особенно при больших каталогах, будет давать простые негативы. Добиться хорошего качества с равномерными негативами всё равно можно, но понадобится гораздо большее количество негативов, чем при использовании альтернативных, более «сложных» источников негативов.
А вот при униграммном сэмплировании мы получаем популярные айтемы, которые чуть ли не по определению имеют высокий средний скор у пользователей и поэтому представляют из себя более «сложные» негативы. Но и здесь не без проблем :) Что же идёт не так — я расскажу в следующем посте.
P.S.: это я вас так готовлю к посту про статью, которую у нас приняли на RecSys :) А ещё это небольшое переосмысление прошлого поста на ту же тему. Что-то похожее я рассказываю в рамках лекции про нейросетевой кандген в ШАД.
В рекомендашках на стадии генерации кандидатов часто используются двухбашенные модели, в которых пользователи и айтемы отдельно кодируются в векторы нейросетевыми «башнями», и затем с помощью скалярного произведения определяется, насколько пользователю релевантен тот или иной айтем. Мы умеем быстро находить для пользователя примерный топ айтемов с максимальным скалярным произведением (например, с помощью HNSW), даже для очень больших каталогов с миллионами айтемов.
У таких моделей должна быть способность глобального сравнения — возможность для пользователя сравнивать между собой «скоры» всевозможных айтемов из каталога. Ранжирующие лоссы, на которые учатся верхние стадии, для обучения нам не подходят — при таком обучении у модели нет цели научиться ранжировать для пользователя все айтемы, ей важно научиться ранжировать только то, что обычно попадает к нему в выдачу. Если YouTube обычно показывает испанцам видео на испанском, а итальянцам на итальянском, то модели не нужно уметь сравнивать видео на испанском с видео на итальянском, и она может «наложить» (англ. folding) векторы айтемов из этих двух групп друг на друга в векторном пространстве.
А вот что нам подходит — это softmax-лосс. Можно сформулировать задачу рекомендации в виде экстремальной классификации, в которой каждому айтему соответствует свой класс (экстремальной — потому что много классов). Если пользователь лайкнул трек, то что это был за трек? Считаем для каждого трека некоторый скор (читай «логит»), затем превращаем скоры в вероятностное распределение, применив softmax. Учим модель максимизировать правдоподобие правильного класса — минимизируем кросс-энтропийную функцию потерь. При таком обучении в саму модель заложено, что мы должны уметь делать глобальное ранжирование между всеми айтемами в каталоге.
У такого лосса есть одна «большая» проблема — чем больше каталог, тем сложнее посчитать сам softmax. В знаменателе есть сумма экспонент от логитов по всему каталогу. Нам в целом не нужно считать сам лосс, важен только градиент, но в градиенте эта сумма тоже присутствует. Чтобы это побороть, можно использовать сэмплирование негативов — вместо суммы скоров по всему каталогу считать её по небольшому сэмплированному подмножеству. Популярные стратегии сэмплирования — равномерное (выбираем айтемы из каталога абсолютно случайно) и униграммное (пропорционально популярности айтема). Частный случай униграммного — in-batch сэмплирование: при обучении нейросетей мы набираем «батчи» из положительных пар (пользователь, айтем), и можно для каждого пользователя из батча использовать в качестве негативов чужие позитивы из этого же батча.
Почему же всё-таки недостаточно простого равномерного сэмплирования? Здесь поможет следующая интуиция: «полный» softmax-лосс неявно занимается майнингом негативов — у айтемов из каталога, которым модель даёт высокий скор, большой вклад в градиент. Это отличительное свойство softmax-а — например, у BPR-лосса, если модель сильно ошибается в каком-то айтеме, его вклад в градиент всё равно сильно ограничен. Поэтому, если мы хотим аппроксимировать softmax-лосс, нам важно сэмплировать как можно больше «сложных, информативных» негативов, в которых модель ошибается и у которых был бы большой вклад в градиент. А равномерное сэмплирование, особенно при больших каталогах, будет давать простые негативы. Добиться хорошего качества с равномерными негативами всё равно можно, но понадобится гораздо большее количество негативов, чем при использовании альтернативных, более «сложных» источников негативов.
А вот при униграммном сэмплировании мы получаем популярные айтемы, которые чуть ли не по определению имеют высокий средний скор у пользователей и поэтому представляют из себя более «сложные» негативы. Но и здесь не без проблем :) Что же идёт не так — я расскажу в следующем посте.
P.S.: это я вас так готовлю к посту про статью, которую у нас приняли на RecSys :) А ещё это небольшое переосмысление прошлого поста на ту же тему. Что-то похожее я рассказываю в рамках лекции про нейросетевой кандген в ШАД.
👍23🔥8❤5🙏1
arXiv.org
Correcting the LogQ Correction: Revisiting Sampled Softmax for...
Two-tower neural networks are a popular architecture for the retrieval stage in recommender systems. These models are typically trained with a softmax loss over the item catalog. However, in...
Correcting the LogQ Correction: Revisiting Sampled Softmax for Large-Scale Retrieval.
А вот и наша статья, принятая на RecSys 2025, добралась до arxiv’а! Что мы сделали: улучшили logQ-коррекцию.
Почему это важно: logQ-коррекция активно используется в индустрии для обучения нейросетевых двухбашенных retrieval моделей. Я за свою жизнь в Яндексе неоднократно участвовал в больших и успешных внедрениях нейросетевых кандидатогенераторов, которые не случились бы без logQ-коррекции.
Улучшение связано с тем, как в формуле logQ-коррекции используется положительный айтем (далее именуемый “позитив”). Он появляется в двух местах — и в числителе, и в знаменателе софтмакса. К числителю вопросов нет. А вот в знаменателе есть странности. Например, в исходной статье от Google к позитиву в знаменателе применяется logQ-поправка; а в следующей статье от тех же авторов — уже нет. То есть для сэмплированных негативов в знаменателе logQ-поправка есть, для позитива — нет. А вывод такой формулы нигде не приводится / не обосновывается.
Более того, само использование позитива в знаменателе выглядит сомнительно. Оригинальный вывод формулы, который Bengio проделал в начале нулевых для доисторических языковых моделей, гласит: для оценки знаменателя софтмакса можно насэмплировать айтемы из произвольного распределения Q (обычного называемого proposal distribution) и добавить к ним ту самую “logQ-поправку”. Распределение Q — это как раз и есть то распределение, из которого мы сэмплируем негативы; которое чаще всего является in-batch распределением.
И когда мы рассматриваем конкретный обучающий пример, то есть конкретную пару (user, positive item), и для нее считаем сэмплированный softmax-лосс с logQ-коррекцией, мы не сэмплируем позитив из распределения Q — он приходит к нам детерминированно, с вероятностью 1. А в формуле он используется для Монте-Карло оценки в предположении, что мы сэмплируем его из Q.
Долгое время мы, как и все, просто плыли по течению и использовали logQ-коррекцию в том виде, в каком все ее применяют. Но потом я взялся сделать ту самую лекцию про нейросетевую генерацию кандидатов для ШАДа, в которой в том числе хотел осветить logQ-коррекцию — строго, с математическим выводом. Хотелось также обосновать формулы, использующие позитив в знаменателе, с logQ-поправкой и без.
Когда я в рамках математических выкладок отделил позитив от Монте-Карло сэмплирования, получилась совершенно другая формула! В которой позитива не было в знаменателе софтмакса вообще, но при этом появилось взвешивание сэмплов. Чем меньше модель ошибается на сэмпле (то есть предсказывает большую вероятность позитива), тем меньше вес этого сэмпла.
Мы поставили эксперименты — сначала на своих внутренних больших датасетах, а затем на небольших академических. И подтвердили, что наша формула хорошо работает, причем работает лучше стандартной! На полноценный long paper на RecSys времени не хватило (когда появилось время на написание статьи, до дедлайна было меньше двух недель), поэтому подались на short paper. Статья получила хорошие отзывы и была принята на RecSys, чему мы несказанно рады :)
Ещё хочется немного подсветить остальную ценность статьи. До этого я не видел в академической литературе замеры на публичных датасетах для logQ-коррекции. Мы эти замеры сделали и показали, что популярная в индустрии logQ-коррекция хорошо работает и в академическом сетапе. Кроме того, мы, возможно, первыми на этих датасетах показали пользу от mixed negative sampling (таких замеров я тоже раньше не встречал, но здесь уже меньше уверен).
И последнее — мы сделали две валидации. Было понимание, что без leave-one-out схемы, как бы я ее ни недолюбливал, есть большая вероятность не пройти ревью :) Но делать только leave-one-out валидацию тоже не хотелось. Поэтому сделали также temporal split валидацию. Получилось, что ранжирование моделей c точки зрения качества в этих двух сетапах заметно различается.
Остальные подробности — читайте в статье!
А вот и наша статья, принятая на RecSys 2025, добралась до arxiv’а! Что мы сделали: улучшили logQ-коррекцию.
Почему это важно: logQ-коррекция активно используется в индустрии для обучения нейросетевых двухбашенных retrieval моделей. Я за свою жизнь в Яндексе неоднократно участвовал в больших и успешных внедрениях нейросетевых кандидатогенераторов, которые не случились бы без logQ-коррекции.
Улучшение связано с тем, как в формуле logQ-коррекции используется положительный айтем (далее именуемый “позитив”). Он появляется в двух местах — и в числителе, и в знаменателе софтмакса. К числителю вопросов нет. А вот в знаменателе есть странности. Например, в исходной статье от Google к позитиву в знаменателе применяется logQ-поправка; а в следующей статье от тех же авторов — уже нет. То есть для сэмплированных негативов в знаменателе logQ-поправка есть, для позитива — нет. А вывод такой формулы нигде не приводится / не обосновывается.
Более того, само использование позитива в знаменателе выглядит сомнительно. Оригинальный вывод формулы, который Bengio проделал в начале нулевых для доисторических языковых моделей, гласит: для оценки знаменателя софтмакса можно насэмплировать айтемы из произвольного распределения Q (обычного называемого proposal distribution) и добавить к ним ту самую “logQ-поправку”. Распределение Q — это как раз и есть то распределение, из которого мы сэмплируем негативы; которое чаще всего является in-batch распределением.
И когда мы рассматриваем конкретный обучающий пример, то есть конкретную пару (user, positive item), и для нее считаем сэмплированный softmax-лосс с logQ-коррекцией, мы не сэмплируем позитив из распределения Q — он приходит к нам детерминированно, с вероятностью 1. А в формуле он используется для Монте-Карло оценки в предположении, что мы сэмплируем его из Q.
Долгое время мы, как и все, просто плыли по течению и использовали logQ-коррекцию в том виде, в каком все ее применяют. Но потом я взялся сделать ту самую лекцию про нейросетевую генерацию кандидатов для ШАДа, в которой в том числе хотел осветить logQ-коррекцию — строго, с математическим выводом. Хотелось также обосновать формулы, использующие позитив в знаменателе, с logQ-поправкой и без.
Когда я в рамках математических выкладок отделил позитив от Монте-Карло сэмплирования, получилась совершенно другая формула! В которой позитива не было в знаменателе софтмакса вообще, но при этом появилось взвешивание сэмплов. Чем меньше модель ошибается на сэмпле (то есть предсказывает большую вероятность позитива), тем меньше вес этого сэмпла.
Мы поставили эксперименты — сначала на своих внутренних больших датасетах, а затем на небольших академических. И подтвердили, что наша формула хорошо работает, причем работает лучше стандартной! На полноценный long paper на RecSys времени не хватило (когда появилось время на написание статьи, до дедлайна было меньше двух недель), поэтому подались на short paper. Статья получила хорошие отзывы и была принята на RecSys, чему мы несказанно рады :)
Ещё хочется немного подсветить остальную ценность статьи. До этого я не видел в академической литературе замеры на публичных датасетах для logQ-коррекции. Мы эти замеры сделали и показали, что популярная в индустрии logQ-коррекция хорошо работает и в академическом сетапе. Кроме того, мы, возможно, первыми на этих датасетах показали пользу от mixed negative sampling (таких замеров я тоже раньше не встречал, но здесь уже меньше уверен).
И последнее — мы сделали две валидации. Было понимание, что без leave-one-out схемы, как бы я ее ни недолюбливал, есть большая вероятность не пройти ревью :) Но делать только leave-one-out валидацию тоже не хотелось. Поэтому сделали также temporal split валидацию. Получилось, что ранжирование моделей c точки зрения качества в этих двух сетапах заметно различается.
Остальные подробности — читайте в статье!
🔥50❤13😁1
Genrec.pdf
1.6 MB
Turbo ML Conf 2025.
Сегодня выступал на Turbo ML Conf 2025 с докладом про генеративные рексистемы. По сути, это был сиквел к докладу про Аргуса. Рассказывал про свое видение и про наши эксперименты. Cделал отсылку к РЛ :)
Как всегда, было приятно поделиться с коммьюнити мыслями и идеями.
Секцию про кулуары в этот раз писать не буду, могу лишь подчеркнуть, что было много хороших вопросов и обсуждений: и про сегодняшний доклад, и про Аргуса, и про нейросетевое ранжирование. Даже про нашу рексис статью :)
Трансляции не было, запись организаторы выложат позже. Презентацию прикладываю. Я в этот раз чуть поленился с презентацией и советую по возможности посмотреть запись рассказа (когда она появится), там гораздо больше информации.
P.S: а еще пост на линкедине про нашу logQ статью постепенно набирает обороты. Хочется, чтобы как можно больше людей увидели саму статью, поддержитеотечественного производителя отечественную науку лайком! :)
Сегодня выступал на Turbo ML Conf 2025 с докладом про генеративные рексистемы. По сути, это был сиквел к докладу про Аргуса. Рассказывал про свое видение и про наши эксперименты. Cделал отсылку к РЛ :)
Как всегда, было приятно поделиться с коммьюнити мыслями и идеями.
Секцию про кулуары в этот раз писать не буду, могу лишь подчеркнуть, что было много хороших вопросов и обсуждений: и про сегодняшний доклад, и про Аргуса, и про нейросетевое ранжирование. Даже про нашу рексис статью :)
Трансляции не было, запись организаторы выложат позже. Презентацию прикладываю. Я в этот раз чуть поленился с презентацией и советую по возможности посмотреть запись рассказа (когда она появится), там гораздо больше информации.
P.S: а еще пост на линкедине про нашу logQ статью постепенно набирает обороты. Хочется, чтобы как можно больше людей увидели саму статью, поддержите
🔥43👍7❤4🙏1👌1
arXiv.org
Scaling Recommender Transformers to One Billion Parameters
While large transformer models have been successfully used in many real-world applications such as natural language processing, computer vision, and speech processing, scaling transformers for...
Scaling Recommender Transformers to One Billion Parameters.
Залили на arXiv pre-print статьи про Аргуса!
Как уже можно понять, статью на RecSys (full paper, research track) не приняли. На ребаттле удалось подтянуть оценки до borderline (weak reject, weak reject, accept), но этого не хватило.
Краткий tldr от ревьюверов: на industry track сгодилось бы, а для research track нужна воспроизводимость, понятные академические бейзлайны и оффлайн-метрики и т.д. Цитаты:
Подавать статью не на industry track RecSys’а было осознанным решением, так как там дают всего три странички, и этого было бы катастрофически недостаточно для рассказа про Аргуса. Но опыта не хватило, чтобы понять, что на research track статью, скорее всего, не примут (хотя, с учетом borderline, шансы были). В ретроспективе я бы скорее все-таки подал её на industry track, ужав до трех страниц, а на arXiv выложил текущую расширенную версию.
Планируем подавать ее на KDD'26 и, возможно, на MuRS'25 workshop на RecSys (вроде бы, подача статьи на workshop без proceedings не блокирует подачу на KDD'26).
Залили на arXiv pre-print статьи про Аргуса!
Как уже можно понять, статью на RecSys (full paper, research track) не приняли. На ребаттле удалось подтянуть оценки до borderline (weak reject, weak reject, accept), но этого не хватило.
Краткий tldr от ревьюверов: на industry track сгодилось бы, а для research track нужна воспроизводимость, понятные академические бейзлайны и оффлайн-метрики и т.д. Цитаты:
R1: This could be a strong industry paper, but for research track it lack comparison with established baselines using standard metrics
Metareviewer: I agree with R1 -- this work as-is fits better for the industry track (at Recsys or another venue)
Подавать статью не на industry track RecSys’а было осознанным решением, так как там дают всего три странички, и этого было бы катастрофически недостаточно для рассказа про Аргуса. Но опыта не хватило, чтобы понять, что на research track статью, скорее всего, не примут (хотя, с учетом borderline, шансы были). В ретроспективе я бы скорее все-таки подал её на industry track, ужав до трех страниц, а на arXiv выложил текущую расширенную версию.
Планируем подавать ее на KDD'26 и, возможно, на MuRS'25 workshop на RecSys (вроде бы, подача статьи на workshop без proceedings не блокирует подачу на KDD'26).
❤47👍8🔥7
Приятные слайды про причины, по которым люди пользуются рекомендательными системами.
Из туториала RecSys’24 Tutorial: Conducting User Experiments in Recommender Systems.
Из туториала RecSys’24 Tutorial: Conducting User Experiments in Recommender Systems.
❤7