Алгоритмы поиска яндекса. Как работает алгоритм «Королёв»

23 марта «Яндекс» анонсировал новый алгоритм «Баден-Баден», который призван бороться с переоптимизированными текстами. Аналитики SeoPult проанализировали изменения в выдаче и делятся с вами полученными данными.

Уважаемые пользователи!

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

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

Рис. 1. Степень изменения позиций в «Яндексе» в феврале и марте 2017

Занижение позиций переоптимизированных с точки зрения поисковой системы страниц должно было бы избавить верхние строчки выдачи от:

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

Беглый анализ поисковой выдачи позволяет увидеть, что эти цели, мягко говоря, не были достигнуты. Рассмотрим результаты выдачи по высококонкурентному запросу «кондиционер» в Москве.

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

На странице 42 вхождения слова «кондиционер» , из них 28 в большом тексте-портянке в нижней части страницы.

На странице 159 вхождений слова , из которых 15 в тексте в нижней части страницы.

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

В нижней части страницы находится большой текст, содержащий как 44 вхождения слова «очки», так и классический пример использования сложной SEO-фразы в текстe: «очки для зрения купить интернет-магазин предлагает недорого».

Подобные примеры не единичны и находятся практически в каждой тематике. SeoPult не рекомендует писать подобные тексты и размещать их на своих сайтах. С большой долей вероятности в будущем позиции подобных страниц будут понижены в поиске как в «Яндексе», так и в Google. Мы рекомендуем писать тексты для продвижения вашего бизнеса, ориентируясь на посетителей вашего сайта. Главная задача любого текста - продать посетителям товары или услуги, которые вы продвигаете. При отсутствии времени на копирайтинг вы всегда сможете у нас по цене 200 рублей за 1000 символов.

Выводы

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

7 апреля 2017 – алгоритм «Баден-Баден» — хостовый режим
С этого момента за наличие признаков переоптимизации на некоторых страницах может быть понижен весь сайт. В панели Я.Вебмастер появились сообщения о понижении за поисковый спам.

23 марта 2017 – алгоритм «Баден-Баден» — постраничный режим
Встроенный в ядро поискового алгоритма фильтр, который понижает в выдаче страницы с переоптимизированными текстами. На начальном этапе фильтр понижал отдельные страницы, также зафиксированы случаи позапросного срабатывания фильтра.

2 ноября 2016 – алгоритм «Палех»
Формула ранжирования, которая «умеет» находить соответствия между поисковым запросом и документом даже в том случае, если в самом документе отсутствует фраза из запроса. На момент запуска работает только для Title страниц.

8 июня 2016 – обновление алгоритма расчета тИЦ
С этого момента тематический индекс цитирования рассчитывается по новым правилам, основанным на качестве и тематическом соответствии ссылающихся страниц.

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

30 декабря 2015 – фильтр за кликджекинг
Понижение сайтов, использующих кликджекинг (невидимые элементы, взаимодействие с которыми пользователь осуществляет, не подозревая этого).

Ноябрь 2015 (точная дата неизвестна) – включение ссылочного фактора
В рамках выступления на Школе для Вебмастеров представители Яндекса сообщили , что ссылочное ранжирование снова работает для ряда тематик по Москве. В последствие

2 октября 2015 – фильтр «Опасные сайты»
Понижение в выдаче сайтов, представляющих опасность для компьютера пользователя. Ранее такие сайты не понижались, а просто отмечались специальной отметкой.

Сентябрь-ноябрь 2015 – алгоритм «Киров». Многорукие бандиты Яндекса
Рандомизация выдачи. Подмешивание в ТОП к трастовым «старожилам» молодых сайтов с целью дать последним возможность накопить ПФ. С этого момента возраст сайта перестал играть ключевое значение в поисковом продвижении.

8 сентября 2015 – запуск обновленного фильтра АГС
Нацелен на ограничение в ранжировании сайтов, злоупотребляющих размещением SEO-ссылок, вне зависимости от качества. Ограничения сопровождаются аннулированием тИЦ. Согласно заявлению Яндекса, чтобы выйти из-под санкций, достаточно отказаться от размещения SEO-ссылок на сайте.

23 июня 2015 – третья волна «Минусинска»
Третья волна понижения сайтов за SEO-ссылки.

