Алгоритм палех: Новый алгоритм Палех — Блог Яндекса для вебмастеров – Новый алгоритм Палех — Блог о технологиях Яндекса

Содержание

что это за поисковый алгоритм?

«Палех» – алгоритм поисковой выдачи для низкочастотных запросов, анонсированный Яндексом в 2016 году. Он назван в честь поселка в Ивановской области, где гербом является жар-птица.

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

Алгоритм Палех

Клюв – это высокочастотные запросы. Туловище – среднечастотные.

Дело в том, что из 280 миллионов ежедневных запросов 100 миллионов являются низкочастотными. В последнее время веб-мастера все чаще и чаще стали использовать НЧ-запросы, так как они не имеют большой конкуренции и по ним проще выйти в топ.

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

Искусственные нейронные сети

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

Зачем был создан «Палех»

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

С низкочастотными же запросами все гораздо сложнее. Яндексу требовалось много времени, чтобы подобрать оптимальный вариант выдачи по тому или иному НЧ-запросу. И сами пользователи далеко не с первого раза могли найти то, что искали. Именно для решения подобных проблем и был создан алгоритм «Палех».

Искусственный интеллект в поиске. Как Яндекс научился применять нейронные сети, чтобы искать по смыслу, а не по словам

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

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

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

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

Искусственный интеллект или машинное обучение?


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

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

Эпоха наивного поиска


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

Эпоха ссылок


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

Эпоха машинного обучения


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

Где-то на этом этапе человеческого разума перестало хватать на то, чтобы придумывать, как ранжировать документы. Произошёл следующий переход — поисковики стали активно использовать машинное обучение.

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

Но у «классического» машинного обучения есть предел: оно работает только там, где очень много данных. Небольшой пример. Миллионы пользователей вводят запрос [вконтакте], чтобы найти один и тот же сайт. В данном случае их поведение является настолько сильным сигналом, что поиск не заставляет людей смотреть на выдачу, а подсказывает адрес сразу при вводе запроса.

Но люди сложнее, и хотят от поиска всё больше. Сейчас уже до 40% всех запросов уникальны, то есть не повторяются хотя бы дважды в течение всего периода наблюдений. Это значит, что у поиска нет данных о поведении пользователей в достаточном количестве, и Матрикснет лишается ценных факторов. Такие запросы в Яндексе называют «длинным хвостом», поскольку все вместе они составляют существенную долю обращений к нашему поиску.

Эпоха искусственного интеллекта


И тут время рассказать о последнем прорыве: несколько лет назад компьютеры становятся достаточно быстрыми, а данных становится достаточно много, чтобы использовать нейронные сети. Основанные на них технологии ещё называют машинным интеллектом или искусственным интеллектом — потому что нейронные сети построены по образу нейронов в нашем мозге и пытаются эмулировать работу некоторых его частей.

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

Как правило, низкочастотные и уникальные запросы довольно сложны для поиска – найти хороший ответ по ним заметно труднее. Как это сделать? У нас нет подсказок от пользователей (какой документ лучше, а какой — хуже), поэтому для решения поисковой задачи нужно научиться лучше понимать смысловое соответствие между двумя текстами: запросом и документом.

Легко сказать


Строго говоря, искусственные нейросети – это один из методов машинного обучения. Совсем недавно им была посвящена лекция в рамках Малого ШАДа. Нейронные сети показывают впечатляющие результаты в области анализа естественной информации — звука и образов. Это происходит уже несколько лет. Но почему их до сих пор не так активно применяли в поиске?

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

Несколько слов о том, как это работает в поиске по картинкам. Вы берёте изображение и с помощью нейронных сетей преобразуете его в вектор в N-мерном пространстве. Берете запрос (который может быть как в текстовом виде, так и в виде другой картинки) и делаете с ним то же самое. А потом сравниваете эти вектора. Чем ближе они друг к другу, тем больше картинка соответствует запросу.

Ок, если это работает в картинках, почему бы не применить эту же логику в web-поиске?

Дьявол в технологиях


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

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

Дальше — о том, что мы пробовали, как добились успеха и как смогли обучить то, что получилось.

DSSM


В 2013 году исследователи из Microsoft Research описали свой подход, который получил название Deep Structured Semantic Model.

