Разработка рекомендательных систем: три открытых библиотеки от Сбера

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Делимся своими открытыми библиотеками для разработки рекомендательных систем. Что? Да! Рассказываем подробнее. Всем известно, что Сбер это уже не просто банк, а огромная технологическая компания, которая включает в себя и сервисы компаний-партнёров: электронную коммерцию, индустрию развлечений и даже медицину. Количество пользователей достигло 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-аспектах применения искусственного интеллекта в рекомендательных системах, рассказывали о методах применения кросс-доменных рекомендаций и мультимодальных трансформеров. А если вам хочется познакомиться с командой нашей рекомендательной платформы, то смело переходите на страницу Технобренда. 

Источник: https://habr.com/ru/companies/sberbank/articles/771760/


Интересные статьи

Интересные статьи

Если вы решили сделать собственное приложение для стриминга на Android, при разработке нужно учесть множество разных нюансов. Например, зрители могут свернуть вашу трансляцию в процессе просмотра, а ч...
Рекомендательные системы являются неотъемлемой частью современных веб-сайтов. Они играют ключевую роль в улучшении пользовательского опыта, увеличении удержания пользователей и повышении конверсии. Эф...
Всем привет. Меня зовут Ярослав Карманников, я разработчик команды SmartTV/Web в онлайн-кинотеатре KION МТС Digital. Это четвертая часть сериала, посвященного фиче Autopl...
Давным-давно, когда не было современных гаджетов и интернетов, большинство пользователей компьютеров слушали музыку «оффлайн» при помощи различных проигрывателей. Один из самых популярных и распростра...
Небольшой туториал о создании форм обратной связи для интернет-магазинов на Joomla.