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

Контакты: @anokhinn
Download Telegram
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
ML — это ОК
Статья с #recsys23 RETHINKING MULTI-INTEREST LEARNING FOR CANDIDATE MATCHING IN RECOMMENDER SYSTEMS https://arxiv.org/abs/2302.14532
Статья предлагает новый метод для решения задачи Multi-Interest Learning. В этой задаче пользователь представляется не единственным эмбеддингом, а набором из k эмбеддингов-интересов. Обучение интересов происходит в два этапа (см. рисунок):

1. Item representation. Последовательность айтемов, которыми интересовался пользователь, представляется в виде матрицы эмбеддингов размерности n x d, где n – длина последовательности, d – размерность эмбеддинга.
2. Multi-interest routing. Полученная матрица эмбеддингов умножается на обучаемую routing matrix размерности n x k. Routing matrix определяет соответствие айтемов интересам. В итоге получаем матрицу интересов пользователя размерности k x d.

Авторы статьи рассказывают про две проблемы, с которыми они столкнулись при решении задачи multi-interest learning, и предлагают модификацию REMI, которая позволяет решить эти проблемы.

Проблема 1: Sampled Softmax Loss. Типичный размер каталога айтемов в современных рекомендерах – сотни тысяч. Чтобы не считать функцию потерь по всем айтемам, предлагается использовать Sampled Softmax Loss. Для подсчёта ошибки он берёт только позитивный айтем и небольшое число негативных айтемов.

Проблема заключается в том, что в качестве негативных айтемов могут быть выбраны айтемы, которые выступают в качестве других интересов пользователя. Рассмотрим пользователя, чья последовательность включает продукты питания, электронику и сумки. В качестве позитивного айтема пусть выступает сумка. В качестве негативных айтемов будут выбраны айтемы, непохожие на сумку. Например, компьютер (интерес — электроника), хлеб (интерес — продукты) или пиджак. Однако эти айтемы могут выступать в качестве других положительных интересов пользователя.

Чтобы решить эту проблему авторы статьи предлагают новый подход к негативному семплированию. Идея заключается в том, чтобы в качестве негативных брать только те айтемы, с которыми пользователь ещё не провзаимодействовал, и эмбеддинги которых близки к эмбеддингу позитивного айтема.

Проблема 2: Multi-Head Attention. Авторы статьи заметили, что после нескольких эпох обучения интересы «фокусируются» на отдельных айтемах из последовательности пользователя. В итоге каждый интерес пользователя представлен только одним айтемом. Для решения этой проблемы авторы вводят регуляризатор дисперсии для routing matrix.

Сравнение производительности различных методов производилось на трех открытых наборах данных. Во всех экспериментах REMI превзошел как single-interest, так и multi-interest конкурентов (см. таблицу)👩‍💻.
🔥62
Вышла статья Adversarial Diffusion Distillation, в которой представили быструю версию SDXL (без refiner-stage). Добились этого за счёт симбиоза дистилляции и GAN-подхода.

Дистилляция:
1. Ученик (идентичен учителю по архитектуре и изначальным весам) выполняет стандартный для диффузии процесс предсказания. Но при этом выбирает один из четырёх доступных шагов.
2. Аналогичное выполняет учитель, но располагает обычным диапазоном шагов — от 0 до 1000.
3. Разница (distillation loss) между шагом 2 и 3 считается с помощью L2 Loss.

Для улучшения результатов дополнительно применяется adversarial loss. Он считается благодаря сети, задача которой классифицировать сгенерировано на два класса: fake/real (аналогично GAN-подходам). Классификация применяется поверх признаков полученных с помощью DINOv2 (ViT-S).

В рамках наших экспериментов такая версия SDXL генерирует новое изображение за 200-340 мс (1-4 шага генерации) и при этом занимает 9 GB VRAM.
🆒3🔥2
💻Продолжаем разбор #recsys23
INTEGRATING OFFLINE REINFORCEMENT LEARNING WITH TRANSFORMERS FOR
SEQUENTIAL RECOMMENDATION
https://arxiv.org/abs/2307.14450
ML — это ОК
💻Продолжаем разбор #recsys23 INTEGRATING OFFLINE REINFORCEMENT LEARNING WITH TRANSFORMERS FOR SEQUENTIAL RECOMMENDATION https://arxiv.org/abs/2307.14450
В статье решается задача последовательных рекомендаций, в которой очередная рекомендация строится, исходя из предыдущих взаимодействий пользователя. Цель авторов – оптимизировать долгосрочную метрику рекомендера. Для этого они предлагают использовать offline reinforcement learning.

В основе подхода – алгоритм Actor-Critic, в котором обучаются две модели: actor и critic (сюрприз!).

- Actor принимает на вход последовательность айтемов пользователя и выдаёт рекомендацию (policy). Для эмбеддинга последовательности используется трансформер на основе DistilGPT2.

