Правильные решения в продвижении сайтов в интернете!
г. Москва, м. Сокольники, ул. Маленковская, д. 32, стр. 3
Режим работы: с 10:00 до 19:00, пн.- пт. (сб./вс. - выходной)
+7 (499) 391-17-76
8 (800) 707-05-97
e-mail: biz@o-es.ru

Подробнее о новой версии поиска Яндекс: алгоритм «Королёв»

Причины создания новых алгоритмов

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

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

Со временем специалисты, которые занимались качеством поиска, стали всё больше убеждаться в том, что для того, чтобы создать действительно хороший поиск, необходимо научиться искать не по словам, а по смыслу, по-научному – осуществлять семантический поиск.

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

  • В 2016 году был запущен алгоритм ранжирования «Палех», в котором были сделаны первые шаги в сторону семантического поиска.
  • В 2017 году Яндекс запустили новый алгоритм ранжирования – «Королёв».

Почему алгоритм имеет название «Королёв»? Сергей Павлович Королёв осуществил мечту человечества о полетах в космос. В Яндексе запуск алгоритма «Королёв» является таким же важным технологическим прорывом к мечте о поиске, который понимает пользователей.

Нейронные сети – основа алгоритма «Королёв»

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

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

Как научить нейронную сеть понимать смысл текста? Работу в этом направлении в Яндексе начали с достаточно простой и хорошо известной из научных публикаций модели DSSM (Deep Structured Semantic Model). Эта модель состоит из двух частей, которые соответствуют запросу и интернет-странице. На вход модели подаются слова (внутри модели имеется несколько слоев нейронов), а на выходе получается оценка того, насколько пара текстов близка по смыслу.

Чтобы обучить нейронную сеть, нужно показать ей множество обучающих положительных и отрицательных примеров. Положительный пример – пара текстов, которые как-то связаны по смыслу. Отрицательный пример – пара текстов, которые по смыслу не связаны.

Для того чтобы сеть обучилась, необходимо показать большое количество примеров. Откуда взять примеры? На помощь приходят пользователи поисковой системы, которые ежедневно задают огромное число поисковых запросов, а также совершают большое количество кликов и переходов по выдаче. Таким образом, в распоряжении Яндекса оказывается колоссальный объем пользовательской информации, что называется Big Data (большие данные). Именно на основании этого массива пользовательского поведения можно составить обучающие примеры для нейронной сети. Можно сказать, что если по какому-то запросу пользователи очень часто кликают в одну и ту же интернет-страницу, то, скорее всего, этот запрос и текст этой страницы как-то связаны по смыслу.

Найти отрицательные примеры для обучения намного проще: можно просто взять пару случайных текстов и объявить их семантически не связанными текстами.

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

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

Подавая на вход нейронной сети любой текст, на выходе получается соответствующий ему семантический вектор. В своих моделях Яндекс обычно использует вектор размерностью триста, то есть текст представляется в виде трехсот чисел.

Семантический вектор обладает одним очень интересным свойством: чем ближе тексты по смыслу, тем больше сходства будет у чисел этих векторов. Иными словами, сравнив два семантических вектора, можно оценить смысловую близость двух текстов.

В поиске Яндекса нейронные модели использовались уже достаточно давно, но в алгоритме «Королёв» существенно увеличено влияние нейронных сетей на ранжирование.

Одна из наиболее интересных новинок этого поискового запуска состоит в применении нейронных сетей к тексту документов. При поиске по словам алгоритмы давно умели искать слова в теле странице, но если говорить о смысловом поиске, то раньше были лишь модели, которые оценивают близость только запроса и заголовка страницы. В алгоритм «Королёв» внедрена модель, которая при оценке смысловой близости смотрит не только на заголовок, но и на всё тело страницы.

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

Еще одно изменение связано с количеством страниц, к которым применяются нейронные сети. Раньше поиск Яндекса из-за большой вычислительной мощности использовал мощь нейронных сетей только для ограниченного числа самых лучших страниц по запросу, приблизительно для 150. В «Королёве» удалось увеличить количество страниц, для которых вычисляется смысловая близость по запросу, до 200 тыс.

Как новый алгоритм понимает запросы пользователей

Понимание алгоритмом «Королёв» запросов пользователей можно разобрать на примере поиска по картинкам. Раньше поиск по картинкам был на самом деле поиском по ключевым словам, описывающим картинки. Эти ключевые слова брались из текста вокруг картинок со страниц в интернете, поэтому при запросе «собаки в космосе» можно было увидеть фотографии советских собак-космонавтов. Они показываются, потому что на страницах, на которых есть эти фотографии, прям так и написано: «Первые собаки в космосе». Сейчас же ключевую роль в поиске по картинкам играют нейросети, которые способны анализировать непосредственно изображения. Они обучены на десятках миллионах пользовательских действий и умеют отличать собак от кошек, огурцы от помидоров.

Яндекс.Толока – помощь в обучении искусственного интеллекта

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

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

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

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

Чтобы обучить поиск ориентироваться во множестве возможных трактовок и смыслов и понимать самые разные пользовательские запросы, нужно обрабатывать как можно больше реальных пользовательских запросов и собирать для них оценки релевантности. От количества оценок, которые складываются в обучающую базу, в том числе зависит качество поиска.

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

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

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

Открытие Яндекс.Толока дало колоссальный рывок в масштабируемости и объемах собираемых данных для обучения. Если раньше собирали миллионы оценок силами только асессоров, то сейчас счет уже идет на миллиарды; если раньше асессоры принимали участие в десятках разных проектов, то сейчас в Яндекс.Толока открыто более полутора тысяч разных типов заданий и разных проектов; если раньше технологии Яндекс обучали чуть больше тысяч человек, то в 2017 году свой вклад в обучение технологий внесли более полумиллиона человек.

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

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

Качество собираемых данных

Чтобы искусственный интеллект был разумным и последовательным, очень важно, чтобы данные, на которых он обучается, были разумны и последовательны. Главным критерием является качество собираемых оценок. Понятно, что среди миллионов толокеров есть самые разные люди: бывают оптимисты, которые всегда ставят очень высокие оценки, бывают пессимисты, которые очень строго подходят к каждому заданию. Сами задания бывают более сложными или менее сложными.

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

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

Источник (видео): Новая версия поиска Яндекса: алгоритм «Королёв». Трансляция из Московского планетария

Успехов в продвижении сайта!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Нажимая на кнопку «Отправить комментарий», вы соглашаетесь с Условиями использования