«Яндекс» открыл алгоритм машинного обучения CatBoost, который планирует использовать в «Поиске» и других продуктах

«Яндекс» открыл исходный код алгоритма машинного обучения CatBoost, которым компания планирует заменить «Матрикснет» в «Поиске» и всех остальных своих проектах. Сторонние разработчики смогут бесплатно использовать CatBoost в собственных системах для прогнозирования или анализа данных. Об этом vc.ru рассказали представители компании.

С помощью инструментов CatBoost сторонние разработчики смогут внедрить и настроить в собственных продуктах модели машинного обучения, занимающиеся анализом разнородных данных сразу нескольких типов — например, о местонахождении пользователя, истории операций и типе устройства.

Разработку можно использовать в самых разных областях, в которых для прогнозирования или анализа важно учитывать сразу несколько типов факторов, влияющих на результат, говорят в «Яндексе».

«Яндекс» пока не применяет CatBoost в своих проектах полноценно, но разработчики уже провели тестирование технологии и она «показала свою состоятельность». В «Поиске» и других сервисах компания с 2009 года использует другой алгоритм машинного обучения — «Матрикснет».

CatBoost применялся для улучшения результатов поиска, ранжирования ленты рекомендаций «Яндекс.Дзен» и для расчёта прогноза погоды в технологии «Метеум» — и во всех случаях показал себя лучше «Матрикснета». Его также использует команда Yandex Data Factory — в своих решениях для промышленности: оптимизации расходов сырья и предсказания дефектов. Алгоритм внедрил Европейский центр ядерных исследований (ЦЕРН) для объединения данных, полученных с разных частей одного из детекторов Большого адронного коллайдера.​

— «Яндекс»

Постепенно CatBoost заменит «Матрикснет» во всех продуктах компании, говорят представители «Яндекса». Точные сроки внедрения компания не называет.

CatBoost, как и «Матрикснет», реализует модель градиентного бустинга. Особенность алгоритмов машинного обучения такого типа заключается в том, что они эффективнее, чем другие модели, работают с разнородными данными, которые описывают различные факторы: например, информацию о демографии, предпочтениях пользователя и историю запросов.

Основным преимуществом CatBoost перед «Матрикснетом» создатели называют его способность работать не только с числовыми, но и с другими данными.

Если «Матрикснет» обучает модели на числовых данных, то CatBoost учитывает и нечисловые, например виды облаков или типы зданий. Раньше такие данные приходилось переводить на язык цифр, что могло изменить их суть и повлиять на точность работы модели. Теперь их можно использовать в первоначальном виде.

Благодаря этому CatBoost показывает более высокое качество обучения, чем аналогичные методы для работы с разнородными данными. Его можно применять в самых разных областях — от банковской сферы до промышленности.​

— «Яндекс»

В беседе с vc.ru представители компании также отметили, что «Яндекс» никогда не предоставлял сторонним разработчикам прямого доступа к алгоритму «Матрикснет». Они могли использовать «Матрикснет» лишь косвенно — через API других продуктов компании.

В репозитории CatBoost на GitHub сторонним разработчикам доступны все необходимые библиотеки для внедрения алгоритма CatBoost в свои системы, обучающие материалы и несколько примеров использования технологии, а также инструмент CatBoost Viewer для визуализации работы алгоритма.

Библиотека доступна на языках программирования R и Python, она поддерживает операционные системы Linux, Windows и macOS.

66
42 комментария

И тишина,.. все побежали кодить?

5

Ну интересно же!

2

Надо будет затестить. Пожелание к представителям Яндекса: сделайте демо-кейс с какой-нибудь toy-задачей, реализованной на основе CatBoost. По опыту это позволяет гораздо быстрее "въехать" в незнакомый фреймворк и начать использовать его в собственных проектах.

6

у них довольно хорошая документация и примеры.

Денис, уже, есть несколько на выбор: https://github.com/catboost/catboost/tree/master/catboost/tutorials
:)

6

Спасибо, то что нужно!