№14 (29-09-2015). Как работает Матрикснет?

Вы очень удивитесь, когда узнаете, какой простейший алгоритм потребовался Google в 1998 году, чтобы сокрушить тогдашних лидеров поиска. Элементарное ранжирование по количеству ссылок и примитивно рассчитанной из этих же ссылок авторитетности страниц — вот и весь великий и ужасный PageRank.

Но PageRank и его яндексовский аналог вИЦ, которые были так хороши в начале, оказались слишком примитивными для реального мира, где сотни тысяч вебмастеров и SEO-специалистов постоянно думали о том, как вывести сайты в ТОП-10. «Рамблеру», например, пришлось под этим давлением переквалифицироваться из поисковой системы в информационно-развлекательный портал. Но «Яндекс» и Google продолжили борьбу за качество поиска. При этом очень быстрый рост количества учитываемых факторов ранжирования мог привести поисковики к ситуации слишком сильного усложнения внутренней реализации. Ни один разработчик такое в голове не удержит, поэтому постоянно будет возникать ситуация «уши прикрутили — хвост отвалился». Однако им удалось сделать концептуальный прорыв и перевести расчеты ранжирования на принципиально иную математическую основу. Хорошим примером этого служат яндексовские технологии «Матрикснет» и FML, о которых мы и поговорим в сегодняшней статье.

Зачем нужно все это знать?
Скажем прямо: далеко не все практикующие SEO-специалисты понимают, что такое «метод опорных векторов» или «дерево принятия решений». С поисковой системой вполне можно работать так, как будто это черный ящик: подавать что-то на вход и получать что-то выход, не зная ничего о том, как она устроена внутри. Поскольку цель разработчиков «Яндекса» в том и состоит, чтобы приблизить математику ранжирования к человеческой логике, интуитивный подход в SEO работает достаточно неплохо. Но мы считаем, что знание внутренней анатомии поисковой системы позволяет разрабатывать технологии продвижения быстрее и эффективнее. Ну а клиентам, возможно, стоит иметь какое-то базовое представление о поисковых алгоритмах, чтобы более адекватно оценивать сложность продвижения, важность соблюдения рекомендаций SEO-специалистов и знать, что ждет эту ветвь интернет-рекламы в будущем.

Основы «Матрикснета»
В 2009 году «Яндекс» объявил, что будет использовать при расчете ранжирования сайтов технологии машинного обучения (ML, machine learning) в рамках собственной библиотеки «Матрикснет».

Реализация «машинного обучения с учителем» в «Яндексе» работает так:
1. Живые люди, которых в «Яндексе» называют асессорами, оценивают веб-страницы по определенным критериям («Насколько данная страница отвечает на вопрос X» и т.п.) по методологии Cranfield II. После оценок получается отранжированный вручную набор страниц. 
2. Далее можно построить математическую функцию, которая «научится» на оценках асессоров ранжировать другие страницы. При этом нужно понимать, что именно тут происходит магия: веб-страница представляет собой набор данных, из которых можно извлечь некие параметры (факторы). Асессор этим не занимается, он не подсчитывает количество слов на странице и не анализирует прочие сотни факторов. Он просто выставляет оценку на основе общечеловеческих суждений. А вот алгоритм смотрит на страницы и выделенные из них количественные факторы, связывает их с поставленной асессорами оценкой и «понимает», какое сочетание факторов и их значений приводит к выставлению наиболее высокой оценки (и всего остального распределения оценок). 

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

Проблемы и решения
Во-первых, нужны факторы. Очевидно, что количество слов на странице и их тематическая близость важнее, чем форма скругления уголка на незаметной кнопке в самом низу страницы. Но если алгоритму не дать заранее определенные факторы для анализа, он может сделать упор на что-то неважное (например, на какой-то логотип веб-студии, которая делает качественные сайты, и поставить всем сайтам этой студии наивысшие оценки).

Решение: фреймворк FML, который позволяет разработчикам факторов быстро тестировать гипотезы. У яндексоидов есть возможность сравнить результаты работы ранжирования без нового фактора и ранжирования с новым фактором. Также FML решает задачу оценки замедления работы (каждый новый фактор требует дополнительных вычислений, а некоторые факторы особо прожорливы) и общей стоимости внедрения фактора в формулу.

 

Во-вторых, это вычисления на огромных объемах данных, требующие огромного количества ресурсов. Кластер на GPU, который обслуживает задачи машинного обучения в «Яндексе», имеет мощность около 300 терафлопс. При этом каждый дополнительный байт (то есть, по сути, одна буква), который алгоритму ранжирования нужно хранить в оперативной памяти, обходится «Яндексу» в 10 000 долларов в год.

Решение: собственная оптимизация алгоритма дерева принятия решений с распараллеливанием по вычислительным процессам в кластере. Это объясняет использование GPU-кластера: каждая видеокарта — это тысячи простых вычислительных ядер, возможностей которых вполне достаточно для обсчета данного алгоритма. 



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

Решение: больше асессоров!


Математика «Матрикснета»
Если вы владеете английским языком, то можете послушать доклад Андрея Гулина о математике, лежащей в основе «Матрикснета».  

      
Еще одна интересная лекция Гулина доступна тут. В этой статье мы не будем углубляться в деревья принятия решений — это тема, которую сложно объяснить коротко и понятно. Если вы заинтересовались и не боитесь математики, то рекомендуем 24 лекции по машинному обучению доктора физико-математических наук Константина Воронцова, которые он прочитал в яндексовсой «Школе анализа данных».

Выводы
Несмотря на продвинутую математику, которая позволяет анализировать страницы по сотням различных факторов и «учить алгоритм уму-разуму» с помощью оценок живых асессоров, процесс до сих пор является механическим и предсказуемым. Само по себе наличие фиксированных факторов делает SEO возможным. Задача разработчика SEO-технологий заключается не в полном reverse engineering «Матрикснета», а в том, чтобы подать ему на вход такие документы с набором оптимизированных факторов, которые будут высоко оценены.

Версия для печати

Вернуться ко всем статьям