Научная статья на тему 'Алгоритм полнотекстового поиска с обучением на основе статистических данных'

Алгоритм полнотекстового поиска с обучением на основе статистических данных Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
988
90
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПОЛНОТЕКСТОВЫЙ ПОИСК / ИНФОРМАЦИОННЫЙ ПОИСК С ОБУЧЕНИЕМ / ОБРАБОТКА СЛОВОСОЧЕТАНИЙ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Колосов А. П.

Рассматривается задача полнотекстового поиска в корпусе текстов. Для решения предлагается использовать алгоритм с обучением, сочетающий поиск по словосочетаниям с анализом данных о поведении пользователей. Приводятся результаты эксперимента, подтверждающие эффективность данного алгоритма.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

USING USER BEHAVIOR DATA AND PHRASE PROCESSING IN A FULL - TEXT SEARCH ALGORITHM

The problem of full text search in a local (non web) corpus is considered. In order to solve the problem, an algorithm is suggested. The described algorithm uses both statistical data on user behavior and phrase processing for unsupervised training aimed at improving search results. Experimental data demonstrating the effectiveness of the algorithm are provided.

Текст научной работы на тему «Алгоритм полнотекстового поиска с обучением на основе статистических данных»

2. Курочкин С. А., Лучанский О. А. Цифровое управление объектами // Математическое и программное обеспечение вычислительных систем. М.: Горячая линия. - Телеком, 2007. С.25-28.

T.A. Akimenko, O.A. Lychanski, A.N. Rudianov

METHODS OF RESEARCH OF SYSTEM OF THE TECHNICAL SIGHT OF ROBOTS

Methods of research of system of technical sight of robots are considered. It is offered for the analysis оптоэлектронной systems of robots to use the mathematical apparatus based on use of frequency models of signals, in particular, on one-dimensional and two-dimensional transformations by Fure.

Key words: photosensitive devices, system of technical sight, digital model of the image, the robot, a signal.

Получено 14.12.11

УДК 004.4'414

А.П. Колосов, асп., +79202741745, alexey.kolosoff@gmail.com (Россия, Тула, ТулГУ)

АЛГОРИТМ ПОЛНОТЕКСТОВОГО ПОИСКА С ОБУЧЕНИЕМ НА ОСНОВЕ СТАТИСТИЧЕСКИХ ДАННЫХ

Рассматривается задача полнотекстового поиска в корпусе текстов. Для решения предлагается использовать алгоритм с обучением, сочетающий поиск по словосочетаниям с анализом данных о поведении пользователей. Приводятся результаты эксперимента, подтверждающие эффективность данного алгоритма.

Ключевые слова: полнотекстовый поиск, информационный поиск с обучением, обработка словосочетаний

Первые системы информационного поиска появились еще в 50-60-х годах прошлого века. В начале 90-х годов задача информационного поиска приобрела широкую популярность с появлением первых поисковых систем в Интернете [1]. К задачам информационного поиска относится поиск изображений, поиск документа по метаданным (например, по названию, автору, размеру) и полнотекстовый поиск. Основной задачей существующих поисковых систем, таких как Google, Yandex или Nigma, является именно полнотекстовый поиск, то есть поиск по всему тексту документов в некоем множестве (корпусе) документов с целью нахождения текстов, близких по смыслу к поисковому запросу.

В данной работе предлагается алгоритм, использующий сочетание двух популярных подходов, успевших доказать свою эффективность [2, 3]

- поиска с учетом словосочетаний и обучения на основе статистических данных. Хотя алгоритм может использоваться и для поиска в Интернете (глобального поиска), рассматривается не менее актуальная задача полнотекстового поиска в относительно небольшом корпусе текстов (локального поиска). Примером такого корпуса может служить справочная система, описывающая какое-либо устройство или программный продукт, множество юридических документов, патентов, аннотаций или статей и т.п.

Отметим несколько важных особенностей, отличающих поставленную задачу от поиска в Интернете.