На вход модели подаются тексты запросов и заголовков. Для уменьшения размеров модели, над ними производится операция, которую авторы называют word hashing. К тексту добавляются маркеры начала и конца, после чего он разбивается на буквенные триграммы. Например, для запроса [палех] мы получим триграммы [па, але, лех, ех]. Поскольку количество разных триграмм ограничено, то мы можем представить текст запроса в виде вектора размером в несколько десятков тысяч элементов (размер нашего алфавита в 3 степени). Соответствующие триграммам запроса элементы вектора будут равны 1, остальные — 0. По сути, мы отмечаем таким образом вхождение триграмм из текста в словарь, состоящий из всех известных триграмм. Если сравнить такие вектора, то можно узнать только о наличии одинаковых триграмм в запросе и заголовке, что не представляет особого интереса. Поэтому теперь их надо преобразовать в другие вектора, которые уже будут иметь нужные нам свойства семантической близости.

После входного слоя, как и полагается в глубоких архитектурах, расположено несколько скрытых слоёв как для запроса, так и для заголовка. Последний слой размером в 128 элементов и служит вектором, который используется для сравнения. Выходом модели является результат скалярного умножения последних векторов заголовка и запроса (если быть совсем точным, то вычисляется косинус угла между векторами). Модель обучается таким образом, чтобы для положительны обучающих примеров выходное значение было большим, а для отрицательных — маленьким. Иначе говоря, сравнивая векторы последнего слоя, мы можем вычислить ошибку предсказания и модифицировать модель таким образом, чтобы ошибка уменьшилась.

Мы в Яндексе также активно исследуем модели на основе искусственных нейронных сетей, поэтому заинтересовались моделью DSSM. Дальше мы расскажем о своих экспериментах в этой области.

Теория и практика


Характерное свойство алгоритмов, описываемых в научной литературе, состоит в том, что они не всегда работают «из коробки». Дело в том, что «академический» исследователь и исследователь из индустрии находятся в существенно разных условиях. В качестве отправной точки (baseline), с которой автор научной публикации сравнивает своё решение, должен выступать какой-то общеизвестный алгоритм — так обеспечивается воспроизводимость результатов. Исследователи берут результаты ранее опубликованного подхода, и показывают, как их можно превзойти. Например, авторы оригинального DSSM сравнивают свою модель по метрике NDCG с алгоритмами BM25 и LSA. В случае же с прикладным исследователем, который занимается качеством поиска в реальной поисковой машине, отправной точкой служит не один конкретный алгоритм, а всё ранжирование в целом. Цель разработчика Яндекса состоит не в том, чтобы обогнать BM25, а в том, чтобы добиться улучшения на фоне всего множества ранее внедренных факторов и моделей. Таким образом, baseline для исследователя в Яндексе чрезвычайно высок, и многие алгоритмы, обладающие научной новизной и показывающие хорошие результаты при «академическом» подходе, оказываются бесполезны на практике, поскольку не позволяют реально улучшить качество поиска.

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

Большой входной слой


В оригинальной модели DSSM входной слой представляет собой множество буквенных триграмм. Его размер равен 30 000. У подхода на основе триграмм есть несколько преимуществ. Во-первых, их относительно мало, поэтому работа с ними не требует больших ресурсов. Во-вторых, их применение упрощает выявление опечаток и ошибок в словах. Однако, наши эксперименты показали, что представление текстов в виде «мешка» триграмм заметно снижает выразительную силу сети. Поэтому мы радикально увеличили размер входного слоя, включив в него, помимо буквенных триграмм, ещё около 2 миллионов слов и словосочетаний. Таким образом, мы представляем тексты запроса и заголовка в виде совместного «мешка» слов, словесных биграмм и буквенных триграмм.

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

Тяжело в обучении: как нейронная сеть боролась сама с собой и научилась на своих ошибках


Обучение исходного DSSM состоит в демонстрации сети большого количества положительных и отрицательных примеров. Эти примеры берутся из поисковой выдачи (судя по всему, для этого использовался поисковик Bing). Положительными примерами служат заголовки кликнутых документов выдачи, отрицательными — заголовки документов, по которым не было клика. У этого подхода есть определённые недостатки. Дело в том, что отсутствие клика далеко не всегда свидетельствует о том, что документ нерелевантен. Справедливо и обратное утверждение — наличие клика не гарантирует релевантности документа. По сути, обучаясь описанным в исходной статье образом, мы стремимся предсказывать аттрактивность заголовков при условии того, что они будут присутствовать в выдаче. Это, конечно, тоже неплохо, но имеет достаточно косвенное отношение к нашей главной цели — научиться понимать семантическую близость.

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