27 мая 2015 – вторая волна понижений за SEO-ccылки
Вторая волна первой итерации Минусинска, пострадало около 200 сайтов, по показателям сайты не отличаются от пострадавших в первой волне.

15 мая 2015 – первая волна понижений за SEO-ссылки
За использование SEO-ссылок в результате первой итерации фильтра Минусинск было понижено 488 сайтов. Яндекс продолжает призывать всех вебмастеров отказываться от использования SEO-ссылок – созданных, чтобы повлиять на поисковую систему. Подробнее об официальных результатах Минусинска .

15 апреля 2015 – анонс нового алгоритма «Минусинск»
На конференции «Неделя Байнета» в Минске Александр Садовский анонсировал выход нового алгоритмического фильтра Яндекса – «Минусинска», направленного на борьбу с ссылочным спамом. После анонса 9 тысяч сайтов получили уведомления с рекомендацией отказаться от использования SEO-ссылок и других некорректных способов продвижения.

1 апреля 2015 – «Амстердам»
Изменения на странице результатов выдачи — справа от результатов поиска появился блок с общей информацией о предмете запроса.

30 декабря 2014 – очередная волна пессимизации за накрутку ПФ
Кроме накрутчиков, под раздачу попали сайты так называемого «Живого Щита» - ресурсы, которым поведенческие накручивались без ведома их владельцев, с целью сбить с толку алгоритмы Яндекса.

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

19 cентября 2014 – волна понижений за агрессивную рекламу
Ужесточение санкций по отношению к сайтам с отвлекающей рекламой. Релиз вышел с погрешностью - было пессимизировано большое количество белых сайтов, где нормальные рекламные блоки с помощью браузерных вирусов подменялись на агрессивные. Позже эта погрешность была устранена.

14 cентября 2014 – изменение формулы ранжирования информационных сайтов
Ужесточение алгоритма для некоммерческих ресурсов. Очередная волна понижения видимости инфоресурсов за отсутствие добавочной ценности контента.

2-5 июня 2014 – «Острова»
Экспериментальное изменение дизайна результатов поиска. Ответы на некоторые запросы можно было увидеть прямо на странице выдачи, без перехода на сайт. Через некоторое время разработчики признали, что эксперимент не удался.

15 апреля 2014 — изменения в алгоритме АГС
С этого момента при попадании сайта под АГС число его страниц в индексе не уменьшается. Признаком АГС теперь является обнуление тИЦ .

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

12 марта 2014 – Алгоритм «Началово». Первый этап отмены ссылок
Обновление формулы ссылочного ранжирования для коммерческих запросов (Москва) в тематиках «Недвижимость», «Туризм», «Электроника и бытовая техника».

5 декабря 2013 – анонс бессылочного ранжирования
Руководитель веб-поиска Александр Садовский на конференции в Москве сообщил, что Яндекс готовит новую формулу ранжирования, в которой отсутствуют ссылочные факторы. Алгоритм обещали запустить вначале 2014 года и только для коммерческих запросов по Москве.

6 ноября 2013 – АГС 40
Обновился набор показателей низкого качества контента. Основной причиной наложения фильтра стало отсутствие добавочной ценности сайта. Фильтр затронул в основном МФА-сайты и ресурсы, созданные под монетизацию на партнерских программах, и стал полностью автоматизированным.
от предыдущих версий фильтра.

30 мая 2013 – алгоритм «Дублин»
Еще один шаг в сторону персонализации выдачи. Теперь результаты поиска подстраиваются под интересы пользователя прямо во время поисковой сессии.

16 мая 2013 – анонс платформы «Острова»
Яндекс впервые рассказал о новой поисковой платформе «Острова». Предполагалось радикальное изменение формата выдачи, при котором пользователь мог бы решать свою проблему прямо на странице поиска, не посещая сайт (заказывать еду, бронировать гостиницу, покупать билеты).
Выкатить острова планировалось за полтора-два месяца, но по неизвестным причинам этот момент постоянно откладывался. 26 июля 2013 на Beta.yandex.ru запущена тестовая версия «Островов».

15 мая 2012 – пессимизация сайтов с обманными pop-up элементами
Сайты со всплывающими окнами, заточенными под системные уведомления или сообщения социальных систем, стали понижаться в выдаче автоматически.

16 февраля 2012 – региональная выдача для Я.Картинок
Разные ответы для России, Украины, Беларуси и Казахстана.

