Время чтения: 8 минут

Что такое Матрикснет? Яндекс рассказал о собственном алгоритме и принципах машинного обучения.

Машинное обучение на службе Яндекса

9 февраля состоялась очередная встреча цикла «Яндекс изнутри». На этот раз в офисе крупнейшего российского поисковика собрались только технические специалисты — разработчики алгоритмов и программ машинного обучения, обработки языков, распознавания речи. Разговор был серьезным и затрагивал темы, которые вряд ли понятны 95% россиян. Зато всем причастным он показался весьма интересным и содержательным.

Первый доклад назывался «Машинное обучение в Поиске: инфраструктура и алгоритмы». Руководитель группы машинного обучения Яндекса Анна-Вероника Дорогуш попыталась объяснить присутствующим, каким алгоритмом пользуются в российском поисковике.

Что такое Матрикснет?

Когда обыватель открывает страницу поисковой системы и задает свой вопрос, он не задумывается о том, как все устроено и работает. Его волнует конечный результат – список документов на экране, которые наиболее точно отвечают на его запрос.

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

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

Доклад Анны-Вероники содержит достаточно много специфической технической информации, которая доказывает не только эффективность Матрикснета, но и его преимущества перед конкурентами.

Наиболее интересные особенности алгоритма Матрикснет

Основная сфера применения алгоритма градиентного бустинга – главная формула ранжирования поиска Яндекса. Собственно, его создавали именно для обучения этой системы.

Но, по мере развития, Матрикснет стал настолько хорош, что его стали применять повсеместно. Например, в таких областях, как:

  • контекстная реклама – предсказывает количество кликов и показывает пользователям интернета наиболее интересные для них объявления;
  • Яндекс.Дзен – выбор карточек под конкретного пользователя;
  • Yandex Data Factory – внешний проект поисковика, который активно использует возможности Матрикснет.

При написании алгоритма программисты использовали большое количество разнообразных обучающих выборок, всегда заставляя его давать хороший результат. Благодаря этому Матрикснет эффективен даже на абсолютно новых наборах данных.

Программисты из команды Яндекса сравнили собственную разработку с другими алгоритмами градиентного бустинга и получили примерно такие результаты:

Сравнительная таблица алгоритмов градиентного бустинга

В большинстве тестов Матрикснет опередил конкурентов.

Важно то, что Матрикснет способен обучаться достаточно быстро. В результате оптимизации на всех уровнях, программисты добились впечатляющего результата – формула способна обрабатывать в одном потоке до 100 000 документов в секунду.

В алгоритме Яндекса применены передовые технологии машинного обучения:

  • градиентный бустинг;
  • oblivious деревья решений;
  • параллельное обучение по документам, а не признакам;
  • случайный выбор виртуального master-узла для принятия очередного решения.

Учитывая постоянно растущие объемы Интернета, специалисты Яндекса работают над уменьшением количества трафика. А беря во внимание постоянно усложняющуюся формулу ранжирования, разработчикам алгоритма приходится решать задачу ускорения обучения.

Все сотрудники Яндекса хорошо разбираются в машинном обучении?

Нет.

Над самим алгоритмом Матрикснет работает отдельная группа разработчиков. Для всех остальных создан специальный интерфейс, который называется «Нирвана».

Обычный исследователь, при обучении формулы ранжирования вынужден выполнить ряд действий:

  1. Найти подходящий алгоритм (желательно новую версию).
  2. Заложить в него собственные данные (причем в понятном машине формате).
  3. Найти кластер компьютеров для обработки и вычислений.
  4. Запустить обучение алгоритма.

В Яндексе есть Нирвана и все становится намного проще:

Принципы Нирваны

Благодаря Нирване взаимодействие с Матрикснет заметно упрощается.

Это новая система, запуск которой состоялся только в 2015 году. Но уже сейчас ею умеют пользоваться треть сотрудников Яндекса. А порядка 500 человек запускают систему еженедельно.

