Поисковые службы

 

 

 

Поисковая машина движок (поисковый движок, search engine) - комплекс программ, обеспечивающий функциональность поисковой системы.

Поисковый движок является основой поисковой системы.

 

Функции поискового движка:

  • индексация информационных ресурсов (извлечение из документов информации, важной для поиска, преобразование этой информации в формат, удобный для поисковой машины и сохранение этой информации в базу данных поисковой машины);

  • Поиск документов, соответствующих поисковому запросу, в базе данных проиндексированных ресурсов;

  • Ранжирование документов в соответствии с их релевантностью поисковым запросам

  • Кластеризация результатов (разбиение некоторой совокупности на группы (кластеры, cluster) с общими признаками)

  • Выдача результатов поиска их пользователю.

Важнейшей частью поискового движка является поисковый робот.

 

 

 

Поисковый робот

 

Важнейшей частью поискового движка является поисковый робот.

Поисковый робот (web crawler) — программа, предназначенная для обхода и индексирования страниц Интернета.

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

 

Виды роботов Яндекса:

  • Yandex/1.01.001 (compatible; Win16; I) — основной индексирующий робот

  • Yandex/1.01.001 (compatible; Win16; P) — индексатор картинок

  • Yandex/1.01.001 (compatible; Win16; H) — робот, определяющий зеркала сайтов

  • Yandex/1.02.000 (compatible; Win16; F) — робот, индексирующий пиктограммы сайтов (favicons)

  • Yandex/1.03.003 (compatible; Win16; D) — робот, обращающийся к странице при добавлении ее через форму «Добавить URL»

  • Yandex/1.03.000 (compatible; Win16; M) — робот, обращающийся при открытии страницы по ссылке «Найденные слова»

  • YaDirectBot/1.0 (compatible; Win16; I) — робот, индексирующий страницы сайтов, участвующих в Рекламной сети Яндекса

  • YandexBlog/0.99.101 (compatible; DOS3.30,B) – робот, индексирующий xml-файлы для поиска по блогам.

  • YandexSomething/1.0 – робот, индексирующий новостные потоки партнеров Яндекс-Новостей.

  • Bond, James Bond (version 0.07) — робот, заходящий на сайты из подсети Яндекса. Ходит выборочно по страницам. Судя по повадкам, робот занимается проверкой сайтов на нарушения – клоакинг и пр.

Агенты-«простукивалки» Яндекса (определяют доступность в данный момент ресурса, на который стоит ссылка в соответствующем сервисе):

  • Yandex/2.01.000 (compatible; Win16; Dyatel; C) — «простукивалка» Яндекс.Каталога. Если сайт недоступен в течение нескольких дней, он снимается с публикации. Как только сайт начинает отвечать, он автоматически появляется в Каталоге.

  • Yandex/2.01.000 (compatible; Win16; Dyatel; Z) — «простукивалка» Яндекс.Закладок. Ссылки на недоступные сайты помечаются серым цветом.

  • Yandex/2.01.000 (compatible; Win16; Dyatel; D) — «простукивалка» Яндекс.Директа. Она проверяет корректность ссылок из объявлений перед модерацией. Никаких автоматических действий не предпринимается.

  • Yandex/2.01.000 (compatible; Win16; Dyatel; N) — «простукивалка» Яндекс.Новостей. Она формирует отчет для контент-менеджера, который оценивает масштаб проблем и, при необходимости, связывается с партнером.

 

 

 

Индексация

 

Индексация - процесс добавления поисковым роботом сведений о Web-страницах в индекс поисковой системы.

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

 

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

 

 

 

Запреты на индексацию

 

Запрет всем роботам поисковых систем на индексацию сайта обеспечивает файл robots.txt (в корневом каталоге сервера) следующего содержания:

User-agent: *
Disallow: /

Только из Google:

User-agent: Googlebot
Disallow: /

Для каждого порта должен быть создан собственный файл robots.txt (если используются протоколы http и https, для каждого из них потребуются отдельные файлы robots.txt).

 

Тег <noindex> запрещает роботу Яндекса индексировать заданные участки текста. В начале служебного фрагмента ставится <noindex>, а в конце — </noindex>, и Яндекс не будет индексировать данный участок текста.

Тег работает аналогично мета-тегу noindex, но распространяется только на контент, заключенный внутри тега в формате:

<noindex>текст, индексирование которого нужно запретить</noindex>

 

 

 

PageRank

Лэрри Пейдж и Сергей Брин создали революционную систему PageRank, которая изменила метод ведения поиска.

 

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

PageRank выполняет объективную оценку значимости веб-страниц путем расчета уравнения с более 500 переменными и 2 миллиардами терминов.

Вместо подсчета прямых ссылок PageRank интерпретирует ссылку страницы А на страницу В как голос страницы А в пользу страницы В. Затем PageRank оценивает значимость страницы по числу полученных голосов.

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

PageRank сегодня стал частью огромной системы включающей

  • языковые модели (способность системы работать с различными фразами, синонимами, диакритическими знаками, орфографическими ошибками и т.д.);

  • модели запросов (суть процесса заключается не просто в самом языке, а в том, как люди пользуются им в современном мире);

  • временные модели (некоторые запросы лучше всего получают ответ от 30-минутной страницы, при том, как другие быстрее получают ответы от страниц, которые уже прошли тест времени);

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