7 февраля 2012 – персонализация подсказок для зарегистрированных пользователей
Яндекс начинает учитывать историю запросов пользователей при формировании подсказок в поисковой строке. Еще один шаг к персонализации выдачи.

12 декабря 2012 – Калининград. Персонализация результатов поиска
Попытка подстроить Топ-10 и поисковые подсказки под каждого пользователя, основываясь на истории его запросов и поведения на странице выдачи. Согласно исследованию платформы «Калининград», объемы трафика у старых трастовых сайтов выросли. А вот продвигать молодые ресурсы в персональном поиске привычными методами стало сложнее.

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

5 октября 2011 – Яндекс начинает учитывать юзабилити
С этого момента в выдаче автоматически понижаются перенасыщенные рекламой сайты, а ресурсы с неудобной навигацией начинают испытывать проблемы при продвижении.

13 сентября 2011 – фильтр «Ты Спамный»
Санкции за переспамленные тексты. Первый фильтр Яндекса, учитывающий ПФ (понижались только те спамные тексты, которые имели низкие поведенческие показатели). Изначально фильтр был запросозависимым и накладывался на отдельные страницы.

17 августа 2011 – Рейкьявик
Построение результатов выдачи на базе языковых предпочтений пользователя. Первый шаг к персонализации выдачи на уровне конкретного посетителя.

Май 2011 – первая волна ручной пессимизации сайтов за накрутку ПФ
Были понижены позиции известных SEO-компаний и их клиентов. 23 мая на блоге Яндекса появилось официальное предупреждение .

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

15 декабря 2010 – Краснодар. Внедрение «Спектра» в выдачу
Разделение сайтов на 60 смысловых категорий. Принцип квоты для сайтов из разных категорий в выдаче по запросам общего характера. Результаты поиска по ВЧ стали более разнообразными – в Топ 10 по общему ВЧ можно было встретить интернет-магазин, энциклопедию и форум (технология «Спектр»).
Приоритет поведенческих факторов (действия пользователя на странице результатов выдачи).

2 ноября 2010 – улучшение ранжирования авторских текстов
Изменения алгоритма определения авторства документа.

13 сентября 2010 – Обнинск
Улучшено определение региональности сайтов. В выдаче по ГНЗ запросам преимущество получили сайты без привязки к региону.
Изменилось отношение к коммерческим ссылкам. Наложение «фильтра времени» на коммерческие ссылки – донор начинает передавать вес акцептору только через 2-4 месяца от момента появления ссылки.

17 марта 2010 – Снежинск 1.1
Обновление формулы ранжирования по НГЗ запросам. Приоритет в выдаче получили сайты некоммерческой направленности – энциклопедии, обзоры.

20 января 2010 – портяночный фильтр Яндекса
Санкции за длинные тексты («портянки»), переспамленные ключевыми словами. Фильтр накладывался на отдельные страницы и лечился сокращением текста в несколько раз (при этом плотность ключевиков могла оставаться на том же уровне). Портяночный фильтр – предшественник алгоритма «Ты спамный», который появился в 2012 году.

22 декабря 2009 – Конаково
Локальное ранжирование получили 1250 городов России.

18 декабря 2009 – АГС 30
Расширилось число факторов, влияющих на решение алгоритма исключить сайт из индекса. С этого момента под фильтры начали попадать и псевдоСДЛ – сайты с технически уникальным, но не интересным для пользователей контентом.
Фильтр мог накладываться как вручную, так и автоматически.

17 ноября 2009 – Снежинск. Первый алгоритм на платформе MatrixNET
Региональную выдачу получили 19 городов. Число параметров, которые учитываются при ранжировании документов, увеличилось до нескольких тысяч. В формуле появились поведенческие факторы.
Поменялся принцип ранжирования коммерческих запросов. Качество сайта в целом стало играть бОльшую роль, чем релевантность отдельной страницы.
Яндекс научился отличать коммерческие ссылки от некоммерческих на основании анализа анкоров (Мадридский доклад).

28 сентября 2009 – фильтр АГС 17
Первое официальное упоминание этого фильтра, который, по словам Яндекса, работает с 2006 года.
Симптом фильтра – в выдаче остается от 1 до 10 страниц сайта. Первый релиз коснулся в основном автоматически наполняемых ресурсов и сайтов с неуникальным контентом.

