🔮Если хотите узнать подробности, приходите на ридинг-группу ОК 19 октября в 17:00. Обсудим статью Sheaf Neural Networks for Graph-based Recommender Systems. Ведущим будет Александр Тараканов, исследователь ОК.
🔥10🙈3👍1
📖Ссылка на зум нашей ридинг-группы сегодня в 17:00
Join Zoom Meeting
https://us05web.zoom.us/j/82167512039?pwd=bOPiB9Y04VHku8mu0Q1bL7p2vomF5H.1
Meeting ID: 821 6751 2039
Passcode: 5FGDD4
Join Zoom Meeting
https://us05web.zoom.us/j/82167512039?pwd=bOPiB9Y04VHku8mu0Q1bL7p2vomF5H.1
Meeting ID: 821 6751 2039
Passcode: 5FGDD4
✍1
Media is too big
VIEW IN TELEGRAM
🎬 Запись ридинг-группы от 19 октября 2023 года. Александр Тараканов, исследователь в ОК, рассказывал про нейронные сети на пучках.
👍4🆒4👏3
🏗️🏠Иногда на ридинг-группе мы выходим за рамки обычной тематики: машинного обучения, рекомендательных систем, анализа данных. Следующая встреча – именно такой случай. Настало время обсудить выбор напольных покрытий! Профессиональный строитель дата-платформ, прораб разработчик ОК Владимир Ермаков расскажет про паркет: плюсы, минусы, укладку на большие кластеры. Приглашаем послушать Володю 2 ноября в 17:00.
Зум:
https://us05web.zoom.us/j/81901499743?pwd=SYI7UTEbPI8BbkqhQGpv4JwaY4d5ju.1
Meeting ID: 819 0149 9743
Passcode: 3ASKmt
Зум:
https://us05web.zoom.us/j/81901499743?pwd=SYI7UTEbPI8BbkqhQGpv4JwaY4d5ju.1
Meeting ID: 819 0149 9743
Passcode: 3ASKmt
😁20🔥5🤩2🙈1
В октябре мы провели традиционный разбор конференции RecSys’23. В этот раз на разборе выступали не только ребята из ОК и VK, но и авторы оригинальных статей. Мы думаем, что получилось отлично. Следующие полтора месяца будем дважды в неделю публиковать текстовые версии разборов статей. Делаем для себя, не обращайте внимания ❤️ #recsys23
❤4😁4👍1
AUGMENTED NEGATIVE SAMPLING FOR COLLABORATIVE FILTERING
https://arxiv.org/abs/2308.05972
https://arxiv.org/abs/2308.05972
ML — это ОК
AUGMENTED NEGATIVE SAMPLING FOR COLLABORATIVE FILTERING https://arxiv.org/abs/2308.05972
В задаче рекомендаций с неявным фидбэком данные состоят только из «положительных» пар пользователь-айтем. Например, в рекомендациях видео положительными могут считаться ролики, которые пользователь посмотрел до конца. Для того чтобы обучить модель, нужны и «отрицательные» пары – их получают с помощью процедуры семплирования негативных. Базовый вариант этой процедуры – выбирать в качестве негативных айтемы пропорционально их популярности.
Авторы статьи предлагают новый подход к семплированию негативных, основанный на аугментации данных. Факторы, которые описывают айтемы, делятся на две группы:
- easy factors (легкие факторы);
- hard factors (сильные факторы).
Сильные факторы положительно влияют на качество модели, в то время как легкие факторы ухудшают модель или ничего не меняют. Нужно специальным образом зашумить легкие факторы и объединить их с сильными факторами. С помощью жадного алгоритма из получившегося множества аугментированных айтемов отбирают несколько сэмплов в качестве негативных.
Авторы оценивали эффективность своего метода на трёх датасетах с использованием матричной факторизации с BPR лоссом. Почти во всех экспериментах предложенный алгоритм оказался лучше конкурентов. Недостатки подхода такие:
- время обучения вдвое больше, чем при базовом семплировании негативных;
- добавляется два гиперпараметра, которые нужно настраивать под конкретные данные. #recsys23
Авторы статьи предлагают новый подход к семплированию негативных, основанный на аугментации данных. Факторы, которые описывают айтемы, делятся на две группы:
- easy factors (легкие факторы);
- hard factors (сильные факторы).
Сильные факторы положительно влияют на качество модели, в то время как легкие факторы ухудшают модель или ничего не меняют. Нужно специальным образом зашумить легкие факторы и объединить их с сильными факторами. С помощью жадного алгоритма из получившегося множества аугментированных айтемов отбирают несколько сэмплов в качестве негативных.
Авторы оценивали эффективность своего метода на трёх датасетах с использованием матричной факторизации с BPR лоссом. Почти во всех экспериментах предложенный алгоритм оказался лучше конкурентов. Недостатки подхода такие:
- время обучения вдвое больше, чем при базовом семплировании негативных;
- добавляется два гиперпараметра, которые нужно настраивать под конкретные данные. #recsys23
👍4✍2
INTUNE: REINFORCEMENT LEARNING-BASED DATA PIPELINE OPTIMIZATION FOR DEEP RECOMMENDATION MODELS
https://arxiv.org/abs/2308.08500 #recsys23
IT-гиганты используют большие нейросети (DLRM), чтобы строить персонализированные рекомендации для сотен миллионов пользователей. Количество обучаемых параметров у таких моделей сравнимо с количеством параметров у современных языковых моделей. При этом DLRM намного проще трансформеров с точки зрения архитектуры. Поэтому при обучении DLRM узкое место — не вычисления внутри нейронной сети, а процесс подготовки данных, который состоит из нескольких этапов:
- загрузки данных с диска;
- формирования батчей;
- перемешивания;
- преобразований данных;
- загрузки данных на GPU.
Если хотя бы один из этапов «тормозит» — весь процесс замедляется, а вместе с ним замедляется и обучение. Решением в этой ситуации является распараллеливание каждого из этапов на нескольких процессорах, причем так, чтобы пропускная способность всех этапов была одинаковой.
Ключевым вопросом здесь становится выявление необходимого количества процессоров на каждом этапе. Оказывается, что для DLRM стандартные инструменты вроде AUTOTUNE работают недостаточно хорошо: процессоры используются неоптимально, переполняется память. Разработчики из Netflix предлагают собственное решение.
Представленный в статье фреймворк InTune основан на обучении с подкреплением в такой постановке:
- Action. Агент InTune может увеличивать или уменьшать количество процессоров, которое выдается каждому этапу подготовки данных.
- State. В качестве параметров среды агент наблюдает метрики процесса обучения — например, текущую пропускную способность и объём свободной памяти в кластере.
- Reward. С помощью Q-learning агент учится выделять ресурсы так, чтобы скорость обучения была максимальной при минимальном использовании памяти.
Эксперименты показали, что под управлением InTune модель обучается в 2,3 раза быстрее, чем под управлением AUTOTUNE, а доля падений по памяти снижается с 8% до нуля. Авторы не опубликовали исходный код, но идея достаточно простая, чтобы повторить её в «домашних условиях».
Бонус: предложенный в статье фреймворк может быть полезен не только для обучения DLRM. Например, его можно прикрутить для автоматического выделения ресурсов приложениям Spark.
https://arxiv.org/abs/2308.08500 #recsys23
IT-гиганты используют большие нейросети (DLRM), чтобы строить персонализированные рекомендации для сотен миллионов пользователей. Количество обучаемых параметров у таких моделей сравнимо с количеством параметров у современных языковых моделей. При этом DLRM намного проще трансформеров с точки зрения архитектуры. Поэтому при обучении DLRM узкое место — не вычисления внутри нейронной сети, а процесс подготовки данных, который состоит из нескольких этапов:
- загрузки данных с диска;
- формирования батчей;
- перемешивания;
- преобразований данных;
- загрузки данных на GPU.
Если хотя бы один из этапов «тормозит» — весь процесс замедляется, а вместе с ним замедляется и обучение. Решением в этой ситуации является распараллеливание каждого из этапов на нескольких процессорах, причем так, чтобы пропускная способность всех этапов была одинаковой.
Ключевым вопросом здесь становится выявление необходимого количества процессоров на каждом этапе. Оказывается, что для DLRM стандартные инструменты вроде AUTOTUNE работают недостаточно хорошо: процессоры используются неоптимально, переполняется память. Разработчики из Netflix предлагают собственное решение.
Представленный в статье фреймворк InTune основан на обучении с подкреплением в такой постановке:
- Action. Агент InTune может увеличивать или уменьшать количество процессоров, которое выдается каждому этапу подготовки данных.
- State. В качестве параметров среды агент наблюдает метрики процесса обучения — например, текущую пропускную способность и объём свободной памяти в кластере.
- Reward. С помощью Q-learning агент учится выделять ресурсы так, чтобы скорость обучения была максимальной при минимальном использовании памяти.
Эксперименты показали, что под управлением InTune модель обучается в 2,3 раза быстрее, чем под управлением AUTOTUNE, а доля падений по памяти снижается с 8% до нуля. Авторы не опубликовали исходный код, но идея достаточно простая, чтобы повторить её в «домашних условиях».
Бонус: предложенный в статье фреймворк может быть полезен не только для обучения DLRM. Например, его можно прикрутить для автоматического выделения ресурсов приложениям Spark.
✍4🔥1
📖Новая неделя – новые разборы статей с #recsys23
LEVERAGING LARGE LANGUAGE MODELS FOR SEQUENTIAL RECOMMENDATION
https://arxiv.org/abs/2309.09261
LEVERAGING LARGE LANGUAGE MODELS FOR SEQUENTIAL RECOMMENDATION
https://arxiv.org/abs/2309.09261
🔥1
ML — это ОК
📖Новая неделя – новые разборы статей с #recsys23 LEVERAGING LARGE LANGUAGE MODELS FOR SEQUENTIAL RECOMMENDATION https://arxiv.org/abs/2309.09261
Статья предлагает три способа использования LLM для рекомендательных систем.
LLMSeqSim
Используем LLM для получения эмбеддингов айтемов на основании их описаний. Из эмбеддингов айтемов, просмотренных пользователем, формируем общий эмбеддинг сессии тремя способами:
- среднее;
- взвешенное среднее в зависимости от позиции айтема в последовательности;
- эмбеддинг последнего айтема.
В качестве рекомендаций выбираем k айтемов, эмбеддинги которых ближе всего к эмбеддингу сессии.
LLMSeqPrompt
Дообучаем LLM предсказывать следующий айтем в последовательности. На этапе вычисления рекомендаций модель может предлагать уже просмотренный или несуществующий айтем. В таком случае рекомендуем айтем, ближайший к предложенному в пространстве эмбеддингов.
LLM2BERT4Rec
Аналогично LLMSeqSim получаем эмбеддинги айтемов из их описаний. Используем эти эмбеддинги для инициализации Bert4Rec. Если необходимо, приводим эмбеддинги из LLM к нужной размерности с помощью PCA.
Эксперименты
Авторы сравнили предложенные методы на двух датасетах: Amazon Beauty и Delivery Hero. Точность моделей измерялась метриками NDCG, MRR и HitRate. Помимо этого, оценивались метрики catalog coverage, serendipity и novelty. Сравнение показало, что LLM2BERT4Rec и LLMSeqSim работают лучше, чем бейзлайны без LLM. Победила модель LLM2BERT4Rec, которая превзошла Bert4Rec по NDCG на 15-20%.
LLMSeqSim
Используем LLM для получения эмбеддингов айтемов на основании их описаний. Из эмбеддингов айтемов, просмотренных пользователем, формируем общий эмбеддинг сессии тремя способами:
- среднее;
- взвешенное среднее в зависимости от позиции айтема в последовательности;
- эмбеддинг последнего айтема.
В качестве рекомендаций выбираем k айтемов, эмбеддинги которых ближе всего к эмбеддингу сессии.
LLMSeqPrompt
Дообучаем LLM предсказывать следующий айтем в последовательности. На этапе вычисления рекомендаций модель может предлагать уже просмотренный или несуществующий айтем. В таком случае рекомендуем айтем, ближайший к предложенному в пространстве эмбеддингов.
LLM2BERT4Rec
Аналогично LLMSeqSim получаем эмбеддинги айтемов из их описаний. Используем эти эмбеддинги для инициализации Bert4Rec. Если необходимо, приводим эмбеддинги из LLM к нужной размерности с помощью PCA.
Эксперименты
Авторы сравнили предложенные методы на двух датасетах: Amazon Beauty и Delivery Hero. Точность моделей измерялась метриками NDCG, MRR и HitRate. Помимо этого, оценивались метрики catalog coverage, serendipity и novelty. Сравнение показало, что LLM2BERT4Rec и LLMSeqSim работают лучше, чем бейзлайны без LLM. Победила модель LLM2BERT4Rec, которая превзошла Bert4Rec по NDCG на 15-20%.
✍4
#recsys23
EFFICIENT DATA REPRESENTATION LEARNING IN GOOGLE-SCALE SYSTEMS
https://dl.acm.org/doi/10.1145/3604915.3608882
EFFICIENT DATA REPRESENTATION LEARNING IN GOOGLE-SCALE SYSTEMS
https://dl.acm.org/doi/10.1145/3604915.3608882
ML — это ОК
#recsys23 EFFICIENT DATA REPRESENTATION LEARNING IN GOOGLE-SCALE SYSTEMS https://dl.acm.org/doi/10.1145/3604915.3608882
В больших нейросетевых рекомендерах количество уникальных значений sparse-признаков измеряется миллиардами. Из-за этого почти все обучаемые параметры содержатся в таблицах эмбеддингов. Такие таблицы занимают сотни гигабайт памяти GPU – это вызывает проблемы при обучении и применении моделей.
Для распределения значений признаков по таблицам эмбеддингов можно использовать хеш-функции. Помимо снижения необходимого объёма памяти это позволяет дообучать модели онлайн. При появлении нового значения не нужно увеличивать таблицу — достаточно посчитать хеш-значения и использовать уже существующую строку.
Недостаток использования хеш-функций – снижение метрик из-за возникающих коллизий. Однако можно подобрать компромисс, при котором потери в качестве модели будут малы, а количество места, занимаемого эмбеддингами, снизится в несколько раз.
Авторы статьи предлагают подход к построению таблиц эмбеддингов, который называется Feature Multiplexing Framework. Идея в том, чтобы использовать одну таблицу для представления разных признаков. Переиспользование параметров позволяет уменьшить требования к памяти и время поиска. При этом качество предсказаний не страдает, так как модели проще научиться работать с коллизиями между разными признаками, чем с коллизиями внутри одного признака. Это происходит из-за того, что обработка разных признаков происходит разными частями модели, каждая со своим набором обучаемых параметров. В качестве такой модели можно использовать DCN-V2.
Авторы приводят результаты применения предложенного подхода к пяти задачам. Во всех экспериментах увеличились как офлайн, так и онлайн метрики (см. таблицу в начале поста). Более того, Feature Multiplexing Framework уменьшает количество гиперпараметров: раньше нужно было выбирать размерность таблиц эмбеддингов каждого признака, а теперь только одной. Кажется, в том, что предлагают исследователи из DeepMind, одни плюсы и никаких минусов 🧙♂️.
Для распределения значений признаков по таблицам эмбеддингов можно использовать хеш-функции. Помимо снижения необходимого объёма памяти это позволяет дообучать модели онлайн. При появлении нового значения не нужно увеличивать таблицу — достаточно посчитать хеш-значения и использовать уже существующую строку.
Недостаток использования хеш-функций – снижение метрик из-за возникающих коллизий. Однако можно подобрать компромисс, при котором потери в качестве модели будут малы, а количество места, занимаемого эмбеддингами, снизится в несколько раз.
Авторы статьи предлагают подход к построению таблиц эмбеддингов, который называется Feature Multiplexing Framework. Идея в том, чтобы использовать одну таблицу для представления разных признаков. Переиспользование параметров позволяет уменьшить требования к памяти и время поиска. При этом качество предсказаний не страдает, так как модели проще научиться работать с коллизиями между разными признаками, чем с коллизиями внутри одного признака. Это происходит из-за того, что обработка разных признаков происходит разными частями модели, каждая со своим набором обучаемых параметров. В качестве такой модели можно использовать DCN-V2.
Авторы приводят результаты применения предложенного подхода к пяти задачам. Во всех экспериментах увеличились как офлайн, так и онлайн метрики (см. таблицу в начале поста). Более того, Feature Multiplexing Framework уменьшает количество гиперпараметров: раньше нужно было выбирать размерность таблиц эмбеддингов каждого признака, а теперь только одной. Кажется, в том, что предлагают исследователи из DeepMind, одни плюсы и никаких минусов 🧙♂️.
🔥5❤1✍1
ML — это ОК
🏗️🏠Иногда на ридинг-группе мы выходим за рамки обычной тематики: машинного обучения, рекомендательных систем, анализа данных. Следующая встреча – именно такой случай. Настало время обсудить выбор напольных покрытий! Профессиональный строитель дата-платформ…
Media is too big
VIEW IN TELEGRAM
🎬Запись ридинг-группы от 2 ноября. Владимир Ермаков, разработчик ОК, рассказал о внутреннем устройстве формата parquet.
👍7❤4👏2
Перед выкаткой в прод наши ML-модели проходят через А/Б-эксперименты, чтобы мы могли оценить их эффективность на онлайн-метриках. Если вам интересно, как проходит А/Б-тестирование в Одноклассниках, почитайте статью, которую подготовили наши коллеги из продуктовой аналитики
https://habr.com/ru/companies/odnoklassniki/articles/772958/
https://habr.com/ru/companies/odnoklassniki/articles/772958/
🔥14👍1🆒1
И чтоб два раза с Хабром не вставать. Наш разработчик группы ML Сергей Михайлин сделал обзор современных подходов к персонализации text-to-image моделей на базе открытой архитектуры Stable Diffision. Он поделился техническими подробностями каждого подхода и проанализировал их применимость в реальных высоконагруженных системах. Также на основании собственных экспериментов по персонализации text-to-image моделей, он сделал список возникающих при решении этой задачи проблем и перспективных способов их решения.
https://habr.com/ru/companies/odnoklassniki/articles/773578/
https://habr.com/ru/companies/odnoklassniki/articles/773578/
Хабр
Обзор современных подходов персонализации диффузионных нейронных сетей
Задача персонализации text-to-image модели состоит в донастройке предобученной нейронной сети так, чтобы она могла генерировать изображения заданного объекта в выбранных сценах. Несмотря на то, что...
🔥9
🎓Продолжаем публиковать разборы статей с #recsys23
TRENDING NOW: MODELING TREND RECOMMENDATIONS
https://www.amazon.science/publications/trending-now-modeling-trend-recommendations
TRENDING NOW: MODELING TREND RECOMMENDATIONS
https://www.amazon.science/publications/trending-now-modeling-trend-recommendations
В статье рассматривается задача построения рекомендаций «Сейчас в тренде». Она состоит в определении айтемов рекомендательной системы, которые быстрее других набирают популярность у пользователей. Чтобы формализовать определение трендовых айтемов, авторы вводят несколько определений:
- временной шаг — временной интервал с предопределенной длительностью Δt (например, 1 час);
- скорость роста популярности айтема W(t) — количество взаимодействий пользователей с айтемом за один временной шаг;
- ускорение роста популярности айтема A(t) — разность скорости айтема в текущий временной шаг с его скоростью в предшествующий временной шаг.
Авторы предлагают для каждого айтема прогнозировать его ускорение в следующем временном шаге A(t+1) и считать трендовыми айтемы с наибольшим предсказанным ускорением. Так как количество взаимодействий в текущий и все предшествующие временные шаги известно, задача сводится к прогнозированию временного ряда.
Кроме данных о количестве взаимодействий в рекомендательных системах доступна информация о пользователях, совершающих эти взаимодействия. Гипотеза статьи состоит в том, что если аудитория двух айтемов сильно пересекается, то они будут следовать одинаковым трендам. Для учета коллаборативной информации авторы предлагают архитектуру TrendRec, которая состоит из двух компонентов (см. рисунок):
- коллаборативный компонент, реализованный с помощью стандартной two-tower модели на GRU4Rec, решает задачу next item prediction;
- авторегрессионный компонент предсказывает ускорение айтемов с помощью модели DeepAR и эмбеддинга айтема.
Таким образом коллаборативный и авторегрессионный компоненты уточняют друг друга, деля между собой общий эмбеддинг айтема.
Для оценки качества предсказания трендовых айтемов авторы разработали две собственные метрики. В экспериментах на пяти датасетах по предложенным метрикам TrendRec победил все бейзлайны🌈.
- временной шаг — временной интервал с предопределенной длительностью Δt (например, 1 час);
- скорость роста популярности айтема W(t) — количество взаимодействий пользователей с айтемом за один временной шаг;
- ускорение роста популярности айтема A(t) — разность скорости айтема в текущий временной шаг с его скоростью в предшествующий временной шаг.
Авторы предлагают для каждого айтема прогнозировать его ускорение в следующем временном шаге A(t+1) и считать трендовыми айтемы с наибольшим предсказанным ускорением. Так как количество взаимодействий в текущий и все предшествующие временные шаги известно, задача сводится к прогнозированию временного ряда.
Кроме данных о количестве взаимодействий в рекомендательных системах доступна информация о пользователях, совершающих эти взаимодействия. Гипотеза статьи состоит в том, что если аудитория двух айтемов сильно пересекается, то они будут следовать одинаковым трендам. Для учета коллаборативной информации авторы предлагают архитектуру TrendRec, которая состоит из двух компонентов (см. рисунок):
- коллаборативный компонент, реализованный с помощью стандартной two-tower модели на GRU4Rec, решает задачу next item prediction;
- авторегрессионный компонент предсказывает ускорение айтемов с помощью модели DeepAR и эмбеддинга айтема.
Таким образом коллаборативный и авторегрессионный компоненты уточняют друг друга, деля между собой общий эмбеддинг айтема.
Для оценки качества предсказания трендовых айтемов авторы разработали две собственные метрики. В экспериментах на пяти датасетах по предложенным метрикам TrendRec победил все бейзлайны🌈.
👍3✍2