Google выполняет также анализ полного содержания страницы и таких факторов, как шрифты, подразделы и точное местоположение каждого слова.

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

 

25.07.2008  В индексе Google триллион Web-страниц

Cистема индексирования ссылок Google показала, что количество уникальных URL достигло 1 триллиона (и количество отдельных веб-страниц ежедневно увеличивается на несколько миллиардов).

 

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

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

В будущем основной моделью поиска станет индексация в режиме реального времени.

 

 

 

Ранжирование документов

 

Ранжирование - расположение (выстраивание, распределение) объектов по рангу (определённому качеству, параметру, показателю).

При ранжировании, каждая пара документ-запрос переводится в числовой вектор из ранжирующих факторов (признаков, сигналов), характеризующих свойства документа, запроса и их взаимоотношение.

Алгоритмы ранжирования:

  • Поточечный  (pointwise) предполагает, что каждой паре запрос-документ поставлена в соответствие численная оценка.

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

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

Группы ранжирующих факторов:

  • Запросо-независимые (статические признаки) — зависящие только от документа, но не от запроса. Например, длина документа. .

  • Запросо-зависимые (динамические признаки) — зависящие и от документа, и от запроса. Например, мера соответствия языка документа языку запроса.

  • Зависящие только от запроса. Например, «запрос о науке или нет».

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

Что бы ни попасть под фильтр необходимо:

  • Публиковать только качественный контент (с точки зрения ...)

  • Регулярно обновлять ресурс.

  • Наращивайть качественную ссылочную базу

  • Правильно настроить и обеспечить работоспособность служебных файлов.

  • Занимать "ПРАВИЛЬНУЮ" позицию ....

02.08.2011 Амит Сингал (руководителем команды Google, ответственной за ранжирование):

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

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

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

 

 

 

 

Здесь факторы ранжирования поисковой системой Google.

Здесь фильтры ранжирования поисковых систем Google и Яндекс (разумеется, предполагаемые).

 

 

 

 

Обучение ранжированию

 

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

Найденные в индексе страницы и показываются пользователю.

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

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

Обучение ранжирование (machine-learned ranking, MLR) - класс задач машинного обучения, заключающихся в автоматическом подборе ранжирующей модели по обучающей выборке, состоящей из множества списков и заданных частичных порядков на элементах внутри каждого списка.

Цель ранжирующей модели — наилучшим образом (в некотором смысле) приблизить и обобщить способ ранжирования в обучающей выборке на новые данные.- расположение (выстраивание, распределение) объектов по рангу (определённому качеству, параметру, показателю).

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

 

Многие поисковые машины используют ранжирующие модели, построенные методами машинного обучения Яндекс (MatrixNet), Bing (RankNet), Yahoo (?).

С 2009 года Яндекс спонсирует конкурс «Интернет-математика» по построению ранжирующего алгоритма на наборе своих собственных данных.

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

.

02.08.2008 Амит Сингал (руководителем команды Google, ответственной за ранжирование):

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

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

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

 

 

 

MatrixNet

 

MatrixNet (Матрикснет) – специальный алгоритм машинного обучения от Яндекса.

Цель разработки MatrixNet - многократное увеличение количества факторов ранжирования и, как следствие, повышение качества поиска.

Впервые о MatrixNet заговорили одновременно с введением поискового алгоритма «Снежинск» в 2009 году.

Поисковая машина, обученная с помощью MatrixNet:

  • перестает выдавать желаемое за действительное, придавая несущественным поисковым критериям большой вес.

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

 

 

Кластеризация

 

Кластер (cluster — скопление) - объединение нескольких однородных элементов, которое может рассматриваться как самостоятельная единица, обладающая определёнными свойствами.

Кластер как подмножество результатов поиска, связанных единством темы;

 

Кластеризация результатов поиска — группировка результатов поиска в поисковой системе по тому или иному признаку с целью сделать результат поиска более удобным и решить проблемы:

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

 

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

 

Поисковые машины с кластеризацией результатов: «Clusty», «Нигма».

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

Quintura Search:

  • отражает поисковый запрос на визуальной карте и позволяет управлять картой и редактировать запрос при помощи мыши.

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

  • группирует данные на ходу при изменении запроса щелчком мыши предлагая .

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

 

 

Google Instant

 

Владимир Долгов (глава представительства Google Россия): Для кого-то поиск - это искусство, для кого-то - наука, а для Google это работа.

09.09.2010 Google представил Google Instant: теперь поисковые результаты будут выдаваться пользователю по мере ввода запроса, еще до того как он нажмет кнопку "Искать". Google Instant поддерживается браузерами Chrome (5 и выше), Firefox (3 и выше), Internet Explorer 8 и Safari для Mac 5).

Марисса Майер (вице-президент по поисковым продуктам Google): Google Instant дает пользователям массу преимуществ. Но главная из них – это скорость. Тестирование показало, что Живой поиск позволяет сэкономить от 2 до 5 секунд на каждом запросе. Вроде бы немного. Однако если все пользователи будут пользоваться Google Instant, получится, что все они каждую секунду будут экономить на поиске 11 часов.