ML — это ОК
2.08K subscribers
83 photos
45 videos
1 file
149 links
Канал ML-команды ОК. 12 лет делаем крутые вещи и делимся ими здесь

Контакты: @anokhinn
Download Telegram
ML — это ОК
AUGMENTED NEGATIVE SAMPLING FOR COLLABORATIVE FILTERING https://arxiv.org/abs/2308.05972
В задаче рекомендаций с неявным фидбэком данные состоят только из «положительных» пар пользователь-айтем. Например, в рекомендациях видео положительными могут считаться ролики, которые пользователь посмотрел до конца. Для того чтобы обучить модель, нужны и «отрицательные» пары – их получают с помощью процедуры семплирования негативных. Базовый вариант этой процедуры – выбирать в качестве негативных айтемы пропорционально их популярности.

Авторы статьи предлагают новый подход к семплированию негативных, основанный на аугментации данных. Факторы, которые описывают айтемы, делятся на две группы:
- easy factors (легкие факторы);
- hard factors (сильные факторы).
Сильные факторы положительно влияют на качество модели, в то время как легкие факторы ухудшают модель или ничего не меняют. Нужно специальным образом зашумить легкие факторы и объединить их с сильными факторами. С помощью жадного алгоритма из получившегося множества аугментированных айтемов отбирают несколько сэмплов в качестве негативных.

Авторы оценивали эффективность своего метода на трёх датасетах с использованием матричной факторизации с BPR лоссом. Почти во всех экспериментах предложенный алгоритм оказался лучше конкурентов. Недостатки подхода такие:
- время обучения вдвое больше, чем при базовом семплировании негативных;
- добавляется два гиперпараметра, которые нужно настраивать под конкретные данные. #recsys23
👍42
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.
4🔥1
📖Новая неделя – новые разборы статей с #recsys23
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%.
4
#recsys23
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, одни плюсы и никаких минусов 🧙‍♂️.
🔥511
Перед выкаткой в прод наши ML-модели проходят через А/Б-эксперименты, чтобы мы могли оценить их эффективность на онлайн-метриках. Если вам интересно, как проходит А/Б-тестирование в Одноклассниках, почитайте статью, которую подготовили наши коллеги из продуктовой аналитики
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/
🔥9
🎓Продолжаем публиковать разборы статей с #recsys23
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 победил все бейзлайны🌈.
👍32
Вашему вниманию предлагается очередной разбор статьи с #recsys23
UNCOVERING USER INTEREST FROM BIASED AND NOISED WATCH TIME IN VIDEO RECOMMENDATION
https://arxiv.org/abs/2308.08120
ML — это ОК
Вашему вниманию предлагается очередной разбор статьи с #recsys23 UNCOVERING USER INTEREST FROM BIASED AND NOISED WATCH TIME IN VIDEO RECOMMENDATION https://arxiv.org/abs/2308.08120
При работе с рекомендациями видео часто стоит задача спрогнозировать время, в течение которого пользователь будет просматривать ролик (watch time). На этот показатель, помимо собственно интереса пользователя к видео, влияют и другие факторы:

- Duration Bias. Чем больше длительность видео, тем больше будет watch time. Это приводит к тому, что рекомендер будет чаще предлагать длинные видео, вне зависимости от реального интереса пользователя.
- Noisy Watching. Пользователям нужно некоторое время, чтобы понять, нравится видео или нет. Поскольку пользователи доверяют рекомендательным системам и вообще падки на кликбейт, то часто наблюдается такой паттерн: пользователь запускает рекомендованное видео, далее в течение нескольких секунд понимает, что оно не нравится, и закрывает его. При этом в системе залогируется ненулевой watch time, на котором потом будет учиться рекомендательная модель.

На графиках проиллюстрированы эти эффекты. Слева – рост watch time при увеличении duration для понравившихся видео, а справа – существенно отличные от нуля времена просмотров для непонравившихся видео.