Первая попытка


Сначала в качестве отрицательного примера просто возьмём заголовок случайного документа. Например, для запроса [палехская роспись] случайным заголовком может быть «Правила дорожного движения 2016 РФ». Разумеется, полностью исключить то, что случайно выбранный из миллиардов документ будет релевантен запросу, нельзя, но вероятность этого настолько мала, что ей можно пренебречь. Таким образом мы можем очень легко получать большое количество отрицательных примеров. Казалось бы, теперь мы можем научить нашу сеть именно тому, чему хочется — отличать хорошие документы, которые интересуют пользователей, от документов, не имеющих к запросу никакого отношения. К сожалению, обученная на таких примерах модель оказалась довольно слабой. Нейронная сеть – штука умная, и всегда найдет способ упростить себе работу. В данном случае, она просто начала выискивать одинаковые слова в запросах и заголовках: есть — хорошая пара, нет — плохая. Но это мы и сами умеем делать. Для нас важно, чтобы сеть научилась различать неочевидные закономерности.

Ещё одна попытка


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

Успех


Многие очевидные решения становятся очевидны только после их обнаружения. Так получилось и на этот раз: спустя некоторое время обнаружилось, что лучший способ генерации отрицательных примеров — это заставить сеть «воевать» против самой себя, учиться на собственных ошибках. Среди сотен случайных заголовков мы выбирали такой, который текущая нейросеть считала наилучшим. Но, так как этот заголовок всё равно случайный, с высокой вероятностью он не соответствует запросу. И именно такие заголовки мы стали использовать в качестве отрицательных примеров. Другими словами, можно показать сети лучшие из случайных заголовков, обучить её, найти новые лучшие случайные заголовки, снова показать сети и так далее. Раз за разом повторяя данную процедуру, мы видели, как заметно улучшается качество модели, и всё чаще лучшие из случайных пар становились похожи на настоящие положительные примеры. Проблема была решена.

Подобная схема обучения в научной литературе обычно называется hard negative mining. Также нельзя не отметить, что схожие по идее решения получили широкое распространение в научном сообществе для генерации реалистично выглядящих изображений, подобный класс моделей получил название Generative Adversarial Networks.

Разные цели


В качестве положительных примеров исследователи из Microsoft Research использовались клики по документам. Однако, как уже было сказано, это достаточно ненадежный сигнал о смысловом соответствии заголовка запросу. В конце концов, наша задача состоит не в том, чтобы поднять в поисковой выдаче самые посещаемые сайты, а в том, чтобы найти действительно полезную информацию. Поэтому мы пробовали в качестве цели обучения использовать другие характеристики поведения пользователя. Например, одна из моделей предсказывала, останется ли пользователь на сайте или уйдет. Другая – насколько долго он задержится на сайте. Как оказалось, можно заметно улучшить результаты, если оптимизировать такую целевую метрику, которая свидетельствует о том, что пользователь нашёл то, что ему было нужно.

Профит


Ок, что это нам дает на практике? Давайте сравним поведение нашей нейронной модели и простого текстового фактора, основанного на соответствии слов запроса и текста — BM25. Он пришёл к нам из тех времён, когда ранжирование было простым, и сейчас его удобно использовать за базовый уровень.

В качестве примера возьмем запрос [келлская книга] и посмотрим, какое значение принимают факторы на разных заголовках. Для контроля добавим в список заголовков явно нерелевантный результат.

Заголовок страницы BM25 Нейронная модель
келлская книга википедия 0.91 0.92
ученые исследуют келлскую книгу вокруг света 0.88 0.85
book of kells wikipedia 0 0.81
ирландские иллюстрированные евангелия vii viii вв 0 0.58
икеа гипермаркеты товаров для дома и офиса ikea
0 0.09

