#arxiv_weekly (15.01.24 — 19.01.24)
1. Один из недостатков ранжирования — при формировании выдачи не учитывается взаимное влияние айтемов; скоры считаются поточечно (pointwise). Чтобы это исправить, добавляется стадия переранжирования, основная проблема которой — вычислительная сложность. Кроме того, сама постановка задачи переранжирования довольна амбициозна — в идеале оно должно заменить большую часть бизнесовой логики постпроцессинга ранжирования, самостоятельно обеспечивая нужные сервису качества выдачи, типа разнообразия, свежести, релевантности. В LinkedIn сделали подход к снаряду и предложили свой жадный последовательный алгоритм с линейной сложностью (еще и с RL сравнились) в статье MultiSlot ReRanker: A Generic Model-based Re-Ranking Framework in Recommendation Systems.
2. Рекомендательные системы многостадийны: кандген, преранжирование, ранжирование, переранжирование, etc. Одна из проблем применения РЛ к рекомендашкам — чаще всего пытаются обучить одного агента, в предположении что он работает с полным корпусом айтемов и формирует выдачу для пользователя. В то время как в реальности агент если и будет применяться, то только в составе одной из стадий. Инженеры из Kuaishou пробуют обучить сразу несколько агентов (MARL — multi-agent RL), по одному на каждую стадию, в статье UNEX-RL: Reinforcing Long-Term Rewards in Multi-Stage Recommender Systems with UNidirectional EXecution.
3. В прошлых дайджестах мы уже обсуждали проблематику формирования таргетов из просмотров видеороликов. Распределение длительности просмотров очень сильно скошено в сторону коротких значений. Стандартный подход в индустрии — побить значения на бакеты (<30 секунд, 30<x<60 секунд, etc; чаще это делают по квантилям) и использовать ординальную регрессию. Инженеры из Kuaishou исследуют как лучше формировать бакеты: придумали довольно сложную систему, в которой есть классификаторы (для бакетов) и "рестораторы", восстанавливающие исходные длительности просмотров. Предлагается подбирать бакеты так, чтобы минимизировать ошибки классификации и "ресторации". Статья CREAD: A Classification-Restoration Framework with Error Adaptive Discretization for Watch Time Prediction in Video Recommender Systems.
4. В Ant Group (Alibaba, Alipay, etc) построили граф данных для рекламных баннеров (из метаданных баннеров и взаимодействий с пользователями и страницами) и обучили на нем вариационный авто-кодировщик. Репортят большие приросты по CTR (особенно для холодного старта) от использования полученных эмбеддингов баннеров в рекламных моделях. Статья GACE: Learning Graph-Based Cross-Page Ads Embedding For Click-Through Rate Prediction.
5. Uber выложили очень простенький pre-print Handling Large-scale Cardinality in building recommendation systems, в котором описывают сетку для, кажется, ранжирования в Uber Eats. Модель очень напоминает 2016-й год :(
6. В Spotify исследуют сценарий, в котором пользователи обмениваются контентом. "Получатель" более склонен провзаимодействовать с контентом, если (1) музыкальный вкус совпадает с "отправителем", (2) они близки и (3) артист, которым поделились, популярен среди круга общения "получателя". Подробности в Link Me Baby One More Time: Social Music Discovery on Spotify.
7. Вышло две статьи про аудио-эмбеддинги от SiriusXM-Pandora: (1) On the Effect of Data-Augmentation on Local Embedding Properties in the Contrastive Learning of Music Audio Representations и (2) Similar but Faster: Manipulation of Tempo in Music Audio Embeddings for Tempo Prediction and Search.
8. Не так давно появился новый сценарий рекомендашек под названием trigger-induced recommendations, в котором рекомендации генерятся в ответ на взаимодействие с айтемом, e.g. при клике на товар появляется плашка с рекомендациями. Утверждается, что это очень важный сценарий для еком платформ типа Алибабы и Амазона. Инженеры из Alibaba предлагают очень мудреную нейросетку в статье Deep Evolutional Instant Interest Network for CTR Prediction in Trigger-Induced Recommendation.
1. Один из недостатков ранжирования — при формировании выдачи не учитывается взаимное влияние айтемов; скоры считаются поточечно (pointwise). Чтобы это исправить, добавляется стадия переранжирования, основная проблема которой — вычислительная сложность. Кроме того, сама постановка задачи переранжирования довольна амбициозна — в идеале оно должно заменить большую часть бизнесовой логики постпроцессинга ранжирования, самостоятельно обеспечивая нужные сервису качества выдачи, типа разнообразия, свежести, релевантности. В LinkedIn сделали подход к снаряду и предложили свой жадный последовательный алгоритм с линейной сложностью (еще и с RL сравнились) в статье MultiSlot ReRanker: A Generic Model-based Re-Ranking Framework in Recommendation Systems.
2. Рекомендательные системы многостадийны: кандген, преранжирование, ранжирование, переранжирование, etc. Одна из проблем применения РЛ к рекомендашкам — чаще всего пытаются обучить одного агента, в предположении что он работает с полным корпусом айтемов и формирует выдачу для пользователя. В то время как в реальности агент если и будет применяться, то только в составе одной из стадий. Инженеры из Kuaishou пробуют обучить сразу несколько агентов (MARL — multi-agent RL), по одному на каждую стадию, в статье UNEX-RL: Reinforcing Long-Term Rewards in Multi-Stage Recommender Systems with UNidirectional EXecution.
3. В прошлых дайджестах мы уже обсуждали проблематику формирования таргетов из просмотров видеороликов. Распределение длительности просмотров очень сильно скошено в сторону коротких значений. Стандартный подход в индустрии — побить значения на бакеты (<30 секунд, 30<x<60 секунд, etc; чаще это делают по квантилям) и использовать ординальную регрессию. Инженеры из Kuaishou исследуют как лучше формировать бакеты: придумали довольно сложную систему, в которой есть классификаторы (для бакетов) и "рестораторы", восстанавливающие исходные длительности просмотров. Предлагается подбирать бакеты так, чтобы минимизировать ошибки классификации и "ресторации". Статья CREAD: A Classification-Restoration Framework with Error Adaptive Discretization for Watch Time Prediction in Video Recommender Systems.
4. В Ant Group (Alibaba, Alipay, etc) построили граф данных для рекламных баннеров (из метаданных баннеров и взаимодействий с пользователями и страницами) и обучили на нем вариационный авто-кодировщик. Репортят большие приросты по CTR (особенно для холодного старта) от использования полученных эмбеддингов баннеров в рекламных моделях. Статья GACE: Learning Graph-Based Cross-Page Ads Embedding For Click-Through Rate Prediction.
5. Uber выложили очень простенький pre-print Handling Large-scale Cardinality in building recommendation systems, в котором описывают сетку для, кажется, ранжирования в Uber Eats. Модель очень напоминает 2016-й год :(
6. В Spotify исследуют сценарий, в котором пользователи обмениваются контентом. "Получатель" более склонен провзаимодействовать с контентом, если (1) музыкальный вкус совпадает с "отправителем", (2) они близки и (3) артист, которым поделились, популярен среди круга общения "получателя". Подробности в Link Me Baby One More Time: Social Music Discovery on Spotify.
7. Вышло две статьи про аудио-эмбеддинги от SiriusXM-Pandora: (1) On the Effect of Data-Augmentation on Local Embedding Properties in the Contrastive Learning of Music Audio Representations и (2) Similar but Faster: Manipulation of Tempo in Music Audio Embeddings for Tempo Prediction and Search.
8. Не так давно появился новый сценарий рекомендашек под названием trigger-induced recommendations, в котором рекомендации генерятся в ответ на взаимодействие с айтемом, e.g. при клике на товар появляется плашка с рекомендациями. Утверждается, что это очень важный сценарий для еком платформ типа Алибабы и Амазона. Инженеры из Alibaba предлагают очень мудреную нейросетку в статье Deep Evolutional Instant Interest Network for CTR Prediction in Trigger-Induced Recommendation.
🔥23👍5
Необходимое условие для успеха нейросетевого ранжирования — это масштабирование по данным. У нейросетевых рекомендательных моделей качество сильно растет при увеличении обучающего датасета, у градиентного бустинга — нет.
Чаще всего в ранжирующий катбуст запихивают ~50кк сэмплов. В сервисах побольше — это неделя залогированных данных с андерсэмплингом, в сервисах поменьше — две недели / месяц. Для нейросетей с почти любой архитектурой это количество данных далеко от оптимального. Можно использовать вплоть до миллиардов сэмплов, получая приличные приросты метрик качества (как мы делаем с трансформерами над историей пользователя).
У нейросетевого ранжирования емкость модели (возможность выучивать какие-то зависимости) гораздо больше. Почему так получается — обсудим в других постах. Но чтобы эту емкость реализовать, нужны большие датасеты.
Есть такая область, как табличный DL. Там нет e2e анализа последовательностей, upstream моделей, и, самое главное, нет достаточно больших датасетов. Поэтому примерно все существующие статьи (e.g. (1) Are Neural Rankers still Outperformed by Gradient Boosted Decision Trees?, (2) When Do Neural Nets Outperform Boosted Trees on Tabular Data?) репортят доминацию GBDT.
Немного цитат из индустрии:
Applying Deep Learning To Airbnb Search
On Gradient Boosted Decision Trees and Neural Rankers: A Case-Study on Short-Video Recommendations at ShareChat
Monolith: Real Time Recommendation System With Collisionless Embedding Table
Приводимый в посте график — это относительный прирост оффлайн-метрики ранжирования относительно катбуста для нейросети в одном из более крупных сервисов Яндекса.
Чаще всего в ранжирующий катбуст запихивают ~50кк сэмплов. В сервисах побольше — это неделя залогированных данных с андерсэмплингом, в сервисах поменьше — две недели / месяц. Для нейросетей с почти любой архитектурой это количество данных далеко от оптимального. Можно использовать вплоть до миллиардов сэмплов, получая приличные приросты метрик качества (как мы делаем с трансформерами над историей пользователя).
У нейросетевого ранжирования емкость модели (возможность выучивать какие-то зависимости) гораздо больше. Почему так получается — обсудим в других постах. Но чтобы эту емкость реализовать, нужны большие датасеты.
Есть такая область, как табличный DL. Там нет e2e анализа последовательностей, upstream моделей, и, самое главное, нет достаточно больших датасетов. Поэтому примерно все существующие статьи (e.g. (1) Are Neural Rankers still Outperformed by Gradient Boosted Decision Trees?, (2) When Do Neural Nets Outperform Boosted Trees on Tabular Data?) репортят доминацию GBDT.
Немного цитат из индустрии:
Applying Deep Learning To Airbnb Search
We were able to deprecate all that complexity by simply scaling the training data 10x and moving to a DNN with 2 hidden layers.
On Gradient Boosted Decision Trees and Neural Rankers: A Case-Study on Short-Video Recommendations at ShareChat
As the dataset size increases, the marginal improvement in the neural ranker’s performance is higher than that of GBDTs.
Monolith: Real Time Recommendation System With Collisionless Embedding Table
Deep learning have been dominating recommendation models as the gigantic amount of user data is a natural fit for massively data-driven neural models.
Приводимый в посте график — это относительный прирост оффлайн-метрики ранжирования относительно катбуста для нейросети в одном из более крупных сервисов Яндекса.
🔥25👍1
Forwarded from Data Secrets
У кого лучшие рекомендательные системы в России? Ответ кажется очевидным.
Не будем тянуть. Сегодня наш гость, Кирилл Хрыльченко – лид команды R&D рекомендаций в Яндексе и автор канала @inforetriever, рассказал о том, как работают SOTA персонализации рекомендаций на примере Яндекса.
Не будем тянуть. Сегодня наш гость, Кирилл Хрыльченко – лид команды R&D рекомендаций в Яндексе и автор канала @inforetriever, рассказал о том, как работают SOTA персонализации рекомендаций на примере Яндекса.
🔥35👍8😁2
Иногда в контексте канала появляются идеи, которые выходят за рамки написания постов. Я, честно говоря, не ожидал, что канал когда-нибудь дойдет до текущих масштабов (преодолели сегодня тысячу участников), и мне казалось, что с ростом аудитории будет только сложнее выходить за рамки уже существующего формата. Но в реальности происходит другое - я наоборот смелею, и желание экспериментировать растет.
Решил заложить под определенное количество подписчиков определенный контент. Не с целью чтобы ускорить рост (не думаю, что это влияет), а чтобы были дедлайны по реализации. В моменте всегда находится что-то, из-за чего эти идеи откладываются. С этим поможет только коммитмент :)
1. Видеозапись с рассказом про ML в Пинтересте, когда наберется 1250 подписчиков. Про ранжирование, графовые сетки, трансформеры для персонализации, etc. Посты в телеграме по размеру ограничены, и я, на самом деле, большую часть постов подбиваю под эти ограничения. Приходится дробить повествование и создавать cliffhanger'ы, но зато меньше времени нужно на написание отдельных постов. Вот в формате часового видео можно довольно много рассказать и никаких ограничений нет. И текст вылизывать не нужно =) На работе я постоянно где-то что-то рассказываю, и не раз посещала мысль, что было бы круто что-то записать и для вас.
2. Пародия на аватарку канала с моей физиономией на 1500 подписчиков. Пункт шуточный, чтобы основательно подготовиться к следующему :)
3. Подкаст про рекомендательные системы на 1750 подписчиков. В составе из четырех яндексоидов, вместе с моим бывшим тимлидом Севой @yalinter, Сашей @knowledge_accumulator и Мишей @WazowskiRecommends. Обсудим тренды рексистем (трансформеры, РЛ, языковые модели, графы, etc), соберем ваши вопросы, и на самые интересные постараемся ответить.
4. Ридинг группа (почти виртуальный митап) на 2000 подписчиков (надеюсь, не все две тысячи придут). Обсудим выбранную голосованием статью, или даже несколько. Может, поговорим про то, как их вообще искать и читать. Я про это уже писал, но, кажется, еще осталось что обсудить. В этом поучаствует Сережа @pragmaticml, который, собственно, недавно пришел ко мне с предложением сделать что-нибудь про чтение статей.
Для меня все эти пункты звучат довольно сложно, но если хотя бы какой-нибудь реализуется, и реализуется успешно - буду доволен. Спасибо за то, что читаете канал, ставите реакции и пишете комментарии!
Решил заложить под определенное количество подписчиков определенный контент. Не с целью чтобы ускорить рост (не думаю, что это влияет), а чтобы были дедлайны по реализации. В моменте всегда находится что-то, из-за чего эти идеи откладываются. С этим поможет только коммитмент :)
1. Видеозапись с рассказом про ML в Пинтересте, когда наберется 1250 подписчиков. Про ранжирование, графовые сетки, трансформеры для персонализации, etc. Посты в телеграме по размеру ограничены, и я, на самом деле, большую часть постов подбиваю под эти ограничения. Приходится дробить повествование и создавать cliffhanger'ы, но зато меньше времени нужно на написание отдельных постов. Вот в формате часового видео можно довольно много рассказать и никаких ограничений нет. И текст вылизывать не нужно =) На работе я постоянно где-то что-то рассказываю, и не раз посещала мысль, что было бы круто что-то записать и для вас.
2. Пародия на аватарку канала с моей физиономией на 1500 подписчиков. Пункт шуточный, чтобы основательно подготовиться к следующему :)
3. Подкаст про рекомендательные системы на 1750 подписчиков. В составе из четырех яндексоидов, вместе с моим бывшим тимлидом Севой @yalinter, Сашей @knowledge_accumulator и Мишей @WazowskiRecommends. Обсудим тренды рексистем (трансформеры, РЛ, языковые модели, графы, etc), соберем ваши вопросы, и на самые интересные постараемся ответить.
4. Ридинг группа (почти виртуальный митап) на 2000 подписчиков (надеюсь, не все две тысячи придут). Обсудим выбранную голосованием статью, или даже несколько. Может, поговорим про то, как их вообще искать и читать. Я про это уже писал, но, кажется, еще осталось что обсудить. В этом поучаствует Сережа @pragmaticml, который, собственно, недавно пришел ко мне с предложением сделать что-нибудь про чтение статей.
Для меня все эти пункты звучат довольно сложно, но если хотя бы какой-нибудь реализуется, и реализуется успешно - буду доволен. Спасибо за то, что читаете канал, ставите реакции и пишете комментарии!
🔥74👍6❤1
NLP образца 2020-го года.
В далеком 2017-м я начинал познавать дивный нейросетевой мир с области обработки естественного языка. В те времена эмбеддинги слов формировались с помощью предобученных word2vec / glove / fasttext, а в качестве энкодера использовались RNN. Механизм внимания вне NMT почти не использовали (см., например, HAN). Были еще сверточные сети над текстом, как раз кодил такие для соревнования Toxic Comment Classification Challenge.
С этого соревнования, собственно, у меня и остались самые яркие воспоминания про то время. Топ-1 kaggle kernel там был от основателя fastai Jeremy Howard'а. Медальку за соревнование он так и не получил (у меня было серебро).
NLP тогда воспринималось по-другому. Наверно также, как я сейчас воспринимаю рекомендательные системы. Область бурно развивалась, только-только появились трансформеры, было очень интересно вчитываться в статьи. Сам факт, что такие задачи как sentiment analysis, NER, NMT удавалось решать нейросетями — был большим вдохновением.
Успехи в компьютерном зрении мне были не так интересны; на то время могу выделить разве что image captioning и style transfer. Я тогда еще иногда встречался с доуниверситетскими друзьями, и объяснял как работает word2vec и как в машинном обучении мы составляем признаковые пространства для объектов. Это казалось чем-то очень интересным =)
К чему я это все: в те годы у меня не было каких-либо "умных" систем для хранения статей. Как вчерашний студент, я хранил гигантские стопки бумажных заметок. Первая попытка это преодолеть произошла как раз перед выходом в Яндекс, когда я еще самоидентифицировался как NLP'шник и не занимался рексисом. Я сконструировал эдакий граф цитирования важных на мой взгляд NLP/DL статей с временной шкалой.
До сих пор иногда мне пишут коллеги с просьбой скинуть "ту самую NLP пдфку со статьями". Делюсь ею и с вами (см. первый комментарий) :)
В далеком 2017-м я начинал познавать дивный нейросетевой мир с области обработки естественного языка. В те времена эмбеддинги слов формировались с помощью предобученных word2vec / glove / fasttext, а в качестве энкодера использовались RNN. Механизм внимания вне NMT почти не использовали (см., например, HAN). Были еще сверточные сети над текстом, как раз кодил такие для соревнования Toxic Comment Classification Challenge.
С этого соревнования, собственно, у меня и остались самые яркие воспоминания про то время. Топ-1 kaggle kernel там был от основателя fastai Jeremy Howard'а. Медальку за соревнование он так и не получил (у меня было серебро).
NLP тогда воспринималось по-другому. Наверно также, как я сейчас воспринимаю рекомендательные системы. Область бурно развивалась, только-только появились трансформеры, было очень интересно вчитываться в статьи. Сам факт, что такие задачи как sentiment analysis, NER, NMT удавалось решать нейросетями — был большим вдохновением.
Успехи в компьютерном зрении мне были не так интересны; на то время могу выделить разве что image captioning и style transfer. Я тогда еще иногда встречался с доуниверситетскими друзьями, и объяснял как работает word2vec и как в машинном обучении мы составляем признаковые пространства для объектов. Это казалось чем-то очень интересным =)
К чему я это все: в те годы у меня не было каких-либо "умных" систем для хранения статей. Как вчерашний студент, я хранил гигантские стопки бумажных заметок. Первая попытка это преодолеть произошла как раз перед выходом в Яндекс, когда я еще самоидентифицировался как NLP'шник и не занимался рексисом. Я сконструировал эдакий граф цитирования важных на мой взгляд NLP/DL статей с временной шкалой.
До сих пор иногда мне пишут коллеги с просьбой скинуть "ту самую NLP пдфку со статьями". Делюсь ею и с вами (см. первый комментарий) :)
❤20🔥13👍3🤓3
У какой модели, формирующей векторы для товаров, максимальная емкость?
Anonymous Quiz
4%
Трансформер над названием товара
8%
Мешок слов над названием товара
24%
Обучаемый вектор
24%
Трансформер над названием товара и картинкой
40%
Графовая нейросеть, использующая фидбек пользователей про товары
🥴24👍5🤔3😁1
Обучаемые векторы для рекомендательных систем.
Есть конечное множество пользователей и айтемов. Хотим рекомендовать пользователям айтемы.
Пусть для каждого объекта задано векторное представление, при этом предпочтения пользователя
Почти в любой нейросети возникают векторы объектов. Иногда это целевая задача - получить эмбеддинги, обладающие определенными полезными свойствами (привет, representation learning). В рекомендашках это тоже актуально; и (1) для кандидатогенерации, которую часто делают на основе эмбеддингов (embedding-based retrieval), и (2) для ранжирования, серьезный вклад в которое вносят нейросетевые признаки.
В случае обучаемых эмбеддингов векторы объектов объявляются частью параметров модели; их значения подбираются в процессе оптимизации. Рассмотрим двухбашенную модель с обучаемыми векторами: она задается функционалом потерь (+ данными для обучения), процедурой оптимизации и, непосредственно, набором обучаемых векторов.
Утверждается, что у такой модели максимальная емкость. Что вообще такое емкость модели (англ. model capacity)? Это способность выражать взаимосвязи, аппроксимировать функции. В терминах двухбашенной модели об этом думать проще: представим, что у нас есть некоторая оптимальная структура семантического пространства (если нас волнует только семантическая близость объектов, то с точностью до поворотов, сдвигов и, возможно, масштабов), которую мы хотим получить.
В теории, двухбашенная модель с обучаемыми векторами может выучить любую структуру семантического пространства. Пусть у нас есть какая-то другая модель (e.g. мешок слов, трансформер, графовые нейросети), тогда можно инициализировать обучаемые эмбеддинги векторами из этой модели. В обратную сторону это не работает - имея набор векторов, не всегда можно так настроить "content-based" модель, чтобы она выдавала нужные векторы (привет, дистилляция).
Почему бы тогда не использовать всегда только обучаемые векторы? Несколько причин:
1. Недостаточно данных. Bias-variance tradeoff гласит, что более сложные модели сильнее переобучаются, hence для них нужно больше данных. Double descent в рекомендашках я пока не наблюдал, поэтому будем считать, что это правда :)
2. Тяжелые хвосты (long tail distributions). Если у вас большая часть объектов мало встречается в данных (т.е. хвост тяжелый), то про них сложновато делать выводы без дополнительной информации (e.g. контента), и тем более сложно выучить хорошие векторные представления.
3. Постоянно появляются новые объекты, поэтому нужна индуктивность - умение работать на объектах, не встречавшихся в обучении. У обучаемых векторов она отсутствует, они трансдуктивны.
4. Нестационарность распределений. Интересы пользователей меняются, содержимое айтемов обновляется, тренды (популярности объектов) эволюционируют. Обучаемые векторы это не учитывают.
Последние два пункта частично лечатся инкрементальным дообучением (получили новые данные - дообучились). Но:
* проблема курицы и яйца - чтобы дообучиться, надо накопить фидбек для новых объектов. Чтобы его накопить, нужно их рекомендовать. Если модель на них не дообучалась, то и рекомендовать их не будет.
* у инкрементального дообучения будет определенная задержка, побороть которую можно только невероятными инфраструктурными усилиями. Пока дообучение не произойдет, качество работы на новых и изменившихся объектах будет плохое.
Что же тогда делать? Вносить индуктивное смещение (англ. inductive bias): анализировать содержимое айтемов, делать нейросетевые энкодеры, добавлять регуляризацию, представлять пользователя через историю взаимодействий, etc. Об индуктивном смещении и как оно помогает бороться со всеми этими проблемами поговорим в другой раз :)
Есть конечное множество пользователей и айтемов. Хотим рекомендовать пользователям айтемы.
Пусть для каждого объекта задано векторное представление, при этом предпочтения пользователя
u определяются через скалярное произведение <u, i> для любого айтема i. Тогда говорят, что векторы пользователей и айтемов находятся в одном семантическом пространстве, а такую модель называют двухбашенной. Эти векторы еще часто называют эмбеддингами, потому что объекты буквально вкладываются (англ. to embed) в векторное пространство.Почти в любой нейросети возникают векторы объектов. Иногда это целевая задача - получить эмбеддинги, обладающие определенными полезными свойствами (привет, representation learning). В рекомендашках это тоже актуально; и (1) для кандидатогенерации, которую часто делают на основе эмбеддингов (embedding-based retrieval), и (2) для ранжирования, серьезный вклад в которое вносят нейросетевые признаки.
В случае обучаемых эмбеддингов векторы объектов объявляются частью параметров модели; их значения подбираются в процессе оптимизации. Рассмотрим двухбашенную модель с обучаемыми векторами: она задается функционалом потерь (+ данными для обучения), процедурой оптимизации и, непосредственно, набором обучаемых векторов.
Утверждается, что у такой модели максимальная емкость. Что вообще такое емкость модели (англ. model capacity)? Это способность выражать взаимосвязи, аппроксимировать функции. В терминах двухбашенной модели об этом думать проще: представим, что у нас есть некоторая оптимальная структура семантического пространства (если нас волнует только семантическая близость объектов, то с точностью до поворотов, сдвигов и, возможно, масштабов), которую мы хотим получить.
В теории, двухбашенная модель с обучаемыми векторами может выучить любую структуру семантического пространства. Пусть у нас есть какая-то другая модель (e.g. мешок слов, трансформер, графовые нейросети), тогда можно инициализировать обучаемые эмбеддинги векторами из этой модели. В обратную сторону это не работает - имея набор векторов, не всегда можно так настроить "content-based" модель, чтобы она выдавала нужные векторы (привет, дистилляция).
Почему бы тогда не использовать всегда только обучаемые векторы? Несколько причин:
1. Недостаточно данных. Bias-variance tradeoff гласит, что более сложные модели сильнее переобучаются, hence для них нужно больше данных. Double descent в рекомендашках я пока не наблюдал, поэтому будем считать, что это правда :)
2. Тяжелые хвосты (long tail distributions). Если у вас большая часть объектов мало встречается в данных (т.е. хвост тяжелый), то про них сложновато делать выводы без дополнительной информации (e.g. контента), и тем более сложно выучить хорошие векторные представления.
3. Постоянно появляются новые объекты, поэтому нужна индуктивность - умение работать на объектах, не встречавшихся в обучении. У обучаемых векторов она отсутствует, они трансдуктивны.
4. Нестационарность распределений. Интересы пользователей меняются, содержимое айтемов обновляется, тренды (популярности объектов) эволюционируют. Обучаемые векторы это не учитывают.
Последние два пункта частично лечатся инкрементальным дообучением (получили новые данные - дообучились). Но:
* проблема курицы и яйца - чтобы дообучиться, надо накопить фидбек для новых объектов. Чтобы его накопить, нужно их рекомендовать. Если модель на них не дообучалась, то и рекомендовать их не будет.
* у инкрементального дообучения будет определенная задержка, побороть которую можно только невероятными инфраструктурными усилиями. Пока дообучение не произойдет, качество работы на новых и изменившихся объектах будет плохое.
Что же тогда делать? Вносить индуктивное смещение (англ. inductive bias): анализировать содержимое айтемов, делать нейросетевые энкодеры, добавлять регуляризацию, представлять пользователя через историю взаимодействий, etc. Об индуктивном смещении и как оно помогает бороться со всеми этими проблемами поговорим в другой раз :)
👍30🔥16
Forwarded from Yandex for ML
Вот первые темы выступлений:
Подписывайтесь:
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍6❤5
Face reveal: https://youtu.be/iBhGAKFGKdQ?si=2omgFLtuDxv0UjbF
Рассказываю про нейросетевое ранжирование для рекомендаций.
После доклада за кулисами обсудили РЛ, графовые сетки, bias'ы, трансформеры для персонализации, академию, индустрию, роблокс, рекомендательные ленты, next item prediction, movielens, как делать надо и как не надо, симуляции пользователей, языковые модели, объяснения рекомендаций, манипуляции вместо рекомендаций, trust bias, фидбек луп.
P.S: Подписчики на митапе зашеймили за отсутствие постов на канале. Заверил, что это временно :)
Рассказываю про нейросетевое ранжирование для рекомендаций.
После доклада за кулисами обсудили РЛ, графовые сетки, bias'ы, трансформеры для персонализации, академию, индустрию, роблокс, рекомендательные ленты, next item prediction, movielens, как делать надо и как не надо, симуляции пользователей, языковые модели, объяснения рекомендаций, манипуляции вместо рекомендаций, trust bias, фидбек луп.
P.S: Подписчики на митапе зашеймили за отсутствие постов на канале. Заверил, что это временно :)
YouTube
Нейросетевое ранжирование для рекомендательных систем / Кирилл Хрыльченко
Ранжирование — самая сложная ML-часть рекомендательной системы. Почему улучшать качество рекомендаций нужно нейросетевыми моделями, а не градиентными бустингами, рассказал Кирилл Хрыльченко, руководитель группы исследования перспективных рекомендательных…
❤45🔥20👍1
Чем занимается наша R&D команда.
С годами задачи меняются: сначала был фокус на развитие одной R&D технологии (трансформерной персонализации), затем на ее распространение по Яндексу, а сейчас мы с командой занимаемся R&D для рекомендаций в целом, не ограничивая себя одной конкретной технологией.
На что декомпозируется работа:
1. Поиск новых технологий — постоянное изучение arxiv'а, конференций, воркшопов, инженерных блогов. Об этом я писал чуть подробней в посте Про чтение статей (для R&D). Потребность в R&D, как правило, драйвится с двух сторон: либо мы сами "приносим" новые технологии для улучшения рекомендаций в продуктах; либо продукты приходят к нам со своими проблемами. Для нас первый сценарий реализуется чаще, поэтому поиск новых технологий — очень важная часть работы.
2. Экспериментальная деятельность, прототипирование — выдвигаем и проверяем различные гипотезы, большая часть из которых выглядит как "если сделаем Х, улучшим базовое качество рекомендаций на Y". Довольно неплохое мерило успешности R&D команды, помимо прямого влияния на бизнес-метрики — это количество выдвинутых / проверенных / успешных гипотез, эдакая "пропускная способность" в гипотезах. При этом, чтобы было много успешных гипотез, нужна хорошая ресерчевская 'интуиция'. Чтобы выработать интуицию, нужна хорошая теоретическая база и опыт (как положительный, так и отрицательный) — про это упоминал в посте "Про ML соревнования".
3. Поддержка и развитие R&D инструментов:
* фреймворк для обучения нейросетей (он же трейн луп) - самая важная компонента, больше всего влияющая на количество проверяемых гипотез. Предела совершенству здесь нет: как лучше сделать конфигурирование обучения, как должен выглядеть конструктор модели, какие нужны коллбеки, что нужно логировать. Хорошая утилизация ресурсов тоже очень важна (не упираться в чтение по сети и в cpu, использовать оптимальные реализации слоев).
* работа с данными — зачастую самые профитные гипотезы связаны именно с данными. Подать что-то новое в модель, изменить представление входных данных, модифицировать целевую задачу, придумать новую процедуру предобучения. При этом нам доступны по-настоящему большие данные, триллионы пользовательских событий. Чтобы не состариться при проверке очередной гипотезы, требующей "варки" нового датасета, нужен удобный, гибкий и быстрый фреймворк. Дата инженеров у нас нет — нам важно уметь самим залезать в обработку данных и что-то быстро в ней менять. Да и инструменты для работы с данными в Яндексе настолько хороши (YQL, YT), что даже ресерчеры вполне способны их освоить :)
* инструменты для внедрений — "быстрые применялки" моделей, регулярные процессы дообучения, сервисы для применения моделей, оффлайн насчеты векторов, индексы для кандидатогенерации, etc. Здесь частично мы справляемся сами, частично нам помогают другие команды. Некоторые инструменты мейнтейнят и развивают выделенные команды. Конечная цель у нас — это всегда real-world impact, поэтому с этим всем мы тоже много сталкиваемся.
* командные процессы — совершенствуем их от полугодия к полугодию. На мой biased взгляд, выстраивание процессов для эффективного R&D гораздо сложнее, чем в обычной разработке. Вопросов много: сколько людей должно заниматься одним проектом, как лучше проводить планирования, сколько проектов должно быть у каждого человека, как логировать эксперименты, как организовать семинары по чтению статей, etc.
4. Внедрения — мы постоянно общаемся с продуктовыми командами, рассказываем про новые технологии и наши планы, договариваемся про совместные внедрения, делаем общие для экосистемы Яндекса инструменты. Зачастую от сервисов узнаем много нового, вырабатываем новые интуиции, а потом еще и "кросс-опыляем" сервисы, рассказывая одному сервису про фишки другого :) Ну и, конечно, очень приятно видеть импакт на продукты, которые использует много людей (Музыка, Кинопоиск, Маркет, Алиса, Поиск, etc)
К чему я это все: у меня есть вакансия; если прочитали и чувствуете, что душа к нам лежит — приходите ко мне в личку @kkhrylchenko :)
P.S: приступаю к созданию видео про Pinterest 🙂
С годами задачи меняются: сначала был фокус на развитие одной R&D технологии (трансформерной персонализации), затем на ее распространение по Яндексу, а сейчас мы с командой занимаемся R&D для рекомендаций в целом, не ограничивая себя одной конкретной технологией.
На что декомпозируется работа:
1. Поиск новых технологий — постоянное изучение arxiv'а, конференций, воркшопов, инженерных блогов. Об этом я писал чуть подробней в посте Про чтение статей (для R&D). Потребность в R&D, как правило, драйвится с двух сторон: либо мы сами "приносим" новые технологии для улучшения рекомендаций в продуктах; либо продукты приходят к нам со своими проблемами. Для нас первый сценарий реализуется чаще, поэтому поиск новых технологий — очень важная часть работы.
2. Экспериментальная деятельность, прототипирование — выдвигаем и проверяем различные гипотезы, большая часть из которых выглядит как "если сделаем Х, улучшим базовое качество рекомендаций на Y". Довольно неплохое мерило успешности R&D команды, помимо прямого влияния на бизнес-метрики — это количество выдвинутых / проверенных / успешных гипотез, эдакая "пропускная способность" в гипотезах. При этом, чтобы было много успешных гипотез, нужна хорошая ресерчевская 'интуиция'. Чтобы выработать интуицию, нужна хорошая теоретическая база и опыт (как положительный, так и отрицательный) — про это упоминал в посте "Про ML соревнования".
3. Поддержка и развитие R&D инструментов:
* фреймворк для обучения нейросетей (он же трейн луп) - самая важная компонента, больше всего влияющая на количество проверяемых гипотез. Предела совершенству здесь нет: как лучше сделать конфигурирование обучения, как должен выглядеть конструктор модели, какие нужны коллбеки, что нужно логировать. Хорошая утилизация ресурсов тоже очень важна (не упираться в чтение по сети и в cpu, использовать оптимальные реализации слоев).
* работа с данными — зачастую самые профитные гипотезы связаны именно с данными. Подать что-то новое в модель, изменить представление входных данных, модифицировать целевую задачу, придумать новую процедуру предобучения. При этом нам доступны по-настоящему большие данные, триллионы пользовательских событий. Чтобы не состариться при проверке очередной гипотезы, требующей "варки" нового датасета, нужен удобный, гибкий и быстрый фреймворк. Дата инженеров у нас нет — нам важно уметь самим залезать в обработку данных и что-то быстро в ней менять. Да и инструменты для работы с данными в Яндексе настолько хороши (YQL, YT), что даже ресерчеры вполне способны их освоить :)
* инструменты для внедрений — "быстрые применялки" моделей, регулярные процессы дообучения, сервисы для применения моделей, оффлайн насчеты векторов, индексы для кандидатогенерации, etc. Здесь частично мы справляемся сами, частично нам помогают другие команды. Некоторые инструменты мейнтейнят и развивают выделенные команды. Конечная цель у нас — это всегда real-world impact, поэтому с этим всем мы тоже много сталкиваемся.
* командные процессы — совершенствуем их от полугодия к полугодию. На мой biased взгляд, выстраивание процессов для эффективного R&D гораздо сложнее, чем в обычной разработке. Вопросов много: сколько людей должно заниматься одним проектом, как лучше проводить планирования, сколько проектов должно быть у каждого человека, как логировать эксперименты, как организовать семинары по чтению статей, etc.
4. Внедрения — мы постоянно общаемся с продуктовыми командами, рассказываем про новые технологии и наши планы, договариваемся про совместные внедрения, делаем общие для экосистемы Яндекса инструменты. Зачастую от сервисов узнаем много нового, вырабатываем новые интуиции, а потом еще и "кросс-опыляем" сервисы, рассказывая одному сервису про фишки другого :) Ну и, конечно, очень приятно видеть импакт на продукты, которые использует много людей (Музыка, Кинопоиск, Маркет, Алиса, Поиск, etc)
К чему я это все: у меня есть вакансия; если прочитали и чувствуете, что душа к нам лежит — приходите ко мне в личку @kkhrylchenko :)
P.S: приступаю к созданию видео про Pinterest 🙂
🔥28👍5❤1🤔1
Data Fest 2024.
Завтра буду рассказывать про RecSys тренды в индустрии на Датафесте, в 15:30. Приходите пообщаться!
А теперь затизерю тренды, которые выбрал для доклада :)
P.S: если ваш любимый тренд в список не попал — не обижайтесь; у меня всего 20-30 минут для рассказа, все не вместить :)
UPD: ссылка на трансляцию
Завтра буду рассказывать про RecSys тренды в индустрии на Датафесте, в 15:30. Приходите пообщаться!
А теперь затизерю тренды, которые выбрал для доклада :)
P.S: если ваш любимый тренд в список не попал — не обижайтесь; у меня всего 20-30 минут для рассказа, все не вместить :)
UPD: ссылка на трансляцию
🔥49👍2🫡2
Data Fest 2024, часть 2.
Видеозапись выступления — https://www.youtube.com/watch?v=XQRU4fyQnhk
Что обсуждали за кулисами:
* двухбашенные модели — плохие кандидатогенераторы
* будущее за LLM'ками?
* является ли человек перемножением матриц?
* кросс-домен рекомендации
* как делать ресерч и как не делать
* рекомендации музыки
* существует ли пространство айтемов вне моделей и Виттгенштейна (Олег в комментариях напомнил)
Спасибо всем, кто подходил со словами что читает канал. Мне это всегда очень приятно =)
Презентацию приложу в комментариях к посту.
Видеозапись выступления — https://www.youtube.com/watch?v=XQRU4fyQnhk
Что обсуждали за кулисами:
* двухбашенные модели — плохие кандидатогенераторы
* будущее за LLM'ками?
* является ли человек перемножением матриц?
* кросс-домен рекомендации
* как делать ресерч и как не делать
* рекомендации музыки
* существует ли пространство айтемов вне моделей и Виттгенштейна (Олег в комментариях напомнил)
Спасибо всем, кто подходил со словами что читает канал. Мне это всегда очень приятно =)
Презентацию приложу в комментариях к посту.
👍37🔥9❤7
Про публичные выступления.
С раннего возраста периодически где-то выступаю: музыкальный хор, интеллектуальные дебаты, и вот, последние лет 6, на ML митапах. Еще люблю спортивную мафию, которая, на мой взгляд, развивает те же навыки (но об этом как-нибудь в другой раз).
Хотел тезисно поделиться парой советов про выступления:
1. Презентация — ваш лучший друг. Хорошая презентация сильно облегчает задачу рассказчику. А хорошо сделанная картинка — лучше тысячи слов. На работе тоже этим активно пользуюсь.
2. У меня плохая дикция: я часто оговариваюсь, не выговариваю какие-то слова, поправляю себя; главное — делать это уверенно. Если вы уверенно говорите, пускай и с оговорками — это смотрится вполне нормально.
3. Прогоны. Полезно сделать парочку прогонов до выступления. Я это делаю еще как минимум чтобы понять, укладываюсь ли в time limit; а еще, после первого прогона обычно становится понятно что надо подправить в презентации, чтобы рассказывать было легче.
А еще пожалуюсь:
1. Не умею делать короткие презентации: пихаю слишком много контента и вынуждаю себя тараторить. Структура доклада всегда получается такая, что еле укладываюсь в time limit. Интересно было бы когда-нибудь попробовать сделать более "медленный" доклад с более медленной манерой речи.
2. Не поборол слова паразиты: "вот", "то есть", "эээ". Без них сложно тараторить :)
3. Срываю голос на каждом выступлении: почему-то начинаю на выступлениях очень громко разговаривать, довольно быстро сажаю голос, и в середине выступления начинаю говорить каким-то странным тембром (и во время нетворкингов тоже)
4. Не смотрю на аудиторию: редко когда получается качественно посмотреть на слушателей, чаще утыкаюсь в презентацию. По канонам ораторских книжек нужно все-таки на людей смотреть :)
Еще заметил интересный эффект: у меня было рабочее полугодие, во время которого очень много разговаривал (докладывал статьи, etc); затем было полугодие, где активность поутихла. Когда я об этом явно задумался, начал гораздо хуже выступать. Fear is a mind killer :)
С раннего возраста периодически где-то выступаю: музыкальный хор, интеллектуальные дебаты, и вот, последние лет 6, на ML митапах. Еще люблю спортивную мафию, которая, на мой взгляд, развивает те же навыки (но об этом как-нибудь в другой раз).
Хотел тезисно поделиться парой советов про выступления:
1. Презентация — ваш лучший друг. Хорошая презентация сильно облегчает задачу рассказчику. А хорошо сделанная картинка — лучше тысячи слов. На работе тоже этим активно пользуюсь.
2. У меня плохая дикция: я часто оговариваюсь, не выговариваю какие-то слова, поправляю себя; главное — делать это уверенно. Если вы уверенно говорите, пускай и с оговорками — это смотрится вполне нормально.
3. Прогоны. Полезно сделать парочку прогонов до выступления. Я это делаю еще как минимум чтобы понять, укладываюсь ли в time limit; а еще, после первого прогона обычно становится понятно что надо подправить в презентации, чтобы рассказывать было легче.
А еще пожалуюсь:
1. Не умею делать короткие презентации: пихаю слишком много контента и вынуждаю себя тараторить. Структура доклада всегда получается такая, что еле укладываюсь в time limit. Интересно было бы когда-нибудь попробовать сделать более "медленный" доклад с более медленной манерой речи.
2. Не поборол слова паразиты: "вот", "то есть", "эээ". Без них сложно тараторить :)
3. Срываю голос на каждом выступлении: почему-то начинаю на выступлениях очень громко разговаривать, довольно быстро сажаю голос, и в середине выступления начинаю говорить каким-то странным тембром (и во время нетворкингов тоже)
4. Не смотрю на аудиторию: редко когда получается качественно посмотреть на слушателей, чаще утыкаюсь в презентацию. По канонам ораторских книжек нужно все-таки на людей смотреть :)
Еще заметил интересный эффект: у меня было рабочее полугодие, во время которого очень много разговаривал (докладывал статьи, etc); затем было полугодие, где активность поутихла. Когда я об этом явно задумался, начал гораздо хуже выступать. Fear is a mind killer :)
👍39💯8❤2
What’s on Google's Deepmind? (RecSys статьи за ~последний год).
HyperFormer: Learning Expressive Sparse Feature Representations via Hypergraph Transformer. Улучшают качество на тяжелом хвосте признаков с помощью гиперграфа, в котором вершины — это объекты, а гиперребра — значения признаков. Делают message passing в два этапа (от признаков к объектам и vice versa).
Unified Embedding: Battle-Tested Feature Representations for Web-Scale ML Systems. Используют единую матрицу эмбеддингов для всех признаков, для каждого признака используется несколько лукапов по хэшу (с коллизиями).
Hierarchical Reinforcement Learning for Modeling User Novelty-Seeking Intent in Recommender Systems. С помощью RL оценивают потребность пользователя в новизне и разнообразии. Используют DDPG и DQN (дальше было страшно читать, не стал).
Better Generalization with Semantic IDs: A case study in Ranking for Recommendations. У холодных айтемов плохие обучаемые эмбеды, а контентные эмбеды делать затратно (дорого хранить). Обучают с помощью RQ-VAE "иерархические" семантические айдишники по контенту, которые затем считают для всех (и холодных тоже) айтемов.
Density Weighting for Multi-Interest Personalized Recommendation. Хотят несколько векторов пользователя, но все векторы пользователя забиваются популярными интересами/айтемами. Используют хитрую двухэтапную процедуру обучения. Вводят обучаемые векторы глобальных интересов и делают "параметрический" аттеншн.
Improving Training Stability for Multitask Ranking Models in Recommender Systems. Борятся с нестабильностью обучения больших нейросетевых ранжирующих моделей с помощью своего хитрого клиппинга поверх Adagrad'а.
Fresh Content Needs More Attention: Multi-funnel Fresh Content Recommendation. Строят отдельный стек рекомендаций для нового и long-tail контента (с уклоном в content-based модели), дают ему один слот в выдаче.
Efficient Data Representation Learning in Google-scale Systems. Хвалятся, что unified эмбеддинги и DCN-v2 используют по всему гуглу (>50 моделей).
Online Matching: A Real-time Bandit System for Large-scale Recommendations. Используют контекстуальных линейных бандитов, упрощают их с помощью кластеризации пользователей.
Multitask Ranking System for Immersive Feed and No More Clicks: A Case Study of Short-Form Video Recommendation. Моделируют trailing bias в рекомендациях коротких роликов. Перевзвешивают лоссы c помощью мета лернинга; регуляризуют MoE экспертов, чтобы меньше коррелировали.
Hiformer: Heterogeneous Feature Interactions Learning with Transformers for Recommender Systems. Модифицируют аттеншн для нейросетевого ранжирования, чтобы учитывал гетерогенную природу признаков.
Large Language Models as Data Augmenters for Cold-Start Item Recommendation. С помощью LLM генерят данные для холодных айтемов и тюнят на них рекомендательную модель.
Long-Term Value of Exploration: Measurements, Findings and Algorithms. Исследуют как в A/B замерять эффект от эксплорейшна (делят выборки не только по юзерам, но и по айтемам), используют NeuralLinear бандитов для ранжирования.
Aligning Large Language Models with Recommendation Knowledge. Тюнят LLM на Masked Item Modeling и BPR в текстовом формате.
Cluster Anchor Regularization to Alleviate Popularity Bias in Recommender Systems. Делают иерархическую кластеризацию content-based эмбедов айтемов, добавляют на ее основе регуляризацию для сближания обучаемых векторов head/tail айтемов.
Diversifying by Intent in Recommender Systems. Предсказывают намерения пользователя (intent'ы), используют формулу полной вероятности. Каждый следующий айтем выбирают в предположении, что ранее выбранные интенты не подошли.
LLMs for User Interest Exploration: A Hybrid Approach. С помощью LLM предсказывают верхнеуровневые интересы, далее рекомендательной моделью ищут среди айтемов из этого интереса лучшие.
Много коллабятся с Youtube'ом; фокус на короткие видео (shorts). Киворды: long-tail, матрицы эмбедов, новизна, разнообразие, эксплорейшн, LLM, ранжирование, дебаясинг, RL.
Какая статья вам больше понравилась? Дайте знать в комментариях :)
HyperFormer: Learning Expressive Sparse Feature Representations via Hypergraph Transformer. Улучшают качество на тяжелом хвосте признаков с помощью гиперграфа, в котором вершины — это объекты, а гиперребра — значения признаков. Делают message passing в два этапа (от признаков к объектам и vice versa).
Unified Embedding: Battle-Tested Feature Representations for Web-Scale ML Systems. Используют единую матрицу эмбеддингов для всех признаков, для каждого признака используется несколько лукапов по хэшу (с коллизиями).
Hierarchical Reinforcement Learning for Modeling User Novelty-Seeking Intent in Recommender Systems. С помощью RL оценивают потребность пользователя в новизне и разнообразии. Используют DDPG и DQN (дальше было страшно читать, не стал).
Better Generalization with Semantic IDs: A case study in Ranking for Recommendations. У холодных айтемов плохие обучаемые эмбеды, а контентные эмбеды делать затратно (дорого хранить). Обучают с помощью RQ-VAE "иерархические" семантические айдишники по контенту, которые затем считают для всех (и холодных тоже) айтемов.
Density Weighting for Multi-Interest Personalized Recommendation. Хотят несколько векторов пользователя, но все векторы пользователя забиваются популярными интересами/айтемами. Используют хитрую двухэтапную процедуру обучения. Вводят обучаемые векторы глобальных интересов и делают "параметрический" аттеншн.
Improving Training Stability for Multitask Ranking Models in Recommender Systems. Борятся с нестабильностью обучения больших нейросетевых ранжирующих моделей с помощью своего хитрого клиппинга поверх Adagrad'а.
Fresh Content Needs More Attention: Multi-funnel Fresh Content Recommendation. Строят отдельный стек рекомендаций для нового и long-tail контента (с уклоном в content-based модели), дают ему один слот в выдаче.
Efficient Data Representation Learning in Google-scale Systems. Хвалятся, что unified эмбеддинги и DCN-v2 используют по всему гуглу (>50 моделей).
Online Matching: A Real-time Bandit System for Large-scale Recommendations. Используют контекстуальных линейных бандитов, упрощают их с помощью кластеризации пользователей.
Multitask Ranking System for Immersive Feed and No More Clicks: A Case Study of Short-Form Video Recommendation. Моделируют trailing bias в рекомендациях коротких роликов. Перевзвешивают лоссы c помощью мета лернинга; регуляризуют MoE экспертов, чтобы меньше коррелировали.
Hiformer: Heterogeneous Feature Interactions Learning with Transformers for Recommender Systems. Модифицируют аттеншн для нейросетевого ранжирования, чтобы учитывал гетерогенную природу признаков.
Large Language Models as Data Augmenters for Cold-Start Item Recommendation. С помощью LLM генерят данные для холодных айтемов и тюнят на них рекомендательную модель.
Long-Term Value of Exploration: Measurements, Findings and Algorithms. Исследуют как в A/B замерять эффект от эксплорейшна (делят выборки не только по юзерам, но и по айтемам), используют NeuralLinear бандитов для ранжирования.
Aligning Large Language Models with Recommendation Knowledge. Тюнят LLM на Masked Item Modeling и BPR в текстовом формате.
Cluster Anchor Regularization to Alleviate Popularity Bias in Recommender Systems. Делают иерархическую кластеризацию content-based эмбедов айтемов, добавляют на ее основе регуляризацию для сближания обучаемых векторов head/tail айтемов.
Diversifying by Intent in Recommender Systems. Предсказывают намерения пользователя (intent'ы), используют формулу полной вероятности. Каждый следующий айтем выбирают в предположении, что ранее выбранные интенты не подошли.
LLMs for User Interest Exploration: A Hybrid Approach. С помощью LLM предсказывают верхнеуровневые интересы, далее рекомендательной моделью ищут среди айтемов из этого интереса лучшие.
Много коллабятся с Youtube'ом; фокус на короткие видео (shorts). Киворды: long-tail, матрицы эмбедов, новизна, разнообразие, эксплорейшн, LLM, ранжирование, дебаясинг, RL.
Какая статья вам больше понравилась? Дайте знать в комментариях :)
❤49👍7🔥6😁2
Computer Architecture and Memory Systems.
Прямо сейчас проходит пятидневная летняя школа EFCL Summer School в ETH Zurich, в которой один из треков — про память и компьютеры, в том числе в контексте машинного обучения.
Ведет его научная группа Onur Mutlu, у которой есть очень крутые курсы: вводный Digitial Design and Computer Architecture и продвинутый Computer Architecture. Всё выкладывается на ютуб, включая вышеназванный трек из EFCL. Можно даже на трансляцию подключиться и что-нибудь поспрашивать.
Был довольно забавный keynote от Yale Patt (который, собственно, самого Onur Mutlu и учил когда-то), в котором в том числе промелькнул тезис, что учиться надо в стиле “bottom-up”, изучая системы с самых основ; e.g. сначала изучать как устроен компьютер, и уже потом идти учиться программировать. Был пример с гугловским TPU, где один из авторов когда-то слушал курсы про железо, и поэтому заюзал систолические массивы. Еще Yale жалуется, что сейчас машин лернеры чаще всего ничего про этот самый “bottom” не знают :)
Были и тезисы про ресерч: например, что во многих областях ресерч — это про более глубокое понимание того, что уже есть (или того, что было раньше); а у нас, в более инженерных “науках”, ценится исключительно выдумывание чего-то нового. И что пока это не изменится, будем страдать (см. проблемы в академии, со статьями и конференциями). Что инновации всегда следуют за более глубоким пониманием, и в текущих реалиях многие ресерчеры пытаются этот этап перешагнуть, делая статьи-пустышки.
Когда-то давно, в порывах восполнить пробелы в образовании после ВМК, я искал на просторах интернета хорошие лекции про комп. архитектуру; канал Onur Mutlu — лучшее, что нашел. Лекции всяких MIT выглядят гораздо хуже. Справедливости ради, целиком контент я до сих пор не посмотрел (материала там много), но периодически возвращаюсь и что-то досматриваю :)
Прямо сейчас проходит пятидневная летняя школа EFCL Summer School в ETH Zurich, в которой один из треков — про память и компьютеры, в том числе в контексте машинного обучения.
Ведет его научная группа Onur Mutlu, у которой есть очень крутые курсы: вводный Digitial Design and Computer Architecture и продвинутый Computer Architecture. Всё выкладывается на ютуб, включая вышеназванный трек из EFCL. Можно даже на трансляцию подключиться и что-нибудь поспрашивать.
Был довольно забавный keynote от Yale Patt (который, собственно, самого Onur Mutlu и учил когда-то), в котором в том числе промелькнул тезис, что учиться надо в стиле “bottom-up”, изучая системы с самых основ; e.g. сначала изучать как устроен компьютер, и уже потом идти учиться программировать. Был пример с гугловским TPU, где один из авторов когда-то слушал курсы про железо, и поэтому заюзал систолические массивы. Еще Yale жалуется, что сейчас машин лернеры чаще всего ничего про этот самый “bottom” не знают :)
Были и тезисы про ресерч: например, что во многих областях ресерч — это про более глубокое понимание того, что уже есть (или того, что было раньше); а у нас, в более инженерных “науках”, ценится исключительно выдумывание чего-то нового. И что пока это не изменится, будем страдать (см. проблемы в академии, со статьями и конференциями). Что инновации всегда следуют за более глубоким пониманием, и в текущих реалиях многие ресерчеры пытаются этот этап перешагнуть, делая статьи-пустышки.
Когда-то давно, в порывах восполнить пробелы в образовании после ВМК, я искал на просторах интернета хорошие лекции про комп. архитектуру; канал Onur Mutlu — лучшее, что нашел. Лекции всяких MIT выглядят гораздо хуже. Справедливости ради, целиком контент я до сих пор не посмотрел (материала там много), но периодически возвращаюсь и что-то досматриваю :)
🔥32👍5⚡1
#arxiv_weekly (03.06.24 — 07.06.24)
Решил тряхнуть стариной и сделать дайджест за неделю :) Пока что по личным причинам все еще не смогу заниматься этим регулярно, но, надеюсь, в какой-то момент получится вернуть эту практику на постоянной основе.
Item-Language Model for Conversational Recommendation от Google Research. Тюнить LLM целиком под рекомендательную задачу страшно, так как теряются ее изначальные способности и появляются privacy concerns, а без тюнинга возникает modality gap (качество плохое). Пробуют это побороть, обучив Q-Former энкодер для айтемов, который используется вместе с зафриженной LLM.
Auto-Encoding or Auto-Regression? A Reality Check on Causality of Self-Attention-Based Sequential Recommenders от University of California (в авторах Julian McAuley). Исследуют, что лучше для sequential рекомендаций: auto-encoding (e.g. BERT4Rec) или auto-regression (e.g. SASRec). Используют leave-one-out схему эвала :(
System-2 Recommenders. Disentangling Utility and Engagement in Recommendation Systems via Temporal от FAIR (Meta). Декомпозируют эффект от рекомендаций на краткосрочный (влияние на текущую сессию) и долгосрочный (на будущие сессии). Моделируют ретеншн с помощью процесса Хоукса. Выглядит очень любопытно!
Large Language Models as Recommender Systems: A Study of Popularity Bias от Amazon Music и AWS. Подвержены ли LLM рекомендательному popularity bias'у? Придумывают свою метрику, чтобы это оценить. Делают по ней вывод, что LLM'ки от этого страдают меньше коллаборативных алгоритмов (но и качество у них так себе, судя по статье).
A Bi-metric Framework for Fast Similarity Search от MIT. Пусть у нас есть очень хорошая метрика близости для ANN, но ее тяжело считать. И есть какая-то прокси метрика, которая хуже по качеству, но проще считается. Предлагают алгоритм, который использует сильные стороны обоих метрик.
И чуть более коротко:
On Overcoming Miscalibrated Conversational Priors in LLM-based Chatbots от Microsoft (в авторах есть Tobias Schnabel). Утверждают, что LLM плохо рекомендует на "unspecified" запросах (начинает что-то выдумывать), и из-за особенностей разметки плохо умеет доуточнять интенты в рамках многошагового диалога. Пытаются это побороть.
Появился обзор A Survey of Generative Information Retrieval от National Taiwan University.
Новая модификация Decision Transformer'а от Data 61, см. Maximum-Entropy Regularized Decision Transformer with Reward Relabelling for Dynamic Recommendation.
Две статьи от Walmart: Session Context Embedding for Intent Understanding in Product Search, в которой авторы исследуют насколько полезен контекст (история пользователя) для задачи определения интента пользователя по поисковому запросу в екоме; и Large Language Models for Relevance Judgment in Product Search про то, как лучше затюнить LLM под задачу релевантности в еком поиске.
И есть некая статья от Alibaba под названием Robust Interaction-based Relevance Modeling for Online E-Commerce and LLM-based Retrieval, в которой они тоже что-то делают с релевантностью.
Решил тряхнуть стариной и сделать дайджест за неделю :) Пока что по личным причинам все еще не смогу заниматься этим регулярно, но, надеюсь, в какой-то момент получится вернуть эту практику на постоянной основе.
Item-Language Model for Conversational Recommendation от Google Research. Тюнить LLM целиком под рекомендательную задачу страшно, так как теряются ее изначальные способности и появляются privacy concerns, а без тюнинга возникает modality gap (качество плохое). Пробуют это побороть, обучив Q-Former энкодер для айтемов, который используется вместе с зафриженной LLM.
Auto-Encoding or Auto-Regression? A Reality Check on Causality of Self-Attention-Based Sequential Recommenders от University of California (в авторах Julian McAuley). Исследуют, что лучше для sequential рекомендаций: auto-encoding (e.g. BERT4Rec) или auto-regression (e.g. SASRec). Используют leave-one-out схему эвала :(
System-2 Recommenders. Disentangling Utility and Engagement in Recommendation Systems via Temporal от FAIR (Meta). Декомпозируют эффект от рекомендаций на краткосрочный (влияние на текущую сессию) и долгосрочный (на будущие сессии). Моделируют ретеншн с помощью процесса Хоукса. Выглядит очень любопытно!
Large Language Models as Recommender Systems: A Study of Popularity Bias от Amazon Music и AWS. Подвержены ли LLM рекомендательному popularity bias'у? Придумывают свою метрику, чтобы это оценить. Делают по ней вывод, что LLM'ки от этого страдают меньше коллаборативных алгоритмов (но и качество у них так себе, судя по статье).
A Bi-metric Framework for Fast Similarity Search от MIT. Пусть у нас есть очень хорошая метрика близости для ANN, но ее тяжело считать. И есть какая-то прокси метрика, которая хуже по качеству, но проще считается. Предлагают алгоритм, который использует сильные стороны обоих метрик.
И чуть более коротко:
On Overcoming Miscalibrated Conversational Priors in LLM-based Chatbots от Microsoft (в авторах есть Tobias Schnabel). Утверждают, что LLM плохо рекомендует на "unspecified" запросах (начинает что-то выдумывать), и из-за особенностей разметки плохо умеет доуточнять интенты в рамках многошагового диалога. Пытаются это побороть.
Появился обзор A Survey of Generative Information Retrieval от National Taiwan University.
Новая модификация Decision Transformer'а от Data 61, см. Maximum-Entropy Regularized Decision Transformer with Reward Relabelling for Dynamic Recommendation.
Две статьи от Walmart: Session Context Embedding for Intent Understanding in Product Search, в которой авторы исследуют насколько полезен контекст (история пользователя) для задачи определения интента пользователя по поисковому запросу в екоме; и Large Language Models for Relevance Judgment in Product Search про то, как лучше затюнить LLM под задачу релевантности в еком поиске.
И есть некая статья от Alibaba под названием Robust Interaction-based Relevance Modeling for Online E-Commerce and LLM-based Retrieval, в которой они тоже что-то делают с релевантностью.
🔥38❤1👍1