1. Общее количество документов относительно невелико (от нескольких десятков до нескольких сотен тысяч).

2. Авторы индексируемых документов заинтересованы в адекватности результатов поиска. Поскольку владельцы каждого сайта в Интернете хотят, чтобы именно их веб-страницы считались наиболее релевантными определенным запросам, а разработчики поисковых систем хотят, напротив, сделать результаты наиболее объективными, поисковым системам приходится учитывать множество дополнительных факторов - ссылки между страницами, авторитетность источников, ссылающихся на сайт, время возникновения и частоту обновления страницы и т.п. В случае локального поиска документы и сам сервис поиска предоставляет, как правило, одна и та же компания, поэтому она заинтересована в том, чтобы результаты поиска удовлетворяли запросам пользователей.

Предлагаемый алгоритм можно разделить на следующие подзадачи.

1. Индексирование документов.

2. Определение релевантности документов (поиск).

3. Анализ статистики с целью определения качества результатов поиска.

4. Изменение индексов в соответствии с качеством результатов поиска и выделение словосочетаний.

Рассмотрим каждую из этих задач подробнее.

Индексирование документов. Изменение индекса документа производится в следующих случаях: а) если в корпус добавлен новый документ; б) если существующий документ изменен; в) при обработке статистики.

Данный процесс реализован так же, как в большинстве поисковых систем и потому является тривиальным. Опишем лишь анализ знаков препинания, поскольку этот шаг обладает одной особенностью - наличие знака препинания между словами приводит к искусственному увеличению позиции следующего слова.

При таком увеличении конкретное значение зависит от знака препинания. Все знаки разделяются на четыре класса: разделители составных слов (например, «латентно-семантический» или «1.0»), разделители слов (пробел), разделители словосочетаний (запятая, двоеточие и т.п.), раздели-

тели предложений (точка, за которой следует пробел, и т.п.). Искусственное увеличение позиции делается для того, чтобы облегчить разбиение текста на словосочетания - очевидно, что слова, разделенные, например, восклицательным или вопросительным, знаком словосочетаниями не являются.

Вес вычисляется по известной формуле tf (term frequency), описывающей частоту появления слова в документе:

где rif j - количество повторений ключевого слова tf в индексируемом документе dj, а знаменатель - общее количество слов в документе dj.

Определение релевантности (поиск). Задача поиска сводится, фактически, к задаче сравнения двух документов - q (query, запроса) и dj

(документа из корпуса). Результатом каждого такого сравнения является число, описывающее степень близости между документами.

Релевантность в предлагаемом алгоритме вычисляется поэтапно.

Сначала проводится обычный булевский поиск по ключевым словам с учетом операторов, явно или неявно присутствующих в поисковой строке. Такими операторами являются: AND, OR, AND NOT и ExactPhrase (применяется к словам, заключенным в кавычки). Булевский поиск позволяет произвести первичный отбор документов, удовлетворяющих запросу, однако он не дает представления о релевантности.

Следующим этапом является вычисление базовой релевантности каждого из отобранных документов по ключевым словам. Для ее вычисления предлагается использовать косинус угла между векторами документов. Также рассматривалась и другая популярная формула - Okapi ВМ25, но эксперименты, проводившиеся на тестовом множестве из 7000 документов, показали, что более оптимальные результаты как по качеству, так и по производительности дает именно косинус угла, часто использующийся для определения смысловой близости при векторной модели текстов:

dJ ч srN

dJ И -

cos(dj,q) =

где у - вес соответсвующих слов, вычисленный по формуле

После вычисления базовой релевантности производится корректировка полученных значений в соответствии с близостью документов q и по словосочетаниям. Из запроса словосочетания выделяются на основе позиций слов. Близкими считаются слова, расстояние между которыми составляет 1 (слова, разделенные пробелом) или 0 (для составных слов, разделенных, например, дефисом). Также при выборе словосочетаний