Все факторы в Яндексе нормируются в интервал [0;1]. Вполне ожидаемо, что BM25 имеет высокие значения для заголовков, которые содержат слова запроса. И вполне предсказуемо, что этот фактор получает нулевое значение на заголовках, не имеющих общих слов с запросом. Теперь обратите внимание на то, как ведет себя нейронная модель. Она одинаково хорошо распознаёт связь запроса как с русскоязычным заголовком релевантной страницы из Википедии, так и с заголовком статьи на английском языке! Кроме того, кажется, что модель «увидела» связь запроса с заголовком, в котором не упоминается келлская книга, но есть близкое по смыслу словосочетание («ирландские евангелия»). Значение же модели для нерелевантного заголовка существенно ниже.

Теперь давайте посмотрим, как будут себя вести наши факторы, если мы переформулируем запрос, не меняя его смысла: [евангелие из келлса].

Заголовок страницы BM25 Нейронная модель
келлская книга википедия 0 0.85
ученые исследуют келлскую книгу вокруг света 0 0.78
book of kells wikipedia 0 0.71
ирландские иллюстрированные евангелия vii viii вв 0.33
0.84
икеа гипермаркеты товаров для дома и офиса ikea 0 0.10

Для BM25 переформулировка запроса превратилась в настоящую катастрофу — фактор стал нулевым на релевантных заголовках. А наша модель демонстрирует отличную устойчивость к переформулировке: релевантные заголовки по-прежнему имеют высокое значение фактора, а нерелевантный заголовок — низкое. Кажется, что именно такое поведение мы и ожидали от штуки, которая претендует на способность «понимать» семантику текста.

Ещё пример. Запрос [рассказ в котором раздавили бабочку].

Заголовок страницы BM25 Нейронная модель
фильм в котором раздавили бабочку 0.79 0.82
и грянул гром википедия 0 0.43
брэдбери рэй википедия 0 0.27
машина времени роман википедия 0 0.24
домашнее малиновое варенье рецепт заготовки на зиму 0 0.06

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

А что дальше?


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

Например, очевидно, что заголовок содержит неполную информацию о документе, и хорошо бы научиться строить модель по полному тексту (как оказалось, это не совсем тривиальная задача). Далее, можно представить себе модели, имеющие существенно более сложную архитектуру, нежели DSSM — есть основания предполагать, что таким образом мы сможем лучше обрабатывать некоторые конструкции естественных языков. Свою долгосрочную цель мы видим в создании моделей, способных «понимать» семантическое соответствие запросов и документов на уровне, сравнимом с уровнем человека. На пути к этой цели будет много сложностей — тем интереснее будет его пройти. Мы обещаем рассказывать о своей работе в этой области. Cледите за следующими публикациями.

Новый алгоритм Яндекса “Палех” — что это такое

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

Получи нашу книгу «Контент-маркетинг в социальных сетях: Как засесть в голову подписчиков и влюбить их в свой бренд».

Подпишись на рассылку и получи книгу в подарок!

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

Больше видео на нашем канале — изучайте интернет-маркетинг с SEMANTICA

Зачем нужен Палех

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


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

Как работает Палех

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

Система переводит текст запроса и заголовки в 300 мерное пространство и присваивает им индивидуальный код, состоящий из 300 чисел.Это помогает определить семантический вектор.

Чтобы понять примерную механику работы алгоритма, разберем простой пример.

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

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

Работа нового алгоритма Яндекса Палех на примере

Отследить качество работы Палеха можно только на НЧ запросах. Например, вбивая в поисковик «фильм где герой убегает от людей судьбы в шляпах», вы получите сведения о картине «Меняющие реальность» 2011 года, а не сайты и форумы с ответами на вопрос.

Палех и SEO

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

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

Поисковый алгоритм Яндекса «Палех»

«Палех» – новый поисковый алгоритм Яндекса

Эволюция поисковых интернет-машин за последние 16 лет проделала огромный путь. Начиная когда-то развитие с простого обнаружения слов, сегодня крупные поисковики пришли к алгоритму так называемого «умного поиска» при помощи нейронных сетей.

Не отстаёт от актуальных мировых трендов и российский Яндекс – в начале ноября 2016 года в корпоративном блоге интернет-компании появилась статья с анонсом запуска нового поискового алгоритма «Палех».

Что такое нейронные сети – краткий ликбез, понятный и гуманитарию

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

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

Нейросети

Биология нейронных сетей в виде единого живого организма

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

В сфере поисковых систем под символами и образами понимаются те «слова», которые люди вбивают в строку браузеров. Символы отличаются от образов своей размерностью, – условный размер вторых может на несколько порядков превышать размер символов.

