Принципы работы поисковой системы

Preview:

DESCRIPTION

Презентация Алексея Данилина с выступления на бесплатном вебинаре по SEO от Netpeak.

Citation preview

Алексей Данилин

Принципы работыпоисковой системы

План доклада

1. Как работает современный поиск.2. Механизмы работы поисковых систем (ПС).3. Индексация сайтов. Структура и организация индексов.4. Ранжирование.5. Что такое пауки и как они работают.

Как работает современный поиск

Миллионы результатов за доли секунд

Различные типы ответов на запрос

Поиск по вертикалям

Расширенный поиск

Механизмы работы поисковых систем

Сканирование (Crawling)

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

Основная цель - быстро и эффективно собрать как можно больше полезных веб-страниц вместе со ссылками, которые их объединяют.

Процесс или машина, выполняющий сканирование - crawler.

Совет: использовать robots.txt и sitemap.xml для настроек сканирования, устранять битые ссылки, регулировать вложенность страниц, размер страниц, внутреннюю ссылочную структуру.

Индексирование (Indexing)

Индексирование - процесс создания индекса.

Основная цель - построить индекс для дальнейшего осуществления по нему поиска.

Процесс или машина, выполняющие индексирование - indexer.

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

Поиск по индексу

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

Введенный запрос анализируется (язык, стоп-слова, ошибки) и сопоставляется со всеми документами в базе данных поисковой системы (коллекции).

На выходе выдается список всех документов, соответствующих запросу.

Ранжирование (Ranking)

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

В формуле ранжирования могут учитываться:● вес страницы;● соответствие текста документа запросу (текстовая

релевантность);● авторитетность домена;● соответствие текста внешних ссылок запросу.

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

Индексация. Структура и организация индексов

Индексация. Структура и организация индексов

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

Самый простой способ - составить бинарную (значения 1 или 0) матрицу термин-документ (матрицу инцидентности).

В матрице инцидентности для каждого документа создается запись, в которой указано, содержит ли данный документ термин из лексикона (1) или не содержит (0).

Лексикон - множество терминов коллекции документов.

Матрица инцидентности

doc1 doc2 doc3 doc4

term1 1 1 0 1

term2 0 0 1 1

term3 0 1 0 1

term4 1 0 1 0

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

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

Для каждого термина создается список, в котором указаны идентификаторы документов, содержащие данный термин.

term1 - 1, 2, 4term2 - 3, 4term3 - 2, 4term4 - 1, 3

Термины могут быть упорядочены по алфавиту, а документы - по идентификатору. В списке могут использовать идентификаторы документов или их смещения, могут быть указаны дополнительные данные (расположение термина, частота).

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

Процесс построения инвертированного индекса

1. Собрать документы, подлежащие индексации.2. Разметить текст, преобразуя каждый документ в список лексем

(последовательность символов, объединенных в семантическую единицу для обработки).

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

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

Ранжирование

Векторная модель документов и запросов

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

tf-idf(t,d)=tf(t,d) x idf(t)

tf(t,d) - частота термина t в документе d (количество вхождений термина t в документ d/термина t в запрос d)

idf(t) - обратная документная частота (количество документов в коллекции, содержащих термин t)

Принцип подсчета tf и idf может быть разным.

Вычисление ранга документа

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

score(q,d)=(V(d),V(q))/(|V(d)| x |V(q)|)

Данная мера не зависит от схемы подсчета tf и idf.

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

CosineSqore(q) {float Scores[N]=0инициализировать Length[N]для каждого термина t запросавычислить w(t,q) и извлечь инвертированный список для термина t

для каждой пары (d, tf(t,d)) в инвертированном спискеScores[d] += wf(t,d) x w(t,q)

прочитать массив Length[d]для каждого dScores[d] = Scores[d]/Length[d]возвратить наибольшие K компонентов массива Scores[N]}

Scores[N] - содержит релевантность каждого документа запросуLength[N] - содержит длины векторов, соответствующих каждому из N документовwf(t,d), w(t,q) веса термина в документе и в запросе соответственно

Общий ранг

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

Вычисляется значение каждой переменной в формуле и умножается на весовой коэффициент.

Чтобы получить весовые коэффициенты, формула “обучается” на основании экспертной оценки асессоров.

Далее находится взвешенная комбинация всех факторов (например, линейная).

Что такое пауки и как они работают

Разделение обязанностей

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

Распределение имеет большое значение для масштабирования системы.

Обязанности разделяются:● при сканировании;● при индексировании;● при анализе ссылок.

Требования к паукам

Обязательные:● устойчивость (к ловушкам в вебе);● вежливость (частота обращения к серверу).

Желательные:● распределенность (на многих машинах);● масштабируемость (повышение производительности за счет

добавления новых машин и расширения полосы пропускания);● производительность и эффективность (эффективное

использование доступных ресурсов);● качество (преимущество полезным страницам);● свежесть (частота охода примерно равна частоте

обновления);● расширяемость (модульная архитектура для расширения по

разным направлениям).

Базовая схема работы поискового паука

www

DNS

СкачатьАнализ

Содержание обнаружено?

Фильтр URL

Разделитель хостов

Удаление дубликатов URL

Очередь на скачивание URL

Контрольные суммы документов

Множество URL

Обработка документаПарсерИнверторСловопозиции

Другие узлы

Узнайте больше об интернет-маркетинге

Recommended