учитываются данные, накопленные по результатам анализа статистики предыдущих запросов с теми же словами. После этого для документа dj вычисляется соответствующий корректирующий коэффициент:

Y^jKp ( Pi, dj )

Kphrase (q, dj ) _ N '

Иными словами, коэффициент вычисляется как среднее арифметическое релевантностей по каждому из рассматриваемых словосочетаний Pi, выделенных из запроса q. Здесь Kp - релевантность документа словосочетанию р;, вычисляемая по следующей формуле:

22ni

KP( Pi, dj) = X k D—, D Pi ,k

где nt - количество слов в словосочетании Pi (в общем случае оно может состоять из двух и более слов), Dp k - суммарное расстояние между каждым из этих слов в рассматриваемом документе dj, вычисленное для каждого вхождения в документ словосочетания Pi. Для слов, расстояние между которыми равно нулю (например, слов, разделенных дефисом), это значение берется равным 0,25. Отметим, что вхождения фразы Pi в документ d j определяется по следующему правилу: если расстояние между

каждой парой соседних слов, составляющих словосочетание, не превышает M, считается, что данные слова в документе dj являются словосочетанием Pi. M - целочисленная константа, обозначающая величину, на которую увеличивается позиция следующего слова после точки (или другого знака препинания из группы знаков, заканчивающих предложение) при индексировании.

Таким образом, данная формула производит более точную оценку близости текстов по словосочетаниям за счет учета большего количества факторов, чем, например, появившийся недавно алгоритм PATeR [4]. Предлагаемая формула позволяет использовать сочетания из трех и более слов, причем длина сочетания оказывает большое влияние на результирующий коэффициент. Очевидно, что длинные словосочетания имеют более узкий смысл, чем короткие, а значит, их совпадение должно оказывать большее влияние на результирующую смысловую близость. Также учитываются словосочетания, разделенные несколькими словами (которые, в общем случае, могут оказаться вводными фразами), причем количество таких промежуточных слов ослабляет итоговый вклад данного вхождения в результат. Искусственное увеличение позиций ключевых слов в зависимо-

465

сти от знаков препинания и упомянутое выше правило позволяет естественным образом решить проблему производительности, возникающую при требовании нахождения всех слов в одном предложении (что, по сути, приводит к использованию плавающего окна). Более того, правило, определяющее словосочетания в документе как «слова, находящиеся в одном предложении, причем каждая пара разделена не более чем M словами», является более гибким чем то, что используется в алгоритме PATeR [4], поскольку учитывает возможное отсутствие семантической связи между словами, находящимися, например, в разных концах достаточно длинного предложения.

После получения коэффициентов происходит вычисление итоговой релевантности для каждого документа:

R(q, dj ) = COs( q, d j )(K phrase (q, dj ) +1),

где cos(q, dj) - косинус угла между векторами запроса q и документа dj,

характеризующий их близость по ключевым словам.

Анализ статистики. Способы определения качества результатов поиска могут различаться в зависимости от типа хранимых данных и реализации конкретной системы. Исследование, проведенное во время работы над предлагаемым алгоритмом, показывает, что самый очевидный способ -явная оценка качества пользователями (explicit relevance feedback) является неэффективным. В рамках эксперимента пользователям опубликованной в Интернете справочной системы было предложено оценить качество статей. В результате из 346 580 уникальных просмотров, произошедших за год, было дано лишь 798 оценок. Иными словами, эксперимент показал, что пользователи склонны явно оценивать просмотренные документы лишь в 0,23% случаях, а значит, данный подход не является достаточно эффективным.

Более перспективным и универсальным представляется метод, не зависящий от типа системы и не требующий от пользователей никаких дополнительных действий. Поэтому предлагается собирать статистику о поисковых запросах и выбранных результатах каждого запроса неявно (implicit relevance feedback), после чего использовать для анализа каждой сессии работы пользователя с системой приведенные ниже эвристические правила. Обозначим за K множество всех ключевых слов, встречающихся как в запросе, так и в анализируемом документе (то есть пересечение множеств ключевых слов из документов q и dj). Если документ считается хорошим

