CatBoost — новый метод машинного обучения от Яндекса

18 июля, 12:15

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

Многие привычные нам вещи, например лента социальной сети, прогноз погоды или картинка «под Ван Гога» в чьём-нибудь инстаграме, — результат применения машинного обучения. И речь не только об интернете. Банкам машинное обучение помогает своевременно пополнять купюрами банкоматы. Магазинам — прогнозировать спрос на товары. Металлургам — выявлять дефекты проката стали и определять соотношение примесей в сплавах.

Нейронные сети в Яндексе

Яндекс тоже использует нейронные сети: например, они задействованы в распознавании голоса и поиске похожих картинок. Нейросети также поставляют факторы для Матрикснета. Они соотносят смысл поискового запроса и заголовка документа — так работает алгоритм «Палех».

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

С 2009 года Яндекс развивает собственный метод машинного обучения — Матрикснет. Он был разработан для ранжирования результатов поиска, но используется и в других сервисах Яндекса: например, в Почте — для фильтрации спама, в Картах и Навигаторе — для расчёта времени в пути, в Директе — для подбора релевантных рекламных объявлений. Матрикснет устойчив к переобучению и позволяет использовать множество факторов и их комбинаций.

В основе Матрикснета лежит механизм градиентного бустинга. Его особенность — в том, что он хорошо подходит для работы с разнородными данными. Такими данными, скажем, могут быть температура, влажность, сила ветра, снимки со спутников и сводки с наземных радаров — по ним можно предсказать, какая будет погода. Кроме того, градиентный бустинг даёт точные результаты даже там, где данных относительно мало. Этим он отличается от нейронных сетей, которым для обучения требуется огромный массив однородной информации.

Методы на основе градиентного бустинга отлично подходят для работы с разнородными данными

Само собой, у моделей на основе градиентного бустинга есть и недостатки. Все данные, на которых учится модель, должны быть представлены в числовом виде. Иногда это не так-то просто — например, когда мы имеем дело с типами облаков, жанрами музыки, породами собак и прочими вещами, которые понятны человеку, но которые трудно объяснить машине.

Тренируемся на кошках

Название CatBoost придумано в Яндексе. Это сокращение от categorical boosting, то есть бустинг с учётом категориальных признаков.

Сегодня Яндекс представляет преемника Матрикснета — новый метод машинного обучения CatBoost. В нём также используется градиентный бустинг, но CatBoost, во-первых, превосходит Матрикснет по точности предсказаний, а во-вторых, способен учитывать так называемые категориальные признаки — то есть признаки, которые принимают одно из конечного количества значений. Так, облака могут быть кучевыми, перистыми, перисто-кучевыми и так далее. Жанры музыки включают рок, рэп, классику, альтернативу, метал. Пудель, овчарка, спаниель и эрдельтерьер — породы собак. Подобные данные больше не нужно выражать в числах: CatBoost воспринимает их в исходном виде. Обученные с его помощью модели позволяют использовать всё многообразие доступных данных, не тратя время на их перевод в числовую форму.

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

В градиентном бустинге используются деревья принятия решений (на картинке). Сама по себе модель довольно слаба, но когда они строятся последовательно и минимизируют ошибки друг друга, это даёт хорошие результаты

С разнородными данными, в том числе и выраженными в нечисловой форме, сталкиваются во всех отраслях, от финансов до сельского хозяйства. Поэтому мы решили выложить библиотеку машинного обучения CatBoost в открытый доступ. Она доступна на языках программирования Python и R. Версии библиотеки для Windows, macOS и Linux и программу визуализации CatBoost Viewer — она позволяет следить за процессом обучения на графиках — можно скачать в репозитории на GitHub. Выкладывая CatBoost в открытый доступ, мы надеемся, что сообщество оценит алгоритм по достоинству и поможет нам сделать его ещё лучше.

Метод машинного обучения CatBoost уже нашёл первое применение за пределами Яндекса — в Европейском центре ядерных исследований (ЦЕРН). CatBoost используется для обработки данных эксперимента LHCb, который проходит на одноименном детекторе Большого адронного коллайдера. Задача эксперимента — исследование асимметрии материи и антиматерии во взаимодействиях тяжёлых прелестных кварков. Детектор LHCb включает несколько субдетекторов — каждый из них реагирует на разные свойства частиц. CatBoost помогает объединить данные с разных детекторов, чтобы учёные могли получить максимально полное представление о частицах. Результаты CatBoost оказались существенно лучше результатов, получаемых с использованием других алгоритмов.

