Алгоритмы и технологии Яндекса: как работает поиск
Разберем более подробно, как устроена поисковая машина Яндекса. Что же происходит после того, как пользователь вводит запрос в строку поиска?

MatrixNet
Технология поиска Яндекс устроена сложно. Поисковая выдача формируется на основе формулы ранжирования, построенной на нескольких сотнях факторов, каждый из которых может включаться с индивидуальным коэффициентом, а также в различных комбинациях с прочими факторами.
Формула ранжирования — это функция, построенная на множестве факторов, при помощи которых определяется релевантность сайта поисковому запросу и его очередность в выдаче
Для обеспечения качественного поиска факторы и коэффициенты в формуле ранжирования должны регулярно обновляться. Построением такой формулы в Яндексе занимается MatrixNet (Матрикснет) — метод машинного обучения, введенный Яндексом в 2009 году с целью сделать поиск более точным.
«Матрикснет» — метод машинного обучения, с помощью которого подбирается формула ранжирования Яндекса. Входными данными являются факторы и обучающие данные, подготовленные асессорами (экспертными сотрудниками Яндекса).
Основная его особенность заключается в том, что он устойчив к переобучению и позволяет построить сложную формулу ранжирования с десятками тысяч коэффициентов, которая учитывает множество различных факторов и их комбинаций без увеличения количества асессорских оценок и опасности найти несуществующие закономерности.

Архитектура поиска
Ежедневно пользователи посылают Яндексу десятки миллионов запросов. Для формирования ответа под какой-нибудь один запрос поисковой машине необходимо проверить миллионы документов, определить их релевантность и упорядочить при помощи формулы ранжирования так, чтобы наиболее подходящие страницы сайтов оказались вверху выдачи. Для ускорения этого процесса Яндекс использует заранее подготовленные данные — индекс.
Индекс — база поисковой системы, содержащая сведения о запросах и их позициях на страницах сайтов в сети. Индекс формируется поисковым роботом, который обходит сайты и собирает информацию с заданной периодичностью.
Размер индекса в поиске огромен, чтобы быстро обработать такой объем данных используются тысячи серверов, объединенные в кластеры.
После того, как пользователь вводит запрос в строку поиска, он анализируется компьютерной системой «Метапоиск» на предмет региональной привязки, класса запроса и т.д. Там же запрос проходит лингвистическую обработку. Далее «Метапоиск» проверяет кэш на наличие поискового ответа по данному запросу. По часто задаваемым запросам результаты поиска хранятся в памяти поисковика в течение какого-то времени, а не формируются каждый раз заново.
«Метапоиск» — это программа, которая принимает и разбирает поисковые запросы, передает их соответствующим «Базовым поискам», обеспечивает агрегацию и ранжирование найденных документов, а также производит кеширование части ответов, которые впоследствии возвращаются пользователям без обращения к «Базовому поиску».
Если же ответ не найден, «Метапоиск» передает запрос другой компьютерной системе — «Базовому поиску». Там же хранится поисковая база Яндекса (индекс). Так как это огромный объем данных, индекс разбивается на части, которые хранятся на разных серверах. Такой подход позволяет производить поиск одновременно по нескольким частям базы данных, что заметно ускоряет процесс. Каждый сервер имеет несколько копий, это дает возможность распределять нагрузку и не терять данные. При передаче запроса «Метапоиск» выбирает наименее загруженные сервера «Базового поиска».
«Базовый поиск» обеспечивает поиск по всей части индекса (базе поисковой системы), содержащей сведения о запросах и их позициях на страницах сайтов в сети.
Каждый сервер базового поиска отдает список документов, содержащих поисковый запрос, обратно в «Метапоиск», где они ранжируются по сформированной «Матрикснетом» формуле. Результаты такой работы мы видим на странице выдачи.

Использование индекса в качестве источника данных, многостадийный подход к формированию ответа и дублирование данных позволяют Яндексу обеспечивать поиск за доли секунды.
Оценка качества поиска
Помимо скорости поиска не менее важно и его качество. Для этого у Яндекса существует система оценки качества поиска, которая также помогает улучшить это качество.
Релевантность — свойство документа, определяющее степень его соответствия поисковому запросу. Вычисляется на основе формулы ранжирования.
Релевантность документа поисковому запросу вычисляется на основе формулы ранжирования — функции от множества факторов. Сейчас в Яндексе более 800 различных факторов, таких как возраст сайта, региональная привязка, взаимодействие пользователей с сайтом (поведенческий фактор), уникальность контента и т.д. В случае с персонализированным поиском релевантность документа зависит непосредственно от предпочтений пользователя, отправившего запрос.
Формула ранжирования постоянно обновляется, так как меняются потребности пользователей и индекс поисковика. Для ее обновления применяется методы машинного обучения. На основе экспертных данных выявляются зависимости между характеристиками документов и порядком их включения в выдачу, которые вносятся в формулу для ее корректировки.
Оценка качества поиска — удовлетворенность пользователей результатами поиска и порядком их следования.
Экспертными данными для машинного обучения являются оценки асессоров, которые также применяются для оценки качества поиска.
Асессоры — специалисты, оценивающие по ряду критериев релевантность представленного в выдаче документа поисковому запросу.
Асессоры оценивают поисковые результаты в выдаче по ряду критериев, которые позволяют определить, присутствует ли на сайте полный ответ на запрос, является ли сайт брендовым, не переспамлен ли текстовый контент и т.д. В основном асессоры работают с наиболее популярными поисковыми запросами (порядка 150 тыс.), при этом оцениваются первые 30 позиций выдачи. Это наиболее авторитетная оценка, так как ее проводит человек, а не машина, т.е. сайт получает оценку с точки зрения пользователя.
Актуализация и улучшение правил ранжирования в комплексе с оценкой качества поиска помогают Яндексу формировать выдачу, соответствующую ожиданиям пользователей.