Оценка систем информационного поиска Игорь Некрестьянов Санкт-Петербургский Государственный Университет http://meta.math.spbu.ru/~igor Зачем оценивать? Как понять метод хорош или плох? Для того чтобы улучшать, надо определить что значит «лучше» «Можно сделать так» или «Это решение лучше»: «Мне кажется так будет лучше …» «Мы делаем так …» «Наш метод использует семантику …» «Мне нравятся результаты поиска …» Критерий истины. Важно в любой науке. Есть способ оценки – есть возможность сравнения => соревновательный эффект! Что оценивать? Насколько быстро выполняются запросы? Сколько занимает индекс? Насколько хорошо удовлетворяются информационные потребности? Сколько информации удалось получить по данной теме? Насколько полезна коллекция по которой идет поиск? Насколько удобно пользоваться системой? … Критерии оценки Объем и состав коллекции Способ представления результатов (поиска) Простота обучения и использования Экономическая выгода Быстродействие Качество ответа (точность, полнота) Удовлетворенность пользователя в контексте решаемой задачи Для количественной оценки используются меры. Критерии и метрики могут быть лишь Отступление: оценка инновации Относительное преимущество над конкурентами Сложность для понимания и использования Совместимость с существующим окружением Будет ли признана эта инновация? Возможность тестирования до внедрения Наглядность преимуществ Эта схема безусловно применима не только к системам информационного поиска. Метрики на множествах Насколько близки искомый и реальный ответ? Искомые ответы |R| Ra Ответ системы |A| AveragePrecision 1 k AvgPrec prec_rel(i ) k i 1 коллекция Точность = |Ra| / |A| Полнота = |Ra| / |R| Усреднение значений точности на уровнях релевантных документов F-мера – смесь точности и полноты F 2 1 1 p r Микро- и Макро- усреднение Макроусреднение вычислить метрики по каждому запросу отдельно и затем их усреднить Усреднение независимо от «мощности» запроса Микроусреднение найти общий размер всех ответов, правильных ответов, искомых ответов и на их основе вычислить искомую метрику Полезно в задачах классификации и фильтрации Метрики на последовательностях Ответ системы ранжирован, эталон - нет Точность/Полнота на уровне N (среди первых N) R-точность – точность на уровне, равном общему числу релевантных документов Позволяет сравнивать запросы разных мощностей «Ценность ответа» (reciprocal rank) – функция от позиции первого релевантного документа Оценка усилий пользователя для нахождения ответа на свой вопрос Обычно задается дискретной шкалой Метрики: пример Пусть только d1 и d2 – релевантные 2 варианта ранжирования 1. D3 D1 2. D4 D4 3. D1 D3 4. D5 D5 5. D2 D6 6. D6 D2 7. D7 D7 Какой вариант ранжирования лучше? Точность Полнота 0 и 0.5 AveragePrecision R5: 1 и 0.5 R-точность P1: 0 и 1 P5: 0.4 и 0.2 (1/3+2/5)/2 и (1/1+2/6)/2 Ценность ответа по шкале (1, .7, .5, .3, .1) 0.5 и 1 11-точечный график TREC Интерполированные значения точности на заданных уровнях полноты (0, 0.1, 0.2, …., 1.0) Показывает что будет потеряно при достижении заданного уровня полноты/точности AveragePrecision – площадь под графиком точност ь полнота Какая система лучше? Способы оценки Аналитическое доказательство Например, оценка сложности алгоритма Зачастую, сложно описать целевую функцию, точно характеризующую критерий оценки. Эксперимент Почему наблюдаемый результат закономерность, а не случайность? Абсолютная оценка не имеет значения. Только относительная. Что такое «хороший» ответ? Полный? Частичный? Содержащий сведения по этой теме? Дающий идеи для дальнейшего поиска? Пример: ответы на запрос «сколько см в дюйме» Примеры других «четких» запросов: металл толщиной 1 дюйм (2,5 см) … при вершине 2,5 дюйма (6.4 см) … амортизатором с ходом 11,1 дюйма (28,2 см) … Почему украинцы воруют российский газ? На чем ездят россияне? Куда поехать отдыхать? Релевантный по мнению пользователя Релевантность Формально: степень соответствия ответа информационной потребности пользователя. Субъективное понятие Можно говорить лишь о приблизительном измерении Разные люди часто имеют разные представления о том, что такое релевантный документ для этого запроса Есть много разных подвидов релевантности Релевантность: классификация по Mizzaro 4 оси – Relevance(IR, IN, C, T) Информационные ресурсы (IR) Информационная потребность (IN) Контекст (C) Время (T) Источник: S. Mizzaro. How many relevances in information retrieval? 1997. http://www.dimi.uniud.it/~mizzaro/research/papers/IwC.pdf Замечание: Это не догма, а демонстрация сложности понятия релевантность. Ось: Информационные ресурсы 1. 2. 3. 4. Набор документов Которые вместе удовлетворяют потребность пользователя Документ Атомарная единица, из которых состоит ответ системы. Суррогат Производная от документа. Например, название + аннотация. Информация Результат чтения документа пользователем (что если документ на неизвестном языке) Ось: Информационная потребность 1. 2. 3. 4. Реальная неосознанная истинная информационная потребность пользователя Осознанная внутреннее понимание реальной потребности Сформулированная описание средствами естественного языка Формализованная описание на языке запросов Информационная потребность «Осознание» - проблема, если не очень понятно, что хочется найти «Формулирование» Использование ключевых слов, а не связных предложений. Проблема словаря – слова в документах и в запросе могут быть разными. Формализация Не все хорошо владеют языком запросов Переходы между состояниями вносят погрешность! Пример 1. 2. 3. 4. Задание: practical application of neural networks to information filtering Его поняли как: practical application of neural networks to information retrieval Словами описали как: нейронные сети в задачах информационного поиска Запрос: neural network AND information search Ось: Контекст Тема Предметная область Задача Зачем эта информация нужна Примеры: информационный поиск (узнать), транзакционный (купить), навигационный (найти домашнюю страницу), … Атрибуты пользователя Предыдущие знания Документы, которые не сможет понять Время, которое он может посвятить поиску Ось: Время Примеры: Пользователь выясняет что-то, что позволяет ему лучше понять документ (например, узнает про непонятный термин) Информационная потребность изменяется в процессе изучения результата (например, поняв что search != retrieval) Знания и атрибуты пользователя изменяются (это уже не новая информация) Важна для моделирования интерактивности поиска. То, что хочется оценить, != тому, что реально оценивается. Лабораторная парадигма оценки Проект Cranfield-2 в 1970-х Сравнительное тестирование Какая из систем A или B лучше решает данную поисковую задачу? Возможность повторения эксперимента Предположения: 1. Релевантность можно аппроксимировать тематической схожестью. 2. Набор оценок асессора репрезентативно представляет пользователя ИПС. 3. Для каждого задания известны все релевантные документы Базовый подход Альтернативными методами выполняются одинаковые задания Фиксируется задача+коллекция+набор заданий Задача фиксирует критерий оценки Оценка на основе сравнения с «эталоном» «Эталон» обычно строится с помощью асессоров, которые оценивают ответы на правильность Идея: варьировать отдельные компоненты и смотреть как меняется результат Новые запросы Расширенная коллекция Другая цель поиска (купить, а не найти информацию) TREC/CLEF/РОМИП/… «Открытые» форумы для оценки методов информационного поиска: TREC = Text Retrieval Conference, с 1992, US CLEF = Cross Language Evaluation Forum, 2000, Europe Многоязычный поиск, в основном европейские NTCIR, с 1999, Japan В основном англоязычный поиск Фокус на CJK (Chinese, Japanese, Korean) РОМИП – Российский семинар по оценке методов информационного поиска, с 2003 Русскоязычные коллекции и заданий Особенности Большие объемы коллекций Невозможно оценить все документы Частичная оценка результатов Оценивается подмножество заданий Не все ответы, но одинаково для разных систем Соблюдение анонимности результатов Защита от персональных предпочтений асессоров Более одной оценки от асессоров Коллекции РОМИП’2006 Веб коллекция Нормативная коллекция DMOZ Новостная коллекция Состав Размер Веб-сайты из домена narod.ru Законодательство РФ Веб-сайты из русской части DMOZ 728.000 док. 22 000 сайтов. 60.000 док. 300.000 док. 2087 сайтов Все новости за три 31.500 док. периода из 17 75 Мб. источников Коллекции Результат эксперимента зависит от коллекции (русскоязычный движок и коллекция на японском) Нельзя просто переносить выводы с одной коллекции на другую Неправильно тестировать метод на одной коллекции Что важно в коллекции? Размер важен, но это не единственный параметр Свойства, которые использует ваш метод Язык, тип документов, связи между ними, … Пример: коллекция Narod.Ru Случайная выборка из домена Narod.ru Довольно большая (1.5Гб в архиве) Содержит много разных типов сайтов Но: Больше мусора, чем в среднем в Рунет Типовые шаблоны оформления страниц Нет ряда категорий сайтов (корпоративные сайты, магазины, …) Граф ссылок непохож на Веб Дорожки РОМИП’2006 Поиск по Веб Поиск по нормативной коллекции Поиск по смешанной коллекции Классификация Веб документов Вопросно-ответная дорожка Заданий Оценивалось 24595 70 (20) 12925 50 (0) 37091 158 247 кат. 2116 сайтов 24 кат. 7695 615 615 • Много заданий для систем - защита от ручной настройки результата Метод «общего котла» (pooling) Котел – объединение первых N (50-100) документов из результатов каждой системы. Асессор оценивает все документы в котле. Плюсы: Контролируемый объем работы (не вся коллекция) Асессор не знает какая система вернула этот результат и на какой позиции Убираются дубликаты => выгодно участникам Можно собирать >1 оценки Нет личных предпочтений Позволяет точно вычислить ряд оценок Например, точность на уровне Метод «общего котла» Точное число релевантных ответов не известно Оценка полноты приблизительная – учитываем то, что попало в котел Вопросы: Насколько хорошо приближение полноты? Что если коллекция/задания будут другими? Асессор – хорошая модель пользователя? Как оценить не участвовавшую систему? Коэффициент выгоды Выгода от совместной оценки Число прогонов Выгода – отношение объема работы при оценке «котла» к объему работы при оценке результатов независимо. (РОМИП2004) Новых документов Рост размера котла Глубина котла Значение в точке k – разница между суммарным объемом котлов (по всем запросам) глубины k и k-1. Упражнение: Как бы выглядел бы график, если бы системы возвращали случайные результаты? Новых релевантных Число релевантных документов Глубина котла Предполагаемая аналитическая модель Похоже на данных TREC и РОМИП (коэффициенты C и S отличаются) Можно оценить выгоду от увеличения глубины с 50 до 100 – на 30-50% больше релевантных (РОМИП 2004) Неточная оценка – нельзя узнать общее число Можно ли верить выводам? Проблема: Метод A лучше B (на d). Будет ли так в другом эксперименте? На результат влияют: Размер и состав набора заданий Глубина «котла» Субъективность оценки асессора Величина «допуска» d, которая используется при принятии решения «лучше»/«хуже» Аналитически доказать нельзя, но можно поставить эксперимент Упражнение: добавление еще одного ответа системы в котел не влияет на выводы. Оценка стабильности Идея: оценить вероятность ошибки Гипотеза (|Q1|=|Q2|, и Q1 и Q2 не пересекаются): A > B на наборе Q1 => A > B на наборе Q2 Повторение эксперимента на разных наборах запросов Что можно узнать: Не более половины оценивавшихся Вероятность в ошибки в выводе A>B Найти d при котором приемлемая вероятность ошибки Способы повышения стабильности: Увеличить число заданий или глубину котла, повысить d Ошибка (%) Стабильность выводов с увеличением числа заданий Число заданий • По данным РОМИП’2004 • Вероятность, что третье место лучше первого 3-11% • На данных TREC графики более гладкие (больше систем) Роль асессора Открытая проблема: Соответствуют ли выводы на основе оценок асессора оценкам реальных пользователей? Известные факты Абсолютный результат оценки зависит от асессора Случайные ошибки (до 5%) слабо влияют на выводы Несогласие асессоров есть всегда и довольно высоко Дублирование оценок повышает стабильность Альтернатива – увеличение числа заданий «Ошибочно релевантен» опаснее, чем «ошибочно нерелевантен» сложнее задача => выше «шум» История неудачного эксперимента Задача: структурировать поток новостей в набор событийных сюжетов, связанных между собой. Событие: отражение события из реального мира в потоке новостных сообщений («смерть папы римского») Сюжеты – события, связанные между собой нетематическими связями («перенос футбольного тура в связи с кончиной папы») Оценка: полная разметка потока вручную Хорошо позволяет оценить полноту (и точность) Собранные оценки легко повторно использовать Инструмент оценки Результат Мало выделенных кластеров Распределение кластеров не совпадает с ожиданиями (основанных на природе данных) Очень большие отличия у разных асессоров Внутренняя структура сюжетов часто недоработана (очевидные дубли не склеены) Почему? Очень сложная задача для асессора Выбор между сотнями готовых кластеров Невозможно быстро понять о чем этот сюжет не просмотрев сообщения еще раз Контекст быстро забывается, если асессор отвлекся на что-то другое Концептуально: оценивалась позиция «редактора», а не «читателя»! Рецепт: оценка самостоятельно Формализуйте задачу и ограничения Определите критерий оценки ОДНО числовое значение, а не много! С чем вы будете сравнивать? Есть ли готовые наборы данных? Продемонстрируйте, что ваш метод лучше Простого базового Наилучшего известного метода Почему выводам можно верить? Оцените стабильность Перепроверьте обоснование критериев оценки Вернуть все. Вернуть случайно. Использовать Яндекс /Google/…. Сравнение поисковых систем в Веб У каждой системы своя коллекция Методы TREC прямо не применимы Специализированные задачи: Сравнение размеров Свежесть индекса Доля уникальных документов Размер «интернет» Доля актуальных документов Чистота Какая система «больше» Оценка суммарного размера Веб Рассмотрим пример задачи по оценке не связанный с понятием релевантность Как сравнить размеры? Наивный подход: Посмотреть сколько документов возвращается для одинаковых запросов Проблемы: Многие системы показывают не весь список найденных документов (не более N) Часть документов могла измениться (не содержит слов запроса) или вообще пропасть Разные системы возвращают разные «неточные» результаты Морфология (разные словоформы) Расширение запроса «близкими» словами (опечатки, синонимы) Преобразование запросов («как лечить ожог» и «лечение ожогов») Как сравнить размеры? (2) Альтернативный подход: Выбираем случайный URL из машины A и проверяем наличие в машине B. (так оцениваем Pr(A&B|A)) Как выбрать действительно «случайный»? (хотим получить однородную выборку) Общий подход к реализации: Выбор «случайного» URL Строим словарь Генерируем запросы Выбираем URL на основе ответа на запрос Как проверить наличие? Надо найти этот документ Доказать, что это он Немного математики Дано: системы A и В Допустим мы научились оценивать Pr(A&B|A). Что дальше? Pr(A&B|A) = Size(A&B)/Size(A) Pr(A&B|B) = Size(A&B)/Size(B) следовательно Size(A)/Size(B) = Pr(A&B|B) / Pr(A&B|A) Как оценить размер Веб? Идея: Умеем вычислять |A&B|/|B|, а |A| можно взять из публичных источников А независимы ли? Если индексы систем A и B независимы, то |A&B|/|B| = |A|/|Web| Вероятно не совсем Но: |A&B|/|B| по факту совпадают для разных B Это оценка размера индексируемого Веб Детали реализации Словарь Можно построить на основе подмножества Веб Генерация запросов Запросы OR из 4 слов (одинаковые по частоте) Запросы AND из 2 слов (равноудаленных от концов отсортированного по частоте словаря) Однословные запросы 1,3,5,7-словные фразы Возможные проблемы: Большое число результатов => сильно влияние ранжирования Перекос документы с большим словарем => теряем маленькие документы AND-запросы – находят «словники» Детали реализации (2) Выбор URL Случайный из первой сотни результатов Любознательным: Ziv Bar-Yossef, Maxim Gurevich. Random Sampling from a Search Engine’s Index. Труды WWW’2006. http://www2006.org/programme/files/pdf/3047.pdf котел запросов (взвешенный) случайное блуждание => более однородная выборка Есть ли URL в индексе? Идея: задать запрос для которого этот url должен быть в ответе «строгий» запрос: 8 слов с лучшим IDF оператор «URL:» и подобные Сложности: Одна и та же страница может быть проиндексирована под разными URL Многие системы не показывают частичные дубликаты Как убедится что документ тот же? Сравнить содержимое (совпадение на 85%) Развитие «наивного» подхода Запросы Небольшое число ответов во всех системах Минимизация влияния «продвинутых» возможностей системы Проверка Без стоп слов Грамматически корректные С простым словоизменением (или неизменяемые) Скачиваются все ответы Проверяются на совпадение текста Плюсы: Позволяет оценить свежесть и чистоту Невысокая трудоемкость (120-600 запросов) (устойчивая оценка начинается с 60-70) Развитие «наивного» подхода (2) Плюсы: Позволяет оценить свежесть и чистоту Невысокая трудоемкость известные эксперименты - 300-600 запросов (устойчивая оценка начинается с 60-70) Возможность ежедневного мониторинга Почему выборка репрезентативна? Строгого доказательства нет По данным Яндекс: размер известного набора документов с редкими словами растет пропорционально размеру Веб Пример результата оценки Система Размер Чистота Свежесть Яндекс 829m 0.901 0.839 Рамблер 1020m 0.759 0.801 Google 547m 0.884 0.806 Yahoo! 406m 0.907 0.904 MSN 348m 0.950 .920 Рунет – 2600m документов По данным «Автолюба» - autoluba.narod.ru Сегалович И.В, Зеленков Ю.Г., Нагорнов Д.О. Методы сравнительного анализа современных поисковых систем и определения объема Рунета. Труды RCDL’2006. Напоминание Рецепт: оценка самостоятельно Формализуйте задачу и ограничения Определите критерий оценки ОДНО числовое значение, а не много! С чем вы будете сравнивать? Есть ли готовые наборы данных? Продемонстрируйте, что ваш метод лучше Простого базового Наилучшего известного метода Почему выводам можно верить? Оцените стабильность Перепроверьте обоснование критериев оценки Вернуть все. Вернуть случайно. Использовать Яндекс/Google/… . Что можно по этой теме почитать? S. Mizzaro. How many relevances in information retrieval? 1997. http://www.dimi.uniud.it/~mizzaro/research/papers/IwC.pdf М. Агеев, И. Кураленок, И. Некрестьянов. Официальные метрики РОМИП’2006. http://romip.narod.ru/docs/romip_metrics.pdf Кураленок И.Е., Некрестьянов И.С. Оценка систем текстового поиска. Программирование, 2002. http://meta.math.spbu.ru/~igor/papers/exp-survey/ D. Harman. What we have learned, and not learned from TREC. Труды BCS IRSG, 2000. http://citeseer.ist.psu.edu/432755.html Karen Sparck Jones, What's the value of TREC - is there a gap to jump or a chasm to bridge? SIGIR Forum, 2006. http://sigir.org/forum/2006J/ Ian Soboroff. Do TREC Web Collections Look Like the Web? SIGIR Forum, 2002. http://www.sigir.org/forum/F2002/soboroff.pdf Что можно по этой теме почитать? (2) И. Некрестьянов, М. Некрестьянова, А. Нозик. Анализ «лабораторной» парадигмы оценки систем поиска. Интернет-математика 2005. http://company.yandex.ru/grant/list.xml Amit Singhal, Marcin Kaszkiel. A Case Study in Web Search using TREC Algorithms. Труды WWW10. http://www10.org/cdrom/papers/317/ Сегалович И.В, Зеленков Ю.Г., Нагорнов Д.О. Методы сравнительного анализа современных поисковых систем и определения объема Рунета. Труды RCDL’2006. http://www.rcdl2006.uniyar.ac.ru/papers/paper_76_v1.pdf Сайт РОМИП: http://romip.narod.ru Сайт TREC: http://trec.nist.gov И еще масса интересных статей – смотрите на что ссылаются авторы и читайте их тоже!