Авторы анализируют существующие подходы к предсказанию времени просмотра: Play Complete Rate (PCR), Watch Time Gain (WTG), Duration-Deconfounded Quantile-based Method (D2Q). Эти методы используют эвристические модификации watch time в качестве показателя пользовательского интереса. Их недостаток в том, что они требуют выполнения условий, которые нарушаются в реальных задачах.

В статье предложен новый подход Debiased and Denoised Watch Time Correction (D2Co). Видео группируются по длительности, затем строятся распределения времени просмотра внутри каждой группы. Оказывается, что эти распределения носят бимодальный характер. Поэтому делается допущение, что watch time можно приблизить моделью гауссовой смеси (Gaussian Mixture Model) из двух компонент:
- первая отвечает за duration-biased watch time;
- вторая — за noisy watching составляющую.
При этом авторы делают смелое допущение (wild assumption), что эти компоненты имеют нормальные распределения. Для получения чистого пользовательского интереса к видео эти компоненты выучиваются и удаляются из watch time.

Работа модели проверялась на двух датасетах (WeChat, KuaiRand) с видео длительностью от 5 от 240 секунд. Для определения «реального» пользовательского интереса использовались лайки, комментарии, а также длинные просмотры. В качестве рекомендательных моделей брались матричные факторизации на PyTorch. Новая модель сравнивалась с упомянутыми выше (PCR, WTG, D2Q) по метрикам GroupAUC и nDCG@K.

На всех тестах новая модель показала прирост в метриках, но незначительный — в третьем знаке после запятой. Кроме того, авторы провели А/B-тестирование, которое также показало небольшой прирост.

С одной стороны, предложенный подход помогает очистить время просмотра от «мусорных» компонент и оставить в нём только чистый пользовательский интерес. Алгоритм легко реализовать, но потребуется время на подбор гиперпараметров. С другой стороны, прирост в метриках небольшой, и кажется, что в большинстве случаев можно ограничиться простой WTG-моделью, дополненной эвристиками для удаления выбросов. Теоретически этот подход применим не только к видео, но и, например, к рекомендациям длинных текстов, хотя для них гораздо сложнее определить «время просмотра» 📖.
🆒6👍1
Новый разбор статьи с #recsys23
MULTI-TASK ITEM-ATTRIBUTE GRAPH PRE-TRAINING FOR STRICT COLD-START ITEM RECOMMENDATION
https://arxiv.org/abs/2306.14462
ML — это ОК
Новый разбор статьи с #recsys23 MULTI-TASK ITEM-ATTRIBUTE GRAPH PRE-TRAINING FOR STRICT COLD-START ITEM RECOMMENDATION https://arxiv.org/abs/2306.14462
🥶Статья посвящена задаче рекомендации strict cold-start (SCS) товаров, то есть таких товаров, которые модель не видела в момент обучения, потому что у них нет истории взаимодействия с пользователями. То есть на инференсе про SCS-товары известно только их описание.

Основная идея в том, что множество атрибутов товаров стабильно – новые атрибуты появляются значительно реже новых товаров. Таким образом, даже у SCS-товара большая часть атрибутов не будут новыми и на их основании можно охарактеризовать сам товар.

Предлагаемая в статье архитектура состоит из следующих шагов (см. картинку):

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

- В первом блоке модели для атрибутов и товаров строятся эмбеддинги с помощью PLM (BERT), затем с помощью интерпретатора (MLP) эмбеддинги приводятся к более информативному виду, фильтруется шум. После этого эмбеддинги проходят GNN, чтобы выучить связи «товар-атрибут».

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

- В третьем блоке в эмбеддинги товаров добавляется информация об отзывах пользователей. Чтобы не путать с атрибутами, выделяемая из отзыва информация называется терм отзыва. Термы выделяются из текста отзыва как эмоциональные фразы. Затем эмоция во фразах упрощается до уровня «плохой», «хороший». Эмбеддинги полученных термов строятся аналогично эмбеддингам атрибутов с помощью PLM, интерпретатора и GNN.

