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

Контакты: @anokhinn
Download Telegram
🦙🌴Пока люди (наверное, они биологи?) пытаются решить, что круче — лама или пальма, мы продолжаем обсуждать действительно важные вещи: заведение нейросетевых рекомендеров в продакшен.

На ридинг-группе 27 июля в 17.00 МСК обсудим модель DLRM и её реализацию на torchrec с дообучением онлайн. Ведущим будет Роман Болозовский, ML-инженер из команды Ленты ОK.
🔥11
Сегодня рассказываем про классную статью с ICML 2023. На одном из митапов ребята из ВКонтакте озвучили идею: метрика, на которую мы настраиваем рекомендер, подсказывает авторам, какой контент мы от них ждём. Например, если площадка настраивает модель на рост timespent, то авторы будут мотивированы писать лонгриды, причем хорошо читаемые. В статье эта идея исследована (и формализована) в разрезе разнообразия рекомендаций. Авторы выстраивают свою стратегию так, чтобы их контент получал от рекомендера максимальный скор, и, следовательно, максимальные охваты. А значит, когда мы добавляем компонент разнообразия в loss модели, авторам ничего не остаётся, кроме как разнообразить свой контент. Более того, сам компонент разнообразия можно сформулировать так, чтобы поощрять именно «будущее» разнообразие контента, а не наблюдаемое в исторических данных.

Предположения, использованные в статье, скорее, не выполняются в реальных системах. Например, предполагается, что разработчики рекомендера знают, сколько стоит изменение контента для авторов, а авторы наблюдают скоры модели. Из-за этого напрямую реализовать предложенный подход в продакшен не получится. Тем не менее, результаты экспериментов получились важные. Во-первых, рекомендер определяет не только благополучие потребителей контента, но и стратегическое поведение авторов. Во-вторых, если постоянно поощрять только релевантность, со временем контент на платформе становится очень одинаковым. Мы в ОК наступали на эти грабли, но сошли с них. Согласно этой статье, всё правильно сделали.
🔥10👍3
OK Tech Talk: приглашаем на митап «ML в production»

18 августа, мы устраиваем первый OK Tech Talk. Тема мероприятия — «ML в production». Ждём ML-инженеров, аналитиков и дата-сайентистов.

На митапе обсудим, как снизить отправку пушей и не просадить продуктовые метрики, какие технические и продуктовые проблемы решает схема item2item и как с помощью no-code auto ML-платформы автоматизировать большую часть работы разработчика. Докладчики — сотрудники ОК, Дзена и VK Predict.

Программа
17:00-17:30 — сбор участников, приветственный кофе-брейк
17:30-18:10 — «Less is more: как снизить отправку пушей и не просадить продуктовые метрики», Дарья Никанорова, ML Engineer, Одноклассники
18:10-18:50 — «Item2item схема в Дзене», Владислав Гончаренко, руководитель группы ранжирования видео, Дзен
18:50-19:00 — перерыв
19:00-19:40 — «No-code auto ML — демократизация машинного обучения», Арсений Селякин, программист-исследователь, и Артём Агафонов, руководитель команды геоаналитики, проект predict.
19:40- 20:30 — фуршет, свободное общение

Когда: 18 августа. Сбор участников — с 17:00 до 17:30. Старт докладов — в 17:30
Где: Санкт-Петербург, оранжерея Таврического сада (ПШпалерная, 43, 1-й этаж)
Как попасть: участие бесплатное, регистрация обязательна.
🔥10👍2
ML — это ОК pinned «OK Tech Talk: приглашаем на митап «ML в production» 18 августа, мы устраиваем первый OK Tech Talk. Тема мероприятия — «ML в production». Ждём ML-инженеров, аналитиков и дата-сайентистов. На митапе обсудим, как снизить отправку пушей и не просадить продуктовые…»
HyperDreamBooth