«Палех» – низкочастотный словесный хвост поискового трафика Яндекса

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

Алгоритм "Палех"

Работа поискового алгоритма «Палех» настроена на различении смысла забиваемых в поисковик пользователями слов. Притом даже не простых, популярных в народе, а – сложных, многосоставных, неконкретных, имеющих очень далёкое отношение к тому, что человек пытается найти (то есть, по сути образных).

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

Палехская Жар-птица

Палехская Жар-птица – мифологическое существо, как символ поискового потока Яндекса

Примеры фантастических, ассоциативно-образных многочастотных запросов

Примеры многочастотных образных запросов в Рунете бывают поистине причудливыми, если не сказать даже фантастическими. Ищущие фильм «Бойцовский клуб» люди, например, могут вбить в поисковик следующее: «офисный клерк и его воображаемый друг фильм». Интересующиеся днём Благодарения, но забывшие название торжества люди обращаются за помощью с запросом «праздник с курицами в Америке». А дети, подростки и вообще зачастую придумывают целые мини-«истории», – «как узнать сколько лет девушке Человека-паука в новом фильме?».

Сравнение с BM25

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

В решении этой сложной проблемы понимания образного, ассоциативного мышления человека и участвует нейронные системы нового поискового алгоритма «Палех».

Суть работы «Палеха» – немного простейшей математики

Для представления того, как функционирует нейросети русскоязычного поисковика при обработке многочастотных запросов, нужно понимать, что они накапливают внутри себя необходимую статистику правильности/неправильности соответствия выдачи страниц тому, что ищут люди. Эта статистика основывается на поведенческом факторе пользователей: если в выдаче нет сайтов с нужной информации, – человек ни по одной странице просто не кликнет. Или, кликнув и поняв, что на том или ином сайте необходимая информация отсутствует, он её тут же, в течение двух-трёх секунд закроет.

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

Семантика

Математика семантического вектора помогает человеку искать нужную информацию

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

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

как нейронные сети помогают поиску Яндекса

Алгоритм «Палех»: как нейронные сети помогают поиску Яндекса

Мы запустили новый поисковый алгоритм — «Палех». Он позволяет поиску Яндекса точнее понимать, о чём его спрашивают люди. Благодаря «Палеху» поиск лучше находит веб-страницы, которые соответствуют запросам не только по ключевым словам, но и по смыслу. За сопоставление смысла запросов и документов отвечает поисковая модель на основе нейронных сетей.
 

«Длинный хвост»

Каждый день поиск Яндекса отвечает примерно на 280 миллионов запросов. Какие-то из них, например [вконтакте], люди вводят в поисковую строку практически каждую секунду. Какие-то запросы уникальны — их задают один раз, и они, возможно, больше никогда не повторятся. Уникальных и просто редких запросов очень много — около ста миллионов в день.

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

Новый алгоритм позволяет поиску Яндекса лучше отвечать на сложные запросы из «длинного хвоста». Такой хвост есть у сказочной Жар-птицы, которая часто появляется на палехской миниатюре. Поэтому мы дали алгоритму название «Палех».

Запросы из «длинного хвоста» очень разнообразны, но среди них можно выделить несколько групп. Например, одна из них — запросы от детей, которые пока не освоили язык общения с поиском и часто обращаются к нему как к живому собеседнику: [дорогой яндекс посоветуй пожалуйста новые интересные игры про фей для плантика]. Ещё одна группа — запросы от людей, которые хотят узнать название фильма или книги по запомнившемуся эпизоду: [фильм про человека который выращивал картошку на другой планете] («Марсианин») или [фильм где физики рассказывали даме про дейтерий] («Девять дней одного года»).

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

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

Семантический вектор


Искусственные нейронные сети — один из методов машинного обучения, который стал особенно популярен в последние годы. Нейросети показывают отличные результаты в анализе естественной информации: картинок, звука, текста. Например, нейронную сеть можно обучить распознавать на изображениях те или иные объекты — скажем, деревья или собак. В ходе обучения ей показывают огромное количество картинок, где есть нужные объекты (положительные примеры) и где их нет (отрицательные примеры). В результате нейросеть получает способность верно определять нужные объекты на любых изображениях.

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

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

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

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

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

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

Дальше — больше


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