Эксперимент проводился на трёх датасетах (Yelp, Amazon-home, Amazon-sports), таким образом, что на тесте на вход модели подавались только SCS-товары. При сравнении с моделями, обучаемыми на том же датасете, представленная в статье модель показала прирост NDCG@5 до 64% и Recall@5 до 47%. При сравнении с предобученной UniSRec по метрикам было примерно равенство, что авторы тоже считают успехом, поскольку предобучалась UniSRec на существенно большем датасете. В статье есть ссылка на репозиторий с исходным кодом и датасетами, подробно анализируются гиперпараметры.
🔥101🆒1
Недавно мы писали про статью наших коллег-аналитиков, рассказывающую про А/Б-анализатор в Одноклассниках. Но на хорошем анализаторе борьба за точность результатов экспериментов не заканчивается. Например, для нас как для социальной сети характерны сетевые эффекты в экспериментах. Что это такое и как с этим жить — в новой статье на Хабре

https://habr.com/ru/companies/odnoklassniki/articles/774668/
🔥8🆒21
Статья с #recsys23
SCALING SESSION-BASED TRANSFORMER RECOMMENDATIONS USING OPTIMIZED NEGATIVE SAMPLING AND LOSS FUNCTIONS
https://arxiv.org/abs/2307.14906
ML — это ОК
Статья с #recsys23 SCALING SESSION-BASED TRANSFORMER RECOMMENDATIONS USING OPTIMIZED NEGATIVE SAMPLING AND LOSS FUNCTIONS https://arxiv.org/abs/2307.14906
В статье команда рекомендаций из маркетплейса OTTO предлагает модификацию SASRec, которая называется TRON. В этой модификации используется отличная от оригинального SASRec функция потерь и изменённая схема семплирования негативных.

В качестве функции потерь вместо бинарной кросс-энтропии, которая используется в SASRec, авторы решили использовать listwise лосс — sampled softmax (SSM).

Семплирование негативных состоит из следующих этапов:
1. Равномерно семплируем негативные из айтемов в батче (in-batch).
2. Семплируем айтемы пропорционально частоте (frequency).
3. Объединяем списки, полученные в пунктах 1 и 2.
4. Из объединённого списка после получения скоров для каждого айтема, отбирается топ K самых негативных айтемов по скору.

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

В экспериментах TRON представлен двумя наборами гиперпараметров:

- TRON L-Negs. 8192 in-batch + 127 frequency негативных.
- TRON XL-Negs. 16384 in-batch + 127 frequency негативных.

В качестве бейзлайнов выступают GRU4Rec и различные модификации SASRec (см. картинку). Авторы сравнивают TRON с этими бейзлайнами на трёх публичных наборах данных по метрикам MRR@20 и recall@20. В итоге TRON победил в пяти из шести экспериментов, а время обучения уменьшилось на 25% по сравнению в SASRec. В A/B-тестах авторы также добились статистически значимого прироста в ~18% в метрике CTR против модели SASRec на SSM лоссе. Код предложенной модели со всеми датасетами выложен на GitHub.

Результаты показывают, что сочетание listwise лосс с отбором топ K негативных из большого семпла даёт значительный результат, поэтому такой подход можно брать на вооружение и пробовать у себя.
2👍2
📄👑На следующей ридинг-группе – гостевой доклад: Максим Кодрян из ВШЭ представит свою статью с конференции NeurIPS 2021. В статье исследуется любопытное периодическое поведение при обучении нейросетей с нормализацией и weight decay. Приходите послушать доклад 30 ноября в 17.00.

Зум: https://us05web.zoom.us/j/85378560898?pwd=AVTAzsDeAAgtSfUoUdUQz1l7ZtyaWs.1
🔥5🤩1
Статья с #recsys23
RETHINKING MULTI-INTEREST LEARNING FOR CANDIDATE MATCHING IN RECOMMENDER SYSTEMS
https://arxiv.org/abs/2302.14532