Вышла новая статья от Google, в которой предлагается усовершенствованный подход создания персонализированной Stable Diffusion. Авторы пытаются решить проблему предыдущих подходов — большой размер хранимых весов и долгое дообучение на конкретных фотографиях. Побороть эти проблемы предлагается тремя подходами: LiDB (Lightweight DreamBooth), HyperNetwork, Relaxed Fine-tuning.

Lightweight DreamBooth (LiDB)
Это модификация существующего подхода Low-Rank Adaptation: раскладываем веса слоёв внимания не на две матрицы A и B, а на четыре — две необучаемые полуортогональные и две обучаемые (r = 1) . За счёт низкой размерности обучаемых частей получается сократить размер хранимых весов до ~130Kb, при этом итоговое качество изображений не страдает.

HyperNetwork
Обучаемые веса из LiDB — это выходы гиперсети, задача которой предсказать наиболее оптимальные начальные параметры для генерации конкретного человека. На вход сети поступает изображение целевого человека, при этом на вход Text Encoder — заготовленная фраза вида a [V] face. На выходе получаем набор векторов, которые уже и подставляем на место обучаемых весов LiDB. Гиперсеть предварительно обучается на большом датасете (для людей можно взять CelebAHQ) и дальше используется только в режиме предсказания (занимает ~2 секунды).

Relaxed Fine-tuning
Схема из двух предыдущих подходов даёт неплохие генерации, но они захватывают недостаточное количество деталей целевого человека. Поэтому предлагается использовать выход гиперсети как стартовые значения для матриц внимания, с последующим их дообучением через LoRA разложение (r > 1).
Достаточно 40 итераций (~20-30 секунд) дообучения для получения качественных результатов. Это в разы быстрее всех предыдущих методов персонализации.
🔥10
Media is too big
VIEW IN TELEGRAM
В этом разборе мы рассмотрели нейронный рекомендер DLRM, фреймворк для рекомендательных систем с различными низкоуровневыми оптимизациями TorchRec, а также обсудили возможные пути улучшения существующих подходов с помощью Online Learning.
🔥11
Машинное обучение буквально построено на вычислении производных. С помощью backpropagation — алгоритма дифференцирования сложных функций — мы тренируем нейронные сети. Reparameterization trick (он помогает оценить градиенты в нейросетках с семплингом) открыл возможность обучения VAE. Этот пост про статью с ICLR 2019, в которой предложен метод дифференцирования сортировок 😲. Оператор NeuralSort приближенно переставляет компоненты входного вектора так, чтобы они оказались отсортированы. Алгоритм основан на паре красивых лемм и реализовывается на pytorch в десяток строк кода.

У человека, который занимается рекомендациями (меня), от такого учащается пульс и текут слюни. Можно напрямую учить отборщик кандидатов, работающий через kNN. Можно оптимизировать nDCG. Более того, авторы предложили дополнение, которое не просто сортирует компоненты вектора, а семплирует пропорционально этим компонентам. Это именно то, что используется в Boltzmann exploration! В общем, чего-то такого хотелось уже давно.

На практике все оказалось не так легко. С помощью алгоритма из статьи я реализовал лосс, оптимизирующий nDCG, и проверил его на синтетических данных. Оказалось, что алгоритм чувствителен к гиперпараметру, определяющему гладкость перестановки. Если его значение выбрано неправильно, то модель не выучивает даже простую монотонную функцию. Думаю, в реальном рекомендере c сотнями тысяч айтемов этот гиперпараметр будет сложно подобрать. Тем не менее есть работа, в которой утверждается, что подход с оптимизацией nDCG справляется с задачей ранжирования в поиске не хуже стандартных лоссов. Более того, целая серия статей развивает идею дифференцируемых сортировок. Как говорится, we will watch your career with great interest.

