УДК 004.738.52+004.031.42
МОДИФИКАЦИЯ АЛГОРИТМА БУЛЕВОГО ПОИСКА
© 2011 г. М.Б. Хорошко
Южно-Российский государственный South-Russian State
технический университет Technical University
(Новочеркасский политехнический институт) (Novocherkassk Polytechnic Institute)
Рассматриваются алгоритмы булевого поиска и взвешенное зонное ранжирование, а также их модификации. Показаны результаты экспериментов, где для подбора коэффициентов при взвешенном зонном ранжировании применены алгоритмы: случайный и генетический.
Ключевые слова: модификация булевого поиска; булев поиск; модель поиска; информационный поиск.
In this paper we consider algorithms for Boolean searching and zonal weighted rankings, as well as their modifications. Shows the results of experiments where the selection coefficients for the weighted ranking of the band applied algorithms random and genetic.
Keywords: modification of a Boolean search; Boolean search; model search; information retrieval.
Информационный поиск быстро становится основной формой доступа к информации, так как позволяет намного быстрее найти необходимую информацию. К примеру, в библиотеках многих людей есть все собрания сочинений Шекспира. Вы хотите найти, в какой пьесе используются слова Brutus И CaesaM НЕ Calpina. Можно, конечно, прочитать все пьесы, отмечая произведения, содержащие данные слова, но намного проще воспользоваться информационным поиском и найти необходимые пьесы.
В базовой модели булевого поиска пользователь может формулировать запрос в виде булевского выражения, используя для этого операторы И, ИЛИ, НЕТ. Термы запроса зависят от конкретного варианта модели поиска:
- по тексту - термами будут слова, а критерием релевантности будет условие вхождения некоторого слова или словосочетания в текст документа;
- по классификаторам - термами выражения будут идентификаторы классов.
В общем случае критерием релевантности документа запросу является истинность булевского выражения, заданного в запросе.
Рассмотрим пример поиска «по тексту».
Матрица документ-термин C(d,t) (табл. 1) показывает, какие встречаются слова и в каких документах, где di - документ, ti - терм, булев запрос q .
Таблица 1 Матрица документ - термин C(d, t)
C(d,t) i1 = a t2 = b t3 = c
d1 1 0 0
d2 1 1 0
d3 1 0 1
d4 0 1 0
d5 1 1 1
Запрос вида: q = а И (Ь ИЛИ (НЕ с))
a-> 1,1,1,0,1 1 и 1,1,0,0,1
Ь-> 0,1,0,1,1 "1 или 1,1,0,1,1 J
НЕ с - > 1,1,0,1,0 ]
Результат представлен в документах: d1, d2, d5.
Одним из несомненных достоинств этого подхода является простота реализации.
Главными недостатками считаются:
1) отсутствие возможности ранжирования найденных документов по степени релевантности, поскольку отсутствуют критерии ее оценки;
2) сложность использования - далеко не каждый пользователь может свободно оперировать булевскими операторами при формулировке своих запросов.
Рассмотрим одну из модификаций булевого поиска, которая получила название взвешенное зонное ранжирование. В этом случае подразумевается деление документа на зоны, например: заголовок, содержание, дата публикации и автор.
Метод взвешенного зонного ранжирования присваивает паре (d,q) значение релевантности на отрезке [0,1], вычисляя линейную комбинацию зонных показателей, в которую каждая зона документа вносит булево значение. Пусть существует множество документов, каждый из которых имеет
6 = (и01Г + «01„ ) я 2 +( п10г + %!„ ) (1 - Я)2 + п00г + п11п зон.
l
Тогда g1,g2,...,g 1 е [0,1], так что = 1. Пусть si -
г=1
булева величина, означающая соответствие (или его отсутствие) между запросом q и ьй зоной, где
1 < i < I. Например, если все термины запроса принадлежат конкретной зоне, то ее булево значение должно быть равным единице, а если нет - нулю. Это отображение может осуществлять любая булева функция, показывающая наличие терминов запроса в
зоне в множестве {0,1}. Таким образом, взвешенную
зонную релевантность можно определить как
l
Score(d,g) = Ygisi . С1)
i=1
Также взвешенное зонное ранжирование иногда называется булевым поиском с ранжированием. Веса функции gi также можно определить на основе машинного обучения. Для этого необходимо:
1. Множество обучающих примеров, каждый из которых представляет собой кортеж, состоящий из запроса q, документа d , а также оценки релевантности d и q . В простейшем случае каждая оценка релевантности является бинарной, т.е. релевантной или не релевантной. В более сложных реализациях этой методологии используются более точные оценки.
2. Веса gi определяются путем «обучения» на данных примерах так, чтобы полученные оценки аппроксимировали оценки релевантности примеров.
При взвешенном зонном ранжировании этот процесс можно рассматривать как подбор коэффициентов линейной функции от булевых признаков вхождения в соответствующие зоны. Затратной частью этой методологии является трудоёмкий сбор оценок релевантности, по которым производится обучение, особенно если коллекция часто изменяется. Опишем простой пример, показывающий, как свести задачу определения весов gi на основе обучения к простой задаче оптимизации.
Рассмотрим вариант взвешенного зонного ранжирования, в котором каждый документ имеет зоны title и body, что соответствует заголовку и основному содержанию документа. Применим к заданным запросу q и документу d булеву функцию соответствия и
вычислим булевы значения sT (d, q) и sB (d, q), указывающие, соответствует ли заголовок и соответственно тело документа d запросу q. Например, используем для этого функцию «И», примененную к терминам запроса. Вычислим значение, лежащее между нулем и единицей для каждой пары (документ, запрос) используя значения sT (d, q), sB (d, q) и константу g e [0,1]:
Score (d, g ) = gsT (d, q ) + (1 - g ) sb (d, q ) . (2)
Определяем константу g по обучающим примерам, каждый из которых представляет собой тройку вида Pi = (di, qi, r(di, qi)). Каждому обучающему примеру, содержащему документ di и запрос qi, экспертом дается оценка релевантности r(di, qi), принимающая значение релевантный или нерелевантный. Этот процесс показан в табл. 2, на котором показано семь примеров.
Для каждого обучающего примера Pi у нас есть
булевы значения sT (di, qi) и sB (di, qi), используем их для ранжирования по формуле (2).
Score (di, qi ) = gsT (di, qi ) + (1- g ) sb (di, qi ). (3)
Таблица 2
Вариант обучающих примеров
Пример DocID Запрос ST sb Оценка эксперта
Pi 37 Новочеркасск 1 1 Релевантный
P2 37 Платов 0 1 Нерелевантный
Рз 238 собор 0 1 Релевантный
P 4 238 Платов 0 0 Нерелевантный
Р5 1741 Ермак 1 1 Релевантный
Рб 2094 казак 0 1 Релевантный
Р7 3191 казак 1 0 Нерелевантный
Теперь сравним эту вычисленную релевантность с оценкой релевантности той же пары (di, qi), сделанной человеком. Для этого каждая оценка релевантности кодируется единицей, а нерелевантность -нулем. Ошибка весовой функции с весом q определяется по следующей формуле:
£ (8, Рг ) = (г (di, qг ) - сге (di, qг ))2.
Здесь оценка редактора г (dj, qj) кодируется единицей или нулем. Таким образом, суммарная ошибка, соответствующая множеству обучающих примеров, равна:
е=£в( 8, Р ), (4)
i=0
где п - количество обучающих примеров.
Теперь задача определения константы 8 по обучающим примерам сводится к нахождению значения 8 , минимизирующей функцию (4).
Определение наилучшего значения 8 на основе (4) сводится к задаче минимизации квадратичной функции, зависящей от 8 , на отрезке.
Отметим, что для любого значения , такого что (di, qi) = 0 и (di, qi) = 1, релевантность, вычисленная по формуле (2), равна 1 - 8 . Аналогично можно записать релевантность, вычисленную по формуле (2), при трех других возможных комбинациях sT (di, qi) и sB (di, qi). Эти комбинации представлены в табл. 3.
Таблица 3
Четыре возможных комбинации sT и sB
ST sb Релевантность
0 0 0
0 1 1-g
1 0 g
1 1 1
Обозначим через п01г и п01п количество обучающих примеров, для которых (di, qi) = 0 и
(di, qi) = 1, а экспертная оценка - релевантный и
нерелевантный. Тогда вклад в суммарную ошибку в выражении (4) от обучающих примеров, для которых sT (di, qi) = 0 и sB (di, qi) = 1, равен
е01 = [1- (1- Я)]2 ЩЛг + [° - (1- £)]2 п0щ .
Записав аналогичным образом вклады в ошибку от обучающих примеров при трех других комбинациях значений sT (dj, qj ) и sB (di, qi) , приходим к
выводу, что суммарная ошибка, определяемая по формуле (4), равна
6 = ( п01г + П01п ) 8 2 +( п10г + П01п ) (1 - Я)2 + п00г + П11п .(5)
Дифференцируя выражение (5) по 8 и приравнивая результат к нулю, получаем, что оптимальное значение
п10г +П
g = -
01n
n
10r
+ n10n + nm„ + n
01r
01n
В результате мы получили оптимальное значение Я для минимизации ошибки, когда релевантность имела всего два возможных значения - для двух зон.
Рассмотрим более сложный случай: у нас есть множество документов, каждый из которых имеет I = 10 зон (21,г2,...,). Также остается в силе, что
I
"я, = 1. Релевантность определяется по формуле (1).
г=1
Вычислим значение, лежащее между нулем и единицей, для каждой пары (документ, запрос), используя значения s1 (di, qi), s2 (di, qi) , ..., sl (di, qi) . Теперь попробуем определить множество констант я по обучающим примерам, каждый из которых представляет собой тройку вида Pi = (di, qi, г(di, qi)). Каждому обучающему примеру, содержащему документ di и запрос qi, экспертом дается оценка релевантности г (di, qi), принимающая значение в интервале [0,1]. Этот процесс показан в табл. 4 на 10 примерах.
Таблица 4
Обучающие примеры
Пример DocID Запрос S1 S2 Si Sl Оценка эксперта
Pi 12 41 0 1 0 0 0,10
P2 14 42 1 0 0 0 0,30
Рз 15 4з 1 1 0 0 1
Р4 245 44 1 0 1 0 0,5
P5 278 45 0 1 1 0,78
Рб 278 Чб 1 0 0 1 0,52
Р7 345 47 1 1 1 0 0,63
Р8 456 48 1 1 1 0,87
Р9 570 49 1 1 1 1 0,56
Pio 1214 410 1 0 1 0 0,05
Для каждого обучающего примера Pi у нас есть булевы значения si (di, qi), и формула релевантности будет выглядеть как
I-1 А 1-1 Л
%соге (di, q1) = "я, ^ (di, q1)+11 - "8г I ^ (di, q1). (6)
i=1 V i =1 )
Ошибка весовой функции будет вычисляться также по формуле (4).
В данном случае подбор весовых коэффициентов функции довольно трудоёмкий процесс, если решать напрямую задачу минимизации ошибки. Поэтому будет эффективно использовать генетический алгоритм для подбора коэффициентов я, .
Краткое описание генетического алгоритма для подбора коэффициентов
1. Случайным образом подбираем пя наборов коэффициентов я,.
2. Оцениваем ошибку по формуле (4), для каждого набора.
3. Сортируем наборы по увеличению ошибки.
4. Если ошибка п1 набора больше заданной ошибки бепег, то переходим к пункту 5, иначе пункт 6.
5. Применяем операции скрещивания, мутации, генерируем новый набор коэффициентов. Переходим к пункту 2.
6. Получили набор коэффициентов я,, которые минимизируют формулу (4).
Операция скрещивания: каждый коэффициент формулы представляется в двоичном виде и скрещиванием двух коэффициентов двумя вариантами:
- скрещивание пополам - делим пополам каждый коэффициент, и половинки меняем местами. Напри-мер,скрещивая два коэффициента [К1, К2] и [Р1, Р2], получим [К1, Р2], [Р1, К2];
- скрещивание по методу «расчески» - меняем местами биты через один. Например,скрещивая два коэффициента [К1, К2, КЗ, К4] и [Р1, Р2, Р3, Р4], получим [К1, Р2, КЗ, Р4], [Р1, К2, РЗ, К4].
Операция мутации: для алгоритма вводится значение вероятности мутации бита. И в зависимости от этого значения каждый бит меняется на случайный.
Эксперимент
Для проверки эффективности генетического алгоритма (ГА) сравним его со случайным алгоритмом (СА). Для сравнения алгоритмов возьмем две выборки документов: обучающая и экспериментальная.
Определим экспериментальным путем размер обучающей выборки. Релевантность каждого документа, входящего в выборку, оценили 3 эксперта (для уменьшения влияния ошибки одного эксперта).
Проведем эксперимент, для разных размеров обучающей выборки посчитаем ошибку вычисления релевантности 50 документов (пользователю обычно показывается 10 документов, но чтобы посмотреть, как поведет алгоритм себя дальше, возьмем первые
50) (рис. 1). Вероятность выбора случайным образом релевантного документа должна быть очень низкой, возьмем равной 5 %. Чтобы оценить весь спектр документов, будем считать ошибку вычисления релевантности по 50 запросам, чтобы было пересечение документов по различным запросам. В сумме будет отбираться 2500 документов.
30 25 20 15 10 5 0
20 40 60 80 100 120 140 160 180
Рис. 1. Ошибка ГА, для разных объемов обучающей выборки
Как видно из эксперимента, для обучающий выборки достаточно 100 документов. В итоге для проведения эксперимента будем использовать:
- размер обучающей выборки 100 документов;
- размер экспериментальной выборки 2000 документов;
- 50 запросов к алгоритму;
- 50 релевантных документов выбирает каждый алгоритм.
Сравним основные параметры алгоритмов: полноту, точность, аккуратность, ошибку и у-меру.
Полнота (recall) вычисляется как отношение найденных релевантных документов к общему количеству релевантных документов.
Полнота характеризует способность системы находить нужные пользователю документы, но не учитывает количество нерелевантных документов, выдаваемых пользователю. Результаты эксперимента по анализу полноты показаны на рис. 2.
Точность только у ГА по некоторым запросам достигает единицы. В большинстве случаев ГА показывает лучшую полноту.
Точность (precision) вычисляется как отношение найденных релевантных документов к общему количеству найденных документов.
Точность характеризует способность системы выдавать в списке результатов только релевантные документы. Результаты эксперимента по анализу точности алгоритмов показаны на рис. 2.
Среднее значение полноты: ГА = 0,692; СА = 0,192. Среднее значение точности: ГА=0,629; СА=0,175.
Аккуратность (accuracy) вычисляется как отношение правильно принятых системой решений к общему числу решений. Результаты эксперимента по анализу аккуратности алгоритмов показаны на рис. 3. Среднее значение аккуратности: ГА=0,966; СА=0,918.
Ошибка (error) вычисляется как отношение неправильно принятых системой решений к общему числу решений. Результаты эксперимента по анализу ошибки алгоритмов показаны на рис. 4. Среднее значение ошибки: ГА = 0,033; СА = 0,081.
F-мера (F) часто используется как единая метрика, объединяющая метрики полноты и точности в одну метрику. F-мера для данного запроса вычисляется по формуле
2
F = -
1
1
precision
recall
б
Рис. 2. Полнота (а) и точность (б): ■ - СА; - ГА
а
Рис. 3. Аккуратность: ■ - CA; I - ГА
7911 —1719212^
29 31 33 35 37 39 ' CA
39 « 43 45 47 49
Рис. 5. F-мера
Отметим основные свойства: 0 < F < 1;
если recall = 0 или precision = 0, то F = 0 ; если recall = precision, то F = recall = precision ;
r + p
g, чтобы минимизировать ошибку вычисления релевантности.
Литература
min(reacall, precision) < F <
2
Результаты эксперимента по анализу ^-меры алгоритмов показаны на рис. 5. Среднее значение /-меры: ГА = 0,659; СА = 0,183.
Выводы
Генетический алгоритм обладает лучшими значениями метрик по сравнению с другими методами. Его эффективно использовать для подбора коэффициентов
1. Salton G., Fox E., Wu H. Extended Boolean information retrieval. Communications of the ACM. 2001. Vol. 26, № 4. December. P. 35 - 43.
2. Когаловский М.Р. Перспективные технологии информационных систем. М., 2003. 288 с.
3. Кристофер Д.М., Прабхакар Р., Хайнрих Ш. Введение в информационный поиск / перевод под ред. П.И. Брас-ловского. М., 2011.
4. Кураленок И., Некрестьянов И. Оценка систем текстового поиска // Программирование. 2002. Vol. 28(4). Р. 226 -242.
Поступила в редакцию 19 января 2011 г.
Хорошко Максим Болеславович - аспирант, Южно-Российский государственный технический университет (Новочеркасский политехнический институт). Тел. +7-928-131-82-33. E-mail: [email protected]
Horoshko Maxim Boleslavovich - post-graduate student, South-Russia State Technical University (Novocherkassk Polytechnic Institute). Ph. +7-928-131-82-33. E-mail: [email protected]_