Алгоритм ранжирования – новый алгоритм ранжирования в поиске и изменения в работе визуальных карточек — Новости рекламных технологий Яндекса

Содержание

Выявление алгоритмов ранжирования поисковых систем / Habr

Пища для ума

Когда какое-то время работаешь в сфере SEO, рано или поздно невольно посещают мысли о том, какие же формулы используют поисковики, чтобы поставить сайт в поисковой выдаче выше или ниже. Всем известно, что это все хранится в глубочайшей секретности, а мы, оптимизаторы, знаем только то, что написано в рекомендациях для вебмастеров, и на каких-то ресурсах посвященных продвижению сайтов. А теперь задумайтесь на секунду: что если бы у вас был бы инструмент, который достоверно, с точностью в 80-95% показывал бы, что именно нужно сделать на странице вашего сайта, или на сайте в целом, для того, чтобы по определенному запросу ваш сайт был на первой позиции в выдаче, или на пятой, или просто на первой странице. Мало того, если бы этот инструмент мог бы с такой же точностью определить, на какую позицию выдачи попадете, если выполните те или иные действия. А как только поисковик вводил бы изменения в свою формулу, менял бы важность того или иного фактора, то можно было бы сразу видеть, что конкретно в формуле было изменено. И это только малая доля той информации, которую вы могли бы получить из такого инструмента.

Итак, это не реклама очередного сервиса по продвижению, и это не предоставление конкретной формулы ранжирования сайтов поисковыми системами. Я хочу поделиться своей теорией, на реализацию которой у меня нет ни средств, ни времени, ни достаточных знаний программирования и математики. Но я точно знаю, что даже у тех, у кого все это есть, на реализацию этого может уйти даже не 1 месяц, возможно, 1-1,5 года.

Теория

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