P. S. В своих экспериментах я обнаружил, что минимизация nDCG + инверсия предсказаний работает лучше, чем максимизация nDCG. Если у кого-то есть мысли, почему так может быть, напишите, пожалуйста, в комментариях. Исходный код тут.
🔥8👍3
What is Big Data? Hadoop Nerdcore Rap Music Video
Данное видео показывает, как примерно пройдёт наша ридинг группа 10 августа в 17:00.
Михаил Марюфич, руководитель OK Data Platform, расскажет о том, как масштабировать HDFS до экзабайтного размера. Разберём статьи от Uber и LinkedIn.
🔥8👍3😁2
В модели хищник-жертва рассматривается динамика популяций волков и заек. Чем больше заек, тем больше еды для волков. Волки кушают заек и размножаются. Со временем волков становится так много, что заек всем не хватает — и волки начинают вымирать от голода (и одиночества). А зайки, наоборот, плодиться. Размеры популяций так осциллируют, пока не наступит равновесие. Математики Лотка и Вольтерра изобрели эту модель 100 лет назад, а в 2023 исследователи из Израильского института Technion прикрутили ее к рекомендациям.

В их статье борьба ведется между полезностью рекомендаций для пользователя и его когнитивным бюджетом. Чтобы увеличить полезность, пользователь часто запрашивает новые рекомендации — но на их потребление тратится когнитивный бюджет. Когда бюджет истощается, падает и частота потребления рекомендаций, а за ней падает и полезность. Зато с уменьшением частоты появляется возможность восстановить когнитивный бюджет. Со временем, как и у заек с волками, наступает равновесие. Полезность, характеризующая это равновесие, и есть long-term user engagement, который все рекомендательные сервисы стараются увеличить. Для этого можно прокачивать алгоритмы рекомендаций, но авторы статьи предлагают дополнительный трюк.

Можно время от времени показывать пользователю уведомление с просьбой сделать перерыв: “Вы смотрите эти мемасики уже 16 часов, сходите поспите”. Помимо того что это классный пиар (следим за душевным благополучием пользователя!), оказывается, что, управляя частотой таких уведомлений, можно увеличить long-term engagement. Математика модели достаточно сложная, но для базовой реализации нужно только собрать данные для разных частот уведомлений и обучить на них рекомендательные модели. После этого задача нахождения персональной оптимальной частоты для каждого пользователя решается аналитически! Так что готовьте свои бэклоги.

Кажется, учёные долго наслаждались новым техническим аппаратом — машинным обучением — и гуманитарная сторона науки о рекомендациях ушла на второй план. Теперь, когда машинное обучение перестало давать новые результаты, исследователи черпают вдохновение в гуманитарных дисциплинах. В этом году я читал несколько статей про динамику рекомендательных систем, использующих идеи из психологии. В этих статьях все эксперименты проводятся на синтетических данных, потому что наблюдать рекомендательные системы в динамике у ученых возможности нет. Предсказываю, что в будущем компании (такие как ОК) будут больше с этим помогать.
🔥17
ML — это ОК
What is Big Data? Hadoop Nerdcore Rap Music Video Данное видео показывает, как примерно пройдёт наша ридинг группа 10 августа в 17:00. Михаил Марюфич, руководитель OK Data Platform, расскажет о том, как масштабировать HDFS до экзабайтного размера. Разберём…
Привет! Напоминаем, сегодня в 17:00 МСК, пройдет очередная ридинг группа.

Михаил Марюфич, руководитель OK Data Platform, расскажет о том, как масштабировать HDFS до экзабайтного размера. Разберём статьи от Uber и LinkedIn.

Ждем всех в zoom по ссылке
🔥11
Media is too big
VIEW IN TELEGRAM
Запись ридинг группы 10.08
"Как масштабировать HDFS до экзабайтного размера"
🔥112🆒21
Помните финал фильма Изгой-Один? Повстанец через щель в заклинившей двери дрожащей рукой передает на спасательный корабль чертежи “Звезды Смерти”, пока к нему приближается крушащий все на своем пути Дарт Вейдер. Примерно так я представляю себе момент загрузки на arXiv статьи Methodologies for Improving Modern Industrial Recommender Systems. Повстанец – автор статьи Shusen Wang, уволившийся из крупной китайской социальной сети, где занимался рекомендательными системами. Дарт Вейдер – тоталитарный энтерпрайз, который не хочет, чтобы его секреты были раскрыты. Может, я преувеличиваю, но статья – must read для тех, кто занимается индустриальными рекомендерами, особенно в социальных сетях (это мы!).

