Разработка рекомендательных систем: три открытых библиотеки от Сбера
Делимся своими открытыми библиотеками для разработки рекомендательных систем. Что? Да! Рассказываем подробнее. Всем известно, что Сбер это уже не просто банк, а огромная технологическая компания, которая включает в себя и сервисы компаний-партнёров: электронную коммерцию, индустрию развлечений и даже медицину. Количество пользователей достигло 108 млн, и для каждого из них мы создаём персональные рекомендации, которые помогают не потеряться в разнообразии предложений и выбрать лучшее.
Например, наши рекомендательные системы помогают собрать продуктовую корзину в «СберМаркете», подобрать интересный фильм на платформе онлайн‑кинотеатра Оkkо и сформировать бесконечный поток релевантных треков в режиме реального времени в Hi‑Fi‑стриминге «Звук». Для разработки рекомендательных систем мы используем библиотеки. Чтобы воспользоваться ими, не обязательно работать в Сбере, хотя почему бы и да. Сейчас мы расскажем про самые классные из них: постараемся коротко и по делу. Начнём!
RePlay
Это фреймворк для создания на основе больших данных и сравнения систем для офлайн-рекомендаций. Эта библиотека позволит унифицировать шаги по подготовке данных с обучением моделей и оценкой качества полученных моделей. RePlay использует pySpark и может быть запущен в локальном и кластерном режимах, а ещё позволяет создавать свои метрики и модели и встраивать их в конвейер обучения.
Чем хороша библиотека?
В ней содержатся более 15 готовых алгоритмов для различных рекомендательных задач: в RePlay реализованы классические бейзлайны, коллаборативные модели, нейросетевые подходы и обёртки вокруг популярных библиотек.
Реализованы более 10 метрик для оценки качества и разнообразия рекомендаций.
Содержит полезные инструменты для подготовки данных, их фильтрации и разбиения.
Позволяет удобно сравнивать модели по набору метрик.
Для каждой модели определяются наиболее значимые параметры, которые можно оптимизировать автоматически.
Доступно переранжирование рекомендаций из различных источников с помощью двухуровневой модели.
Фреймворк использует распределённую архитектуру, что позволяет запускать его на большом объёме данных в кластере.
LightAutoML
Это один из самых популярных наших Open Source-продуктов, он вошёл в топ-3 фреймворков для автоматического построения моделей машинного обучения по признанию AutoML-команд Кремниевой долины. Этот инструмент решает классические задачи машинного обучения: классификацию, регрессию, uplift в режиме практически полной автоматизации. LightAutoML позволяет сократить время на разработку ML-модели, и помогает разработчику сосредоточиться на более важных вещах. Подавайте данные, формулируйте целевую функцию, а библиотека сама переберёт методы и параметры.
Чем хороша библиотека?
Доступно решение задач со всеми типами данных: таблицами, текстом, изображениями. Специальные версии для больших данных для Spark и GPU-стека.
Автопроверка и бенчмаркинг помогают быстро проверять гипотезы и находить нестандартные подходы.
Есть набор пресетов: шаблоны для наиболее популярных задач регрессии и классификации.
По итогам обработки автоматически создаётся подробный отчёт, который помогает выбрать оптимальную модель и интерпретировать результат.
Модульная архитектура и возможность кастомизации под индивидуальные нужды.
Если эта библиотека вас заинтересовала, делимся полезной ссылкой на курс «Автоматическое машинное обучение с помощью LightAutoML». Там вы найдёте короткие лекции и семинары, в которых рассматриваются модули LightAutoML, включая автоматический выбор моделей, предварительную обработку данных, оптимизацию гиперпараметров и построение ансамблей моделей для решения задач машинного обучения. А самое приятное, что курс доступен всем абсолютно бесплатно
Py-Boost
Эта библиотека пригодится вам для обучения моделей градиентного бустинга на GPU с продвинутыми возможностями для multiclass/multilabel-моделей.
Сегодня градиентный бустинг один из самых эффективных алгоритмов машинного обучения на табличных данных, он широко используется в индустрии. Но большинство современных библиотек для бустинга написаны на языках низкого уровня и обладают ограниченными возможностями для настройки и внедрения новых идей. Py-Boost написана на Python, поэтому её выбирают исследователи этого алгоритма для реализации собственных идей.
Классно, что наша команда Sber AI Lab встроила в библиотеку алгоритм SketchBoost-метода построения бустинга на деревьях для задач multiclass/multilabel-классификации и multitask-регрессии. В статье по ссылке вы найдёте больше информации про Py-Boost.
Чем хороша библиотека?
Быстрое обучение и применение моделей на GPU. Хотя библиотека написана на Python, модели обучаются и применяются быстро, так как используют преимущества Python GPU-библиотек, таких как CuPy.
Широкие возможности для настройки. Исследователю будет просто реализовать свои идеи, даже если он не знаком с программированием для GPU: можно писать дополнительные модули, используя API, аналогичный библиотеке Numpy.
Продвинутые возможности для обучения multioutput-моделей. Несмотря на то, что современные SOTA-реализации чрезвычайно эффективны, время их обучения для задач multiclass/multilabel-классификации может быть очень долгим в случае большой размерности выхода модели. Для решения этой проблемы мы реализовали специальный алгоритм SketchBoost, который позволяет обучать модели в десятки раз быстрее в случае размерностей порядка сотен или тысяч классов с сохранением качества.
Надеемся, что эта подборка пригодится вам для создания лучших рекомендаций. А если вы ещё не придумали, чем заняться вечером, то ловите записи трансляций с наших международных митапов RecSys by Sber, которые прошли этой осенью в Тбилиси, Стамбуле, Алматы и Минске. На митапах мы говорили о IT-аспектах применения искусственного интеллекта в рекомендательных системах, рассказывали о методах применения кросс-доменных рекомендаций и мультимодальных трансформеров. А если вам хочется познакомиться с командой нашей рекомендательной платформы, то смело переходите на страницу Технобренда.