38 комментариев
ayzel@iwp.ru
18 июля, 12:41
Ну наконец-то!
mail@paveldemyanenko.com
18 июля, 13:55
Поздравляю!
Тингаев Александр
18 июля, 14:25
Была бы круто увидеть простенькие, но наглядные примеры поисковых запросов, где Кэт Бустинг отрабатывает значительно лучше.
Света Чистякова
Сотрудник Яндекса18 июля, 18:54
Александр, здравствуйте. В поиске CatBoost пока не используется, его протестировали в Дзене и Погоде.
Света Чистякова,
А как же переводчик Яндекс?
RobinPro3131
18 июля, 15:23
а когда можно будет сделать себе такой же интерфейс ? или вы сами Яндекс браузер обновите и там будет видно его ? очень удобное приложение суда по Ролику в ютубе 
Света Чистякова
Сотрудник Яндекса18 июля, 18:55
Здравствуйте. CatBoost — это не приложение, а метод машинного обучения. Не очень понятно, про какой интерфейс вы говорите. 
Спасибо!
Молодцы!
m@tochkafamily.ru
18 июля, 17:31
Отлично! 
chief.rozonov
18 июля, 17:49
А сейчас в расчете погоды у вас используется уже новый алгоритм catboost или прежний матрикснет?
Света Чистякова
Сотрудник Яндекса18 июля, 18:57
Здравствуйте. Пока используется Матрикснет. С CatBoost в Погоде провели эксперимент (оказался успешным) и сейчас готовимся к внедрению.
RobinPro3131
18 июля, 19:11
Света Чистякова,
удобное приложение  если будет потом в браузере Надо будет поставить )
Интересно, в Rapid Miner можо использовать?
Я так понимаю, в ближайшем будущем нас ждет период штормов и бурь, в органике и рекламе?)
Скажите, CatBoost уже участвует в формировании поисковой выдачи?
Света Чистякова
Сотрудник Яндекса21 июля, 16:38
Здравствуйте. Пока нет. Протестирован в Дзене и Погоде.
А как новый алгорит бореться с первой вкладкой выдачи, которая на данный момент содержит одни платные размещения? )))
Света Чистякова
Сотрудник Яндекса21 июля, 16:40
Здравствуйте. Для ранжирования поисковой выдачи CatBoost пока не используется.
Девчонка красивая)
Здравствуйте. Подскажите, а есть ли доступ к данному алгоритму для использования на сторонних сайтах. Например,, если нам в Интернет-магазине надо определить предпочтения того или иного залогиненого (или нет) пользователя и показать ему соответствующий баннер.


То есть условно говоря можем ли мы обращаться к этому, как к облаку, только не для хранения, а для обработки информации.


И если да, то ведь предварительно алгоритм надо обучить. Где все это будет хранится? Также в облаке?
опасно!)
phantom-victory
22 июля, 17:35
pashaino,
заманчиво
yasikselivanov
23 июля, 16:21
Светлана, подскажите, когда примерно catboost заменит матрикснет на основном поиске Яндекса?
16 раз в статье упомянули ключ -"CatBoost".  Она конечно полезная, но читать постоянно спотыкаться о повторения мне неудобно.
Скажите эту статью Баден-Баден не посчитает переоптимизированной?
Света Чистякова
Сотрудник Яндекса27 июля, 20:51
Ну название — оно и есть название, без него обойтись сложно :)
arakss85,
По Вашему обращению мы проверили, корректно ли в данном случае сработали наши алгоритмы, и ошибок с их стороны обнаружено не было. 
Обновлено 28 июля, 01:02
Костя Долгих
10 августа, 18:21
Выглядит очень мощно. Скажите, будут ли примеры на русском языке? Читал документацию, там очень мутно описано скармливание сервису категориальных данных, комментарии написаны в стиле капитана очевидности. Очень хочется применить CatBoost для своих целей, но, видимо, проще будет перевести категориальные данные в массив чисел самостоятельно...
Впринципе Яндекс и так напорядок лучше выдавал сайты, чем тот же Google. Надеюсь новое изобретение не разочарует.
n.pavlov@stk-promo.ru
22 августа, 13:57
Ну что ждем сегодня запуска CatBoost
Олег Кравченко
22 августа, 18:51
Пчёлы против мёда ? ))
Ведь ни для кого не секрет  - Чем глупее выдача, тем больше кликов по контекстной рекламе. 

Как по мне, "ДЗЕН" вообще не попадает в то, что мне интересно. Вот, прям, совсем. Для меня "ДЗЕН" - чуть ли не единственный провальный проект уважаемой мной команды Яндекса. Удивительно слушать Сербанта, который нахваливает этот трэшевый "ДЗЕН", так что, если он (дзен) на этом алгоритме построен, я бы его ещё потестировал перед масштабированием.
Владислав
20 сентября, 17:27
zsm.yar,
как по мне это один из лучших проектов Яндекса. Как открываю браузер так не могу оторваться от ленты Дзена.
ну что замечательно 
Удалённый пользователь
2 октября, 16:25
ваш переводчик не может перевести с англ. слово ритм! Позор!!!!
правильно ,что не стали прятать свою разработку.Примените новый метод  для анализа  научных работ с целью поиска плагиата и цитирования. Это будущее сегодня
niko.filatov2017
22 ноября, 10:42
04 Probleme beim Pumpen mit abgesenktem Kolben, Probleme mit dem Verteiler, Pumpe entlüften oder Kolben ist verklemmt.
05
06
jim@2thestars.ru
27 ноября, 19:50
not bad