Каждый раздел статьи рассказывает про один компонент large-scale рекомендера (видимо, других в Китае не бывает). Как он может быть устроен, какие идеи работают, а какие — не взлетают. Это нетипичная научная статья: в ней нет экспериментов, таблиц и графиков. Но читая её, понимаешь, что советы проверены реальной жизнью. Вот неполный список того, что можно узнать:
- Как отбирать позитивные и негативные примеры при обучении отборщика кандидатов.
- Какие архитектуры отборщика кандидатов лучше, чем two-tower на персептронах.
- Какие трюки в ранкерах обязательны, какие желательны, а какие бесполезны: pre-ranking, multi-tasking, debiasing, mixture-of-experts, online дообучение.
- Стратегии по diversity.
- Как учесть в рекомендере поведение новых и неактивных пользователей.
- Как с помощью моделей вдохновить пользователей создавать посты, приводить аудиторию со сторонних сервисов.
В общем, пока Дарт Вейдер не удалил эту статью, я сохранил её на компьютер, записал на компакт-диск, распечатал и выучил наизусть. Чтобы пользоваться.
🔥10😁4
Работа с popularity bias в рекомендациях — ещё одна вещь, похожая на подростковый секс: все говорят, что делали это, но это они только говорят. Поговорим и мы на ридинг-группе 24 августа в 17:00. Рассказывать про статью Countering Popularity Bias By Regularizing Score Differences с прошлогоднего Recsys будет Петр Погорелов, ML-инженер в ОК.
😁113🔥2
Сегодня наша команда проводит OK Tech Talk: «ML в production». Докладчики — сотрудники ОК, Дзена и VK Predict.

Обсуждаем, как снизить отправку пушей и не просадить продуктовые метрики, какие технические и продуктовые проблемы решает схема item2item и как с помощью no-code auto ML-платформы автоматизировать большую часть работы разработчика.
🔥25👍21
Потихоньку разбираем ссылки из статьи, про которую писали в одном из предыдущих постов. В статье решается проблема недостатка данных для айтемов из “хвоста”. Это айтемы, которые пользователи оценивают слишком редко, чтобы получить для них качественный эмбеддинг в стандартной двухбашенной архитектуре отборщика кандидатов. Как обычно, в таких случаях на помощь приходят признаки айтемов — они используются не только для предсказания коллаборативного сигнала (как в LightFM), но и для аугментации в contrastive learning. Расстояние между эмбеддингами двух аугментаций одного айтема, должно быть маленьким, а расстояние между аугментациями разных айтемов — большим. Не слишком свежая идея, но авторы приводят рецепты, как завести её на практике и результаты A/B-экспериментов в рекомендере приложений Google Play Store. Например, качество рекомендаций новых приложений улучшилось на 4,5%. Особенно оценят статью те, кто занимается item2item рекомендерами (кстати, в ОК таких рекомендеров как минимум четыре).
👍51🔥1
ML — это ОК
Работа с popularity bias в рекомендациях — ещё одна вещь, похожая на подростковый секс: все говорят, что делали это, но это они только говорят. Поговорим и мы на ридинг-группе 24 августа в 17:00. Рассказывать про статью Countering Popularity Bias By Regularizing…
Напоминаем, через 20 минут начнется очередная ридинг группа.

Пётр Погорелов, ML-инженер в ОК, расскажет о том, как бороться проблемой popularity bias в рекомендательных системах.

Ссылка на встречу
🔥7