- Critic оценивает долгосрочный эффект (Q-функцию) рекомендации, которую выдал actor, также используя последовательность айтемов пользователя. Здесь последовательность эмбеддится с помощью LSTM.

Процесс рекомендаций смоделирован, как задача последовательного принятия решений RL-агентом. Оказалось, что обучать такую архитектуру только с помощью RL неэффективно, поэтому actor сперва предобучают на задаче next-item-prediction. После этого вся архитектура учится оптимизировать долгосрочный reward с помощью алгоритма CRR.

Эксперименты проводились на датасетах MovieLens 25M и Yoochoose. Предложенная архитектура сравнивалась как с бейзлайнам (SASRec, Caser), так и с собственными отдельными компонентами (Transformer-only, CRR-only). На графиках показаны кривые обучения двух этапов эксперимента на MovieLens-25M. На первом этапе претрейна Transformer-only модель быстро достигает лучших результатов. На втором этапе с помощью CRR файнтюнинга авторы улучшили модель, добившись роста метрики в 1,5 раза. В итоге предложенная модель победила бейзлайны в 11 из 12 экспериментов. Авторы не представили результаты A/B-тестов реальных рекомендеров. Так что предложенный метод пока можно считать теоретическим — он ещё требует проверок в «реальном бою».
👍91
Media is too big
VIEW IN TELEGRAM
🎥Запись ридинг-группы от 30 ноября 2023. Максим Кодрян представлял свою статью с NeurIPS'21
🔥6👍1👏1
Наш разбор статей #recsys23 продолжается!
LIGHTSAGE: GRAPH NEURAL NETWORKS FOR LARGE SCALE ITEM RETRIEVAL IN SHOPEE’S ADVERTISEMENT RECOMMENDATION
https://arxiv.org/abs/2310.19394v1
В работе представлена реализация рекомендательной системы сингапурского онлайн-магазина Shopee. Эта рекомендательная система основана на графовой нейронной сети, где каждый пользователь представлен графом, построенным на основе активности пользователя в онлайн-магазине.

В этом графе:
- вершины – айтемы, с которыми пользователь взаимодействовал;
- признаки вершин – заранее обученные эмбеддинги айтемов;
- рёбра – переходы пользователя от одного товара к другому.

Задача нейронной сети — порекомендовать дополнительные товары на основе графа пользователя и айтема, который он просматривает в данный момент.

Общий алгоритм работы графового рекомендера такой:
1. Пользователь просматривает айтем A.
2. Векторы признаков вершин, из которых можно попасть в айтем A за n шагов, усредняются с некоторыми весами.
3. Полученный вектор признаков подаётся на вход нейронной сети, которая вычисляет предсказание модели.

Авторы статьи предлагают три модификации общего алгоритма: новый алгоритм построения графа, новую архитектуру и новый подход к учёту айтемов из хвоста (long-tail).

Ключевой вклад состоит в построении графа. Идея в том, чтобы использовать только очень существенные действия пользователя для построения ребра между товарами. Мотивация — подавление шума. Например, учитывается только переход из описания айтема A на страницу айтема B. Проблема в том, что если оставить только такие рёбра, то граф получается разреженным. Чтобы уплотнить граф, авторы использовали два алгоритма добавления рёбер:

- Первый — реализация алгоритма Swing за авторством исследователей Alibaba.
- Второй основан на поиске по онлайн-магазину: если пользователь сделал поисковый запрос, и просмотрел айтем A и айтем B, то эти товары соединяются ребром.

Полученный граф используется для обучения модели и предсказаний.

Для улучшения архитектуры нейронной сети авторы уменьшили количество слоёв и убрали из некоторых слоёв нелинейные активации. В итоге по объёму памяти и по числу нелинейных операций сеть стала меньше конкурирующих решений.

Long-tail айтемы обрабатываются двумя разными способами — на обучении и на inference.

- При обучении айтемы из хвоста группируются по похожести. Векторы признаков усредняются внутри групп для дальнейшего использования в графе.
- На inference стратегия меняется — eсли long-tail айтем соединён ребром с айтемом, который сейчас просматривает пользователь, то он обрабатывается как обычный айтем (усреднение по соседям не применяется). В противном случае — long-tail айтем обрабатывается так же, как и при обучении (применяется алгоритм усреднения).

Общая архитектура показана на картинке. Описанный в статье алгоритм был внедрён в продакшен. Он продемонстрировал более высокую точность по сравнению с конкурентами на офлайн-данных и на A/B-тестировании. В эксперименте выросло число заказов и прибыль онлайн-магазина.🎯
🔥3👍2
Статьи с #recsys23 все не заканчиваются!
STREC: SPARSE TRANSFORMER FOR SEQUENTIAL RECOMMENDATIONS
https://dl.acm.org/doi/10.1145/3604915.3608779
👍2