результатом, вес ключевых слов k е K для этого документа должен быть увеличен, если плохим - уменьшен. Два запроса предлагается считать похожими, если степень их близости по ключевым словам достигает определенного порогового значения.

Управление, вычислительная техника и информационные технологии Правила определения хороших результатов приведены на рис. 1.

Рис. 1. Правила определения хороших результатов

Правила определения плохих результатов приведены на рис. 2.

Рис. 2. Правила определения плохих результатов

Помимо корректировки весов, качество результатов поиска позволяет сделать вывод и о правильности разбиения запроса на словосочетания. Например, из запроса «найти релевантные документы» по умолчанию будут выделены три словосочетания: «найти релевантные документы», «найти релевантные» и «релевантные документы». Если из результатов пользователь выберет документы, в которых последнее встречается чаще, чем предпоследнее, это позволит судить о более тесной семантической связи между этими двумя словами, и в следующий раз эти данные будут использованы алгоритмом для разбиения на словосочетания аналогичных запросов.

Корректировка весов. В глобальных поисковых системах обучение обычно заключается в подборе оптимальных параметров модели, использующейся для вычисления релевантности (например, в алгоритме MatrixNet [5], применяемом компанией Yandex). В случае локального поиска предлагается использовать другой подход: корректировать не параметры формулы вычисления релевантности, а сами веса ключевых слов в индексе, формирующие вектора документов. Для глобального поиска дан-

467

ных подход неприменим, поскольку владельцы сайтов, желающие повысить популярность своих веб страниц, могли бы сделать это искусственно, имитируя пользователей, считающих их сайты наиболее релевантными. Это приводило бы к неадекватному увеличению веса соответствующих ключевых слов в индексах и искажению объективности результатов.

Для локального поиска корректировка весов призвана отразить мнение пользователей о том, насколько ключевые слова запроса соответствуют документам, считающимся хорошими или плохими результатами поиска. Отметим, что каждая следующая корректировка должна изменять вес ключевого слова меньше, чем предыдущая, чтобы один новый результат не перевешивал все предыдущие результаты. Благодаря этому каждое значение веса будет стремится к новой величине, основанной на усредненном мнении пользователей.

Корректировка весов производится по следующей формуле:

(-1)и

w) j +

1 +

wrj -ft, j

где Wi j - текущий скорректированный вес ключевого слова в индексе (измененный ранее в результате обработки статистики), tf j - вес ключевого слова, изначально вычисленный по формуле tf. Значение n берется в зависимости от полезности обрабатываемого результата. Если результат является плохим, берется n = 1, если хорошим - берется n = 2. Единица в знаменателе дроби прибавляется для того, чтобы избежать деления на ноль при первом изменении веса.

Экспериментальные данные. Для оценки качества предлагаемого алгоритма был проведен эксперимент на тестовом корпусе из 7000 документов, представляющих собой статьи из справочных систем к трем различным программным продуктам. Работникам компании, разрабатывающей эти продукты, было предложено оценить баллами (от 1 до 4) качество результатов поиска по десяти наиболее популярным поисковым запросам, отобранным по статистике за 2010 год. В случае расхождения оценок вычислялось среднее арифметическое с округлением в большую сторону. В отличие от популярной меры качества поиска P@K («precision at top K»), данные баллы учитывают не только соответствие первых N документов запросу, но и порядок выдачи документов. Результаты эксперимента представлены в таблице.

Столбцы cos(q, dj ) и Okapi BM25 соответствуют результатам предлагаемого алгоритма с использованием соответствующих формул для вычисления базовой релевантности. Столбец SQL Server iFTS содержит оценку результатов, полученных с помощью алгоритма полнотекстового поиска, встроенного в Microsoft SQL Server 2008, который используется для внутреннего поиска по справочной системе на сайте компании. Стол-

бец Google содержит оценки для поиска в системе Google (документы, на которых проводился эксперимент, доступны в Интернете).

