Аналитика 455 0 08 августа, 2017

Яндекс снова мутит технологию. Catboost, что это?

Разработчики из компании Яндекс объявили о создании CatBoost - нового алгоритма машинного обучения с учителем, который придет на замену хорошо известному Матрикснет. Как и последний, CatBoost представляет собой градиентный бустинг на решающих деревьях, однако будет распространяться открыто… Если вы нихрена не поняли, но заинтересовались, то эта статья как раз для вас. Сейчас будем разбираться.
Яндекс снова мутит технологию. Catboost, что это?

Что мы знаем о ранжировании поисковой выдачи?

Давайте по порядку. На расцвете поисковиков, например, того же Яндекса, не было сложных алгоритмов ранжирования. Интернет был по карману только обеспеченным слоям общества, запросы которых вместе с требований к интернету были вполне приемлемы. Забили запрос, получили ответ и нормально.
 
Перемотаем ленту лет так на 10 вперед... Интернет уже особо не роскошь, количество пользователей существенно выросло, а вместе с ними количество запросов и предложений. Сайтов стало очень много и стандартные алгоритмы поисковиков просто перестали справляться с таким наплывом сайтов и нечестных вебмастеров, которые использовали серые схемы продвижений.
 
В помощь пришли искусственные нейронные сети, которые помогли анализировать и фильтровать информацию, для выдачи максимально релевантного содержимого по запросу пользователя. И В ноябре 2009 года выходит новый алгоритм Яндекса под названием Матрикснет. Это принципиально новый подход к оценке сайтов и построению поисковой выдачи, в основе которого лежит самообучающийся алгоритм с элементами искусственного интеллекта.
 

До введения Матрикснета компьютеры обрабатывали информацию алгоритмическим подходом

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

Тут и пришел на помощь Матрикснет с использованием нейронных сетей

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

А в чем тогда дело?

CatBoost остается все тем же градиентным бустингом, то есть методом, в котором строится серия очень слабых алгоритмов (в данном случае — решающих деревьев), последовательно минимизирующих ошибку друг друга и в итоге, в комбинации, хорошо описывающих обучающую выборку данных. Однако в отличие от Матрикснет CatBoost изначально разрабатывался для того, чтобы наилучшим образом работать не только с числовыми, но и с категориальными признаками. Речь идет о тех признаках данных, которые не имеют числового выражения. Например, если вы классифицируете бытовую технику, то «энергопотребление» и «средняя цена» — это числовые признаки, ваша компьютерная модель может с ними работать (складывать, вычитать и так далее). Но признак «тип» (стиральная машина, телевизор, кофемолка) является категориальным, то есть для модели это просто слово, которое не несет никакой смысловой нагрузки. Чтобы его эффективно вставить в модель, этот признак надо сначала оцифровать, привести к численному виду.
 
Опытный специалист, работающий с машинным обучением, может придумать более интеллектуальный способ превращения категориальных признаков в числовые, однако такая предварительная предобработка приведет к потере части информации и приведет к ухудшению качества итогового решения.
 
Именно поэтому было важно научить машину работать не только с числами, но и с категориями напрямую, закономерности между которыми она будет выявлять самостоятельно, без ручной помощи. И CatBoost разработан так, чтобы одинаково хорошо работать «из коробки» как с числовыми признаками, так и с категориальными. Благодаря этому он показывает более высокое качество обучения при работе с разнородными данными, чем альтернативные решения. Его можно применять в самых разных областях — от банковской сферы до промышленности.
 

CatBoost на практике

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

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

 
Точные сроки внедрения компания не называет.
 
И кстати, ранее Яндекс никогда не предоставлял сторонним разработчикам прямого доступа к алгоритму Матрикснет. Они могли использовать Матрикснет лишь косвенно — через API других продуктов компании.
 
Но в этот раз CatBoost доступен на GitHub по открытой лицензии Apache. Алгоритм существует в виде библиотек для Python и R и максимально настроен для пользователей с малым опытом работы с машинным обучением. Так, в CatBoost есть встроенный алгоритм для обработки категориальных признаков в зависимости от типа данных и задачи, есть встроенный детектор переобучения (он сам остановит алгоритм на оптимальном количестве построенных деревьев), а исходные параметры подобраны таким образом, чтобы выдавать удовлетворительный результат даже без тонкой настройки. Отдельной особенностью CatBoost разработчики называют наличие встроенных инструментов для визуализации и анализа результатов.
 

Как начать использование CatBoost

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

Alfaleads

Что это нам даст в реале?
Новая технология машинного обучения основана на градиентном бустинге, и призвана сделать поисковую выдачу лучше. Нас ждут изменения в принципе ранжирования. Матрикснет уступает место категориальному бустингу, потому что последний способен обрабатывать разнородные данные намного быстрее и качественнее своего предшественника. Будет ли это реально заметно для обычных пользователей? Ну, время покажет.        
Однозначно можно сказать, что продвигать сайты станет сложнее. CatBoost рассчитан на то, чтобы максимально персонализироваться под интересы конкретного пользователя. А любая персонализация — это лишний стресс для веб-мастера.

А если вы уже тестировали CatBoost или владеете дополнительной информаций, то обязательно пишите об этом в комментариях. Давайте вместе разбираться в этой новой фишке.
Еженедельный дайджест новостей
08 августа, 2017
Комментарии
Живое обсуждение без регистраций. Просто пиши ↓