1 / 26

К созданию архитектуры поисковой системы в наборах документов.

К созданию архитектуры поисковой системы в наборах документов. Горелов С.С. МГУ им. М.В. Ломоносова механико-математический факультет. Структура доклада. Введение Математическая модель поиска. Архитектура поисковой системы. Примеры применения преложенной архитектуры.

adila
Télécharger la présentation

К созданию архитектуры поисковой системы в наборах документов.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. К созданию архитектуры поисковой системы в наборах документов. • Горелов С.С. • МГУ им. М.В. Ломоносова • механико-математический факультет.

  2. Структура доклада • Введение • Математическая модель поиска. • Архитектура поисковой системы. • Примеры применения преложенной архитектуры. • Эффективность предложенной архитектуры.

  3. Примеры задач

  4. Требования к архитектуре • Модифицируемость • Производительность • Масштабируемость • Отказоустойчивость • Защищенность

  5. Модель поиска • Будем полагать, что на рассматриваемом уровне абстракции, ни документы, ни запросы ни схемы не обладают какой-либо определенной структурой. • При рассмотрении задачи в поставленном ключе возникают следующие вопросы. • Что считать документом, запросом и схемой данных. • Каким именно образом осуществляется поиск в наборе произвольных документов — какие условия необходимы для того чтобы определить понятие поиска не задавая структуры самих документов и запросов, что будет пониматься под понятием индекс. • Что необходимо для осуществления оптимизации поиска для документов произвольной структуры при помощи схем документов, и какие свойства от документов, схем и запросов необходимо потребовать для ее осуществления.

  6. Основные понятия • Определение • Документ D — элемент множества D. • База данных DB —конечное множестводокументов, DB = {D}. • Запрос — элемент множества Q. • Определение • Функцией поиска документа, называется • отображение Qd : Dх Q→{0,1}. Если Qd(D, Q) = 1, то это • значит, что документ D соответствует запросу Q, и • Qd(D, Q) = 0 в противном случае.

  7. Иерархические индексы — понятия • Определение • Полагаем, что каждая схема S задает множество документов (соответствующих S), которое обозначим [S]. Множество всех схем обозначим как S и будем считать множеством произвольной природы. • Определение • Схема S1 называется более общей чем S2, если [S2][S1]. • Также будем обозначать это отношение S1≥S2. • Определение • Индексом I для базы данных D назовем такое дерево схем, что каждая схема является более общей, чем любая из ее дочерних схем.

  8. Иерархические индексы — поиск • Определение • Функцией поиска по схеме будем называть • отображение Qs : S x Q →{0,1}. При этом Qs(S, Q) = 1, если существует такой D, соответствующий S, что • Qd(D,S)=1 и Qs(S, Q) = 0, если такого D не существует • Алгоритм, позволяющий сокращать время поиска в общем случае. • На каждом шаге алгоритма для рассматриваемой вершины S индекса I проверяем соответствие схемы и запроса. • Если условие не выполняется, то «отсекаем» рассматриваемую ветвь индекса со всеми соответствующими документами; если нет, то переходим к проверке дочерних схем.

  9. Оптимальные индексы. Стоимость. • Определение • Функция Cost : S x Q →Rзадает сложность вычислений • запроса Q по схеме S. • Определение • Вероятность схемы P{S} есть вероятность события, что найдется документ соответствующий схеме и удовлетворяющий какому-либо запросу. • Математическое ожидание стоимости усечения пространства поиска по данному индексу / коротко назовем стоимостью индекса /. Математическое ожидание стоимости равно: • M(I) =∑SÎIP{Ŝ}*|S|. • Определение • Оптимальным индексом будем называть такой индекс /0, чтодля любого другого индекса М(I) > М(I0). • Стоимость индекса ограничена снизу, таким образом существует infIM(l).

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

  11. Алгоритм 1 построения индекса • Строим тривиальный индекс. Множество {S} – вершины ожидающие обработки. На первом шаге добавляем в {S} корневую вершину. • Вычисляем расстояния для всех пар схем Si, Sk из тривиального индекса. • ЦИКЛ пока множество {S} не пусто. • Удаляем из множества {S} произвольную схему S. • ЦИКЛ по схемам S'j из {S'1,…,S'M}. • Упорядочиваем схемы {S'1,…,S'M} по расстоянию до S'j. • ЦИКЛ по L от 1 до M-1. • Строим множество из первых L ближайших к S'j схем. • Вычисляем оценку для стоимости индекса после разбиения {S'i,…,S‘M} на две части: множество L ближайших к S'j схем и множество оставшихся дочерних для S1 схем. • КОНЕЦ ЦИКЛА • КОНЕЦ ЦИКЛА • Выбираем разбиение с минимальной оценкой. • Разбиваем дерево индекса на две части. • Добавляем в S вершины, которые стали для нее дочерними в {S}. • КОНЕЦ ЦИКЛА

  12. Алгоритм 2 построения индекса • Строим тривиальный индекс. Множество {S} – вершины ожидающие обработки. На первом шаге добавляем в {S} корневую вершину. • ЦИКЛ пока множество {S} не пусто. • Удаляем из множества {S} произвольную схему S. • Выбираем произвольную схему S'j из множества {S'1,…,S'M}, дочерних для S1. • Выбираем наиболее удаленную от S'j вершину S'k и упорядочиваем все вершины по расстоянию до нее. • Делим полученное множество на две части равные по количеству вершин. • Разбиваем дерево индекса на две части в соответствии с выбором. • Добавляем в S вершины, которые стали для нее дочерними в {S}. • КОНЕЦ ЦИКЛА

  13. Модель. • Компоненты: • D,Q,S, вероятностное пространство над Q. • Функции: • построение схемы по документу - S(D): D->S; • вычисление размера схемы - |S|: S->R; • отношение на схемах - S1>S2: SxS->{0,1}; • объединение схем - S1+S2:SxS->S; • вычисление вероятности схемы - P{S}: S->R; • вычисление запроса на документе - Qd(D,Q): DxQ->{0,1}; • вычисление запроса на схеме - Qs(S,Q): SxQ->{0,1}; • проверка соответствия документа схеме– S>D: SxD->{0,1}. • Свойства: • отношения S1>S2, S>D и операция S1+S2 соответствуют некоторому изоморфизму S и подмножества 2D; • если верно Qs(S,Q)=0, то для любого Dиз S: Qd(D,S)=0. • функции P{S} и |S| соответствуют своим определениям для вероятностного пространства.

  14. Архитектура поисковой системы. • Компоненты. • Интерфейсы компонент. • Взаимодействие компонент.

  15. Компоненты поисковой системы. • Документ • Запрос • Схема • База данных • Вероятностное пространство • Индекс

  16. Модули.

  17. Интерфейс взаимодействия с клиентом. • создание индекса для базы данных, удаление индекса; • поиск в базе данных по запросу; • запуск/останов сервера; • создание базы данных по каталогу, содержащему документы; • удаление базы данных; • добавление/удаление документа; • вывод описания результатов выполнения запроса для базы данных; • вывод описания результатов выполнения запроса для отдельного документа; • вывод статистики выполнения запроса на базе данных; • вывод описания документа базы; • вывод описания запроса для базы данных; • вывод описания схемы из индекса; • вывод описания индекса базы данных; • вывод описания базы данных; • вывод описания всех баз данных сервера.

  18. Интерфейсы. Документ, схема, запрос. • Функции модуля документов: • загрузка документа из файла, • сохранение документа в файл, • вывод документа в виде XML. • Функции модуля схем: • вывод схемы в виде XML; • сохранение схемы в файл; • загрузка схемы из файла; • Функции модуля запросов: • чтение запроса из строки; • вывод запроса в виде XML; • сохранение запроса в файл; • загрузка запроса из файла; • выполнение запроса на документе; • выполнение запроса на схеме; • время исполнения запроса; • вывод результатов запроса в виде XML; • вывод строки запроса;

  19. Деревья поиска • В качестве множества данных, по которому идет поиск рассмотрим двоичные упорядоченные деревья, вершинам которых сопоставлены числа. • Определение • Дерево Т будем называть деревом поиска, если любая вершины левой ветви имеет значения меньшие t, a правой ветви — значения большие t. • В таком дереве можно обнаружить произвольный ключ -достаточно, начав с корня, двигаться к левому или правому поддереву на основание лишь одного сравнения с ключом текущей вершины. • Для оптимального дерево величина средней взвешенной длины пути (M= ∑i=1..n pi*hi) достигает своего минимума. Здесь hi — уровень (длина пути от корня) вершины рi.

  20. Компоненты архитектуры для деревьев поиска • 1.   Компоненты системы: • D = N; Q = N; S = множество интервалов натуральных чисел. • 2.   Функции компонент: • построение схемы по документу - S(D): D->S; • вычисление размера схемы - |S|: S->R; • отношение на схемах - S1>S2: SxS->{0,1}; • объединение схем - S1+S2:SxS->S; • вычисление вероятности схемы - P{S}: S->R; • вычисление запроса на документе - Qd(D,Q): DxQ->{0,1}; • вычисление запроса на схеме - Qs(S,Q): SxQ->{0,1}; • проверка соответствия документа схеме– S>D: SxD->{0,1}.

  21. Пример дерева поиска

  22. Индексы полуструктурированных документов • Зададим множества модели: • D=множество OEM документов. • Q=множество CRP запросов. • S=множество графовых схем. • В работах [1,2] доказаны все свойства необходимые для того, чтобы задать модель поиска для описанных случаев. В рамках проведенных в [1,2] исследований был предложен критерий сравнения индексов, основанный на предположении, что запросы являются случайными величинами. • УтверждениеМатематическое ожидание стоимости выполнения запросов на индексе равно: • M(I)= ∑P{Ŝ}*|S|.

  23. Приложения в области XML данных • Компоненты модели: • D — XML документ. • Q — XPath запрос. • S— схема DTD. • Функции на этих множествах: • Qd(D, Q) = 0 в соответствии со спецификацией DTD и XML. • Qs(S, Q) = 0 в случае, когда после перезаписи получен противоречивый XPath запрос. • Величина P{S}, напрямую зависит от рассматриваемого вероятностного пространства запросов. В данном конкретном случае не будем определять ее.

  24. Приложения в области XML данных • Построение схемы по документу - S(D): D->S. • Вычисление размера схемы - |S|: S->R. • Отношение на схемах - S1>S2: SxS->{0,1}. • Объединение схем - S1+S2:SxS->S. • Проверка соответствия документа схеме– S>D. • Покажем, что выполняются необходимые свойства: • По определению функций Qs и Qd, выполняется условие о том, что равенство Qs(S, Q) = 1 верно, если существует D, соответствующий S, и Qd(D,S) = 1. • Множество S изоморфно некоторому подмножеству 2D, по определению S. • Множество S замкнуто относительно операций объединения и пересечения схем, так как S представляет собой множество.

  25. Эффективность. Оценки сложности алгоритмов. Пусть база данных состоит из N документов, а размер схемы оценивается сверху как |S|. Пусть сложность вычисления |S| оценивается, как C|S|, сложность вычисления P{S} как CP{S}, а сложность вычисления S1+S1 как CS1+S2. (Теорема) Cложность алгоритма 1 построения индекса для поиска в наборе документов можно оценить сверху как O(NC|S|+N2(CS1+S2+CP{S})+N3ln(N)). (Теорема) Cложность алгоритма 2 построения индекса для поиска в наборе документов можно оценить сверху как O((CS1+S2+CP{S})Nln(N)).

  26. Эффективность Предположим, что мощность множества запросов равна M, все запросы равновероятны, при этом все результаты их вычисления различаются между собой. (Предложение)Не существует индекса, стоимость которого меньше ln2(M). (Предложение) Существует алгоритм поиска, сложность которого O(ln(M)). Схема доказательства: Рассмотрим множество результатов поиска их количество M. =>Результат однозначно задается последовательностью нулей и единиц - результатов проверок запроса на схемах индекса (этот процесс детерминирован). <= Выпишем все возможные результаты поиска. Применяя хеширование и бинарные деревья поиск по этим результатам можно реализовать со сложностью O(ln(M))

More Related