Разработчики из компании Яндекс объявили о создании CatBoost — нового алгоритма машинного обучения с учителем, который придет на замену хорошо известному Матрикснет. Как и последний, CatBoost представляет собой градиентный бустинг на решающих деревьях, однако будет распространяться открыто. Со временем в Яндекс планируют заменить Матрикснет на CatBoost в большинстве сервисов, начиная с поиска. Подробно о новой технологии можно прочесть в официальном релизе компании.
Машинное обучение лежит в основе многих онлайн-технологий: в поиске с его помощью ранжируются документы, наилучшим образом удовлетворяющие данному запросу, в рекламе — отбираются подходящие под каждого пользователя объявления, а в прогнозе погоды — анализируются показания сотен метеостанций, чтобы получить общую картину. Долгое время в Яндекс основным алгоритмом машинного обучения был Матрикснет — закрытая технология, глобально представляющая собой градиентный бустинг над решающими деревьями с множеством модификаций. Сейчас ему на смену пришел CatBoost, или Categorical Boosting.
«Под капотом» CatBoost тоже остается градиентным бустингом, то есть методом, в котором строится серия очень слабых алгоритмов (в данном случае — решающих деревьев), последовательно минимизирующих ошибку друг друга и в итоге, в комбинации, хорошо описывающих обучающую выборку данных. Однако в отличие от Матрикснет CatBoost изначально разрабатывался для того, чтобы наилучшим образом работать не только с числовыми, но и с категориальными признаками. Речь идет о тех признаках данных, которые не имеют числового выражения. Например, если вы классифицируете бытовую технику, то «энергопотребление» и «средняя цена» — это числовые признаки, ваша компьютерная модель может с ними работать (складывать, вычитать и так далее). Но признак «тип» (стиральная машина, телевизор, кофемолка) является категориальным, то есть для модели это просто слово, которое не несет никакой смысловой нагрузки. Чтобы его эффективно вставить в модель, этот признак надо сначала оцифровать, привести к численному виду.
В CatBoost разработчики представили множество решений, направленных именно на работу с категориальными признаками. Некоторые из них опубликованы в виде препринта на arXiv.org. Благодаря этим улучшениям новый алгоритм демонстрирует лучшие результаты на стандартных наборах данных по сравнению с другими существующими алгоритмами обучения с учителем, например, LightGBM от компании Microsoft, или открытого XGBoost, популярного среди участников чемпионатов на kaggle.com.
Сейчас CatBoost доступен на GitHub по открытой лицензии Apache. Алгоритм существует в виде библиотек для Python и R и максимально настроен для пользователей с малым опытом работы с машинным обучением. Так, в CatBoost есть встроенный алгоритм для обработки категориальных признаков в зависимости от типа данных и задачи, есть встроенный детектор переобучения (он сам остановит алгоритм на оптимальном количестве построенных деревьев), а исходные параметры подобраны таким образом, чтобы выдавать удовлетворительный результат даже без тонкой настройки. Отдельной особенностью CatBoost разработчики называют наличие встроенных инструментов для визуализации и анализа результатов.
Градиентный бустинг привлекает не так много внимания публики, как искусственные нейросети, однако долгое время остается одним из самых популярных методов машинного обучения в IT-компаниях и среди участников чемпионатов по обработке данных. Встречаются и примеры его применения в других сферах: с помощью градиентного бустинга специалисты из компании Baidu научились прогнозировать, когда образуются опасно большие скопления людей. Подробнее о градиентному бустинге вообще и CatBoost в частности читайте в нашем большом интервью с разработчиками из Яндекса.
Тарас Молотилин
Они независимо пришли к результату
Внутренняя модель OpenAI получила доказательство, опровергающее гипотезу экспоненциального времени — одно из ключевых предположений теории вычислительной сложности. Независимо к такому же результату пришла и модель Anthropic. Гипотеза экспоненциального времени предполагает, что по мере увеличения размера входных данных время, необходимое для решения определенного класса задач, в худшем случае растет экспоненциально. В частности, задачу [note=6459|3-SAT] для булевых формул, согласно этой гипотезе, нельзя решить быстрее, чем за экспоненциальное время в зависимости от числа переменных. Обе компании опубликовали опровержения гипотезы, формализованные на языке Lean. Доказательство OpenAI также позволяет предсказать число решений булевых формул за субэкспоненциальное время. Результатам еще предстоит пройти независимую проверку. В частности, сотрудники OpenAI передали результат группе специалистов по теории сложности, в которую вошли авторы исходной формулировки гипотезы Рассел Импальяццо (Russell Impagliazzo) и Рамамохан Патури (Ramamohan Paturi).