Яндекс представил новый алгоритм ранжирования Королев


Яндекс представил новый алгоритм ранжирования Королев, который позволит определять наиболее релевантные запросу документы в режиме оффлайн. Рассказываем, как работает алгоритм Королев.»
22 августа 2017 года Яндекс представил новый алгоритм ранжирования Королев, который призван заменить Палех. Новая разработки компании применяет нейронные сети для поиска по смыслу, а не соответствию слов в паре «запрос — документ». Авторы алгоритма называют его новой технологией, указывая, что изменения коснулись не только алгоритма вычисления релевантности, но и архитектуры самого индекса.
В основе алгоритма Королев лежит методика вычисления релевантности, используемая в Палехе. На то время вычислительные мощности поисковика позволяли определять релевантность только на уровне «запрос — заголовок страницы», а сам алгоритм применялся исключительно на последнем этапе ранжирования для сравнительно небольшой выборки документов.
Такой подход отсеивал большое количество высокорелевантных документов, которые в заголовке не содержали достаточно данных. Для повышения точности расчетов необходимо анализировать все тело документа на соответствие поисковому запросу пользователя. Проводить такой анализ в режиме реального времени слишком долго и дорого относительно CPU. Поэтому радикальным решением стало предвычисление вектора документа на стадии индексирования и сохранение полученной информации. Это позволяет во время обработки поискового запроса лишь извлечь сохраненный вектор и сопоставить его с вектором запроса. Такой подход позволил радикально увеличить глубину ТОПа до 200 тысяч документов на запрос.
Как работает новый алгоритм ранжирования Королев
При создании нового алгоритма команда Яндекса руководствовалась простым правилом — нельзя заставлять пользователя ждать. Ранее при поступлении поискового запроса алгоритм поэтапно выбирает лучшие соответствия. В новом алгоритме фильтрующая стадия вынесена за рамки ранжирования на этап индексации страницы.
В основе алгоритма Королев лежит следующая гипотеза: если к запросу из нескольких слов взять не очень большой список из самых релевантных документов по каждому слову или словосочетанию, то среди них найдутся документы, релевантные одновременно всем словам. На практике это значит вот что. Для всех слов и популярных пар слов формируется дополнительный индекс со списком страниц и их предварительной релевантностью запросу.
Это значит, что большая часть вычислительной работы проходит в оффлайн режиме, то есть не в момент ввода поискового запроса, что позволяет разгрузить оперативную память и увеличить скорость ответа системы.
Также в ходе разработки алгоритма была выявлена следующая закономерность: для семантически разных запросов может быть один наиболее релевантный ответ. Так, к примеру, для запросов «вконтакте», «вконтакте вход», «вконтакте социальная сеть» лучшим ответом становится главная страница социальной сети ВКонтакте. Поэтому было принято решение сравнивать семантические векторы запроса, который вводит пользователь, с семантическим векторами запросов, для которых система знает лучший ответ.
Алгоритм Королев уже применяется для формирования поисковой выдачи Яндекс. Следующим этапом становится поиск документов, близких по смыслу поисковому запросу пользователя, но не содержащие слов запроса в теле и/или заголовке документа. А также внедрение вектора учета интересов пользователя для большей персонализации поисковой выдачи.
Больше о работе алгоритма в блоге Яндекса.