Посмотрели на таблицу? Теперь к делу. Берем любую ключевую фразу, не важно какую, вводим в поисковик и из выдачи берем первых 10 сайтов, это и будут наши подопытные. Теперь нам нужно сделать следующее: написать код, который будет методом тыка менять значимость у факторов (

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

Теперь по порядку о таблице и факторах. Условно каждому фактору присваиваем значение от 1 до 800 (примерно). Так как достоверно известно, что у Яндекса, например, факторов ранжирования где-то близко к этому числу. Грубо говоря, у нас максимальное число будет таким, сколько факторов ранжирования нам точно известно. У двух факторов не может быть одинакового числа, то есть у каждого фактора значение уникальное. В таблице для каждого фактора отдельная колоночка, и их очень много, физически мне не удастся на одной картинке все разместить.

Теперь вопрос, как вычислить ранг страницы? Очень просто: для начала простая математика, если фактор положительно влияет, мы к рангу страницы прибавляем ранг фактора, если отрицательно, то прибавляем 0. Можно усложнить, сделать 3 варианта и добавить, например, вычитание ранга фактора от ранга страницы, если этот фактор критический, например, грубый спам ключевой фразы.

У нас получается примерно такой алгоритм вычисления ранга страницы. Возьмем его за (PR), а фактор возьмем как (F) и тогда:

PR = Берем первый фактор Если F1 положительный, то делать PR + F1, если F1 отрицательный то делать PR — F1, если F1 нейтральный, то не делать ничего, после этого проверяем так же F2, F3, F4 и так далее, пока факторы не кончатся.
А подбор производить таким образом, что бы у каждого фактора попробовать каждое значение ранга. То есть чтобы каждый фактор испробовать в каждом значении.

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

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

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

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

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

В общем, это очень сложная тема, и очень полезная информация для ума, потому как заставляет подумать, хватит, например, мощности одного компьютера на такие вычисления? А если и хватит, то сколько это займет времени к примеру? Если не удовлетворит результат, то формулу как-то можно усложнять, менять, пока не будет 100% точного результата на 100 страницах выдачи. Более того, можно для чистоты эксперимента подключить около 100 различных сайтов и внедрить на них несуществующую ключевую фразу, а потом по этой же ключевой фразе и отследить алгоритм. Вариантов масса. Нужно работать.

Google BERT — новый поисковый алгоритм. Как изменится ранжирование и что делать сейчас?

Google не устает радовать своих пользователей и официально представил новый поисковый алгоритм – Google BERT.

Что известно об этом и в чем суть? Давайте разбираться.

Google BERT-это алгоритм поисковой системы, призванный улучшить релевантность результатов поисковой выдачи за счет способности анализировать не ключевые фразы, а предложения.
Аббревиатура BERT означает следующее — Bidirectional Encoder Representations from Transformers, что, в переводе на русский язык, значит: двунаправленная нейронная сеть кодировщик. Для получения лучшего результата используется нейронная сеть, которая способна наделить поисковую систему пониманием, в том числе на разных языках. На данный момент алгоритм применяется на 10% запросов к поисковой системе, в основном это США. Основной язык для тестирования – английский и в будущем планируется применение для SERP большинства языков и стран.


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

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

Выводы


Google считают внедрение алгоритма ранжирования BERT крупнейшим прорывом за последние 5 лет и одним из самых значимых достижений в истории сервисов поиска (включенный в стратегию Google Al First). Более полная информация о начале использования алгоритма ранжирования BERT представлена в официальном блоге Google. Задача, которая стоит перед BERT – решение задач по обработке естественного языка или natural language processing.
Ключевые моменты, на которые влияет алгоритм –это:
  • Ранжирование части страниц в поисковой выдаче;
  • Формирование сниппетов.

Для более плавного перехода к алгоритму следует расширить список ключевых фраз похожими. Как подготовиться к приходу алгоритма? Имеет смысл расширить список ключевых фраз похожими.

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

Алгоритмы работы и ранжирования поисковых систем Яндекс и Google

Есть проблемы с ранжированием, проект не растет, хотите проверить работу своих специалистов по продвижению? Закажите профессиональный аудит в Семантике

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

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

Алгоритм поисковой системы

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

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

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

Принципы работы поискового алгоритма

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

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

 

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

 

Алгоритмы систем Яндекс и Google

Яндекс — это поисковая система, ориентированная на русскоязычную аудиторию. Она появилась в 1990 г., когда ее основатели А. Волж и А. Борковский начали работать над программным обеспечением. Этот поисковик значительно уступает корпорации Google на мировом уровне и позиционирует себя как поисковая система номер один в странах СНГ. Яндекс раскрывает больше информации о своих алгоритмах, чем его заокеанский конкурент, соответственно, картина выдачи здесь более ясная. Эта система использует названия русских городов в своих алгоритмах: Магадан, Снежинск, Находка, Обнинск, Конаково, Арзамас и др.

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

 

Основные различия двух систем

  1. Для поискового алгоритма Яндекс крайне важна географическая принадлежность ресурса, соответственно, запросы привязываются по территориальному признаку. Google анализирует IP-адрес пользователя и выдает результаты по соответствующему региону.
  2. Для поискового алгоритма Google играет большую роль внутренняя перелинковка сайта — чем больше ссылок на внутренние страницы, тем лучше. Здесь тоже нужно знать меру, так как содержание страниц оказывает существенное влияние на оценку поисковика. Яндекс определяет сквозные ссылки сайта как одну, а Google учитывает каждую.
  3. Для системы Google важен контент сайта. Если нет смысловой нагрузки, уникальности контента и его читабельности, то сайт никогда не будет в топе. Для Яндекса контент играет второстепенную роль.
  4. Многие SEO-специалисты знают, что продвинуть сайт в системе Google несколько проще, чем в Яндекс, так как индексация сайтов в Яндекс проходит реже и, соответственно, само продвижение занимает намного больше времени.

 

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

История алгоритмов ранжирования поисковой системы Google

Алгоритмы ранжирования системы Google направлены на формирование упорядоченного рейтинга веб-страниц в поисковой выдаче. В результате интернет-пользователи получают релевантные страницы согласно введённым в поиск запросам. Ранжирование осуществляется при помощи перечня алгоритмов, которые периодически модернизируются для максимально точного определения интересов и потребностей пользователей поисковиком.

Общие принципы ранжирования Google

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

  1. Анализирует слова и словосочетания, указанные в запросе. Разработчик создаёт так называемые языковые модели, определяющие конструкции слов, которые следует обнаружить в индексе.
  2. Подбирает страницы, отвечающие запросу пользователя. Действующие алгоритмы совершают сопоставление ключевых слов в запросе и на веб-странице, а также выявляют, содержат ли предполагаемые результаты поисковой выдачи полные сведения по заданному запросу.
  3. Ранжирует релевантные страницы. Алгоритмы системы на основе различных факторов дают оценку релевантности веб-страниц, выстраивая рейтинг от наиболее подходящих пользователю страниц к менее полезным.
  4. Показ релевантных результатов. Алгоритмы ранжирования анализируют тематику запроса и предлагают разнообразные сведения в оптимальной для конкретного пользователя форме.
  5. Исследует данные о пользователях, в частности геоположение, историю запросов, настройки Google Поиска.

Восстановим хронологию алгоритмов ранжирования

Компания Google стартовала в 1998 году. С этого момента начинается череда преобразований и разработка различных алгоритмов, направленных на повышение качества поиска для удобства и удовлетворения интересов пользователей.

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

Алгоритм Page Rank (PR): 1998 г.

В основе этого алгоритма используется передача ссылочного веса. Его работа достаточно прозрачная: чем больше численность ссылок, направляющих на веб-страницу, тем выше показатель PR («авторитетность ресурса»), значит, страница поднимается вверх в результатах поисковой выдачи. Кроме того, чем больше величина PR ссылающихся страниц, тем больше веса передают эти ссылки. Алгоритм Page Rank используется поисковиком по сегодняшний день, конечно, в модернизированном виде.

Алгоритм Hilltop: декабрь 2000 г.

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

Изменения в алгоритме Hilltop: 2001 г.

Поисковая система запатентовала обновлённый алгоритм Hilltop. Теперь для расчёта величины PR применяется динамический ранг страницы. Кроме того, поисковая выдача стала классифицироваться на коммерческие и некоммерческие запросы.

Алгоритм Boston: февраль 2003 г.

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

Алгоритм Dominic: май 2003 г.

Каких-либо особых нововведений в ранжировании веб-сайтов не произошло, но в этот период времени появились боты Freshbot и Deepcrawler.

Алгоритм Fritz: июль 2003 г.

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

Алгоритм Brandy: февраль 2004 г.

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

Персонализация поисковой выдачи: июнь 2005 г.

Первый шаг системы Google в персонализации результатов выдачи. Он основывался на применении истории запросов пользователей на странице поиска.

Запуск алгоритма на основе Orion: 2006 г.

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

Алгоритм Austin: 2007 г.

С запуском данного алгоритма при ранжировании поисковая система начинает оценивать трастовость ресурсов (уровень доверия пользователей).

Алгоритм Caffeine: август 2009 г.

Нововведения коснулись индексации ресурсов – теперь сайты индексировались быстрее и скорость генерирования результатов поиска значительно увеличилась. С этого момента Google больше внимания уделяет качеству контента, частоте обновлений и внутренней оптимизации веб-сайтов. А в декабре этого же года выдача результатов поиска начинает обновляться в реальном времени. В июне 2010 г. выходит обновление алгоритма Caffeine – более высокий уровень индексации страниц, после чего новый контент быстрее попадает в индекс.

Алгоритм Venice: 03.01.2012 г.

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

Алгоритм Knowledge Graph: 16.05.2012 г.

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

Алгоритм Hummingbird: август 2013 г.

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

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

Алгоритм Pigeon: август 2014 г.

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

Алгоритм Mobile-Friendly: 21.04.2015 г.

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

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

Алгоритм RankBrain: 26.10.2015 г.

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

Алгоритм Possum: 01.09.2016 г.

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

Алгоритм Hawk: 22.08.2017 г.

Внесены изменения в локальный фильтр. По сути, этот алгоритм стал усовершенствованной версий Possum. Например, до этого момента, если две компании находились вблизи друг друга на расстоянии 100 м, то показывалась та, у которой был выше органический рейтинг, и он более точно соответствовал ключевым словам. Теперь обе эти компании могли попадать в поисковую выдачу. Но повезло не всем. Те, кто отслеживал изменения, утверждали, что продолжают отфильтровываться организации, расположенные в одном здании или в соседнем, но на расстоянии 50 м от своих конкурентов.

Алгоритм Speed Update: январь 2018 г.

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

Алгоритм Your Money, Your Life: март 2018 г.

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

«Видео карусель»: 14.06.2018 г.

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

Алгоритм March 2019 Core Update: март 2019 г.

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

Метрики качества ранжирования / E-Contenta corporate blog / Habr

В процессе подготовки задачи для вступительного испытания на летнюю школу GoTo, мы обнаружили, что на русском языке практически отсутствует качественное описание основных метрик ранжирования (задача касалась частного случая задачи ранжирования — построения рекомендательного алгоритма). Мы в E-Contenta активно используем различные метрики ранжирования, поэтому решили исправить это недоразуменее, написав эту статью.

Задача ранжирования сейчас возникает повсюду: сортировка веб-страниц согласно заданному поисковому запросу, персонализация новостной ленты, рекомендации видео, товаров, музыки… Одним словом, тема горячая. Есть даже специальное направление в машинном обучении, которое занимается изучением алгоритмов ранжирования способных самообучаться — обучение ранжированию (learning to rank). Чтобы выбрать из всего многообразия алгоритмов и подходов наилучший, необходимо уметь оценивать их качество количественно. О наиболее распространенных метриках качества ранжирования и пойдет речь далее.

Кратко о задаче ранжирования


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

Формально, рассмотрим N объектов и M элементов . Реузальтат работы алгоритма ранжирования элементов для объекта — это отображение , которое сопоставляет каждому элементу вес , характеризующей степень релевантности элемента объекту (чем больше вес, тем релевантнее объект). При этом, набор весов задает перестановку на наборе элементов элементов (считаем, что множество элементов упорядоченное) исходя из их сортировки по убыванию веса .

Чтобы оценить качество ранжирования, необходимо иметь некоторый «эталон», с которым можно было бы сравнить результаты алгоритма. Рассмотрим — эталонную функцию релевантности, характеризующую «настоящую» релевантность элементов для данного объекта ( — элемент идеально подходит, — полностью нерелевантен), а так же соответствующую ей перестановку (по убыванию ).

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

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

Цель метрики качества ранжирования — определить, насколько полученные алгоритмом оценки релевантности и соответствующая им перестановка соответствуют истинным значениям релевантности . Рассмотрим основные метрики.

Mean average precision


Mean average precision at K (map@K) — одна из наиболее часто используемых метрик качества ранжирования. Чтобы разобраться в том, как она работает начнем с «основ».

Замечание: «*precision» метрики используется в бинарных задачах, где принимает только два значения: 0 и 1.

Precision at K


Precision at K (p@K) — точность на K элементах — базовая метрика качества ранжирования для одного объекта. Допустим, наш алгоритм ранжирования выдал оценки релевантности для каждого элемента . Отобрав среди них первые элементов с наибольшим можно посчитать долю релевантных. Именно это и делает precision at K:

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

Average precision at K


Precision at K — метрика простая для понимания и реализации, но имеет важный недостаток — она не учитывает порядок элементов в «топе». Так, если из десяти элементов мы угадали только один, то не важно на каком месте он был: на первом, или на последнем, — в любом случае . При этом очевидно, что первый вариант гораздо лучше.

Этот недостаток нивелирует метрика ранжирования average precision at K (ap@K), которая равна сумме p@k по индексам k от 1 до K только для релевантных элементов, деленому на K:


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

Теперь и map@K нам по зубами.

Mean average precision at K


Mean average precision at K (map@K) — одна из наиболее часто используемых метрик качества ранжирования. В p@K и ap@K качество ранжирования оценивается для отдельно взятого объекта (пользователя, поискового запроса). На практике объектов множество: мы имеем дело с сотнями тысяч пользователей, миллионами поисковых запросов и т.д. Идея map@K заключается в том, чтобы посчитать ap@K для каждого объекта и усреднить:
Замечание: идея эта вполне логична, если предположить, что все пользователи одинаково нужны и одинаково важны. Если же это не так, то вместо простого усреднения можно использовать взвешенное, домножив ap@K каждого объекта на соответствующий его «важности» вес.

Normalized Discounted Cumulative Gain


Normalized discounted cumulative gain (nDCG) — еще одна распространенная метрика качества ранжирования. Как и в случае с map@K, начнем с основ.

Cumulative Gain at K


Вновь рассмотрим один объект и элементов с наибольшим . Cumulative gain at K (CG@K) — базовая метрика ранжирования, которая использует простую идею: чем релевантные элементы в этом топе, тем лучше:
Эта метрика обладает очевидными недостатками: она не нормализована и не учитывает позицию релевантных элементов.

Заметим, что в отличии от p@K, CG@K может использоваться и в случае небинарных значений эталонной релевантности .

Discounted Cumulative Gain at K


Discounted cumulative gain at K (DCG@K) — модификация cumulative gain at K, учитывающая порядок элементов в списке путем домножения релевантности элемента на вес равный обратному логарифму номера позиции:
Замечание: если принимает только значения 0 и 1, то , и формула принимает более простой вид:
Использование логарифма как функции дисконтирования можно объяснить следующими интуитивными соображениями: с точки зрения ранжирования позиции в начале списка отличаются гораздо сильнее, чем позиции в его конце. Так, в случае поискового движка между позициями 1 и 11 целая пропасть (лишь в нескольких случаях из ста пользователь заходит дальшей первой страницы поисковой выдачи), а между позициями 101 и 111 особой разницы нет — до них мало кто доходит. Эти субъективные соображения прекрасно выражаются с помощью логарифма:
Discounted cumulative gain решает проблему учета позиции релевантных элементов, но лишь усугубляет проблему с отсутствием нормировки: если варьируется в пределах , то уже принимает значения на не совсем понятно отрезке. Решить эту проблему призвана следующая метрика

Normalized Discounted Cumulative Gain at K


Как можно догадаться из названия, normalized discounted cumulative gain at K (nDCG@K) — не что иное, как нормализованная версия DCG@K:
где — это максимальное (I — ideal) значение . Так как мы договорились, что принимает значения в , то .

Таким образом, наследует от учет позиции элементов в списке и, при этом принимает значения в диапазоне от 0 до 1.

Замечание: по аналогии с map@K можно посчитать , усредненный по всем объектам.

Mean reciprocal rank


Mean reciprocal rank (MRR) — еще одна часто используемая метрика качества ранжирования. Задается она следующей формулой:
где reciproсal rank для -го объекта — очень простая по своей сути величина, равная обратному ранку первого правильно угаданного элемента.
Mean reciprocal rank изменяется в диапазоне [0,1] и учитывает позицию элементов. К сожалению он делает это только для одного элемента — 1-го верно предсказанного, не обращая внимания на все последующие.

Метрики на основе ранговой корреляции


Отдельно стоит выделить метрики качества ранжирования, основанные на одном из коэффициентов ранговой корреляции. В статистике, ранговый коэффициент корреляции — это коэффициент корреляции, который учитывает не сами значения, а лишь их ранг (порядок). Рассмотрим два наиболее распространенных ранговых коэффициента корреляции: коэффициенты Спирмена и Кендэлла.

Ранговый коэффициент корреляции Кендэлла


Первый из них — коэффициент корреляции Кендэлла, который основан на подсчете согласованных
(и несогласованных) пар у перестановок — пар элементов, котором перестановки присвоили одинаковый (разный) порядок:

Ранговый коэффициент корреляции Спирмена


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

Метрики на основе ранговой корреляции обладают уже известными нам недостатком: они не учитывают позицию элементов (еще хуже чем p@K, т.к. корреляция считается по всем элементам, а не по K элементам с наибольшим рангом). Поэтому на практике используются крайне редко.

Метрики на основе каскадной модели поведения


До этого момента мы не углублялись в то, как пользователь (далее мы рассмотрим частный случай объекта — пользователь) изучает предложенные ему элементы. На самом деле, неявно нами было сделано предположение, что просмотр каждого элемента независим от просмотров других элементов — своего рода «наивность». На практике же, элементы зачастую просматриваются пользователем поочередно, и то, просмотрит ли пользователь следующий элемент, зависит от его удовлетворенности предыдущими. Рассмотрим пример: в ответ на поисковый запрос алгоритм ранжирования предложил пользователю несколько документов. Если документы на позиции 1 и 2 оказались крайне релевантны, то вероятность того, что пользователь просмотрит документ на позиции 3 мала, т.к. он будет вполне удовлетворен первыми двумя.

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

Expected reciprocal rank


Expected reciprocal rank (ERR) — пример метрики качества ранжирования, основанной на каскадной модели. Задается она следующей формулой:


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


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

PFound


PFound — метрика качества ранжирования, предложенная нашими соотечественниками и использующая похожую на каскадную модель:
где
  • ,
  • , если и 0 иначе,
  • — вероятность того, что пользователь прекратит просмотр по внешним причинам.


В заключении приведем несколько полезных ссылок по теме:
— Статьи на википедии по: обучению ранжированию, MRR, MAP и nDCG.
— Официальный список метрик используемых на РОМИП 2010.
— Описание метрик MAP и nDCG на kaggle.com.
— Оригинальные статьи по каскадной модели, ERR и PFound.

Написано с использованием StackEdit.
Большое спасибо пользователю SeptiM за восхитительный habratex.

как поставить машинное обучение на поток (пост #1) / Яндекс corporate blog / Habr

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


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

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

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

Возможно, вы уже читали о платформе распределённых вычислений Yet Another MapReduce (YAMR), библиотеке машинного обучения Матрикснет и основном алгоритме обучения формулы ранжирования. Теперь мы решили рассказать и о фреймворке FML (friendly machine learning — «машинное обучение с человеческим лицом»). Он стал следующим шагом в автоматизации и упрощении работы наших коллег — поставил работу с машинным обучением на поток. Вместе FML и Матрикснет являются частями одного решения — технологии машинного обучения Яндекса.

Рассказывать о FML достаточно сложно, а сделать это мы хотим обстоятельно. Поэтому разобьём наш рассказ на несколько постов:

  1. Что такое ранжирование и какие задачи оно решает. Здесь мы расскажем о проблематике ранжирования и основных сложностях, возникающих в этой области. Даже если вы никогда не занимались этой темой, этого введения будет достаточно для понимания всего последующего материала. А уже знакомые с ранжированием смогут свериться с нами в используемой терминологии.
  2. Подбор формулы ранжирования. Вы узнаете о том, как FML стал конвейером по подбору формул (да-да, их много!), чтобы оперативно учитывать большой объём асессорских оценок и новых факторов при минимальном участии человека. А также о созданном в Яндексе кластере на GPU-процессорах, который вполне может войти в сотню самых мощных суперкомпьютеров в мире.
    Разработка новых факторов и оценка их эффективности. Как правило, публикации в сфере машинного обучения уделяют основное внимание самому процессу подбора формул, а разработку новых факторов обходят стороной. Однако сколько бы замечательной ни была технология машинного обучения, без хороших факторов ничего не получится. В Яндексе существует даже отдельная группа разработчиков, занятая исключительно их созданием. Здесь речь пойдёт о том, из чего состоит технологический цикл, в результате которого появляются новые факторы, и каким образом FML помогает оценить пользу от внедрения и себестоимость каждого из них.
  3. Мониторинг качества уже внедрённых факторов. Интернет постоянно меняется. И вполне возможно, что факторы, которые ещё несколько лет назад очень помогли поднять качество, на сегодняшний день утратили свою ценность и впустую расходуют вычислительные ресурсы. Поэтому мы расскажем о том, как FML поддерживает постоянную эволюцию, в которой слабые факторы погибают и уступают место сильным.
    Конвейер распределённых вычислений. Машинное обучение — лишь одна из задач, которые хорошо решает FML. Более широко его применяют для того, чтобы упростить работу с распределёными вычислениями на кластере в несколько тысяч серверов над большим массивом данных, меняющимся во времени. На сегодняшний день около 70% вычислений в разработке Яндекс.Поиска находится под управлением FML.
    Области применения и сравнение с аналогами. FML используется в Яндексе для машинного обучения целым рядом команд и для решения далёких от поиска задач. Мы полагаем, что наша разработка может пригодиться и коллегам по отрасли, имеющим дело с задачами машинного обучения, да и просто с расчётами на больших объёмах данных. Мы обозначим круг задач, для решения которых FML может оказаться полезным и за пределами Яндекса, и сравним его с аналогами, доступными на рынке. Мы также расскажем, как применение FML в CERN может открыть дорогу Нобелевской премии.
Что такое ранжирование и какую задачу оно решает


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

Когда-то давно в Яндексе функция ранжирования выражалась одной единственной формулой, подобранной вручную. Её размер растёт экспоненциально (на графике шкала Y — логарифмическая).

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

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

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

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

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

Существует несколько технологий получения асессорских оценок, и каждая из них даёт свой вид суждений. В данный момент в Яндексе асессоры оценивают релевантность документа запросу по пятибалльной шкале. Этот метод основан на методологии Cranfield II. В других задачах мы используем и иные виды экспертных данных — например, в классификаторах могут применяться бинарные оценки.

Почему стандартные методики неприменимы в ранжированииОднако, даже собрав достаточное число оценок и рассчитав для каждой пары (запрос + документ) набор факторов, построить ранжирующую функцию стандартными методами оптимизации не так просто. Основная сложность возникает из-за кусочно-постоянной природы целевых метрик ранжирования (nDCG, pFound и т.п.). Это свойство не позволяет использовать здесь, например, известные градиентные методы, которые требуют дифференцируемости функции, которую мы оптимизируем.
Существует отдельная научная область, посвященная метрикам ранжирования и их оптимизации — Learning to Rank (обучение ранжированию). А в Яндексе есть специальная группа, которая занимается реализацией и совершенствованием различных методов решения этого достаточно узкого, но очень важного для поиска класса оптимизационных задач.
Итак, функция ранжирования строится по набору факторов и по обучающим данным, подготовленным экспертами. Её построением и занимается машинное обучение — в случае Яндекса библиотека Матрикснет. В следующих постах мы расскажем о том, откуда берутся поисковые факторы, и как всё это связано с FML.

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

Интернет, 26 марта 2004. Яндекс изменил алгоритм ранжирования и добавил новые возможности в поиск.

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

Также введена дополнительная очистка результатов поиска от дубликатов. Теперь пользователь избавлен от повторения в списке найденного почти одинаковой информации.

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

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

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

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

Контакты
Компания «Яндекс»
Елена Колмановская, главный редактор
Телефон: +7 (495) 739-7000
Факс: +7 (495) 739-7070
Электронная почта: [email protected]

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

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