Таблица

Оценка качества результатов для наиболее популярных запросов

Запрос cos( q, dj ) Okapi BM25 SQL Server iFTS Google

Working with grids З 1 4 4

Load testing 4 2 З З

Web testing 4 З 2 З

Remote Agent Service 4 2 2 4

Name mapping template 4 З З 2

Stop on error З 2 4 4

Object not found З 4 4 З

UI Automation 4 4 4 З

Silverlight

Testing flash applications 4 4 З 4

Web service testing 4 4 З 4

Итого (макс. 40): З7 29 З2 З4

Как видно из таблицы, предлагаемый алгоритм дал для данных запросов наилучший результат. Низкие результаты SQL Server можно объяснить тем, что эта система использует алгоритм Okapi, дающий, как видно, неудовлетворительные результаты для поставленной задачи. Поскольку этот алгоритм учитывает частоту повторения слова в корпусе, слова, встречающиеся в большом количестве документов (например, слово testing) рассматривались им как шумовые, что приводило для коротких запросов к нежелательным результатам (например, поиску только слова «load» или только слова «web»).

Заключение. Эксперимент показал, что предлагаемый алгоритм является достаточно эффективным для решения задачи локального информационного поиска, а описанная формула оценки смысловой близости по словосочетаниям дает существенное улучшение релевантности для запросов, состоящих из двух и более слов. В рамках дальнейших исследований алгоритм выделения словосочетаний планируется дополнить морфологическим анализом с применением концептуальных графов. Такой подход позволит отфильтровывать слова, которые не могут быть семантически связаны в соответствии с правилами языка. Также планируется реализо-

вать поддержку онтологии, разбивающей документы корпуса на иерархию классов и использовать данную классификацию при поиске.

Помимо этого, полученные сведения о качестве результатов поиска и их связи с запросом позволят сделать целый ряд дополнительных выводов:

1) скорректировать имеющуюся иерархию документов;

2) провести (либо скорректировать существующую) кластеризацию документов по ключевым словам и/или словосочетаниям;

3) для нового естественного языка (при наличии сведений о его грамматике), сформировать в полуавтоматическом режиме шаблоны для выделения семантически связанных слов посредством морфологического анализа.

Поддержку новых видов анализа планируется реализовать в последующих версиях алгоритма.

Список литературы

1. Griffiths R. Internet History - Search Engines. URL: http://www.internethistory.leidenuniv.nl/index.php3?c=7 (дата обращения: 12.01.2011).

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

2. Ruthven I., Lalmas, M. A survey on the use of relevance feedback for information access systems //The Knowledge Engineering Review archive, Vol. 18 Issue 2. June 2003. New York: Cambridge University Press.

3. Challis J. Lateral Thinking in Information Retrieval, Information Management and Technology. 2003. Vol. 36. Part 4. P. 169-173.

4. Bani-Ahmad S.G., Al-Dweik G. A new term-ranking approach that supports improved searching in literature digital libraries // Research Journal of Information Technology. 2011. Vol. 3. № 1. P. 44-52.

5. Гулин А., Карпович А. Жадные алгоритмы в задачах оптимизации качества ранжирования. URL: http: //download.yandex .ru/ company/experience/GDD/Zadnie_algoritmy_Karpovich.pdf (дата обращения: 10.02.2011).

A.P. Kolosov

USING USER BEHAVIOR DATA AND PHRASE PROCESSING IN A FULL-TEXT SEARCH ALGORITHM

The problem of full-text search in a local (non-web) corpus is considered. In order to solve the problem, an algorithm is suggested. The described algorithm uses both statistical data on user behavior and phrase processing for unsupervised training aimed at improving search results. Experimental data demonstrating the effectiveness of the algorithm are provided.

Key words: full-text search, implicit relevance feedback, phrase processing, machine learning in information retrieval.

Получено 14.12.11

i Надоели баннеры? Вы всегда можете отключить рекламу.