20 августа 2009 – Арзамас 1.2. Классификатор геозависимости запросов
Разделение запросов на геозависимые и геонезависимые. Приоритет старых трастовых сайтов в выдаче по ГНЗ. В топах по ГНЗ показываются преимущественно морды.

11 августа 2009 – понижение сайтов с системами clickunder
Продолжение войны с агрессивной рекламой, начатой 30 апреля.

24 июня 2009 – Арзамас 1.1.
Улучшена формула ранжирования для регионов России, исключая Москву и Санкт-Петербург. Повысилась значимость возраста домена. В выдаче замечены страницы с портянками текста и малым количеством бэклинков.

30 апреля 2009 – начало войны с агрессивной рекламой
Яндекс начал искусственно понижать в выдаче страницы с popunder-баннерами.

8 апреля 2009 – Арзамас (Анадырь). Региональная выдача
Региональную выдачу получили Москва, Санкт-Петербург, Украина, Белоруссия и Казахстан. Спустя почти 3 месяца в панели Я.Вебмастер появилась возможность привязки сайта к региону.
При ранжировании по запросам с неоднозначным смыслом стала учитываться история уточняющих запросов.
Подмешивание картинок в результаты поиска по некоторым запросам.

11 сентября 2008 – Находка
Повышение веса внутренних страниц – в выдаче по СЧ и некоторым ВЧ параллельно с мордами появились внутряки.
Морфологические изменения, отличия в выдаче по запросу в единственном и множественном числах.
Подмешивание информационных сайтов в выдачу по коммерческим запросам. Википедия в выдаче.

28 августа 2008 – изменения в алгоритме тИЦ
Нововведение коснулось сайтов, которые накручивали тИЦ по специальным схемам. У около 15% сайтов тИЦ снизился до 0-10.

2 июля 2008 – Магадан 2.0
Большой вес получил фактор уникальности текстов. Яндекс научился определять и по-другому ранжировать коммерческие запросы. Значение возраста сайта понижено.

16 мая 2008 года — Магадан
Первый именной алгоритм Яндекса. Выдача по информационным запросам. Яндекс научился расшифровывать аббревиатуры и транслитерацию.
Это первый алгоритм, который до выката в основной поиск тестировался вебмастерами на buki.yandex.ru почти месяц (с 14 апреля).

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

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

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

17 января 2008 – «Восьмерка» SP 1
Меняется отношение к внешним ссылкам. Снижение веса ссылок с «морд». Вебмастера массово переходят на покупку ссылок с внутренних страниц доноров.

7 августа 2007 года – «Родео»
Новая формула ранжирования для однословных запросов. Приоритет по однословникам в выдаче получили главные страницы («морды»).
Свое название алгоритм получил из анонса , опубликованного на Forum.Searchengines.ru Александром Садовским.

2 июля 2007 года – изменение формулы ранжирования
Алгоритм стал запросозависимым – для однословных и многословных запросов стали применяться разные формулы ранжирования.
Яндекс впервые анонсировал свой алгоритм и дал возможность вебмастерам оставлять свой фидбек .
Анонсирован на Forum.Searchengines.ru Александром Садовским.

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

Вчера Яндекс на своей презентации официально объявил о запуске нового алгоритма «Королёв».

Рассказываю как это происходило и что нового дал нам новый алгоритм Яндекса.

Вот самая трансляция данной презентации:

Я не буду мусолить весь этот пафос который был не презентации и скажу суть:

  1. Алгоритм «Королёв» запустили не вчера, а эдак 2-6 месяцев назад . Я думаю всем понятно, чтобы вот взять и запустить за секунду новый алгоритм невозможно.

Т.е. новый алгоритм Яндекса действует давно, просто всё это время шло его тестирование и отладка.

2. Это вовсе не новый алгоритм. Вовсе нет. Это алгоритм Палех в котором просто сделали возможность сравнения не 150, а 2000 результатов.

Ну, а а конкретно о различии Королёва и Палеха нам официально всё разъяснил сотрудник Яндекса:

По сути ничего не поменялось. Был просто пафос Яндекса и больше ничего.

Если говорить честно, то никакого нового алгоритма нет. Просто нет и всё. Даже поиск по органике остался прежним.

Если был бы внедрён новый алгоритм, но мы бы увидели колебания по трафику. Но этих колебаний нет.

