Принципы построения и работы баз данных Тема 02: Технические средства и их характеристики
Принципы работы ИПС
description
Transcript of Принципы работы ИПС
![Page 1: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/1.jpg)
Принципы работы ИПС
Тема 2. Использование обратных индексов
![Page 2: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/2.jpg)
Сегодняшние темы
• Хранение инвертированных индексов– Сжатие словарей в памяти
• Обработка булевских запросов- Оптимизация обработки термов
- Кодирование списков перехода
• Шаблонные запросы• Запросы-фразы и позиционные запросы• Оценка систем представления информации
![Page 3: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/3.jpg)
Хранение инвертированных индексов
• На последней лекции рассмотрено: сжатие обратного индекса кодированием промежутков
• Сейчас: хранение словаря– словарь в основной памяти, обратный индекс на диске
• Компромисс между степенью сжатия и скоростью обработки запроса– каскадное семейство технических приемов
![Page 4: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/4.jpg)
Хранение словаря – первое приближение
• Массив записей фиксированной длины
- 28 байт/терм=14Мб
Термы Частота Указатель на элемент обратного индекса
а 999,712
aardvak 71
….. …..
zzzzz 99
20 байт 4 байта каждыйПозволяет осуществлять быстрый бинарный поиск
в словаре
![Page 5: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/5.jpg)
Упражнение
• Действительно ли хорошая идея – бинарный поиск?
• Какова лучшая альтернатива?
![Page 6: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/6.jpg)
Термы фиксированной длины приводят к потерям
• Большая часть байтов в столбце термов теряется без пользы – мы выделяем 20 байт даже на однобуквенный терм– все еще нельзя обработать supercalifragilisticexpialidocius
• Среднее слово в английском языке ~ 8 символов– среднее слово в письменном английском языке ~4,5
символа: короткие слова доминируют по использованию
• Хранение словаря как строки символов:– предполагается экономия до 60% пространства словаря
![Page 7: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/7.jpg)
Сжатие списка термов
Частота Указатели на постинги
Указательна терм
33
29
44
126
системасистематизироватьсистематикасистематический
Общая длина строки =500КВ*8=4Мб
Указатели разрешают 4М позиций:
LOG24М=22Бита=3Байта
Бинарный поиск для нахожнения указателей
![Page 8: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/8.jpg)
Общее пространство для сжатого списка
• 4 Байта на терм для частоты• 4 Байта на терм для указателя на постинги• 3 Байта на указатель терма• В среднем, 8 байт на терм в строке термов• 500 К термов => 9,5 Мб
Сейчас всреднем 11байт/терм,
а не 20
![Page 9: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/9.jpg)
Блочная группировка
• Хранение указателей на каждый k-й блок строки термов
• Необходимо хранить длины термов (1 доп. байт)
Частота Указатели на постинги
Указатель на терм
33
29
44
126
7
8система17систематизировать11систематика15систематический10с
Теряем 4 байта на длинах термов
Экономим9 байт на 3-хуказателях
![Page 10: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/10.jpg)
Упражнение
• Оцените использование пространства (и экономию, в сравнении с 9,5Мб) с блочной группировкой, для размеров блока k = 4,8 и 16
![Page 11: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/11.jpg)
Отражение на поиске
• Двоичный поиск до блоков из 4-х термов• Затем линейный поиск сквозь термы в блоке• Вместо нахождения 2-х указателей ранее, теперь
находим 0/1/2/3 – в среднем, 1.5
![Page 12: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/12.jpg)
Экстремальное сжатие
• Использование совершенного хэширования для хранения термов «в пределах» их указателей– нехорошо для словарей, которые меняются
• Разделения словаря на страницы– используется двоичное дерево на первые термы
страниц;– платим за поиск на диске, чтобы захватить каждую страницу;– если мы платим за 1 поиск диска в любом случае, чтобы
добраться до постингов, «только» еще один на терм
![Page 13: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/13.jpg)
Оптимизация запросов
• Пусть есть запрос, который является “AND”-объединением t термов.
• Идея: для каждого из t термов получаем его терм-документарную инциденцию из постингов, затем объединяем с помощью AND вместе.
• Обработка в порядке увеличивающейся частоты. – начинаем с наименьшего множества, затем продолжаем
сужать поиск далее
Вот почему мы храним частоту в словаре
![Page 14: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/14.jpg)
Упражнения по обработке запросов
• Если дан запрос friends AND romans AND (NOT countrymen), как мы можем использовать частоту countrymen?
• Как мы можем произвести «AND»-объединение 2-х записей постингов без подробного построения 0/1 терм-документарного вектора инциденции?
![Page 15: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/15.jpg)
Оптимизация общих запросов
• Например,(madding OR crowd) AND (ignoble OR strife)
• Получаем частоты для всех термов
• Определяем размер каждого OR, суммируя их частоты
• Обрабатываем в порядке увеличения размеров OR
![Page 16: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/16.jpg)
Упражнение
• Предложите порядок обработки запроса для
(tangerine OR trees) AND
(marmalade OR skies) AND
(kaleidoscope OR eyes)
Term Freqeyes 213312
Kaleidoscope 87009
Marmalade 107913
Skies 271658
Tangerine 46653
Trees 316812
![Page 17: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/17.jpg)
Ускорение слияний постингов
• Вставка указателей перехода• Скажем, наш текущий список документов –
кандидатов для AND-запроса – 8, 13, 21.
- (имея плотную совокупность AND)
• Мы хотим осуществить объединение со следующей записью постингов: 2,4,6,8,10,12,14,16,18,20,22
• Линейный поиск – медленный.
![Page 18: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/18.jpg)
• Добавим к постингам указатели с пропуском нескольких элементов (в момент индексирования)
2,4,6,8,10,12,14,16,18,20,22,24….• В момент запроса• По мере того как идем по списку – можем перейти
вперед, не сравнивая каждый элемент• Размер перехода – рекомендован около ~
спискаразмер _
Ускорение слияний постингов
![Page 19: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/19.jpg)
Расширения запроса или индекса
• Напоминание из лекции 1– словарь эквивалентных термов– звуковой индекс для омонимов
• Как мы это используем?– можем «расширить» запрос, чтобы включить -
эквивалентности• запрос car types -> car types automobile tires
– можем расширить индекс• индексированные документы, содержащие слово
автомобиль, индексируется также как документ, содержащий
слово автомашина
![Page 20: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/20.jpg)
Расширение запроса
• Обычно делается расширение запроса
- не нарушается индекс
- замедляется обработка запросов
- документы часто содержат эквивалентности
- можем получить больше ненужной информации
- puma -> jaguar
- тщательно контролируемые множества слов-синонимов
![Page 21: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/21.jpg)
Шаблонные запросы
• mon*: найти все документы, содержащие любое слово, начинающееся с “mon”.
• Решение: индексируем все k-граммы, возникающие в любом документе (любая последовательность к символов)
• Например, для текста “April is the cruelest month” мы получим 2-граммы (биграммы, пары букв)
- $ - специальный символ-граница слова
$a,ap,pr,pi,il,l$,$I,is,s$,$t,th,he,e$,$c,cr,ru,ue,el,le,es,st,t$,$m,mo,on,nt,th,h$
![Page 22: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/22.jpg)
Обработка шаблонов
• Запрос mon* сейчас может быть обработан как
- $m AND mo AND on• Но так мы получим соответствие c moon• Нужно осуществить пост-фильтрацию этих
результатов согласно запросу• Упражнение: проработайте детали
![Page 23: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/23.jpg)
Дальнейшие улучшения шаблонов
• Сокращаем расходы на указатели, используя блоки• Шаблонные запросы предполагают незначительное
содержание биграмм– храним постинги на диске
• Упражнение: дан триграммный индекс. Как вы обработаете произвольный шаблонный запрос?
![Page 24: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/24.jpg)
Поиск фраз
• Ищем “быть лил не быть”. Теперь недостаточно хранить только записи <терм: документы>
• Вместо хранения для каждого терма записи:– <количество документов, содержащих терм:– документ1: позиция1, позиция2….;– документ2: позиция1, позиция2….;– и т.д.>
![Page 25: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/25.jpg)
Пример позиционного индекса<быть: 993427;
1:7,18,33,72,86,231;
2:3,149;
4:17;191;291;431;434;
5:363,366,….>
Можем сжать позиционные значения/смещения, как мы делали с документами на последней лекции.
Какой из этих документов может
содержать «быть или не быть»
?
![Page 26: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/26.jpg)
Обработка запроса-фразы
• Извлекаем записи инвертированного индекса для каждого различающегося терма: быть, или, не
• Объединяем их «документ:позиция» - списки, чтобы пронумеровать все позиции, где «быть или не быть» начинается.
![Page 27: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/27.jpg)
Оценка информационно-поисковых систем (ИПС)
• Какие есть характеристики для оценки производительности ИПС?
- скорость индексирования
- величина отношения «индекс/общее число документов»
- скорость обработки запроса
- «значимость/качество» результатов
![Page 28: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/28.jpg)
Стандартные оценки качества ИПС
• TREC – национальный институт стандартов и тестирования (NIST)
• Reuters и другие совокупности тестов• Определены «задачи поиска/извлечения»
- иногда как запросы
• Оценки людей-экспертов, определяющих для каждого запроса и для каждого документа,
«относящийся» или «не относящийся».
![Page 29: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/29.jpg)
Точность и общий выбор
• Точность: доля полученных документов, «относящихся» к запросу в числе извлеченных,
• Общий выбор: доля «относящихся» документов, которые были получены, в общем числе «относящихся» документов,
• Обе характеристики могут быть измерены как функции количества полученных документов
![Page 30: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/30.jpg)
Компромиссы
• Можем получить высокий общий выбор (но низкую точность), получив все документы для всех запросов!
• Общий выбор – неубывающая функция от количества полученных документов
- но точность обычно убывает (в хорошей системе)
![Page 31: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/31.jpg)
Сложности в точности и общем выборе
• Должны быть усреднены в обширных совокупностях документов и запросов
• Требуют человеческого участия• Сильно зависят от авторства/множества документов
![Page 32: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/32.jpg)
Краткий обзор предстоящих тем
• Построение индексов• Общий анализ связности в WEB• Определение весов для термов и векторные
пространства запросов• Кластеризация документов• Рекомендуемые системы и совместная фильтрация• Классификация документов• Анализ ссылок в гипертексте• Суммирование• Исследование гипертекста• Обширные производственные вопросы и реальный
мир
![Page 33: Принципы работы ИПС](https://reader033.fdocuments.net/reader033/viewer/2022061420/56813034550346895d95cb13/html5/thumbnails/33.jpg)
Ресурсы для сегодняшней лекции
• Managing Gigabytes, Глава 4.• Modern Information Retrieval, Глава 3.• Princeton Wordnet
http://www.cogski.princeton.edu/~wn/