Все новости

Новый метод машинного обучения от «Яндекс» умеет работать с категориями

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

Ранее во всех сервисах компании использовался внедренный в 2009 году алгоритм машинного обучения «Матрикснет», но он умел работать только с числовыми значениями, такими как рост, вес, давление и т.п. Если появлялись нечисловые параметры — например, породы собак или типы облаков, их надо было перевести в числа перед использованием, что могло изменить их суть и повлиять на точность работы модели, объяснила архитектор проекта CatBoost Анна Вероника Дорогуш.

По ее словам, в технологии CatBoost (от англ. Categorical Boosting — «категориальное продвижение») «эту проблему полностью полечили» — алгоритм умеет работать категориями. Он наиболее оптимально превращает их в числа различными способами уже во время обучения.

Еще одна проблема, которая есть у всех алгоритмов машинного обучения, — проблема переобучения. Это значит, что алгоритм хорошо работает на данных, с которыми он уже имел дело, но на новых данных показывает худший результат. «Мы придумали новую схему построения градиентного бустинга, которая с этой проблемой борется. За счет этого точность итога получается лучше», — сказала архитектор проекта.

Градиентный бустинг, на котором построена технология CatBoost, — это класс алгоритмов, который применяется для работы с разнородными данными. «Однородные данные — это звук, видео, текст. А разнородные данные — данные из разных источников. Например, для погоды это данные с радаров, метеостанций, исторические данные. Лучше всего для них работает градиентный бустинг», — пояснила Дорогуш.

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

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

Новый метод уже протестировали на сервисах «Яндекса». В рамках эксперимента он применялся для улучшения результатов поиска, ранжирования ленты рекомендаций Яндекс.Дзен и для расчета прогноза погоды в технологии «Метеум». В дальнейшем CatBoost будет работать и на других сервисах. Кроме того, CatBoost внедрил Европейский центр ядерных исследований (ЦЕРН): он использует его для объединения данных, полученных с разных частей детектора LHCb.

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

О том, как работает машинное обучение, смотрите на «Чердаке».

 Евгения Щербина