Алексей Колосов

51
Алгоритм полнотекстокового поиска с обучением на основе статистических данных Алексей Колосов 1

Upload: lidia-pivovarova

Post on 10-May-2015

919 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Алексей Колосов

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

Алексей Колосов

1

Page 2: Алексей Колосов

Оглавление

•Постановка задачи•Функции системы•Обработка запросов•Поисковый алгоритм•Эксперименты•Обучение•Перспективы развития

2

Page 3: Алексей Колосов

• Постановка задачиПостановка задачи•Функции системы•Обработка запросов•Поисковый алгоритм•Эксперименты•Обучение•Перспективы развития

3

Page 4: Алексей Колосов

Задача•Имеется портал, посвященный ответам на

вопросы пользователей. Ответы на вопросы формируют специалисты-консультанты

•Имеются базы документов, поиск по которым может позволить найти ответ

•Необходимо снизить нагрузку специалистов, отвечающих на вопросы

4

Page 5: Алексей Колосов

Рабочий процесс

Не помогло?

До:

После:

5

Помогло?

Page 6: Алексей Колосов

Обработка данных

Поисковая система

Вопрос пользователя

(произвольный рус./англ. текст)

Ссылкина документы

6

Вход Выход

Page 7: Алексей Колосов

7

Page 8: Алексей Колосов

Поиск по теме сообщения - результаты

8

Page 9: Алексей Колосов

Практические задачи•Автоматический подбор

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

Поиск одинаковых или очень похожих вопросов (фильтрация дубликатов)

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

Быстрый поиск по ключевым словам

9

Page 10: Алексей Колосов

Отличия данного вида поиска от поиска в Интернете

• Запрос состоит из нескольких предложений, а не из нескольких слов

• Авторы страниц заинтересованы в адекватности результатов поиска (нет SEO)

• Количество документов невелико (десятки тысяч)

• Все документы посвящены одной тематике или ряду близких тематик

10

Page 11: Алексей Колосов

11

•Постановка задачи• Функции системыФункции системы•Обработка запросов•Поисковый алгоритм•Эксперименты•Обучение•Перспективы развития

Page 12: Алексей Колосов

Функции системы (подзадачи)

12

Page 13: Алексей Колосов

13

•Постановка задачи•Функции системы• Обработка запросовОбработка запросов•Поисковый алгоритм•Эксперименты•Обучение•Перспективы развития

Page 14: Алексей Колосов

Обработка запросов

•Фильтрация шумовых слов

•Выявление словосочетаний

•Раскрытие форм слов (с меньшим весом)

•Раскрытие синонимов (с меньшим весом)

14

Page 15: Алексей Колосов

Выявление словосочетаний – знаки препинания (при индексировании)Примеры:

• issue-tracking tools => [N, N + 0.25]• ...the issue, but{stop word} tracking

changes... => [N, N + 3]•Object.Method() =>

Object[N], Method[N + 0.25]•…some object. Method A shows… =>

object[N], Method[N + 15]

15

Page 16: Алексей Колосов

Выявление словосочетаний - семантика

•Несмотря на грамматические ошибки, пользователи обычно применяют корректные сочетания слов для описания технической сути проблемы.

•Построение концептуального графа позволяет отфильтровать несвязанные слова и грамматически неверные конструкции.

16

Page 17: Алексей Колосов

Пример запроса

Hi there!

i have a script test with a bunch of checkpoints, but when it hits a checkpoint cannot be verified, the execution of the script stops and any tests after the failed checkpoint do not get executed. Thank's in advance.Randy

17

Page 18: Алексей Колосов

Концептуальный граф - фрагмент

18

Page 19: Алексей Колосов

Отфильтрованные предложения

19

Page 20: Алексей Колосов

Результаты разбора

• Словосочетания, по которым должен производиться поиск

• Каждое словосочетание имеет свой вес

• Поскольку текст может содержать несколько вопросов/касаться нескольких тем, словосочетания объединяются оператором OR

• В результате разбора задача поиска по тексту сводится к задаче поиска по набору словосочетаний, решаемой с помощью предлагаемого алгоритма

20

Page 21: Алексей Колосов

21

•Постановка задачи•Функции системы•Обработка запросов• Поисковый алгоритмПоисковый алгоритм•Эксперименты•Обучение•Перспективы развития

Page 22: Алексей Колосов

Поисковый алгоритмФакторы, влияющие на релевантность:

•Операторы поиска (AND, AND NOT, OR, “exact phrase”, и т.п.)

