Transcript Лекция 6
Slide 1
Технологии обработки информации.
Лекция 6. Технологии поиска информации
Антон Викторович Кудинов,
доцент кафедры ВТ
Slide 2
Содержание
Понятие
поиска
Виды поиска
Оценка эффективности
Методы и стратегии поиска
Алгоритмы (индексы, деревья, графы,
хеширование)
Поиск изображений
2
Slide 3
Поиск (в широком смысле)
1) действия субъекта, направленные на получение
нового или утерянного (забытого):
новой информации, данных, сведений, знаний
открытие закономерностей
действия по раскрытию (осознанию) скрытых содержаний,
недостающих для целостного состояния (действие по
восстановлению целостности)
2) один из способов обучения,
обеспечивающих возможность получения
знаний через самостоятельные
мыслительные действия для решения возникающих
задач
3
http://ru.wikipedia.org/
Slide 4
Понятия поиска (2)
Поиск данных — раздел информатики, изучающий
алгоритмы для поиска и обработки информации как в
структурированных (базы данных) так и
неструктурированных (текстовый документ) данных
Информационный поиск (англ. Information retrieval) —
процесс поиска неструктурированной документальной
информации, удовлетворяющей информационные
потребности, и наука об этом поиске
Поиск информации — процесс выявления в массиве
информации записей, удовлетворяющих заранее
определенному условию поиска или запросу
Термин был впервые введён Кельвином Муром в 1948
4
Slide 5
Поиск как наука
Алгоритмы и структуры данных
Машинное обучение (Machine Learning) - обширный
подраздел искусственного интеллекта, изучающий
методы построения моделей, способных обучаться, и
алгоритмов для их построения и обучения
НИУ ВШЭ → Факультет компьютерных наук → Базовая
кафедра Яндекс. Курсы магистратуры:
5
Web-графы и поиск
Алгоритмы и структуры данных для поиска
Анализ символьных последовательностей
Многомерный статистический анализ
Slide 6
Поиск как процесс
последовательность операций, направленных на сбор,
обработку и предоставление информации
формулировка
запроса
определение
источников
извлечение
информации
предоставление и
оценка результатов
6
Slide 7
Виды поиска
Что и как можно искать?
7
Slide 8
Виды поиска
полнотекстовый - поиск по всему содержимому
документа
по метаданным - поиск по атрибутам документа
(название, дата создания, размер, автор и т. д.)
поиск изображений – распознавание объектов, лиц
Существует путаница, связанная с понятиями поиска
данных, поиска документов, информационного
поиска и текстового поиска.
8
Slide 9
Методы поиска
Адресный поиск – знаем точный адрес документа
(URL, библиографическая ссылка и т.д.)
Семантический поиск – по содержанию
Документальный поиск
Фактографический поиск
9
Slide 10
Стратегии поиска. Классификация.
Индексы
Классификатор (индекс) — систематизированный
перечень наименованных объектов, каждому из
которых в соответствие дан уникальный код (индекс)
Методы:
Иерархический
Фасетный
Кодирование - присвоение кода классификационной
группировке или объекту классификации. Методы:
10
Порядковый
Серийно-порядковый
Последовательный
Параллельный
Slide 11
Пример: индекс в БД
объект базы данных, создаваемый с целью
повышения производительности поиска данных
Индекс формируется из значений одного или
нескольких столбцов таблицы и указателей на
соответствующие строки таблицы и, таким образом,
позволяет искать строки, удовлетворяющие критерию
поиска
Ускорение работы с использованием индексов
достигается за счёт того, что индекс имеет структуру,
оптимизированную под поиск — например,
сбалансированного дерева, В-дерева и т.д.
11
Slide 12
Стратегии поиска. Деревья
Двоичное дерево — древовидная структура данных, в
которой каждый узел имеет не более двух потомков
(детей)
Двоичное дерево поиска — это двоичное дерево, для
которого выполняются следующие дополнительные
условия (свойства дерева поиска):
12
Оба поддерева — левое и правое, являются двоичными
деревьями поиска
У всех узлов левого поддерева произвольного узла X
значения ключей данных меньше, нежели значение ключа
данных самого узла X
В то время, как у всех узлов правого поддерева того же
узла X значения ключей данных не меньше, нежели
значение ключа данных узла X
Slide 13
Двоичное дерево поиска (2)
Двоичное дерево состоит из узлов— записей вида
(data, left, right), где data — некоторые данные,
привязанные к узлу, left и right — ссылки на узлы,
являющиеся детьми данного узла - левый и правый
сыновья соответственно
Данные (data) обладают ключом (key), на котором
определена операция сравнения "меньше". В
конкретных реализациях это может быть пара (key,
value) - (ключ и значение), или ссылка на такую пару,
или простое определение операции сравнения на
необходимой структуре данных или ссылке на неё
13
Slide 14
Двоичное дерево поиска (3)
Поиск элемента (FIND)
Дано: дерево Т и ключ K
Задача: проверить, есть ли узел с ключом K в дереве Т,
и если да, то вернуть ссылку на этот узел
Алгоритм:
Если дерево пусто, сообщить, что узел не найден, и
остановиться
Иначе сравнить K со значением ключа корневого узла X
14
Если K=X, выдать ссылку на этот узел и остановиться
Если K>X, рекурсивно искать ключ K в правом поддереве Т
Если K
Slide 15
Стратегии поиска. Хэширование
преобразование по детерминированному алгоритму
входного массива данных произвольной длины в
выходную битовую строку фиксированной длины
Такие преобразования также называются хешфункциями или функциями свёртки, а их результаты
называют хешем, хеш-кодом или сводкой сообщения
Если у двух строк хеш-коды разные, строки
гарантированно различаются, если одинаковые —
строки, вероятно, совпадают
Предложил сотрудник IBM Хансу Петер Лун в январе
1953 года
15
Slide 16
Хэширование (2)
Существует множество алгоритмов хеширования с
различными свойствами (разрядность,
вычислительная сложность, криптостойкость и т. п.)
Простейшие примеры хеш-функций: контрольная
сумма или CRC
Хорошая хеш-функция должна удовлетворять двум
свойствам:
1.
2.
Быстро вычисляться
Минимизировать количество коллизий
Коллизией хеш-функции H называется два различных
входных блока данных x и y таких, что H(x) = H(y)
16
Slide 17
Хэширование.Виды (3)
Хеш-функции основанные на делении
H (k) = k mod m
Мультипликативная схема хеширования
Хеширование строк переменной длины (Хеширование
Пирсона)
Универсальное хеширование - используется не одна
конкретная хеш-функция, а происходит выбор из
заданного семейства по случайному алгоритму
17
Slide 18
Хэширование.Хэш-таблицы(3)
Хеш-таблицей называется структура данных,
позволяющая хранить пары вида (ключ,хеш-код) и
поддерживающая операции поиска, вставки и
удаления элемента
Бытовым аналогом хеширования в данном случае
может служить помещение слов в словаре по
алфавиту. Первая буква слова является его хеш-кодом,
и при поиске мы просматриваем не весь словарь, а
только нужную букву
18
Slide 19
Информационный поиск (Information retrieval)
Документ - некий объект, содержащий информацию в
зафиксированном виде (тексты на естественном или
формализованном языке, изображения, звуковая
информация и т.д.)
Запрос - формализованный способ выражения
информационных потребностей пользователя
системы (языки поисковых запросов, синтаксис
которых варьируется)
Релевантность - функция соответствия документа
запросу, субъективна
19
Slide 20
Оценки эффективности поиска
Как численно определить качество
результатов поиска?
20
Slide 21
Оценки эффективности. Релева́нтность
(лат. relevo — поднимать, облегчать) в
информационном поиске — семантическое
соответствие поискового запроса и поискового образа
документа
21
Slide 22
Оценки эффективности. Точность (precision)
Определяется как отношение числа релевантных
документов, найденных ИПС, к общему числу
найденных документов
где
— это множество релевантных
документов в базе,
а
— множество документов, найденных
системой
22
Slide 23
Оценки эффективности. Полнота (recall)
Отношение числа найденных релевантных
документов, к общему числу релевантных документов
в базе
где —
это множество релевантных
документов в базе,
а
— множество документов, найденных
системой
23
Slide 24
Оценки эффективности. Выпадение (fall-out)
Выпадение характеризует вероятность нахождения
нерелевантного ресурса и определяется, как
отношение числа найденных нерелевантных
документов к общему числу нерелевантных
документов в базе
где Dnrel — это множество нерелевантных
документов в базе,
а
— множество документов, найденных
системой
24
Slide 25
F-мера (F-measure, мера Ван Ризбергена)
Сбалансированная F-мера (F1-мера)придает
одинаковый вес точности и полноте ( = ½)
25
Slide 26
Модели информационного поиска
Булевская
Векторная
Вероятностная
…
26
Slide 27
Булевская модель
Словарь: T = {t1, . . . tn}, где ti — термы
Документ: D ⊂ T, иначе говоря D ∈ {0, 1}n
Запрос: t5 OR t7 NOT t12
Используется:
Внутрикорпоративные системы поиска
Базы данных
Недостаток:
27
Жесткость
Непригодность для ранжирования
Slide 28
Векторная модель
Реализована в 1968 Джерардом Солтоном (Gerard
Salton) в поисковой системе SMART
Снова коллекция документов, каждый из которых
теперь является мультимножеством слов
Матрица M, где Mij = TFij · IDFi , где:
Частота терма TFij — относительная доля слова i в тексте j
Обратная встречаемость в документах IDFi — величина,
обратная количеству документов, содержащих слово i
Физический смысл Mij — степень соответствия слова i
тексту j
Запрос: t3 AND t5 (разрешаем только AND)
28
Slide 29
Вероятностная модель
Робертсон (Robertson) и Спарк-Джоунз (Sparck-Jones) в 1977г.
Релевантность – здесь вероятность того, что данный
документ может оказаться интересным пользователю
Документ: множество слов D = {d1, . . . , dn}
Запрос: Qk — тоже, но храним как множество
Соответствие:
29
Зафиксируем запрос Qk
Пусть есть распределение вероятностей на всех текстах “быть
релевантным запросу Qk ”: обозначаем P(R|Qk ,D)
Пусть есть распределение вероятностей на всех текстах “быть
НЕрелевантным запросу Qk ”: обозначаем P(Ṝ|Qk ,D)
Функцией соответствия будет их отношение (или логарифм
этой дроби)
Slide 30
Поиск в Вебе
Нужно анализировать не только текст документа, но и
off-page факторы:
положение на сайте
посещаемость
авторитетность источника
частота обновления
цитируемость страницы и ее авторов
Искусственное накручивание рейтинга страниц (SEO)
Поиск в полуструктурированных данных
30
Slide 31
Полуструктурированные данные
1)
2)
31
такой способ хранения данных, при котором у
каждой единицы информации может быть
произвольный набор полей
данные без постоянной чётко определённой
структуры, либо данные со структурой, неизвестной
пользователю. Их удобно представлять в виде графа
Slide 32
XML
XML (eXtensible Markup Language) – язык текстовой
разметки, стандартизованный W3C, удобный для
представления полуструктурированных данных
XML and IR: A SIGIR 2000 Workshop
David Carmel, Yoelle Maarek, Aya Soffer
XQL and Proximal Nodes
Ricardo Baeza-Yates
Gonzalo Navarro
bla... bla... bla...
bla... bla... bla...
bla... bla... bla...
Querying XML in Xyleme
bla...
32
Slide 33
Поиск в HTML vs. XML
В HTML:
• ищут целые документы
• ранжируют целые документы
• близость слов определяется
положением в тексте
33
В XML:
• ищут XML-элементы
• ранжируют XML-элементы
• близость слов определяется ещё и
положением в дереве
Slide 34
Принцип поиска
Что ищем
R0 – множество XML-элементов, содержащих все
слова запроса.
R1 – множество XML-элементов, таких, что ≥1
потомков содержат все слова запроса, ≥1 потомков
содержат только часть слов
Ранжирование результатов. ElemRank:
34
Slide 35
Качество ранжирования веб-страниц
PageRank — это алгоритм, позволяющий оценить,
насколько данная интернет-страница популярна
предложен Брином и Пейджем в 1998 г.
идея: определять рейтинг страницы через количество
ведущих на нее ссылок и рейтинг ссылающихся
страниц
35
Slide 36
Поиск нечетких дубликатов документов
MD5
TF
TF*IDF
TF*RIDF
Long Sent
Heavy Sent
Megashingles
Lex Rand
Log Shingles
Descr Words
Opt Freq
36
Slide 37
Семантический поиск
Семантический Веб — новая концепция развития Веба
и сети Интернет, принятая и продвигаемая W3C
Проблема : большинство данных в Вебе хранится в
форме, рассчитанной на восприятие человеком, их
структура не очевидна роботу
Семантический Веб — это не отдельная сеть, а
расширение уже существующей
37
Slide 38
Принципы работы
Агент — программа, работающая без
непосредственного управления со стороны человека
или другого постоянного контроля, созданная для
достижения целей, поставленных перед ней
пользователем
38
Закажи для меня эту книгу в ближайшей библиотеке.
Посмотри на расписание электричек и мое расписание и
выбери билеты в театр, чтобы я мог успеть
после работы.
Скажи мне, какое вино нужно купить к каждому из блюд в
этом меню. И кстати, я не люблю Сотерн.
Микроволновка, сходи на сайт производителя и загрузи
оптимальные параметры подогрева.
Slide 39
Сценарии использования
Семантический поиск. Поисковая система сможет
выдавать только те сайты, где упоминается в точности
искомое понятие, а не произвольные страницы, в
тексте которых встретилось данное многозначное
ключевое слово.
Объединение знаний (интеграция баз данных)
Всепроникающие вычисления (ubiquitous computing).
Расширение сферы влияния на физический мир
39
Slide 40
Основная цель Семантического Веба
создание языка, на котором можно будет описать как
данные, так и правила рассуждений об этих данных,
так что правила вывода, существующие в какой-либо
системе представления знаний, можно будет
экспортировать в Веб
синтаксис
семантика
XML – есть синтаксис, но не определена семантика!
Тим Бернерс-Ли
40
Slide 41
Структура языка
RDF (Resource Description Framework) — язык,
отвечающий за синтаксис документов Семантического
Веба. В нем широко используются ссылки на
онтологии для определения смысла слов
OWL (Ontology Web Language) — язык описания
онтологий.
Онтология — описание классов объектов, их свойств и
взаимоотношений для какой-то предметной области
(домена)
41
Slide 42
План реализации
1.
2.
3.
4.
5.
6.
7.
8.42
Синтаксис для представления знаний,
использующий ссылки на онтологии (сделано: RDF)
Язык описания онтологий (сделано: OWL)
Язык описания веб-сервисов (начато: WSDL, OWL-S)
Инструменты чтения и разработки документов
Семантического Веба (начато: Jena, Haystack,
Protege)
Язык запросов к знаниям, записанным в RDF (начато:
SPARQL)
Логический вывод знаний (не сделано).
Семантическая поисковая система (начато: SHOE).
Агенты Семантического Веба (не сделано).
Slide 43
Архитектура
43
Slide 44
RDF: синтаксис Семантического Веба
XML дает возможность создавать документы
произвольной структуры, однако данный язык ничего
не говорит о том, что означает эта структура
RDF кодирует смысл при помощи деревьев глубины
три (Notation3), где каждое дерево состоит из:
субъекта (подлежащее)
свойства (сказуемое)
объекта (дополнение)
«Небо голубого цвета»
=
субъект — «небо», свойство — «иметь цвет», объект
— «голубой»
44
Slide 45
Пример: RSS
RSS — семейство XML-форматов, предназначенных
для описания лент новостей, анонсов статей,
изменений в блогах и т. п. Информация из различных
источников, представленная в формате RSS, может
быть собрана, обработана и представлена
пользователю в удобном для него виде специальными
программами-агрегаторами.
Под RSS может пониматься:
45
Rich Site Summary — богатая сводка сайта
RDF Site Summary — сводка сайта с применением
инфраструктуры описания ресурсов
Really Simple Syndication — очень простая синдикация
Slide 46
Обработка естественного языка
Natural Language Processing, NLP - технологии
обработки естественных языков
Question-Answering Systems, QAS - вопросно-ответные
системы
На вход такой системе подаётся запрос,
сформулированный на естественном языке, после
чего он обрабатывается с использованием методов
NLP, и генерируется естественно-языковой ответ
46
Slide 47
Схема процесса
отбор
документов
• например, поиск по ключевым словам
фильтрация
документов
• выделение фрагментов
текста, потенциально
содержащих ответ
синтез
ответа
47
Slide 48
Проблемы создания QAS
Типы вопросов
Обработка вопросов
Контекстные вопросы
Источники знаний для QA-системы
Выделение ответов
Формулировка ответа (слияние ответов из разных
документов)
Ответы на вопросы в реальном времени
Многоязыковые запросы
Интерактивность
Механизм рассуждений (вывода)
Профили пользователей QA-систем
48
Slide 49
Поиск изображений по содержанию
англ. Content-based image retrieval (CBIR) — раздел
компьютерного зрения, решающий задачу поиска
изображений, которые имеют требуемое содержание,
в большом наборе цифровых изображений
Алгоритм поиска должен анализировать содержание
изображения, например, цвет представленных на нём
объектов, их форму, текстуру, композицию сцены
Термин «Content-based image retrieval» впервые был
введен в употребление в 1992 г. Т. Като
Альтернатива: методы, основанные исключительно на
категоризации метаданных (не подходит к
автомтически созданным изображениям, камеры
49наблюдений)
Slide 50
Области применения
Поиск изображений в сети интернет
Каталогизация изображений произведений искусства
Организация работы с архивами фотографических снимков
Организация каталогов розничной продажи товаров
Медицинская диагностика заболеваний
Предотвращение преступлений и беспорядков
Военно-оружейное применение
Вопросы контроля за распространением интеллектуальной
собственности
Получение информации о местоположении удаленных
зондов и географическое позиционирование
Контроль за содержимым массивов изображений
50
Slide 51
Общая схема
система производит поиск на основе входного
изображения, указываемого пользователем
все результирующие экземпляры изображений должны
иметь общие элементы с входом, указанным
пользователем
пользователь может подать на вход как существующее
изображение, так и грубый набросок требуемого
результата
51
Slide 52
Описание содержания. Цвет
Поиск изображений с помощью сравнения цветовых
составляющих производится с помощью построения
гистограммы их распределения
изображение делится на регионы по сходным
цветовым характеристикам, и далее учитывается их
взаимное расположение
52
Slide 53
Описание содержания. Текстура
сравнение текстурных образцов, присутствующих на
изображении, и их взаимного расположения
текстоны - содержат не только информацию,
описывающую текстуру, но и её местоположение на
описываемом изображении
53
Slide 54
Описание содержания. Форма
описание
геометрической
формы отдельных
регионов
изображения
к региону сначала
применяют
сегментацию или
выделение границ
54
Slide 55
Примеры поисковых систем
Google Image Search
Visual Image Search
Chic Engine
Visual Recognition Factory
Empora
Обратный поиск изображений TinEye.com
Поиск людей по фотографиям PhotoDate.ru
Поиск изображений по содержанию Immenselab.com
55
Slide 56
Источники
Дональд Кнут. Искусство программирования, том 3.
Сортировка и поиск /The Art of Computer
Programming, vol.3. Sorting and Searching./ — 2-е изд. —
М.: «Вильямс», 2007. — С. 824.
MIT OpenCourseWare http://ocw.mit.edu
Школа анализа данных Яндекс http://shad.yandex.ru/
Юрий Лифшиц - курс "Алгоритмы для Интернета"
http://yury.name/internet/
Илья Сегалович «Как работают поисковые системы»
http://download.yandex.ru/company/iworld-3.pdf
56
Slide 57
Спасибо за внимание!
57
[email protected]
Технологии обработки информации.
Лекция 6. Технологии поиска информации
Антон Викторович Кудинов,
доцент кафедры ВТ
Slide 2
Содержание
Понятие
поиска
Виды поиска
Оценка эффективности
Методы и стратегии поиска
Алгоритмы (индексы, деревья, графы,
хеширование)
Поиск изображений
2
Slide 3
Поиск (в широком смысле)
1) действия субъекта, направленные на получение
нового или утерянного (забытого):
новой информации, данных, сведений, знаний
открытие закономерностей
действия по раскрытию (осознанию) скрытых содержаний,
недостающих для целостного состояния (действие по
восстановлению целостности)
2) один из способов обучения,
обеспечивающих возможность получения
знаний через самостоятельные
мыслительные действия для решения возникающих
задач
3
http://ru.wikipedia.org/
Slide 4
Понятия поиска (2)
Поиск данных — раздел информатики, изучающий
алгоритмы для поиска и обработки информации как в
структурированных (базы данных) так и
неструктурированных (текстовый документ) данных
Информационный поиск (англ. Information retrieval) —
процесс поиска неструктурированной документальной
информации, удовлетворяющей информационные
потребности, и наука об этом поиске
Поиск информации — процесс выявления в массиве
информации записей, удовлетворяющих заранее
определенному условию поиска или запросу
Термин был впервые введён Кельвином Муром в 1948
4
Slide 5
Поиск как наука
Алгоритмы и структуры данных
Машинное обучение (Machine Learning) - обширный
подраздел искусственного интеллекта, изучающий
методы построения моделей, способных обучаться, и
алгоритмов для их построения и обучения
НИУ ВШЭ → Факультет компьютерных наук → Базовая
кафедра Яндекс. Курсы магистратуры:
5
Web-графы и поиск
Алгоритмы и структуры данных для поиска
Анализ символьных последовательностей
Многомерный статистический анализ
Slide 6
Поиск как процесс
последовательность операций, направленных на сбор,
обработку и предоставление информации
формулировка
запроса
определение
источников
извлечение
информации
предоставление и
оценка результатов
6
Slide 7
Виды поиска
Что и как можно искать?
7
Slide 8
Виды поиска
полнотекстовый - поиск по всему содержимому
документа
по метаданным - поиск по атрибутам документа
(название, дата создания, размер, автор и т. д.)
поиск изображений – распознавание объектов, лиц
Существует путаница, связанная с понятиями поиска
данных, поиска документов, информационного
поиска и текстового поиска.
8
Slide 9
Методы поиска
Адресный поиск – знаем точный адрес документа
(URL, библиографическая ссылка и т.д.)
Семантический поиск – по содержанию
Документальный поиск
Фактографический поиск
9
Slide 10
Стратегии поиска. Классификация.
Индексы
Классификатор (индекс) — систематизированный
перечень наименованных объектов, каждому из
которых в соответствие дан уникальный код (индекс)
Методы:
Иерархический
Фасетный
Кодирование - присвоение кода классификационной
группировке или объекту классификации. Методы:
10
Порядковый
Серийно-порядковый
Последовательный
Параллельный
Slide 11
Пример: индекс в БД
объект базы данных, создаваемый с целью
повышения производительности поиска данных
Индекс формируется из значений одного или
нескольких столбцов таблицы и указателей на
соответствующие строки таблицы и, таким образом,
позволяет искать строки, удовлетворяющие критерию
поиска
Ускорение работы с использованием индексов
достигается за счёт того, что индекс имеет структуру,
оптимизированную под поиск — например,
сбалансированного дерева, В-дерева и т.д.
11
Slide 12
Стратегии поиска. Деревья
Двоичное дерево — древовидная структура данных, в
которой каждый узел имеет не более двух потомков
(детей)
Двоичное дерево поиска — это двоичное дерево, для
которого выполняются следующие дополнительные
условия (свойства дерева поиска):
12
Оба поддерева — левое и правое, являются двоичными
деревьями поиска
У всех узлов левого поддерева произвольного узла X
значения ключей данных меньше, нежели значение ключа
данных самого узла X
В то время, как у всех узлов правого поддерева того же
узла X значения ключей данных не меньше, нежели
значение ключа данных узла X
Slide 13
Двоичное дерево поиска (2)
Двоичное дерево состоит из узлов— записей вида
(data, left, right), где data — некоторые данные,
привязанные к узлу, left и right — ссылки на узлы,
являющиеся детьми данного узла - левый и правый
сыновья соответственно
Данные (data) обладают ключом (key), на котором
определена операция сравнения "меньше". В
конкретных реализациях это может быть пара (key,
value) - (ключ и значение), или ссылка на такую пару,
или простое определение операции сравнения на
необходимой структуре данных или ссылке на неё
13
Slide 14
Двоичное дерево поиска (3)
Поиск элемента (FIND)
Дано: дерево Т и ключ K
Задача: проверить, есть ли узел с ключом K в дереве Т,
и если да, то вернуть ссылку на этот узел
Алгоритм:
Если дерево пусто, сообщить, что узел не найден, и
остановиться
Иначе сравнить K со значением ключа корневого узла X
14
Если K=X, выдать ссылку на этот узел и остановиться
Если K>X, рекурсивно искать ключ K в правом поддереве Т
Если K
Slide 15
Стратегии поиска. Хэширование
преобразование по детерминированному алгоритму
входного массива данных произвольной длины в
выходную битовую строку фиксированной длины
Такие преобразования также называются хешфункциями или функциями свёртки, а их результаты
называют хешем, хеш-кодом или сводкой сообщения
Если у двух строк хеш-коды разные, строки
гарантированно различаются, если одинаковые —
строки, вероятно, совпадают
Предложил сотрудник IBM Хансу Петер Лун в январе
1953 года
15
Slide 16
Хэширование (2)
Существует множество алгоритмов хеширования с
различными свойствами (разрядность,
вычислительная сложность, криптостойкость и т. п.)
Простейшие примеры хеш-функций: контрольная
сумма или CRC
Хорошая хеш-функция должна удовлетворять двум
свойствам:
1.
2.
Быстро вычисляться
Минимизировать количество коллизий
Коллизией хеш-функции H называется два различных
входных блока данных x и y таких, что H(x) = H(y)
16
Slide 17
Хэширование.Виды (3)
Хеш-функции основанные на делении
H (k) = k mod m
Мультипликативная схема хеширования
Хеширование строк переменной длины (Хеширование
Пирсона)
Универсальное хеширование - используется не одна
конкретная хеш-функция, а происходит выбор из
заданного семейства по случайному алгоритму
17
Slide 18
Хэширование.Хэш-таблицы(3)
Хеш-таблицей называется структура данных,
позволяющая хранить пары вида (ключ,хеш-код) и
поддерживающая операции поиска, вставки и
удаления элемента
Бытовым аналогом хеширования в данном случае
может служить помещение слов в словаре по
алфавиту. Первая буква слова является его хеш-кодом,
и при поиске мы просматриваем не весь словарь, а
только нужную букву
18
Slide 19
Информационный поиск (Information retrieval)
Документ - некий объект, содержащий информацию в
зафиксированном виде (тексты на естественном или
формализованном языке, изображения, звуковая
информация и т.д.)
Запрос - формализованный способ выражения
информационных потребностей пользователя
системы (языки поисковых запросов, синтаксис
которых варьируется)
Релевантность - функция соответствия документа
запросу, субъективна
19
Slide 20
Оценки эффективности поиска
Как численно определить качество
результатов поиска?
20
Slide 21
Оценки эффективности. Релева́нтность
(лат. relevo — поднимать, облегчать) в
информационном поиске — семантическое
соответствие поискового запроса и поискового образа
документа
21
Slide 22
Оценки эффективности. Точность (precision)
Определяется как отношение числа релевантных
документов, найденных ИПС, к общему числу
найденных документов
где
— это множество релевантных
документов в базе,
а
— множество документов, найденных
системой
22
Slide 23
Оценки эффективности. Полнота (recall)
Отношение числа найденных релевантных
документов, к общему числу релевантных документов
в базе
где —
это множество релевантных
документов в базе,
а
— множество документов, найденных
системой
23
Slide 24
Оценки эффективности. Выпадение (fall-out)
Выпадение характеризует вероятность нахождения
нерелевантного ресурса и определяется, как
отношение числа найденных нерелевантных
документов к общему числу нерелевантных
документов в базе
где Dnrel — это множество нерелевантных
документов в базе,
а
— множество документов, найденных
системой
24
Slide 25
F-мера (F-measure, мера Ван Ризбергена)
Сбалансированная F-мера (F1-мера)придает
одинаковый вес точности и полноте ( = ½)
25
Slide 26
Модели информационного поиска
Булевская
Векторная
Вероятностная
…
26
Slide 27
Булевская модель
Словарь: T = {t1, . . . tn}, где ti — термы
Документ: D ⊂ T, иначе говоря D ∈ {0, 1}n
Запрос: t5 OR t7 NOT t12
Используется:
Внутрикорпоративные системы поиска
Базы данных
Недостаток:
27
Жесткость
Непригодность для ранжирования
Slide 28
Векторная модель
Реализована в 1968 Джерардом Солтоном (Gerard
Salton) в поисковой системе SMART
Снова коллекция документов, каждый из которых
теперь является мультимножеством слов
Матрица M, где Mij = TFij · IDFi , где:
Частота терма TFij — относительная доля слова i в тексте j
Обратная встречаемость в документах IDFi — величина,
обратная количеству документов, содержащих слово i
Физический смысл Mij — степень соответствия слова i
тексту j
Запрос: t3 AND t5 (разрешаем только AND)
28
Slide 29
Вероятностная модель
Робертсон (Robertson) и Спарк-Джоунз (Sparck-Jones) в 1977г.
Релевантность – здесь вероятность того, что данный
документ может оказаться интересным пользователю
Документ: множество слов D = {d1, . . . , dn}
Запрос: Qk — тоже, но храним как множество
Соответствие:
29
Зафиксируем запрос Qk
Пусть есть распределение вероятностей на всех текстах “быть
релевантным запросу Qk ”: обозначаем P(R|Qk ,D)
Пусть есть распределение вероятностей на всех текстах “быть
НЕрелевантным запросу Qk ”: обозначаем P(Ṝ|Qk ,D)
Функцией соответствия будет их отношение (или логарифм
этой дроби)
Slide 30
Поиск в Вебе
Нужно анализировать не только текст документа, но и
off-page факторы:
положение на сайте
посещаемость
авторитетность источника
частота обновления
цитируемость страницы и ее авторов
Искусственное накручивание рейтинга страниц (SEO)
Поиск в полуструктурированных данных
30
Slide 31
Полуструктурированные данные
1)
2)
31
такой способ хранения данных, при котором у
каждой единицы информации может быть
произвольный набор полей
данные без постоянной чётко определённой
структуры, либо данные со структурой, неизвестной
пользователю. Их удобно представлять в виде графа
Slide 32
XML
XML (eXtensible Markup Language) – язык текстовой
разметки, стандартизованный W3C, удобный для
представления полуструктурированных данных
bla... bla... bla...
bla... bla... bla...
bla... bla... bla...
bla...
32
Slide 33
Поиск в HTML vs. XML
В HTML:
• ищут целые документы
• ранжируют целые документы
• близость слов определяется
положением в тексте
33
В XML:
• ищут XML-элементы
• ранжируют XML-элементы
• близость слов определяется ещё и
положением в дереве
Slide 34
Принцип поиска
Что ищем
R0 – множество XML-элементов, содержащих все
слова запроса.
R1 – множество XML-элементов, таких, что ≥1
потомков содержат все слова запроса, ≥1 потомков
содержат только часть слов
Ранжирование результатов. ElemRank:
34
Slide 35
Качество ранжирования веб-страниц
PageRank — это алгоритм, позволяющий оценить,
насколько данная интернет-страница популярна
предложен Брином и Пейджем в 1998 г.
идея: определять рейтинг страницы через количество
ведущих на нее ссылок и рейтинг ссылающихся
страниц
35
Slide 36
Поиск нечетких дубликатов документов
MD5
TF
TF*IDF
TF*RIDF
Long Sent
Heavy Sent
Megashingles
Lex Rand
Log Shingles
Descr Words
Opt Freq
36
Slide 37
Семантический поиск
Семантический Веб — новая концепция развития Веба
и сети Интернет, принятая и продвигаемая W3C
Проблема : большинство данных в Вебе хранится в
форме, рассчитанной на восприятие человеком, их
структура не очевидна роботу
Семантический Веб — это не отдельная сеть, а
расширение уже существующей
37
Slide 38
Принципы работы
Агент — программа, работающая без
непосредственного управления со стороны человека
или другого постоянного контроля, созданная для
достижения целей, поставленных перед ней
пользователем
38
Закажи для меня эту книгу в ближайшей библиотеке.
Посмотри на расписание электричек и мое расписание и
выбери билеты в театр, чтобы я мог успеть
после работы.
Скажи мне, какое вино нужно купить к каждому из блюд в
этом меню. И кстати, я не люблю Сотерн.
Микроволновка, сходи на сайт производителя и загрузи
оптимальные параметры подогрева.
Slide 39
Сценарии использования
Семантический поиск. Поисковая система сможет
выдавать только те сайты, где упоминается в точности
искомое понятие, а не произвольные страницы, в
тексте которых встретилось данное многозначное
ключевое слово.
Объединение знаний (интеграция баз данных)
Всепроникающие вычисления (ubiquitous computing).
Расширение сферы влияния на физический мир
39
Slide 40
Основная цель Семантического Веба
создание языка, на котором можно будет описать как
данные, так и правила рассуждений об этих данных,
так что правила вывода, существующие в какой-либо
системе представления знаний, можно будет
экспортировать в Веб
синтаксис
семантика
XML – есть синтаксис, но не определена семантика!
Тим Бернерс-Ли
40
Slide 41
Структура языка
RDF (Resource Description Framework) — язык,
отвечающий за синтаксис документов Семантического
Веба. В нем широко используются ссылки на
онтологии для определения смысла слов
OWL (Ontology Web Language) — язык описания
онтологий.
Онтология — описание классов объектов, их свойств и
взаимоотношений для какой-то предметной области
(домена)
41
Slide 42
План реализации
1.
2.
3.
4.
5.
6.
7.
8.42
Синтаксис для представления знаний,
использующий ссылки на онтологии (сделано: RDF)
Язык описания онтологий (сделано: OWL)
Язык описания веб-сервисов (начато: WSDL, OWL-S)
Инструменты чтения и разработки документов
Семантического Веба (начато: Jena, Haystack,
Protege)
Язык запросов к знаниям, записанным в RDF (начато:
SPARQL)
Логический вывод знаний (не сделано).
Семантическая поисковая система (начато: SHOE).
Агенты Семантического Веба (не сделано).
Slide 43
Архитектура
43
Slide 44
RDF: синтаксис Семантического Веба
XML дает возможность создавать документы
произвольной структуры, однако данный язык ничего
не говорит о том, что означает эта структура
RDF кодирует смысл при помощи деревьев глубины
три (Notation3), где каждое дерево состоит из:
субъекта (подлежащее)
свойства (сказуемое)
объекта (дополнение)
«Небо голубого цвета»
=
субъект — «небо», свойство — «иметь цвет», объект
— «голубой»
44
Slide 45
Пример: RSS
RSS — семейство XML-форматов, предназначенных
для описания лент новостей, анонсов статей,
изменений в блогах и т. п. Информация из различных
источников, представленная в формате RSS, может
быть собрана, обработана и представлена
пользователю в удобном для него виде специальными
программами-агрегаторами.
Под RSS может пониматься:
45
Rich Site Summary — богатая сводка сайта
RDF Site Summary — сводка сайта с применением
инфраструктуры описания ресурсов
Really Simple Syndication — очень простая синдикация
Slide 46
Обработка естественного языка
Natural Language Processing, NLP - технологии
обработки естественных языков
Question-Answering Systems, QAS - вопросно-ответные
системы
На вход такой системе подаётся запрос,
сформулированный на естественном языке, после
чего он обрабатывается с использованием методов
NLP, и генерируется естественно-языковой ответ
46
Slide 47
Схема процесса
отбор
документов
• например, поиск по ключевым словам
фильтрация
документов
• выделение фрагментов
текста, потенциально
содержащих ответ
синтез
ответа
47
Slide 48
Проблемы создания QAS
Типы вопросов
Обработка вопросов
Контекстные вопросы
Источники знаний для QA-системы
Выделение ответов
Формулировка ответа (слияние ответов из разных
документов)
Ответы на вопросы в реальном времени
Многоязыковые запросы
Интерактивность
Механизм рассуждений (вывода)
Профили пользователей QA-систем
48
Slide 49
Поиск изображений по содержанию
англ. Content-based image retrieval (CBIR) — раздел
компьютерного зрения, решающий задачу поиска
изображений, которые имеют требуемое содержание,
в большом наборе цифровых изображений
Алгоритм поиска должен анализировать содержание
изображения, например, цвет представленных на нём
объектов, их форму, текстуру, композицию сцены
Термин «Content-based image retrieval» впервые был
введен в употребление в 1992 г. Т. Като
Альтернатива: методы, основанные исключительно на
категоризации метаданных (не подходит к
автомтически созданным изображениям, камеры
49наблюдений)
Slide 50
Области применения
Поиск изображений в сети интернет
Каталогизация изображений произведений искусства
Организация работы с архивами фотографических снимков
Организация каталогов розничной продажи товаров
Медицинская диагностика заболеваний
Предотвращение преступлений и беспорядков
Военно-оружейное применение
Вопросы контроля за распространением интеллектуальной
собственности
Получение информации о местоположении удаленных
зондов и географическое позиционирование
Контроль за содержимым массивов изображений
50
Slide 51
Общая схема
система производит поиск на основе входного
изображения, указываемого пользователем
все результирующие экземпляры изображений должны
иметь общие элементы с входом, указанным
пользователем
пользователь может подать на вход как существующее
изображение, так и грубый набросок требуемого
результата
51
Slide 52
Описание содержания. Цвет
Поиск изображений с помощью сравнения цветовых
составляющих производится с помощью построения
гистограммы их распределения
изображение делится на регионы по сходным
цветовым характеристикам, и далее учитывается их
взаимное расположение
52
Slide 53
Описание содержания. Текстура
сравнение текстурных образцов, присутствующих на
изображении, и их взаимного расположения
текстоны - содержат не только информацию,
описывающую текстуру, но и её местоположение на
описываемом изображении
53
Slide 54
Описание содержания. Форма
описание
геометрической
формы отдельных
регионов
изображения
к региону сначала
применяют
сегментацию или
выделение границ
54
Slide 55
Примеры поисковых систем
Google Image Search
Visual Image Search
Chic Engine
Visual Recognition Factory
Empora
Обратный поиск изображений TinEye.com
Поиск людей по фотографиям PhotoDate.ru
Поиск изображений по содержанию Immenselab.com
55
Slide 56
Источники
Дональд Кнут. Искусство программирования, том 3.
Сортировка и поиск /The Art of Computer
Programming, vol.3. Sorting and Searching./ — 2-е изд. —
М.: «Вильямс», 2007. — С. 824.
MIT OpenCourseWare http://ocw.mit.edu
Школа анализа данных Яндекс http://shad.yandex.ru/
Юрий Лифшиц - курс "Алгоритмы для Интернета"
http://yury.name/internet/
Илья Сегалович «Как работают поисковые системы»
http://download.yandex.ru/company/iworld-3.pdf
56
Slide 57
Спасибо за внимание!
57
[email protected]