Да, впринципе и искать то нечего.

Вот так выглядит в настоящее время выдача Яндекса:

А что собственно вы ищите своим поиском?!

Сверху 4 позиции Директа + 5-я позиция Маркет, потом 4 позиции Директа снизу, справа Яндекс.Маркет + Яндекс.Баян.

Что то тут искать?

Какой к хуям алгоритм ранжирования сайтов? Что тут ранжировать?

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

А Королёв тут причём? Вам до Королёва как до Луны. Подмазались под великого человека.

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

Теперь пройдёмся по самой презентации этого алгоритма.

За месяц до презентации Яндекс объявил, что вы можете подать заявку, чтобы вживую в планетарии посмотреть эту презентацию.

Я лично заполнял заявку. Да и много кто заполнял. И всем нам пришёл отказ.

Всё на самом деле оказалось проще:

Просто собрали своих сотрудников, родственников, знакомых, подруг и знакомых своих знакомых.

Зачем вообще мы подавали на что то заявки?! Ну теперь понятно кого вы набираете на работу в Яндекс.

Но по видимому набрали слишком много знакомых и многие из них тупо спали:


Ебала, я все ваши алгоритмы, я спать хочу….

Вот это человек пришёл на место Саши Садовского:

Яндекс запустил новый алгоритм ранжирования - «Королев». Теперь поисковая система сопоставляет смыслы поискового запроса и страницы. Это очень удобно для пользователей. Однако что новый алгоритм означает для оптимизаторов и владельцев сайтов, как изменится продвижение и стоит ли ждать изменения трафика.

Как никогда весь «сеошный» мир ждал запуска нового алгоритма ранжирования, анонсированного на 22 августа 2017 года. Ещё бы, подобные анонсы – вещь для Яндекса абсолютно нетипичная, обычно они предпочитают не распространяться о своих планах, и сообщают об очередном релизе алгоритма ранжирования постфактум.

22 августа 2017 года Яндекс запустил новую версию поиска. В её основе лежит поисковый алгоритм «Королёв» (с 2008-го года новые алгоритмы ранжирования в Яндексе называют в честь городов). Алгоритм с помощью нейронной сети сопоставляет смысл запросов и веб-страниц - это позволяет Яндексу точнее отвечать на сложные запросы. Для обучения новой версии поиска используются поисковая статистика и оценки миллионов людей. Таким образом, вклад в развитие поиска вносят не только разработчики, но и все пользователи Яндекса.

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

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

Вообще подобный подход к решению задачи ранжирования длинного микрочастотного хвоста запросов не нов. Еще в 2015-м году стало известно о технологии, применяемой поисковой системой Google для поиска ответов на многословные запросы, заданные на естественном языке – RankBrain. Эта технология, так же основанная на машинном обучении, позволяет распознавать наиболее значимые слова в запросах, и анализировать контекст, в котором осуществляется поиск. Что позволяет находить релевантные документы, которые не содержат всех слов запроса.

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

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

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

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

Чем он отличается от «Палеха»?

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

Как работает алгоритм «Королёв»

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

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

Когда человек задаёт запрос, алгоритм сравнивает вектор запроса с уже известными ему векторами страниц.

Эффект «Королёва»

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


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

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

Так можно установить дополнительные смысловые связи.

Люди учат машины

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

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

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

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

В помощи людей нуждается и Матрикснет, который строит формулу ранжирования.

Толока

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

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

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

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

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

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

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

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

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

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

Сначала был просто поиск слов - инвертированный индекс. Потом страниц стало слишком много, их стало нужно ранжировать. Начали учитываться разные усложнения - частота слов, 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 имеет высокие значения для заголовков, которые содержат слова запроса. И вполне предсказуемо, что этот фактор получает нулевое значение на заголовках, не имеющих общих слов с запросом. Теперь обратите внимание на то, как ведет себя нейронная модель. Она одинаково хорошо распознаёт связь запроса как с русскоязычным заголовком релевантной страницы из Википедии, так и с заголовком статьи на английском языке! Кроме того, кажется, что модель «увидела» связь запроса с заголовком, в котором не упоминается келлская книга, но есть близкое по смыслу словосочетание («ирландские евангелия»). Значение же модели для нерелевантного заголовка существенно ниже.

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

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

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

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

А что дальше?

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

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