•Скорректированный вес ключевых слов•Позиции слов в документе и знаки

препинания•Вес проиндексированного поля•Результаты морфологического разбора

запроса

22

Page 23: Алексей Колосов

Используемая модель

Для моделирования документа или запроса используется векторная модель:

The native methods of the control =>[the (0.333), native(0.166), methods(0.166), of (0.166), control(0.166)]

[0, 5] [1] [2] [3] [4]

23

Page 24: Алексей Колосов

Процесс поиска

24

Page 25: Алексей Колосов

Релевантность по словам

Ni qi

Ni ji

Ni qiji

j

jj

ww

ww

qd

qdqd

1 ,2

1 ,21 ,,

),cos(

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

jiw ,

25

Page 26: Алексей Колосов

Релевантность по словосочетаниям

• Словосочетания, повторяющиеся в тексте запроса несколько раз, имеют больший вес (зависящий от количество повторений)

• Чем длиннее словосочетание, тем более узкий смысл оно имеет => тем больше смысловая близость между документами, содержащими эту фразу

• Чем дальше слова расположены друг от друга, тем меньше вероятность того, что они связаны

26

Page 27: Алексей Колосов

Релевантность по словосочетаниям. Факторы

•Количество искомых словосочетаний, встречающихся в документе

•Количество слов в искомых словосочетаниях

•Расстояние между словами словосочетаний в документе и знаки препинания (слова должны быть в одном предложении)

27

Page 28: Алексей Колосов

Есть ли словосочетание в тексте?

• Слова, расположенные далеко друг от друга (а также разделенные знаками препинания), скорее всего, не связаны между собой

• Слова, расположенные в разных предложениях, скорее всего, не связаны между собой.

• Контекстное окно должно учитывать и то, и другое

28

Page 29: Алексей Колосов

Словосочетание есть в документе, если...

...(расстояние между каждой парой слов) < M, где M – величина, на которую искуственно увеличивается позиция слова после конца предложения.

Пример: AJAX applications testing

AJAX web applications are, indeed, difficult for testing. => сум. расстояние: 7

No AJAX applications. Testing desktop applications is another task. =>сум. расстояние: 16

29

Page 30: Алексей Колосов

Релевантность по словосочетаниям - формула

N

wdpRdqR i jipjphrase

pi

),(),(

среднее арифметическое релевантностей по каждому из рассматриваемых словосочетаний pi, выделенных из запроса q. Здесь wpi – вес словосочетания в запросе,

Rp - релевантность документа словосочетанию pi, вычисляемая по следующей форумле:

kkp

n

jipi

it

dpR,

22

),(

где – количество слов в словосочетании pi,

– суммарное расстояние между каждым из этих слов в рассматриваемом документе dj, вычисленное для каждого вхождения в документ словосочетания pi.

itn

kpi ,

30

Page 31: Алексей Колосов

Итоговая релевантность

• Словосочетания должны иметь больший вес, однако отсутствие совпадений по словосочетаниям не означает отсуствие релевантности

• Релевантность считается отдельно по каждому полю, каждое поле имеет свой вес

• Итоговая релевантность не должна зависеть от алгоритма вычисления ее слагаемых

31

Page 32: Алексей Колосов

Итоговая релевантность - формула

))1),()(,cos(),( ( jphrasejj dqRdqWdqR fieldk

где – косинус угла между векторами запроса q и документа dj, характеризующий их близость по ключевым словам,

Rphrase – релевантность по словосочетаниям,

Wfield – вес проиндексированного поля

),cos( jdq

32

Page 33: Алексей Колосов

33

•Постановка задачи•Функции системы•Обработка запросов•Поисковый алгоритм• ЭкспериментыЭксперименты•Обучение•Перспективы развития

Page 34: Алексей Колосов

Эксперимент. Формула оценки качества поиска

34

p

i

ip i

relrelDCG

2 21 log

где reli – релевантность, проставленная асессором [0..2],i – порядковый номер результата в выдачеp = 10 – количество оцениваемых результатов

Page 35: Алексей Колосов

Результаты экспериментов

35

Среднее качество «top 10» результатов(discounted cumulative gain), max=10,51

Количествозапросов

Page 36: Алексей Колосов

36

•Постановка задачи•Функции системы•Обработка запросов•Поисковый алгоритм•Эксперименты• ОбучениеОбучение•Перспективы развития

Page 37: Алексей Колосов

Обучение• Явная оценка неэффективна (оценивают качество

документов только 0,23% пользователей)

• Имеется подробная статистика об использовании портала

• Если автоматически подобранные документы не помогли, запрос пользователя поступает к специалистам => известна «полезность» каждого набора результатов для поиска по тексту

• Систему обучают пользователи, не делая ничего дополнительно

37

Page 38: Алексей Колосов

Особенности:•при локальном поиске нет смысла

учитывать «авторитетность» страницы (ссылки на нее)

•никто не заинтересован в искусственном продвижении какой-либо страницы из локальной базы по определенным запросам засчет внестраничных факторов

•прямая корректировка веса слов позволяет точно настраивать алгоритм

38

Page 39: Алексей Колосов

Оценка качества при поиске по тексту

Хорошие результаты поиска:

Хорошие результаты – просмотренные документы

Плохие результаты – просмотренные документы

Плохие результаты поиска:

39

Плохие результаты – документы с первой страницы результатов

Page 40: Алексей Колосов

Оценка качества при обычном поиске

Хорошие результаты поиска:

Хорошие результаты – просмотренные документы

Хорошие результаты – просмотренные документы

40

Page 41: Алексей Колосов

Оценка качества при обычном поиске

Плохие результаты поиска:Плохие результаты – все показанные документы с номерами [0, N-1], где N – номер первого просмотренного документа

Плохие результаты – документы с первой страницы результатов

Плохие результаты – просмотренные документы

41

Page 42: Алексей Колосов

Корректировка весов после поиска

• Величина должна сходиться к «идеальному» весу => следующее изменение меньше, чем предыдущее

• Корректировка весов не должна приводить к обнулению веса

• Первая корректировка не должна приводить к делению на ноль или сильному изменению веса

42

Page 43: Алексей Колосов

Корректировка весов после поиска

jiji

n

jjtfwK

ww ji

,,,

'

)1(',

где – текущий скорректированный вес ключевого слова в индексе (измененный ранее в результате обработки статистики),

– вес ключевого слова, изначально вычисленный по формуле tf.

Значение n берется в зависимости от полезности обрабатываемого результата. Если результат является плохим, берется n = 1, если хорошим – берется n = 2.

K > 0 – константа.

jiw ,'

jitf ,

43

Page 44: Алексей Колосов

Корректировка весов при изменении документа

•Изменение документа должно приводить к пересчету весов

•Небольшие исправления не должны приводить к потере скорректированного веса

•Новый вес должен быть тем ближе к старому (скорректированному), чем ближе по смыслу новая и старая версии документов

44

Page 45: Алексей Колосов

Корректировка весов при изменении документа - формула

wi,j = tfi,j + cos(d’j, dj) · (tfi,j - w’i,j)

здесь cos(d’j, dj) – схожесть старой версии документа dj и новой версии документа d’j, вычисленная как косинус угла между их векторами, tfi,j – вес слова в новой версии документа, w’i,j – скорректированный вес слова в старой версии документа.

45

Page 46: Алексей Колосов

46

•Постановка задачи•Функции системы•Обработка запросов•Поисковый алгоритм•Эксперименты•Обучение• Перспективы развитияПерспективы развития

Page 47: Алексей Колосов

Обучение распознаванию фраз• По поведению пользователей можно судить о

правильности разбиения запроса на фразы

• Подсчет количества фраз в хороших и плохих результатах поможет определить, какие пары слов являются связанными

• Сохранение полученных данных позволит правильно провести разбиение при следующем поиске

• Накопленные данные можно использовать для автоматизированного создания шаблонов (при расширении поддержки какого-либо языка, или для поддержки нового языка)

47

Page 48: Алексей Колосов

Обучение распознаванию фраз. Пример

Запрос: expanding XML entities => [expanding, XML], [XML, entities]

Хорошие результаты: просмотрено (10), expanding + XML (1), XML + entities (9)

Рейтинг [XML, entities]++

48

Page 49: Алексей Колосов

Обучение распознаванию фраз. Пример

Фразы с высоким рейтингом:[XML, entities] [web, tests] [file, names]

Шаблон: существительное ед.ч. +

существительное мн.ч. = словосочетание

49

Page 50: Алексей Колосов

Выводы

• В системе автоматизации формирования ответа службы поддержки необходимо применять поиск по ключевым словам и словосочетаниям

• Применение концептуальных графов упрощает поиск словосочетаний

• Использование статистики может улучшить качество разбиения запросов на словосочетания

50

Page 51: Алексей Колосов

Вопросы?

51