360 likes | 583 Views
Информационный поиск. Андрей Федоровский , Mail.Ru fedorovsky@corp.mail.ru. Что будем искать?. Поиск по формальным параметрам Структурированная, связанная синтетическая коллекция Точные однозначные запросы Реляционная алгебра, SQL . Результат однозначно определяем. Скучно.
E N D
Информационный поиск Андрей Федоровский, Mail.Ru fedorovsky@corp.mail.ru
Что будем искать? Поиск по формальным параметрам • Структурированная, связанная синтетическая коллекция • Точные однозначные запросы Реляционная алгебра, SQL. Результат однозначно определяем. Скучно.
Что будем искать? - 2 Полнотекстовый поиск • Коллекция текстовых документов на естественном языке • Запросы в виде короткой строки на естественном языке Результат – документы, релевантнные запросу. Релевантность у каждого своя. Интересно.
Используем • Графематика • Морфология • Постморфология, снятие омонимии • Text mining, фактографический поиск • Размеченные корпуса для обучения
Используем - 2 • Определение тематики документов • Фильтрация нежелательной информации • Нечеткие дубликаты • Авторитет источника • Кластеризация результатов • Машинное обучение, методы оптимизации
Как будем искать? Прямой поиск (Кнут-Моррис-Пратт, Бойер-Мур) Документ длиной n, образец длиной m. • Предвычисления за O(m) • Поиск за O(n) • Гибок. Легко задать сложные критерии совпадения: нечеткий поиск (Bitap), regexp.
Как будем искать? - 2 Суффиксные деревья (Укконен), суффиксные массивы (Salson) Документ длиной n, образец длиной m. • Предвычисления за O(n) • Размер индекса O(n) • Скорость поиска O(m) При хорошей скорости индексации и поиска позволяет искать любую подстроку.
Векторная модель документа Документ и запрос как наборы слов. Графематический и морфологический разбор. Строим вектора в пространстве слов: Минус – теряем взаимное расположение слов. Обычно контекст слов ценен, его жаль выбрасывать.
Обратный индекс Набор лемм со списком включающих ее документов ПИТЬ : (d12, d821, d4421) ПИЛА : (d821) Словопозиции, морф. параметры словоформы ПИТЬ : (… d821 (pos22, "Г пр.в.,ж.р.,ед.ч. ")…) ПИЛА: (… d821 (pos22, "С ж.р.,им.п.")…) Хорошо, если совпадают словоформы в документе и запросе. И если слова находятся рядом.
Запрос Превращаем строку в дерево: [Рыба пила] Рыба & (пить | пила) Получаем списки документов из обратного индекса, объединяем или пересекаем их: РЫБА: (d12, d56, d821, d970) ПИТЬ : (d12, d821, d4421) ПИЛА : (d821, d970) Результат – (d12, d821, d970)
Запрос - 2 • Удаление стоп-слов: [быть или не быть] • Расширение запросов [МГУ адрес] => [(МГУ | Московский Государственный Университет) адрес] • Сужение запросов. Например, исходя из геолокации пользователя [купить телефон] => [купить телефон Рязань] • Ускорение различными эвристиками в 10-100 раз.
Релевантность TF – вес слова в документе IDF – насколько слово редкое в коллекции
Релевантность BM25 Здесь учитывается длина документа. В действительности таких влияющих факторов множество.
Что еще влияет • Разметка документа. Графематический модуль совмещен с парсером html и сохраняет информацию о зонах документа. • Пассажи – компактно расположенные в документе группы слов запроса. Они же помогают формировать сниппеты и являются аннотацией документа в выдаче. • Кворум слов запроса. С учетом IDF.
Что еще влияет 2 • Соответствие словоформ в запросе и документе • Совместная встречаемость слов запроса в документе недалеко друг от друга • Согласованность тематик запроса и документа
Определение дубликатов Точные – контрольная сумма Нечеткие – шинглы (Broder) Я к Вам пишу, чего же боле Я к Вам пишу, чего же боле–> CRC Я к Вам пишу, чего же боле–> CRC Я к Вам пишу, чего же боле–> CRC Выбор нескольких – множеством способов: http://rcdl2007.pereslavl.ru/papers/paper_65_v1.pdf
Авторитетность. PageRank Вероятность пользователя случайно перейти на документ Вероятность перейти или случайно, или по ссылке из другого документа. Он очень быстро итеративно сходится. Через 30-50 итераций имеем устойчивое решение.
Измерение качества Точность Полнота Точность на N Можно одновременно поднять и точность, и полноту?
Измерение качества - 2 F-мера Обобщение Пока мы не учитываем позиции в результатах.
Измерение качества - 3 Средняя точность Полнота в формулу не входит. Почему же AvP считается интегральной мерой?
Измерение качества - 4 DCG – оцениваем еще и позицию в выдаче. NDCG – нормируем на идеальную выдачу.
Тестирование качества Асессоры вручную просматривают результаты. Несколько систем образуют общий набор результатов. Документы не из этого набора считаются нерелевантными. Это – метод «общего котла» (TREC, РОМИП) Точность системы можно понять и по одному набору. Для полноты – нужен общий.
Оптимизация параметров • TFIDF веса для слов и для устойчивых словосочетаний • слова запроса в заголовке документа, в начале документа • пар слов запроса в документе с сохранением смежности и порядка • пассаж в документе, плотно содержащий все слова запроса • авторитетность документа • тематика документа • наличие ссылок на документ, содержащие слова запроса • et cetera, et cetera…
Оптимизация параметров Набор параметров Критерий качества Подбор оптимального набора Метод имитации отжига (Simulated annealing) Генетические алгоритмы Деревья решений См. «Numerical recipes in C» или Jason Brownlee «Clever Algorithms»
Переобучение С ростом m ошибка падает. Нужно ли брать m=n-1?
Переобучение – 2 Переобученный поиск хорошо ищет только по тестовому набору данных. Нужно ли идти в оптимизации параметров до конца? И где остановиться?
Переобучение – 3 Первое правило недопереобучения: брать несмещенный набор данных. Training set – набор данных для обучения Test set – набор данных для проверки качества
Early stopping У нас есть training set T, размеченный асессорами на соответствие набору запросов Q. Разобьем T на T’ и validation set V. Обучаемся на T’. На каждой итерации проверяем качество на V. Останавливаемся, когда качество перестало улучшаться не на T’, а на V. Как будет дальше изменяться качество на T’? А на V?
Cross-validation У нас есть training set T, размеченный асессорами на соответствие набору запросов Q. Разобьем T на T1…Tk. Обучаемся на всех, кроме T1. Проверяем качество на T1. Обучаемся на всех, кроме T2. Проверяем качество на T2… По окончании получаем k решений. Что с ними делаем? Чем этот метод лучше early stopping? А чем хуже?
Регуляризация Штраф за сложность модели. Обычно это большие значения параметров.
Bagging Семплинг данных, обучение на семпле. Многократный семплинг, потом – агрегация.
Boosting,AdaBoost Задача бинарной классификации Начальные веса Есть набор слабых алгоритмов Выберем из них тот, который классифицирует лучше всех. Здесь ошибка
Boosting,AdaBoost – 2 Теперь увеличим веса тем объектам, на которых первый больше ошибался. И рассчитаем α – вес классификатора, зависящий от выданной им ошибки. Теперь повторим выбор наилучшего классификатора, уже с новыми весами. Получим последовательность классификаторов с весами. Построим из них итоговый:
LSI Словарь в большом массиве текстов неограниченно велик. Закон Хиппса: Выбор слов: частые стоп-слова, редкий мусор. Выбор по Information Gain – все равно остаются тысячи слов. A – term-document martix. Нужно ее приближение ранга k. SVD: U,V – ортонормированы. - диагональна.