Внутри используется принцип визуального программирования. Многие операции в Нирване уже реализованы (порядка 10 000) — пользователю остается только их компоновать в произвольном порядке и загружать в алгоритм. Если какая-то операция пока не реализована, ее легко создать.

Разработчики системы особое внимание уделили воспроизводимости и хранению результатов. Пользователь системы может открыть историю собственных экспериментов с машинным обучением или просмотреть чужие труды. Любой отработанный эксперимент можно клонировать, изменить и запустить снова, пытаясь получить лучший результат.

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

Некоторые вопросы слушателей доклада

Почти половину времени Анна-Вероника Дорогуш и два других сотрудника Яндекса уделили вопросам присутствующих специалистов. Среди них были довольно интересные.

  • В докладе было сказано, что формула обрабатывает «безумные» тысячи запросов. Но ведь многие «гуглят в Яндексе» совершенно простые вещи. Например, запрос «погода». Неужели такой вопрос тоже будет прогоняться через огромную формулу Матрикснета. Внутри поисковой системы нет «заготовок»?

Перефразируя вопрос, вы спрашиваете – есть ли у Яндекса кэш? Да, он есть. Но проблема в том, что среди сотен миллионов ежедневных запросов, минимум 40% абсолютно уникальны и для них нужно пересчитывать все заново.

  • В плане решения задач прогнозирования, вы отдаете предпочтение нейросеткам или алгоритмам машинного обучения?

Задачи прогнозирования есть много где. Выбор метода зависит от структуры обучающей выборки. Если данные однородны и есть определенная структура (изображения или звук), то хорошо работают нейросетки. А если все данные разнородны (обычный поиск), то лучше работает градиентный бустинг.

  • Есть ли в Яндексе кратковременная память? То есть, пользователь спросил «погода», а следом «Тайланд». Будет ли ответ на вопрос «Тайланд» учитывать то, что до этого пользователь интересовался погодой?

Такой контекст есть. Но работает он немного по-другому, чем описали. Попробуйте задать в поисковой строке «Анна Семенович», потом все удалите и тыкнете в пустой блок поиска. Яндекс предложит вам других селебрити, в основном женского пола, которые похожи на Анну Семенович.

Кратковременный кэш Яндекса

Проверка подтверждает, что кратковременный кэш в Яндексе есть.

Дополнение Петра Попова: На самом деле там есть кратковременная память, ваша персональная. И если вы задали вопрос вначале «Тайланд», а потом «погода», он покажет выше те документы, где в сниппете есть «Тайланд».

Память есть, но она работает на разных этапах по-разному. Потому что поиск – это не диалоговая система.

  • Как часто переобучается формула ранжирования в поиске?

Каждую неделю, каждые 10 дней.

  • В Нирване существуют ограничения по объему входных данных?

Да. Но Нирвана зачитывает данные из map-reduse. Там есть ограничения. Петабайты данных. То есть в Нирване можно обрабатывать очень много.

Дополнение Анны: Есть система квотирования и ограничений для пользователей и групп исследователей.

Дополнение Петра Попова: Для одного исследования мы использовали все клики пользователей по выдаче за последние 3 года. В день у нас порядка 100 млн. запросов. Можете посчитать и оценить объемы данных.

Исследование проводилось в рамках разработки нового алгоритма Палех.

  • А вы не пробовали применять машинное обучение, чтобы улучшать машинное обучение?

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

Оцените статью:
Понравилась 2
Не понравилась 0
Автор: Артём Шаманский / Создатель проекта

Не бояться, уверенно идти вперед, если нужно, то напролом или даже, ломая кости и вгрызаясь в эту жизнь зубами, если это единственный шанс, чтобы жить и чувствовать себя человеком, чтобы испытывать уважение к самому себе и знать, что сделано все, что можно и даже более того ради достижения поставленной цели.

Нам интересно ваше мнение, напишите комментарий:

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

Обмен мнениями и отзывы о публикации
Подпишитесь на рассылку блог-оптимизатора.рф

Уже подписались 801 человек