«Яндекс» запустил принципиально новую версию своего поисковика, основанную на использовании нейронных сетей. Новый поиск базируется на интеллектуальном алгоритме «Королёв». В результате поисковик отвечает на сложные вопросы ещё более точно, причём это касается не только текстовой информации, но и графики, видео, аудио. Кроме того, в «Яндексе» рассказали о значительных изменениях в архитектуре самого индекса.
Презентация новой версии поисковика «Яндекса» прошла в Московском планетарии минувшим вечером. Собственно, площадка планетария должна была настроить аудиторию на нечто возвышенное, высокоинтеллектуальное, космическое и скоростное. Ну, а нехватка мест в зале была объяснима. Всем хотелось узнать, что же такого нового представит крупнейшая ИТ-компания России в области поиска. А представлен был новый алгоритм поиска «Королёв», названный в честь легендарного советского конструктора Сергея Королева.
В начале мероприятия представители «Яндекса» рассказали об истории развития поиска. Первые поисковые системы появились в середине 1990-х годов, когда интернет был совсем небольшим — счёт сайтов шёл на тысячи. Чтобы помочь человеку найти нужное, достаточно было составить список веб-страниц, где есть слова из поискового запроса. О сложном ранжировании (упорядочивании страниц по степени соответствия запросу) тогда речь не шла. Считалось, что чем чаще в документе встречаются слова из запроса, тем лучше он подходит.
Между тем, Интернет быстро рос, и потребовались дополнительные критерии отбора. Поисковики начали учитывать ссылки на документы, научились определять регион, откуда поступил запрос, стали обращать внимание на поведение пользователей.
В какой-то момент факторов ранжирования (признаков, по которым можно определить, насколько хорошо страница отвечает на запрос) набралось так много, что стало ясно: прописать их все в виде инструкций невозможно. Лучше научить машину самостоятельно принимать решения. Осталось понять, какие признаки использовать и как их комбинировать. В «Яндексе» для этих целей создали «Матрикснет» - метод машинного обучения, с помощью которого строится формула ранжирования и пристраиваются внутренние связи.
Перед тем как пустить в ход сложную формулу ранжирования, поисковые машины составляют список «предварительно подходящих» веб-страниц — таких, в которых есть слова из запроса. Нам, людям, понятно, что один и тот же смысл можно выразить разными словами. Веб-страница может не содержать всех слов из запроса, но тем не менее очень хорошо на него отвечать. Однако объяснить это машине довольно сложно.
«Первый шаг к поиску по смыслу «Яндекс» сделал в прошлом году, когда мы представили поисковый алгоритм «Палех». В его основе лежит нейронная сеть. Нейросети показывают отличные результаты в задачах, с которыми люди традиционно справлялись лучше машин: скажем, распознавание речи или объектов на изображениях», - рассказывает Андрей Стыскин, руководитель Яндекс.Поиска. - Запуская «Палех», мы научили нейронную сеть преобразовывать поисковые запросы и заголовки веб-страниц в группы чисел — семантические векторы. Важное свойство таких векторов состоит в том, что их можно сравнивать друг с другом. Чем сильнее будет сходство, тем ближе друг к другу по смыслу запрос и заголовок».
«Королёв» является развитием алгоритма «Палех», он делает ещё один шаг вперёд. Он умеет сравнивать смысл поискового запроса со смыслом страниц, а не только их заголовков. По мнению разработчиков, «Королёв» позволит более точно понимать смысл поисковых запросов пользователей и делать ответы на них более релевантными даже в том случае, если сам запрос очень редкий и непонятный.
Кроме того, алгоритм «Королёв» обещает существенным образом улучшить качество поиска по картинкам. До сих пор он работал только по поиску слов, содержащихся на страницах с картинками. «Королев» же использует нейтросети для того, чтобы понять смысл картинок.
Принцип работы
Поисковый алгоритм «Королёв» сравнивает семантические векторы поисковых запросов и веб-страниц целиком, а не только их заголовков. Это позволяет выйти на новый уровень понимания смысла. Тексты веб-страниц в семантические векторы преобразует нейросеть. Эта операция требует много вычислительных ресурсов. Поэтому «Королёв» высчитывает векторы страниц не в режиме реального времени, а заранее, на этапе индексирования. Когда человек задаёт запрос, алгоритм сравнивает вектор запроса с уже известными ему векторами страниц.
Умение понимать смысл особенно полезно при обработке редких и необычных запросов. Это происходит, когда люди пытаются описать своими словами свойства того или иного объекта и ожидают, что поиск подскажет его название. Примеры таких запросов: «картина где небо закручивается» или «ленивая кошка из монголии».
Такая схема позволяет начать подбор веб-страниц, соответствующих запросу по смыслу, на ранних стадиях ранжирования. В «Палехе» смысловой анализ — один из завершающих этапов: через него проходят всего 150 документов. В «Королёве» он производится для 200 тысяч документов — то есть в тысячу с лишним раз больше. Кроме того, новый алгоритм не только сравнивает текст веб-страницы с поисковым запросом, но и обращает внимание на другие запросы, по которым люди приходят на эту страницу. Так можно установить дополнительные смысловые связи.
«У нас есть запрос человека и заголовок страницы, которая претендует на попадание в топ выдачи. Нужно понять, насколько они соответствуют друг другу по смыслу. Для этого мы представляем текст запроса и текст заголовка в виде таких векторов, скалярное произведение которых было бы тем больше, чем релевантнее запросу документ с данным заголовком. Иначе говоря, мы с помощью накопленной поисковой статистики обучаем нейронную сеть таким образом, чтобы для близких по смыслу текстов она генерировала похожие вектора, а для семантически несвязанных запросов и заголовков вектора должны различаться», - говорит Александр Сафронов, руководитель службы релевантности Яндекс.Поиска.
Как только человек вводит запрос в Яндексе, сервера «Яндекса» в режиме реального времени преобразуют тексты в вектора и сравнивают их. Результаты этого сравнения используются поисковой машиной в качестве одного из факторов. Представляя текст запроса и текст заголовка страницы в виде семантических векторов, модель позволяет уловить достаточно сложные смысловые связи, которые иначе выявить трудно, что в свою очередь сказывается на качестве поиска.
Оценка качества
В «Яндексе» подчёркивают, что использование машинного обучения и нейросетей позволит научить поиск оперировать смыслами на уровне человека. Но без помощи людей тут не обойтись. Чтобы машина поняла, как решать ту или иную задачу, необходимо показать ей огромное количество примеров, как положительных, так и отрицательных. Такие примеры дают пользователи «Яндекса».
Нейронная сеть, которую использует алгоритм «Королёв», обучается на обезличенной поисковой статистике. Системы сбора статистики учитывают, на какие страницы пользователи переходят по тем или иным запросам и сколько времени они там проводят. Если человек открыл веб-страницу и «завис» там надолго, вероятно, он нашёл то, что искал. Это говорит о том, что страница хорошо отвечает на его запрос. Это положительный пример. Подобрать отрицательные примеры гораздо легче: достаточно взять запрос и любую случайную веб-страницу.
В помощи людей нуждается и «Матрикснет», который строит формулу ранжирования. Чтобы поиск развивался, люди должны постоянно давать оценку его работе.
«Когда-то выставлением оценок занимались только сотрудники Яндекса - так называемые асессоры. Но чем больше оценок, тем лучше. Поэтому мы решили привлечь к этому всех желающих и запустили сервис «Яндекс.Толока». Сейчас там зарегистрировано более миллиона пользователей: они анализируют качество поиска и участвуют в улучшении других сервисов Яндекса. Задания на «Толок»е оплачиваются — сумма, которую можно заработать, указана рядом с заданием. За два с лишним года существования сервиса толокеры дали около двух миллиардов оценок», - приводит данные Ольга Мегорская, руководитель отдела обработки данных Яндекс.Поиска.
«Королёв» – это не одна конкретно взятая модель, а целый комплект технологий более глубокого применения нейронных сетей в поиске «Яндекса». В перспективах у разработчиков – использование персонализации поиска, соответствующей интересам человека.
Также в беседе с разработчиками стало известно о том, что переход к анализу содержимого страниц из поисковой выдача может радикально сказаться на рынке поисковой оптимизации (SEO). Однако конкретной статистики в самом «Яндексе» по этому поводу не привели.