Технология семантических векторов обладает огромным потенциалом. Например, переводить в такие векторы можно не только заголовки, но и полные тексты документов — это позволит ещё точнее сопоставлять запросы и веб-страницы. В виде семантического вектора можно представить и профиль пользователя в интернете — то есть его интересы, предыдущие поисковые запросы, переходы по ссылкам. Далёкая, но чрезвычайно интересная цель состоит в том, чтобы получить на основе нейронных сетей модели, способные «понимать» семантическое соответствие запросов и документов на уровне, сравнимом с уровнем человека.


Источник

Нейронные сети помогли Яндексу лучше отвечать на необычные запросы

Интернет, 2 ноября 2016 года. Яндекс запустил новый поисковый алгоритм «Палех», в основе которого лежат нейронные сети. Благодаря «Палеху» Яндекс стал лучше подбирать ответы на редкие и уникальные поисковые запросы. Такие запросы редко повторяются, но в совокупности их очень много — около ста миллионов в день.

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

Поисковая модель на нейронных сетях, которую использует «Палех», умеет устанавливать смысловые соответствия между поисковым запросом и заголовками веб-страниц. С её помощью можно выявить, что в запросе и на странице говорится об одном и том же, даже если у них нет общих ключевых слов. Так, поиск поймёт, что в запросе [фильм про человека который выращивал картошку на другой планете] речь идёт о «Марсианине», хотя релевантные страницы могут и не содержать слов «картошка» или «планета».

Редкие и уникальные запросы составляют почти треть всего потока поисковых запросов, поэтому иногда их называют «длинным хвостом» поиска. Новому алгоритму решили дать название «Палех» в честь Жар-птицы — сказочной птицы с длинным хвостом, которая часто появляется в сюжетах палехской миниатюры. Рассказ об алгоритме «Палех» и особенностях поисковых запросов из «длинного хвоста» опубликован в блоге Яндекса. О том, как разработчики поиска обучали нейронную сеть обрабатывать редкие и уникальные запросы, можно узнать в статье на «Хабрахабре».

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

Контакты
Пресс-служба компании «Яндекс»
Владимир Исаев, Матвей Киреев
Тел.: +7 495 739-70-00
Электронная почта: [email protected]

Алгоритм Яндекса «Палех» | Новый поисковый алгоритм «Палех»

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

Суть нового поискового алгоритма «Палех» от Яндекса

Пользователями в день задается огромное количество как одинаковых, так и уникальных, редких запросов. Сотрудники Яндекса сравнивают весь пул поисковых фраз с птицей: самые популярные — клюв, среднечастотные — туловище, редкие — хвост. Последние могут быть заданы всего лишь один раз за всю историю, однако в совокупности их много — около 40%. При поиске по таким запросам были обнаружены сложности, которые новый алгоритм «Палех» должен исключить. Метод машинного обучения «Матрикснет» для построения формулы ранжирования использует данные о поведении людей, преобразованные в факторы. Этот подход хорошо работает для популярных запросов, где таких данных много. При оценке же уникальных фраз подобных факторов у «Матрикснета» нет, что влияет на качество поиска. Более того, в запросах «хвоста» не всегда точным образом заданы ключевые слова. К примеру, во фразе «фильм где день повторялся снова и снова» никак не фигурирует слово «сурок».

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

Алгоритм Яндекса «Палех»

Математической моделью нового алгоритма «Палех» в Яндексе послужили нейронные сети. Преимуществом такого подхода является возможность обучения, в процессе которого машиной могут быть обнаружены сложные взаимосвязи между данными. В случае с поисковым алгоритмом «Палех» запросы были представлены как множество чисел со своими координатами. Это позволяет расположить все фразы в одном пространстве и определить близость между ними. При создании поискового алгоритма также была использована информация о поведении пользователей Яндекса в качестве положительных и отрицательных примеров для нейронной сети. Благодаря новому методу поиска «Палех» теперь может определять, насколько по смыслу близки друг другу непохожие по семантике запросы.

Влияние нового поискового алгоритма Яндекса на SEO

Уже сейчас действие поискового алгоритма «Палех» в Яндексе может распространяться на все группы запросов, но на фразы «хвоста» оказывается более сильное влияние. Тем не менее, это всего лишь один из тысячи факторов ранжирования, который может быть использован «Матрикснетом» в случае необходимости.

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

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

Полезно 0

Author: admin

Отправить ответ

avatar
  Подписаться  
Уведомление о