Professional Documents
Culture Documents
Lekcija 1
Lekcija 1
Lekcija 1
БУЛЕВИЙ
ПОШУК
Глибовець А.М.
INFORMATION RETRIEVAL (IR)
Інформаційний пошук – що це таке?
Інформаційний пошук (IR) – це процес
пошуку в великій колекції (що
зберігається як правило, в пам’яті
комп'ютера) деякого неструктурованого
матеріла (зазвичай – документу), що
задовольняє інформаційній потребі.
INFORMATION RETRIEVAL (IR)
Додаткові задачі IR :
навігаціяпо колекції документів
фільтрація документів
кластеризація
класифікація
INFORMATION RETRIEVAL (IR)
Класифікація систем інформаційного
пошуку за масштабом:
WEB – пошук
Системи корпоративного, відомчого і
орієнтованого на предметну область пошуку
Персональний інформаційний пошук
ПРИКЛАД ІНФОРМАЦІЙНОГО
ПОШУКУ
Як приклад візьмемо зібрання творів
Шекспіра.
Припустимо, ми хочемо визначити в якому
творі використовуються слова Brutus AND
Caesar AND NOT Calpurnia.
Як ми можемо здійснити такий пошук?
ПРИКЛАД ІНФОРМАЦІЙНОГО
ПОШУКУ
Самий простий спосіб – «в лоб»,
послідовний перегляд всіх документів
(linear scanning)
Часто називають – прямим пошуком або
англійською мовою grepping.
Доволі часто така обробка доповнюється
пошуком по шаблону з джокерами
(wildcard pattern matching)
На сучасних комп’ютерах виконання
простих запитів на колекціях даних
середніх розмірів (загальний обсяг зібрань
творів Шекспіра трохи менше одного
міліонна слів) відбудеться за прийнятний
час для пересічного користувача.
ПРИКЛАД ІНФОРМАЦІЙНОГО
ПОШУКУ
Але дуже часто необхідно дещо більше:
Інколи необхідно швидко обробити велику
колекцію документів (мілліарди і триліони
слів)
Інколи необхідна більша гнучкість при
виконанні операції порівняння (Romans NEAR
countrymen, може означати «не далі ніж 5
слів», або «в межах одного речення»)
Інколи необхідно виконати ранжований
пошук
ПРИКЛАД ІНФОРМАЦІЙНОГО
ПОШУКУ
Для того, що б уникнути послідовного
перебору текстів при виконанні кожного
запиту, необхідно завчасно скласти індекс
документів.
ПРИКЛАД ІНФОРМАЦІЙНОГО ПОШУКУ
МАТРИЦЯ ІНЦИДЕНТНОСТІ «ТЕРМІН-
ДОКУМЕНТ»
Antony Julius The Hamle Othello Macbet …
and Caesar Tempest t h
Cleopatr
a
Antony 1 1 0 0 0 1
Brutus 1 1 0 1 0 0
Caesar 1 1 0 1 1 1
Calpurni 0 1 0 0 0 0
a
Cleopatr 1 0 0 0 0 0
a
mercy 1 0 1 1 1 1
worser 1 0 1 1 1 0
…
ПРИКЛАД ІНФОРМАЦІЙНОГО
ПОШУКУ
Для обробки запиту «Brutus AND Caesar
AND NOT Calpurnia» ми беремо вектор для
термінів Brutus, Caesar і Calpurnia,
обраховуємо двійкове доповнення до
останнього вектору і виконуємо
порозрядну операцію AND.
110100 AND 110111 AND 101111 = 100100
46
Tokenizer
Linguistic modules
Indexer friend 2 4
roman 1 2
Інвертований індекс.
countryman 13 16
СХЕМАТИЗАЦІЯ ДОКУМЕНТА І
ДЕКОДУВАННЯ ПОСЛІДОВНОСТІ
СИМВОЛІВ
Цифровий документ – послідовність бай в
файлі або на веб-сервері.
На першому етапі обробки –
перетворюємо в лінійну послідовність
символів.
Для англійського тексту набраного в
системі кодування ASCII задача
тривіальна.
Але якщо ми не знаємо кодування?
СХЕМАТИЗАЦІЯ ДОКУМЕНТА І
ДЕКОДУВАННЯ ПОСЛІДОВНОСТІ
СИМВОЛІВ
Для початку необхідно визначити вірне
кодування.
Цю проблему можна інтерпретувати як
задачу класифікації на основі машинного
навчання.
Але на практиці вона вирішується за
допомогою евристичних методів.
Наприклад: метадані документа.
СХЕМАТИЗАЦІЯ ДОКУМЕНТА І
ДЕКОДУВАННЯ ПОСЛІДОВНОСТІ
СИМВОЛІВ
Після виявлення кодування послідовність
байт перетворюється в послідовність
символів.
Зауваження:
Кодування необхідно зафіксувати, так як це
дає нам змогу зробити припущення про мову
документу.
СХЕМАТИЗАЦІЯ ДОКУМЕНТА І
ДЕКОДУВАННЯ ПОСЛІДОВНОСТІ
СИМВОЛІВ
Інколи символи необхідно декодувати з
двійкового представлення, наприклад з
doc-файлу або архівних файлів.
Відповідно спочатку необхідно визначити
формат документу і обрати необхідний
декодер.
СХЕМАТИЗАЦІЯ ДОКУМЕНТА І
ДЕКОДУВАННЯ ПОСЛІДОВНОСТІ
СИМВОЛІВ
Навіть для простих текстових документів
може знадобитися додаткове
декодування.
В XML & -> &
Ну і в кінці текстову частину документа
можливо прийдеться відокремити від
іншого матеріалу.
На цій проблемі ми більше не будемо
зупинятися і будемо вважати, що
документи являють собою списки
символів.
СХЕМАТИЗАЦІЯ ДОКУМЕНТА І
ДЕКОДУВАННЯ ПОСЛІДОВНОСТІ
СИМВОЛІВ
Але трактовка документу як лінійної
послідовності символів часто є
неадекватною в деяких системах
писемності.
В арабській мові текст двовимірний і не має
строгого порядку слідування символів
← → ←→ ←
start
СХЕМАТИЗАЦІЯ ДОКУМЕНТА І
ДЕКОДУВАННЯ ПОСЛІДОВНОСТІ
СИМВОЛІВ
На наступному етапі визначається
структурна одиниця документа для
індексування.
ВИБІР СТРУКТУРНОЇ ОДИНИЦІ
ДОКУМЕНТА
До цього часу ми припускали, що
документи являють собою фіксовані
одиниці, що мають бути проіндексовані.
Наприклад: кожний файл в каталозі –
документ.
Але дуже часто це не так.
Наприклад:
поштові повідомлення за вкладеними файлами
Архіви
…
ВИБІР СТРУКТУРНОЇ ОДИНИЦІ
ДОКУМЕНТА
Для дуже великих документів виникає
проблема деталізації індексування
(indexing granularity).
Працюючи з колекцією книжок,
недоцільно індексувати всю книжку як
один документ.
Пошук за фразою Chinese toys може привести
до того, що слово Chinese буде знайдено на
початку книги, а toys в кінці.
Замість цього краще індексувати кожну
главу або абзац як міні документ.
Але де зупинитися?
ВИБІР СТРУКТУРНОЇ ОДИНИЦІ
ДОКУМЕНТА
Проблеми, що виникають при роботі з
великими документами можна вирішити
за допомогою явного або неявного пошуку
з урахуванням близькості слів запиту в
документі.
ВИЗНАЧЕННЯ ЛЕКСИКОНУ ТЕРМІНІВ.
РОЗДІЛЕННЯ ТЕКСТУ НА ЛЕКСЕМИ
Вхід: “Friends, Romans, Countrymen,
lend me your ears”
Вихід: Лексеми
Friends
Romans
Countrymen
lend
me
your
ears
ВИЗНАЧЕННЯ ЛЕКСИКОНУ ТЕРМІНІВ.
РОЗДІЛЕННЯ ТЕКСТУ НА ЛЕКСЕМИ
Ці лексеми інколи помилково називають
термінами або словами, але інколи
необхідно чітко відрізняти клас лексем і
екземпляр лексеми.
Лексема (token) – екземпляр послідовності
символів в певному документі, об’єднаних в
семантичну одиницю для обробки.
Тип (type) – клас всіх лексем, що
складаються з однієї й тої ж послідовності
символів.
Термін (term) – це (можливо,
нормалізований) тип, включений в словник
системи інформаційного пошуку.
ВИЗНАЧЕННЯ ЛЕКСИКОНУ ТЕРМІНІВ.
РОЗДІЛЕННЯ ТЕКСТУ НА ЛЕКСЕМИ
Основне питання, пов’язане з розбиттям
тексту на лексеми звучить так: «Як
правильно розділити текст на лексеми?»
В прикладі, що ми розглянули відповідь
очевидна: ділимо текст по пробілам і
відкидаємо знаки пунктуації.
ВИЗНАЧЕННЯ ЛЕКСИКОНУ ТЕРМІНІВ.
РОЗДІЛЕННЯ ТЕКСТУ НА ЛЕКСЕМИ
Але навіть в англійській мові все не так
просто.
Mr. O’Neill thinks that the boys’ stories about
Chile’s capital aren’t amusing.
Яке з розбиттів слова O’Neill правильне?
А для aren’t?
http://tartarus.org/~martin/PorterStemmer/
ВИЗНАЧЕННЯ ЛЕКСИКОНУ ТЕРМІНІВ.
СТЕМІНГ І ЛЕМАТИЗАЦІЯ
Існують і інші алгоритми.
Алгоритм Ловінса (Lovins, 1968)
http://www.comp.lancs.ac.uk/computing/rese
arch/stemming/
ВИЗНАЧЕННЯ ЛЕКСИКОНУ ТЕРМІНІВ.
СТЕМІНГ І ЛЕМАТИЗАЦІЯ
Замість алгоритму стемінгу можна
використовувати лематизатор.
2 4 8 41 48 64 128 Brutus
2 8
1 2 3 8 11 17 21 31 Caesar
11 31
1 2 3 8 11 17 21 31
Навіщо?
Щоб пропустити записи, що не будуть
фігурувати в видачі.
Як?
81
Sec. 2.3
ШВИДКИЙ ПЕРЕТИН ІНВЕРТОВАНИХ
СПИСКІВ ЗА ДОПОМОГОЮ ВКАЗІВНИКІВ
ПРОПУСКІВ
41 128
2 4 8 41 48 64 128
82
11 31
1 2 3 8 11 17 21 31
83
Sec. 2.3
ШВИДКИЙ ПЕРЕТИН ІНВЕРТОВАНИХ
СПИСКІВ ЗА ДОПОМОГОЮ ВКАЗІВНИКІВ
ПРОПУСКІВ
Евристичні правила: для списку довжиною
L, необхідно використовувати L
рівномірно розташованих вказівників
пропусків.
Легко якщо L майже не змінюється, в
протилежному випадку дуже складно.
84
СЛОВОПОЗИЦІЇ З КООРДИНАТАМИ І
ФРАЗОВІ ЗАПИТИ
Ми хотіли б мати можливість здійснювати
пошук на зразок “stanford university” –
як фрази
Тому “I went to university at Stanford” такий
результат не є релевантним.
Знайомий синтаксис подвійних кавичек
Лише 10% являють собою явні фразові
запити, набагато більше прихованих
Тому нам вже недостатньо зберігати лише
пару
<term : docs>
ПЕРША СПРОБА: ДВОСЛОВНИЙ
ІНДЕКС
Індекс включає в себе кожну послідовну
пару термінів в документі як фразу
Для прикладу текст “Friends, Romans,
Countrymen” буде опрацьований як
friends
romans
romans countrymen
ПОКРАЩЕНИЙ ДВОСЛОВНИЙ
ІНДЕКС
Розбиваємо текст на лексеми і виконуємо
розмітку за частинами мови part-of-speech-
tagging (POST).
88
Групуємо по частинам мови по іменникам і
власним іменникам (N) і службові слова,
включаючи артиклі і прийменники (X).
Тепер будь яку стрічку можна представити у
вигляді NX*N тобто як розширену фразу з
двох слів.
Кожна така фраза тепер є терміном в лексиконі.
Приклад: renegotiation of the constitution
N X X N
Запит необхідно перетворити подібним
чином.
Sec. 2.4.2
89
<docID: position1, position2 … ;>
Sec. 2.4.2
<be: 993427;
90
1: 7, 18, 33, 72, 86, 231;
Який з документів 1,2,4,5
2: 3, 149; Може містити “to be
4: 17, 191, 291, 430, 434; or not to be”?
91
отримати усі позиції з “to be or not to
be”.
to:
2:1,17,74,222,551; 4:8,16,190,429,433;
7:13,23,191; ...
be:
1:17,19; 4:17,191,291,430,434;
5:14,19,101; ...
Sec. 2.4.2
92
слів”.
Координатні індекси з легкістю можуть
задовільняти таким запитам а от
двословні ні.
Sec. 2.4.2
93
представлення координат яке ми будемо
розглядати пізніше.
Значно ускладнюється перетин
інвертованих списків.
Sec. 2.4.2
ЕМПІРИЧНІ ПРАВИЛА
Координатний індекс в 2–4 рази більший
за звичайний
94
Координатний індекс займає 35–50% від
розміру оригіналу
Sec. 2.4.3
КОМБІНОВАНІ СХЕМИ
Ці два підходи можуть бути скомбіновані
Для окремих фраз (“Michael Jackson”,
95
“Britney Spears”) є неефективним тримати
координатний список
Навіть для таких фраз “The Who”
Дякую за увагу.
96
ЛЕКЦІЯ 3. СЛОВНИКИ І
НЕЧІТКИЙ ПОШУК
Глибовець А.М.
СЛОВНИКИ І НЕЧІТКИЙ ПОШУК
Нечіткий пошук. В англомовній літературі
найчастіше зустрічається термін “fuzzy”
чим “tolerant”.
Тому вибраний більш зрозумілий
український термін – нечіткий чим
толерантний.
СЛОВНИКИ І НЕЧІТКИЙ ПОШУК
В цій лекції ми розглянемо методи, що
стійкі до описок (“очепяток”) в запитах і
альтернативним варіантам написання
слів.
ПОШУКОВІ СТРУКТУРИ ДЛЯ
СЛОВНИКІВ
Маючи інвертований індекс і запит,
необхідно визначити, чи існує в лексиконі
кожний термін з запиту і у випадку
наявності визначити словопозицію.
В цій операції перегляду лексикону
використовується класична структура
даних – словник.
Для її реалізації існує два сімейства
методів: хешування і дерева пошуку.
ПОШУКОВІ СТРУКТУРИ ДЛЯ
СЛОВНИКІВ
В літературі по структурам даних
елементи лексикону часто називають
ключами (keys).
Вибір рішення (хешування або дерево)
залежить від багатьох обставин:
Скільки ключів необхідно
Залишиться це число незмінним чи буде
часто змінюватися
Хочете ви тільки включати в словник чи ще й
виключати?
Яка відносна частота звернень до різних
ключів
ПОШУКОВІ СТРУКТУРИ ДЛЯ
СЛОВНИКІВ
Деякі пошукові системи для перегляду
словника використовують хешування.
Кожний елемент словника (ключ)
відображується в ціле число (хешується)
на достатньо великому інтервалі, в якому
маловірогідні колізії.
Колізії вирішуються за допомогою
допоміжних структур.
ПОШУКОВІ СТРУКТУРИ ДЛЯ
СЛОВНИКІВ
В момент запиту кожний термін запиту
хешується окремо, після чого
здійснюється перехід по вказівнику на
відповідний запис.
Нажаль близькі варіанти терміну із запиту
знайти нелегко (вони будуть мати
абсолютно різні числа).
В середовищах де розмір лексикону
постійно збільшується, хеш-функція, що
працює з урахуванням теперішньої
ситуації, через декілька років уже може
виявитися непрацездатною.
ПОШУКОВІ СТРУКТУРИ ДЛЯ
СЛОВНИКІВ
Багато з цих проблем вирішуються за
допомогою дерев пошуку.
Наприклад вони дозволяють знаходити всі
терміни, що починаються з слова automat.
Найбільш відомим деревом пошуку є
двійкове дерево.
Пошук починається з кореня.
БІНАРНЕ ДЕРЕВО
Root
a-m n-z
t
le
ens
ark
o
zyg
k
sic
g
dv
huy
aar
ПОШУКОВІ СТРУКТУРИ ДЛЯ
СЛОВНИКІВ
Ефективний пошук (при якому кількість
порівнянь складає O(logM)) вимагає, що б
дерево було збалансованим: кількість
термінів в обох півдеревах було рівним,
або відрізнялося на 1.
ТОМУ стає принциповим питання
відновлення балансу після вставки нового
терміну.
ПОШУКОВІ СТРУКТУРИ ДЛЯ
СЛОВНИКІВ
Для того, що б спростити відновлення
балансу, можна припустити наявність
декількох піддерев у кожного
внутрішнього вузла в фіксованому
діапазоні.
Як правило, для організації словників
використовується В-дерево – дерево,
кількість дочірніх вузлів якого у кожного
внутрішнього вузла змінюється в діапазоні
[a,b], де а і b – додатні цілі числа.
B-ДЕРЕВО
a-hu n-z
hy-m
ЗАПИТИ З ДЖОКЕРОМ
Запити з джокерами використовуються в
наступних ситуаціях:
1. Коли користувач не знає як вірно
пишеться термін (Sydney або Sidney ->
S*dney)
2. Коли користувач знає про існування
декількох варіантів написання терміна (color
і colour)
3. Коли користувач шукає документи, що
містять варіант терміна, уніфікований в
результаті стемінга
4. Коли користувач не впевнений в вірності
написання фрази
ЗАПИТИ З ДЖОКЕРОМ
Запит, що має вид, mon*, називається
запитом з замикаючим джокером.
Для обробки таких запитів зручно
використовувати дерево пошуку над
словником.
ЗАПИТИ З ДЖОКЕРОМ
А що сказати про шаблонні запити в яких
* стоїть не в кінці?
Перед тим як вирішувати цю задачу,
розглянемо невелике узагальнення
запита з замикаючим джокером.
Розглянемо запити з ведучим джокером
(*mon).
ЗАПИТИ З ДЖОКЕРОМ
Для вирішення цієї задачі можна
використати зворотні B-дерева.
Термін lemon буде записаний як root-n-o-m-e-l.
Прохід по зворотному B-дереву надає нам
можливість знайти всі терміни, що мають
заданий суфікс.
ЗАПИТИ З ДЖОКЕРОМ
Фактично за допомогою звичайного В-
дерева і зворотного В-дерева можна
вирішити ще більш загальну
задачу:обробка запитів, в яких присутній
символ *.
Наприклад se*mon
ЗАПИТИ З ДЖОКЕРОМ ЗАГАЛЬНОГО
ВИГЛЯДУ
Розглянемо два методи обробки запитів з
джокером загального виду.
ЗАПИТИ З ДЖОКЕРОМ ЗАГАЛЬНОГО
ВИГЛЯДУ. ПЕРЕСТАНОВОЧНІ
ІНДЕКСИ
Введемо спеціальний символ $, що
означає кінець терміна.
Відповідно термін hello –> hello$.
Після чого будуємо перестановочний
індекс термінів, в якому всі варіанти
отримані циклічною перестановкою
символів вихідного терміна.
hello -> hello$, ello$h, llo$he, lo$hel, o$hell,
$hello
Цей набор називається лексиконом
перестановок.
Як цей індекс допомагає оброблювати
запити з джокером?
ЗАПИТИ З ДЖОКЕРОМ ЗАГАЛЬНОГО
ВИГЛЯДУ. ПЕРЕСТАНОВОЧНІ
ІНДЕКСИ
Розглянемо запит з джокером m*n.
Ключовий момент застосувати до запиту
циклічну перестановку так, щоб символ *
розташувався в кінці стрічки.
Таким чином запит приймає вигляд: n$m*
$a,ap,pr,ri,il,l$,$i,is,s$,$t,th,he,e$,
$c,cr,ru, ue,el,le,es,st,t$,
$m,mo,on,nt,h$
Sec. 3.2.2
ЗАПИТИ З ДЖОКЕРОМ ЗАГАЛЬНОГО
ВИГЛЯДУ. К-ГРАМНИЙ ІНДЕКС ДЛЯ
ШАБЛОННИХ ЗАПИТІВ
Тут використана біграма (к=2).
$m mace madden
mo among amortize
on along among
134
134
ВИПРАВЛЕННЯ ОПИСОК З
ВРАХУВАННЯМ КОНТЕКСТУ
141
Виокремили H
ERMAN → 0RM0N
0RM0N → 06505
06505 → 06505
06505 → 655
повернули H655
Спробуйте: HERMANN згенерує такий же код.
141
ФОНЕТИЧНІ ВИПРАВЛЕННЯ
Алгоритм заснований на наступних
спостереженнях:
Голосні можуть замінювати одна одну в
транскрипції імен
Приголосні з подібними звуками (наприклад
D,T) відносяться до одного класу
еквівалентності.
ФОНЕТИЧНІ ВИПРАВЛЕННЯ
Не дуже гарно підходить до задач
інформаційного пошуку
Гарно підходить для інших задач
(Інтерпол)
Зобель і Дарт (1996) запропонували кращі
альтернативи для фонетичних
відповідностей в IR.
Дякую за увагу.
Levenshtein distance: Algorithm
145
145
Each cell of Levenshtein matrix
146
Вартість того як Вартість того як
добратися сюди від добратися сюди від
верхнього лівого верхнього сусіда
сусіда (copy або (delete)
replace)
Вартість того як Мінімум з трьох
добратися сюди від можливих “рухів”;
лівого сусіда Найдешевший спосіб
(insert) сюди добратися
146
147
147
148
148
149
149
150
150
151
151
152
152
153
153
154
154
155
155
156
156
157
157
158
158
159
159
160
160
161
161
162
162
163
163
164
164
165
165
166
166
167
167
168
168
169
169
170
170
171
171
172
172
173
173
174
174
175
175
176
176
177
177
178
178
179
179
180
180
181
How do
I read out the editing operations that transform OSLO into SNOW?
181
182
182
183
183
184
184
185
185
186
186
ЛЕКЦІЯ 4. ПОБУДОВА
ІНДЕКСУ
Глибовець А.М.
ПЛАН
На попередній лекції ми познайомилися з:
Словниками і їх структурою a-hu n-z
hy-m
Нечіткий пошук
Джокери
Виправлення помилок
Soundex
$m mace madden
mo among amortize
На цій лекції:
on abandon among
Побудова індексу
Ch. 4
ПОБУДОВА ІНДЕКСУ
Як ми будуємо індекс?
Які стратегії обрати якщо ми
обмежені в ресурсах?
Sec. 4.1
ОСНОВИ
Доступ до даних, що розташовані в пам’яті
(5*10-9 с) набагато швидший чим доступ до
даних на диску (2*10-8 с).
Час позиціонування: ніякі дані не можуть бути
зчитані поки головка диска переміщується на
ділянку пам’яті.
Тому:
Передача одного великого шматка даних буде
швидша ніж передача багатьох маленьких
Дискові операції I/Oмають працювати з цілими
блоками (а не частинками)
Передача даних з диска в пам’ять
оброблюється системною шиною, а не
процесором. Це значить, що в момент
виконання дискових операцій I/O процесор
може оброблювати дані
Зберігаємо зжаті дані і потім їх розпаковуємо
Sec. 4.1
ОСНОВИ
Сервери, що використовуються в IR
системах зараз мають по декілька GB
оперативної пам’яті, інколи десятки GB.
Об’єм дискового простору в декілька
порядків більше.
Підтримання 24/7 дуже дороге: набагато
простіше використовувати багато
звичайних комп’ютерів чим одну стійку до
відмов машину.
Sec. 4.2
RCV1: КОЛЕКЦІЯ
Колекція документів, що ми розглядали
раніше (колекція творів Шекспіра), надто мала
для демонстрації багатьох ключових позицій
Колекція, що ми будемо розглядати,
насправді, не надто велика але вона
загальнодоступна і більш придатна для наших
цілей
Як приклад застосування наших алгоритмів ми
будемо використовувати колекцію Reuters
RCV1.
http://trec.nist.gov/data/reuters/reuters.html
Це лише один рік видання Reuters (з 1995 по
1996)
Sec. 4.2
Term Doc #
МАСШТАБОВАНА ПОБУДОВА
ІНДЕКСА
Побудова індексу в пам’яті не
масштабується
Ми не можемо записати усю колекцію в
пам’ять, відсортувати, а потім записати
результат
Як ми будемо конструювати індекс для
дуже великих колекцій?
Необхідно брати до уваги апаратні
особливості . . .
Оперативна пам’ять, жорсткий диск,
швидкість і так далі...
ПОБУДОВА ІНДЕКСУ ЗАСНОВАНА НА
СОРТУВАННІ
Коли ми будуємо індекс, ми розбираємо
документи по одному за раз
При створенні індексу ми не можемо застосовувати
алгоритми стискання (можемо, але це не ефективно)
Остаточно ніякий термін не сформовано поки не
закінчилося індексування
Термін, список документів, частота (для не
координатних індексів) займає БАГАТО місця
для великих колекцій.
RCV1 – 100000000 лексем!!!!
Ми не можемо працювати з ними в пам’яті
Нам потрібно зберігати проміжні результати на
диску
СОРТУВАННЯ ВИКОРИСТОВУЮЧИ
ЖОРСТКИЙ ДИСК ЯК «ПАМ’ЯТЬ»
Чи можемо ми використовувати ті ж самі
алгоритми для індексування великих
колекцій, але використовуючи жорсткий
диск замість пам’яті?
Ні:Сортування Т = 100000000 записів на
диску буде дуже повільним – дуже багато
дискових операцій
Нам необхідно мати інший алгоритм.
BSBI: BLOCKED SORT-BASED
INDEXING
12 –байтів (4+4+4) записи (термін,
документ, частота)
Генеруються коли ми розбираємо документ
SPIMI-INVERT
РОЗПОДІЛЕНЕ ІНДЕКСУВАННЯ
assign Master assign
Postings
splits q-z
Inverter
Parser a-f g-p q-z
Map Reduce
Segment files
phase phase
РОЗПОДІЛЕНЕ ІНДЕКСУВАННЯ
Етап відображення (map phase)
складається з відображення розділів
вхідних даних в пари “ключ-значення”. Ця
задача нічим не відрізняється від задачі
парсінгу документів.
Тому ми називаємо комп’ютери задіяні на
етапі відображення парсерами (parser).
Кожний парсер записує свої результати в
локальні проміжні файли, які називаються
сегментними (segment files).
РОЗПОДІЛЕНЕ ІНДЕКСУВАННЯ
На етапі згортання (reduce phase) всі значення,
що відповідають заданому ключу, записуються
поруч один з одним, так, щоб процес їх читання
і обробки виконувався швидко.
Це досягається завдяки розділенню ключів на j
діапазонів термінів і запису результатів роботи
парсера (пар “ключ-значення”) над кожним
діапазоном в свій сегментний файл.
Після цього парсер записує відповідні сегментні
файли – по одному для кожного діапазону
термінів.
Таким чином, кожному діапазону термінів
відповідає r сегментних файлів
Де r кількість парсерів
РОЗПОДІЛЕНЕ ІНДЕКСУВАННЯ
Збирання усіх значень ( в даному випадку
– ідентифікаторів docID), що відповідають
заданому ключу (в нашому випадку –
termID), в один список на етапі згортання
покладається на інвертори (inverter).
Головний вузол назначає кожний діапазон
термінів різним інверторам
Кожний діапазон опрацьовується окремим
інвертором.
РОЗПОДІЛЕНЕ ІНДЕКСУВАННЯ
Список значень, що відповідають кожному
ключу, впорядковується і записується в
кінцевий відсортований інвертований
список
Sec. 4.4
СХЕМА
Схема функцій відображення і згортки
map: input → list(k, v) reduce: (k,list(v)) →
output
Створення екземпляра для побудови
індекса
map: collection → list(termID, docID)
reduce: (<termID1, list(docID)>, <termID2,
list(docID)>, …) → (postings list1, postings list2,
…)
ПРИКЛАД
Map:
d1 : C came, C c’ed.
227
d2 : C died. →
<C,d1>, <came,d1>, <C,d1>, <c’ed, d1>, <C, d2>,
<died,d2>
Reduce:
(<C,(d1,d2,d1)>, <died,(d2)>, <came,(d1)>, <c’ed,
(d1)>) → (<C,(d1:2,d2:1)>, <died,(d2:1)>, <came,
(d1:1)>, <c’ed,(d1:1)>)
РОЗПОДІЛЕНЕ ІНДЕКСУВАННЯ
Парсери і інвертори – це не різні машини.
Головний вузол знаходить машини, що
простоюють і пересилає їм завдання.
РОЗПОДІЛЕНЕ ІНДЕКСУВАННЯ
Для мінімізації часу запису перед тим, як
інвертори звернуть дані, кожний парсер
записує свій сегментний файл на свій
локальний диск.
На етапі згортання головний вузол
сповіщає інвертору розташування
відповідних сегментних файлів.
Для кожного сегментного файлу
необхідна лише одна операція читання,
оскільки всі дані записані в окремому
сегментному файлі.
РОЗПОДІЛЕНЕ ІНДЕКСУВАННЯ
Архітектура MapReduce являє собою
надійний і концептуально простий
інструмент для побудови індексів в
розподіленому середовищі.
Надає можливості напівавтоматичного
розділення процесу побудови індексу на
більш дрібні задачі, при наявності
комп’ютерних кластерів достатнього
розміру.
ДИНАМІЧНЕ ІНДЕКСУВАННЯ
До сих пір в нас працювало припущення,
що колекціє є статичною.
Але насправді:
Документи додаються постійно і інвертовані
індекси необхідно оновлювати
Документи додаються, модифікуються і
видаляються
Наші задачі:
Оновлення інвертованих списків для терміна
Додавання нових термінів в словник
ДИНАМІЧНЕ ІНДЕКСУВАННЯ
Перший спосіб – в “лоб”
Періодична перебудова індексу
Документи додаються не одразу а по
досягненню якоїсь критичної маси.
Добре якщо частота змін не велика
ДИНАМІЧНЕ ІНДЕКСУВАННЯ
Якщо нові документи необхідно додавати
швидко?
Організовується підтримка двох індексів:
“Великий” – основний
І “маленький” – допоміжний індекс, в який
зберігаємо нові документи
Допоміжний індекс зберігаємо в пам’яті
Пошук здійснюємо по обом індексам, а
результати об’єднуються
Видалені документи зберігаємо в бітовому
векторі недійсних документів (таким чином
перед видачею ми можемо відфільтрувати всі
видалені документи).
Документи оновлюємо за допомогою видалення
і повторної вставки
ДИНАМІЧНЕ ІНДЕКСУВАННЯ
Кожний раз коли допоміжний індекс стає
надто великим, ми об’єднуємо його з
основним
Вартість цієї операції залежить від того як
зберігається індекс в файловій системі
Якщо кожний інвертований список
зберігається як окремий файл, то злиття
зводиться до розширення кожного списку
з основного індексу
ДИНАМІЧНЕ ІНДЕКСУВАННЯ
Нажаль схема, коли кожний інвертований
список зберігається як окремий файл,
тяжко здійсненна, так як більшість
файлових систем не можуть ефективно
працювати з дрібними файлами.
Простіше всього зберігати індекс в одному
великому файлі.
ДИНАМІЧНЕ ІНДЕКСУВАННЯ.
ЛОГАРИФМІЧНЕ ЗЛИТТЯ
Утворюємо серію індексів, кожен з яких в
два рази більший за попередній
Найменший (Z0) зберігаємо в пам’яті
Більші (І0, І1,…) на диску
Якщо Z0 стає дуже великим (>n) ми його
записуємо на диск як І0
або об’єднуємо з І0 (якщо І0 вже існує) і
записуємо як Z1
Записуємо на диск як І1 (якщо немає І1), або
об’єднуємо з І1 в Z2
Запит на пошук направляється Z0 і всім
існуючим на даний момент індексам І1, а
результати пошуку об’єднуються
Sec. 4.5
ДИНАМІЧНЕ ІНДЕКСУВАННЯ
Робота з багатьма індексами ускладнює
збір статистичних даних
Це впливає на виправлення орфографічних
помилок
З за складності динамічного індексування
деякі крупні пошукові машини
використовують стратегію повторної
побудови індексу з “нуля”
Sec. 4.5
ІНШІ ТИПИ ІНДЕКСІВ
Координатні індекси
Ті ж проблеми … тільки більші
Індекси з підтримкою безпеки
Різні
рівні користувачів можуть отримувати
доступ до різних документів
Дякую за увагу.
ЛЕКЦІЯ 5. СТИСКАННЯ
ІНДЕКСУ
Глибовець А.М.
СТИСКАННЯ ІНДЕКСУ
В попередніх лекціях ми поговорили про
створення словника і інвертованого
індексу пошукової системи.
В цій лекції ми розглянемо методи
стискання, що дозволяють підвищити
продуктивність роботи пошукової
системи.
СТИСКАННЯ ІНДЕКСУ
Переваги стискання:
Необхідно менше дискового простору
В деяких випадках можна досягнути коефіцієнта 1:4
Підвищує ефективність кешування
Ми можемо розміщувати в пам’ять інвертовані
списки термінів по яким частіше проходить пошук
При використанні стискання ми зможемо покласти
декомпресії
СТИСКАННЯ ІНДЕКСУ
Якщо основною ціллю стискання є
економія дискової пам’яті, то швидкість
стискання не грає великої ролі.
Але швидкість розпакування має бути
дуже високою!!!
Алгоритми, що ми розглянемо вважаються
ефективними і тому використовуються в
пошукових системах.
СТИСКАННЯ ІНДЕКСУ
В цій лекції словопозиція (posting) в
інвертованому списку інтерпретуються як
ідентифікатор документу docID
Наприклад інвертований список (6:20,45,100),
де 6 – ідентифікатор терміна з списку, містить
три словопозиції (три документи в яких ми
знайшли це слово)
В цій лекції ми не розглядаємо індекси з
частотою і координатні індекси, хоча
ефективні алгоритми для цих індексів також
існують.
СТИСКАННЯ ІНДЕКСУ
Як приклад колекції будемо розглядати
Reuters-RCV1
Пригадаємо статистичні дані.
REUTERS RCV1 СТАТИСТИКА
Символ Показник Значення
N Документи 800000
Lave Середня кількість лексем в 200
тексті
M Терміни 400000
Середня кількість байт в 6
лексемі (включаючи проміжки і
знаки пунктуації)
Середня кількість байт в 4,5
лексемі (без проміжків і знаків
пунктуації)
Середня кількість байт в терміні 7,5
T лексеми 100000000
Sec. 5.1
253
ЗАКОН ХІПСА: ОЦІНКА КІЛЬКОСТІ
ТЕРМІНІВ
Параметр k змінюється в доволі широких
діапазонах, оскільки зростання лексикону
в багатьох випадках залежить від
природи колекції і способу її обробки.
З за описок і технічних лексем значення b
в веб-колекціях значно ближче до 1.0, чим
до 0,5.
ЗАКОН ЦІПФА: МОДЕЛЮВАННЯ
РОЗПОДІЛЕННЯ ТЕРМІНІВ
Визначимо також розподілення термінів
серед документів.
Це допоможе нам описати властивості
алгоритмів стискання.
ЗАКОН ЦІПФА: МОДЕЛЮВАННЯ
РОЗПОДІЛЕННЯ ТЕРМІНІВ
Для моделювання розподілу термінів в
колекції використовується закон Ціпфа
(Zipfs’ law).
Якщо до якого-небудь досить великого
тексту скласти список всіх слів, що
зустрілися, а потім відранжувати ці слова
в порядку спадання їх частоти в тексті, то
для будь-якого слова добуток його рангу r
і частоти f буде константою.
Що це нам дає?
ЗАКОН ЦІПФА: МОДЕЛЮВАННЯ
РОЗПОДІЛЕННЯ ТЕРМІНІВ
Він стверджує, що якщо t1 – найбільш
поширений термін в колекції, t2 –
наступний по поширеності, і т.д.
Тоді частота і-го по поширеності терміна в
колекції cfi пропорційна 1/і
Sec. 5.1
258
СТИСКАННЯ СЛОВНИКА
Ми розглянемо декілька структур даних,
що забезпечують послідовно збільшуючіся
коефіцієнти стискання.
Як ми вже розібралися, словник має
менший розмір ніж інвертований список,
нащо ж нам його стискати?
СТИСКАННЯ СЛОВНИКА
Основне призначення стискання словника,
це можливість розміщення його повністю
в оперативну пам’ять, або хоча б більшу
його частину.
РОЗМІР СТРІЧКИ В JAVA
Скільки буде займати порожня стрічка?
Стрічка це об’єкт з трьома полями int і
масивом char‘ів
[8 bytes (заголовок об’єкта) + 3*4(int) + 4
(посилання на масив)]{вирівнювання по 8
байтам} + [8 bytes (заголовок об’єкта
масива) + 4(int довжина массива) +
2(char)*довжина стрічки]{вирівнювання по 8
байтам} = 24 + [12 + 2*length]
{вирівнювання по 8 байтам} = [36 +
2*length]{вирівнювання по 8 байтам}
40 байт!!!
264
Термін Частота Вказівник
a 656,265
aachen 65
…. ….
zulu 221
СТИСКАННЯ СЛОВНИКА.
СЛОВНИК ЯК СТРІЧКА
Зберігаємо словник як довгу стрічку
символів:
Вказівник на наступне слово означає кінець поточного
267
слова
Сподіваємося зберегти до 60% місця
….systilesyzygeticsyzygialsyzygyszaibelyiteszczecinszomo….
272
Freq. Postings ptr. Term ptr.
33
29
Зберігаємо 9 bytes
44
на 3 Втрачаємо 4 bytes на
126 вказівниках. довжині терміна.
7
СТИСКАННЯ СЛОВНИКА. БЛОЧНЕ
ЗБЕРІГАННЯ.
Збільшуючи розмір блока k, ми можемо
досягнути ще більшого стискання.
Однак існує протиріччя між стисканням і
швидкістю пошуку терміна.
Це різниця між пошуком по бінарному
дереву і пошуку по списку
СТИСКАННЯ СЛОВНИКА. БЛОЧНЕ
ЗБЕРІГАННЯ.
А. Бінарний пошук в
нестиснутому словнику
ФРОНТАЛЬНА УПАКОВКА
Фронтальна упаковка:
Відсортовані слова зазвичай мають довгі
279
спільні префікси – тоді будемо зберігати лише
відмінні частини
(для k-1 в блоку з k)
8automata8automate9automatic10automatio
n
8automat*a1e2ic3ion
Розмір
Кодує automat залишку після
automat.
ФРОНТАЛЬНА УПАКОВКА
Експеримент показав, що для колекції
Reuters фронтальна упаковка економить
ще 1,2 Мбайт
СТИСКАННЯ СЛОВНИКА
Інші схеми з ще більш високим ступенем
стискання засновані на мінімальному
ідеальному хешуванні.
При цьому функція хешування відображує
М термінів в множину [1,..,M] без колізій.
Однак ми не можемо застосовувати
ідеальне хешування необмежено, так як
кожний новий термін викликає колізії, і
відповідно вимагає створення нової
ідеальної функції хешування.
СТИСКАННЯ СЛОВНИКА
При роботі з дуже великими текстовими
колекціями на апаратному забезпеченні з
обмеженими ресурсами навіть при
найкращій схемі стискання неможливо
записати весь словник в оперативну
пам’ять.
Якщо словник необхідно розбити на
частини для запису на диск, то можна
проіндексувати перший термін кожної
сторінки за допомогою В-дерева.
Sec. 5.2
СТИСНЕННЯ СЛОВНИКА
RCV1
Структура даних Розмір в
MB
283
Словник з фіксованим розміром 11.2
СТИСКАННЯ ІНВЕРТОВАНОГО
ФАЙЛУ
286
СТИСКАННЯ ІНВЕРТОВАНОГО
ФАЙЛУ
Яке припущення ми можемо зробити?
СТИСКАННЯ ІНВЕРТОВАНОГО
ФАЙЛУ
Ми зберігаємо список документів в
порядку зростання їх docID.
computer: 33,47,154,159,202 …
Висновок: краще зберігати інтервали.
33,14,107,5,43 …
Надія: більшість інтервалів можуть бути
збережені з використанням набагато
менше місця ніж 20 біт.
СТИСКАННЯ ІНВЕРТОВАНОГО
ФАЙЛУ
На практиці інтервали між найбільш частими
термінами такими як the і for всього 1.
Однак проміжки між рідкими словами
(наприклад arachnocentric) по розміру мало
відрізняється від ідентифікаторів документів
і потребує для зберігання 20 біт.
Для економного представлення такого
розподілення інтервалів необхідний метод
упаковки з використанням кодів змінної
довжини (variable encoding method), що для
більш коротких інтервалів використовує
менше бітів.
СТИСКАННЯ ІНВЕРТОВАНОГО
ФАЙЛУ
Для того, що б закодувати невеликі числа,
використовується менше пам’яті, чим для
кодування великих чисел, розглянемо два
методи: байтове стискання (bytewise
compression) і бітове стискання (bitwise
compression).
БАЙТОВЕ КОДУВАННЯ ЗМІННОЇ
ДОВЖИНИ
Байтове кодування змінної довжини
(variable byte encoding – VB, або variable
byte coding - VBC) використовує для
кодування інтервалів цілу кількість байтів.
Останні 7 біт в кожному байті є “корисним
навантаженням” (continuation bit) і
кодують частину інтервала.
Перший біт байта є бітом продовження
(continuation bit).
Він дорівнює одиниці у останнього байта
закодованого інтервалу і нулю в інших
випадках
Sec. 5.3
ПРИКЛАД
docIDs 824 829 215406
Інтервал 5 214577
292
VB код 00000110 10000101 00001101
10111000 00001100
10110001
295
Унарний код для 40:
1111111111111111111111111111111111111
1110 .
Унарний код для 80:
1111111111111111111111111111111111111
111111111111111111111111111111111111
11111110
ГАММА КОДИ
Число довжина зміщення -код
0
299
1 0 0
2 10 0 10,0
3 10 1 10,1
4 110 00 110,00
9 1110 001 1110,001
13 1110 101 1110,101
24 11110 1000 11110,1000
511 111111110 11111111 111111110,11111111
1025 11111111110 0000000001 11111111110,0000000001
ГАММА КОДИ
Для того, що б декодувати гама код,
спочатку необхідно прочитати унарний код,
поки не буде виявлений 0, який його
завершує
Тепер нам відома довжина зміщення
Читаємо 101
Отримуємо число 13
Sec. 5.3
301
Довжина зміщення log G бітів
Довжина довжини log G + 1 біт
RCV1 СТИСКАННЯ
Структура даних Розмір в MB
Словник з фіксованим розміром 11.2
303
Словник з вказівниками на терміни в стрічці 7.6
Те ж саме, але з блоками k = 4 7.1
Те ж саме, але з фронтальною упаковкою 5.9
колекція (текст, xml і т.д.) 3,600.0
колекція (текст) 960.0
Матриця інцидентності 40,000.0
Словопозиції, нестиснуті (32-бітні слова) 400.0
Словопозиції, нестиснуті (20 біт) 250.0
Словопозиції, змінне байтове кодування 116.0
Словопозиції, кодування 101.0
СТИСКАННЯ
Схема гамма кодування дозволяє
отримати найкращий результат стискання
Але її декодування є затратним
Велика кількість побітових операцій…
Дякую за увагу.
ЛЕКЦІЯ 6. РАНЖУВАННЯ,
ЗВАЖУВАННЯ ТЕРМІНІ І
МОДЕЛЬ ВЕКТОРНОГО
ПРОСТОРУ
Глибовець А.М.
ВСТУП
До сих пір ми розглядали індекси, що
підтримували обробку булевих запитів:
Документ або відповідав запиту або ні
При роботі з великими колекціями
документів кінцева кількість документів,
що відповідають запиту, буде настільки
грандіозна, що її неможливо опрацювати
людині.
Тому важлива задача пошукової системи –
ранжування документів за ступенем
відповідності запиту
ВСТУП
Для вирішення задачі ранжування ПМ для
кожного знайденого документа
обраховують ступень його відповідності
запиту
ПАРАМЕТРИЧНІ І ЗОННІ ІНДЕКСИ
До цього моменту: документ -> набір
термінів.
Більшість документів мають додаткову
структуру
Метадані
ПАРАМЕТРИЧНІ І ЗОННІ ІНДЕКСИ
Розглянемо запит:
Знайти документи, написані В. Шекспіром в
1601 році і, що містять слова alas poor Yorick
Як і звичайно пошук зводиться до
перетинання інвертованих списків, за
виключенням того, що ми можемо
об’єднати словопозиції як з стандартних
так і з параметризованих індексів
(parametric index)
Для кожного поля (наприклад дата
створення) існує один параметричний
індекс
ПАРАМЕТРИЧНІ І ЗОННІ ІНДЕКСИ
ПАРАМЕТРИЧНІ І ЗОННІ ІНДЕКСИ
Зони (zones) нагадують поля, але в зоні
може знаходитися текст.
Поле – обмежена множина значень
Зона – довільний необмежений масив тексту
Назва документа
анотація
ПАРАМЕТРИЧНІ І ЗОННІ ІНДЕКСИ
Для того, що б підтримувати обробку
запитів виду
«Знайти документи з словами merchant в
назві і William – в списку авторів, а також з
фразою gentle rain в тексті»
для кожної зони документа можна
створити стандартний інвертований
індекс
ПАРАМЕТРИЧНІ І ЗОННІ ІНДЕКСИ
Елементарний зонний індекс
Зони кодуються як розширення елементів
словника
ПАРАМЕТРИЧНІ І ЗОННІ ІНДЕКСИ
Перша проблема – наш словник і
інвертований індекс почав швидко зростати в
розмірі …
Ми можемо трохи покращити ситуацію, якщо
закодуємо зону, в якій зустрічається термін в
словопозиції.
ідентичні.
Тим не менш інтуїтивно зрозуміло, що два
документи з однаковими “мішками слів”
по змісту дуже подібні.
Чи всі слова в документі однаково
важливі?
Очевидно ні
ЗВОРОТНА ДОКУМЕНТНА ЧАСТОТА
Підрахунок в “лоб” частоти терміна, має
серйозний недолік: при ранжуванні
документа по запиту всі терміни вважаються
однаково важливими
Насправді деякі терміни мають малу або
нульову вагу при визначенні релевантносі
Наприклад в автомобільній колекції скоріше
всього термін “auto” буде майже в кожному
документі
Нам необхідно знайти механізм послаблення
впливу терміна, що зустрічається надто
часто.
Ідея – знизити вагу терміна (на коефіцієнт,
що збільшується) з високою частотою в
колекції (collection frequency)
ЗВОРОТНА ДОКУМЕНТНА ЧАСТОТА
Замість цього частіше зустрічається
використання документної частоти dfi
(document frequency), кількість документів
в колекції що містять термін t
Коли ми пробуємо знайти різницю між
документами з ціллю їх ранжування за
запитом, краще використовувати
статистичні показники самих документів,
чим статистичні показники усієї колекції
ЗВОРОТНА ДОКУМЕНТНА ЧАСТОТА
Слово cf (частота в df (документна
колекції) частота)
try 10422 8760
insurance 10440 3997
ЗВОРОТНА ДОКУМЕНТНА ЧАСТОТА
Як використовувати документну частоту
терміна для корекції ваги?
N – загальна кількість документів в
колекції
Визначимо зворотну документну частоту
(inverce document frequency) терміна t
наступним чином:
Idft =log (N/dft)
ПРИКЛАДИ ЗВОРОТНИХ
ДОКУМЕНТНИХ ЧАСТОТ ДЛЯ
КОЛЕКЦІЇ REUTERS
термін сft Idft
car 18165 1,65
auto 6723 2,08
insurance 19241 1,62
best 25335 1,6
ЗВАЖУВАННЯ НА ОСНОВІ КОМБІНАЦІЇ
ЧАСТОТИ І ЗВОРОТНОЇ ДОКУМЕНТНОЇ
ЧАСТОТИ ТЕРМІНА
Скомбінуємо частоту терміна в документі
(terf frequency – tf) і зворотну документну
частоту (inverse document frequency – idf),
щоб отримати вагу кожного терміна в
кожному документі.
Схема зважування tf-idf надає кожному
терміну t його вагу в документі d на основі
формули
tf-idft,d =tft,d . idft
ЗВАЖУВАННЯ НА ОСНОВІ КОМБІНАЦІЇ
ЧАСТОТИ І ЗВОРОТНОЇ ДОКУМЕНТНОЇ
ЧАСТОТИ ТЕРМІНА
Інакше кажучи, вага tf-idft,d терміна t в
документі d має наступні властивості:
Вона досягає максимального значення, якщо
термін t зустрічається багато разів в
невеликій кількості документів
Вона зменшується, якщо термін зустрічається
в якомусь документі тільки декілька разів або
зустрічається в багатьох документах
Вона досягає мінімального значення, якщо
термін зустрічається майже в усіх документах
ЗВАЖУВАННЯ НА ОСНОВІ КОМБІНАЦІЇ
ЧАСТОТИ І ЗВОРОТНОЇ ДОКУМЕНТНОЇ
ЧАСТОТИ ТЕРМІНА
Кожний документ можна інтерпретувати
як вектор, що складається з компонент,
що відповідають кожному терміну в
словнику, і ваг кожного компонента,
обрахованих по наведеній формулі.
Якщо терміна немає в документі вага - 0
ЗВАЖУВАННЯ НА ОСНОВІ КОМБІНАЦІЇ
ЧАСТОТИ І ЗВОРОТНОЇ ДОКУМЕНТНОЇ
ЧАСТОТИ ТЕРМІНА
Міра перекриття (overlap score measure):
релевантність документа d дорівнює сумі
вхожень всіх термінів запита в цей
документ
Score(q,d) = Σtєdtf-idft,d
МОДЕЛЬ ВЕКТОРНОГО ПРОСТОРУ
ДЛЯ РАНЖУВАННЯ
Подання множини документів у вигляді
веторів в загальному векторному просторі
називається моделлю векторного
простору (vector space model) і є
фундаментальним для багатьох задач
інформаційного пошуку, включаючи
ранжування документів по запиту,
класифікацію і кластеризацію документів.
СКАЛАЯРНИЙ ДОБУТОК
Позначимо через вектор, що
побудований по документу d,в якому
кожному терміну словника відповідає
окремий компонент
Множину документів в колекції можна
подати як вектори в векторному просторі
в якому кожному терміну відповідає
окрема вісь.
Притакому представленні ми втрачаємо
порядок термінів в документі
СКАЛАЯРНИЙ ДОБУТОК
СКАЛАЯРНИЙ ДОБУТОК
СКАЛАЯРНИЙ ДОБУТОК
Таким чином, останній вираз можна
інтерпретувати як скалярний добуток
двох нормалізованих векторів, що
відповідають двом документам.
Ця міра схожості дорівнює косинусу кута
ϴ між двома векторами.
СКАЛАЯРНИЙ ДОБУТОК
СКАЛАЯРНИЙ ДОБУТОК
Як використати міру схожості sim(d1,d2)?
Ми можемо знайти документи схожі на
вказаний (пошук документів з найбільшим
скалярним добутком
Представлення колекції, що складається з
N документів, як колекції векторів
приводить до трактовки колекції як
матриці «термін-докуент» …
ЗАПИТИ ЯК ВЕКТОРИ
Існує ще одна більш вагома причина
представляти документи у вигляді
вектора: запит також можна розглядати
як вектор.
Ми можемо інтерпретувати запит як
короткий документ, відповідно можна
використовувати косинусну міру схожості
мі ж вектором запиту і вектором
документа як значення релевантності
документа запиту.
Пізніше ми розглянемо як оптимізувати
цей ДУЖЕ ресурсоємкий процес.
РАНЖУВАННЯ В ВЕКТОРНІЙ МОДЕЛІ
На практиці в нас є колекція документів,
кожний з яких представлений у вигляді
вектора, вільний текстовий запит, що
представлено у вигляді вектора, а також
додатнє число К.
Ми шукаємо К документів колекції з
найбільшим значенням релевантності
запиту.
БАЗОВИЙ АЛГОРИТМ РАНЖУВАННЯ
В ВЕКТОРНОМУ ПРОСТОРІ
ВАРІАНТИ ФУНКЦІЙ TF-IDF
Існує велика кількість варіантів
зважування термінів в документах
Розглянемо найбільш важливі.
СУБЛІНІЙНЕ МАСШТАБУВАННЯ TF
НОРМУВАННЯ TF НА
МАКСИМАЛЬНИЙ TF В ДОКУМЕНТІ
Дякую за увагу.
ЛЕКЦІЯ 7
Ранжування в повнофункціональній
пошуковій системі
ВСТУП
Проблеми ранжування в
повнофункціональній пошуковій системі.
НЕТОЧНИЙ ПОШУК КРАЩИХ K
ДОКУМЕНТІВ
До цих пір ми приділяли увагу пошуку рівно
K кращих документів за запитом.
Тепер розглянемо схеми, що дозволяють
створити список K документів, які, ймовірно,
належать до K кращим документам,
відповідним запитом.
Це має різко знизити вартість пошуку таких
K документів без істотної втрати
релевантності результатів з точки зору
користувача.
Отже досить знайти K документів,
релевантність яких мало відрізняються від
найкращих.
НЕТОЧНИЙ ПОШУК КРАЩИХ K
ДОКУМЕНТІВ
З точки зору користувача такий
приблизний пошук K документів не
завжди поганий.
У будь-якому випадку немає ніяких
гарантій, що K документів, визначених на
основі косинусної міри подібності,
насправді найкраще відповідають запиту:
косинусна міра подібності сама по собі
лише приблизно оцінює релевантність
документа запиту.
НЕТОЧНИЙ ПОШУК КРАЩИХ K
ДОКУМЕНТІВ
Розглянемо евристичні прийоми, за
допомогою яких можна знайти K
документів, релевантність яких,
визначена на основі косинусної міри
подібності, і близькі до релевантністю
кращих K документів.
НЕТОЧНИЙ ПОШУК КРАЩИХ K
ДОКУМЕНТІВ
Основні обчислювальні витрати
обумовлені необхідністю визначення
косинусної подібності між запитом і
великою кількістю документів.
Крім того, при великій кількості
документів з близькими значеннями
релевантності вартість пошуку K
найкращих документів збільшується.
Розглянемо ряд ідей, що дозволяють
видалити з розгляду велику кількість
документів, не обчислюючи для них
косинусну міру подібності.
НЕТОЧНИЙ ПОШУК КРАЩИХ K
ДОКУМЕНТІВ
Ці евристичні прийоми виконуються в два
етапи.
Знайдемо множину A, що складається з
документів, які є кандидатами на включення
в список, де K<|A|<<N.
Зовсім не обов'язково, щоб ця множина містила K
документів з найбільшою релевантністю запиту q,
але в ньому повинно бути досить багато
документів, релевантність яких близька до перших
K документів.
Повернемо K документів, що мають найбільшу
релевантність в множині A.
СКОРОЧЕННЯ ІНДЕКСУ
Очевидно, що для запиту q, що
складається з багатьох термінів, досить
розглянути документи, що містять
принаймні один із цих термінів.
Ми можемо використовувати цю
обставину, доповнивши його
евристичними правилами.
СКОРОЧЕННЯ ІНДЕКСУ
Розглянемо лише документи, що містять
терміни, значення idf яких перевищує заданий
поріг.
Таким чином, при обході словопозицій досить
переглянути лише терміни з високим значенням
idf.
Це дає значний виграш: інвертовані списки для
термінів з низькими значеннями idf, як правило,
дуже довгі; виключивши їх з розгляду, можна
значно скоротити список документів, для яких
обчислюється косинусна міра подібності.
Цей евристичний прийом можна інтерпретувати
так:
терміни з низьким значенням idf розглядаються як
стоп-слова і не вносять вклад в релевантність
документа.
Наприклад, для запиту catcher in the rye досить
обійти тільки словопозиції термінів catcher і rye.
ЗГАДАЄМО
Зворотна документна частота (inverce
document frequency) терміна t наступним
чином:
Idft =log (N/dft)
dft- кількість документів в колекції, що
містять термін
N – загальна кількість документів в колекції
СКОРОЧЕННЯ ІНДЕКСУ
Розглянемо лише документи, що містять
багато (у спеціальному випадку - всі)
терміни запиту.
Це можна зробити в процесі обходу
словопозіцій;
релевантність обчислюється тільки для
документів, що містять всі (або багато) терміни
запиту.
Недолік цієї схеми полягає в тому, що,
вимагаючи, щоб у документі були
представлені всі (або навіть багато)
термінів запиту до обчислення їх косинусної
міри подібності, ми можемо отримати в
результаті менше K документів-кандидатів.
ЧЕМПІОНСЬКИЙ СПИСОК
Ідея чемпіонських списків (champion lists), який
іноді називають також списками фаворитів
(fancy lists) або списками топ-документів (top
docs), полягає в попередньому визначенні для
кожного терміна t набору з r документів з
найбільшими вагами по відношенню до терміну
t.
При цьому величина r вибирається заздалегідь.
У схемі зважування tf-idf ці r документів мають
найбільші значення tf по відношенню до
терміну t.
Цей набір з r документів називається
чемпіонським списком для терміна t.
ЧЕМПІОНСЬКИЙ СПИСОК
Тепер, маючи запит q, ми можемо
створити множину A наступним чином:
об'єднаємо списки чемпіонів для кожного
терміна, що міститься в запиті q.
обчислення косинусном міри схожості тепер
обмежується тільки документами множини A.
ЧЕМПІОНСЬКИЙ СПИСОК
Критичним параметром для цієї схеми є
значення r, воно сильно залежить від
програми.
Інтуїтивно ясно, що величина r повинна бути
великою порівняно з K, особливо якщо
використовується будь-яка форма скорочення
індексу, описана вище.
Одна з проблем полягає в тому, що величина r
визначається в момент побудови індексу, в
той час як число K залежить від програми, але
може залишатися невизначеним аж до
моменту, поки не буде отриманий запит q.
У результаті ми можемо (як і у випадку
скорочення індексу) виявити, що множина A
містить менше K документів.
СТАТИЧНИЙ РАНГ ТА
ВПОРЯДКУВАННЯ ІНДЕКСУ
Розвинемо далі ідею чемпіонських списків
у напрямку більш загальної ідеї про
статичний ранг.
У багатьох пошукових системах існує
можливість обчислити міру якості g(d) для
кожного документа d, що не залежить від
запиту і тому є статичною (static).
Цю якість можна розглядати як число, що
лежить між нулем і одиницею.
Наприклад, в контексті новин в мережі
Інтернет ранг g(d) може бути визначений за
кількістю доброзичливих відгуків користувачів
про статтю.
СТАТИЧНИЙ РАНГ ТА
ВПОРЯДКУВАННЯ ІНДЕКСУ
СТАТИЧНИЙ РАНГ ТА
ВПОРЯДКУВАННЯ ІНДЕКСУ
Спочатку розглянемо упорядкування
документів у інвертованому списку для
кожного терміна за зменьшенням g(d).
Це дозволяє виконати алгоритм перетину
списків з використанням словопозіцій,
упорядкованих за g(d).
СТАТИЧНИЙ РАНГ ТА
ВПОРЯДКУВАННЯ ІНДЕКСУ
Індекс, впорядкований по статичному
рангу.
У даному прикладі ми припускаємо, що
статичні ранги документів Doc1, Doc2 і
Doc3 рівні g(1) = 0,25, g(2) = 0,5 і g(3) = 1
СТАТИЧНИЙ РАНГ ТА
ВПОРЯДКУВАННЯ ІНДЕКСУ
Наступна ідея є безпосереднім
розширення чемпіонських списків.
Для ретельно вибраного значення r і для
кожного терміна t ми зберігаємо
глобальний чемпіонський список (global
champion list), що складається з r
документів, що мають найбільші значення
g(d)+tf-idft,d
Тут
По замовчанню збалансована F-міра надає
точності і повноті однакові ваги, тобто
α=1/2, або β=1.
При β=1 формула спрощується:
ОЦІНКА НЕ РАНЖОВАНИХ
РЕЗУЛЬТАТІВ ПОШУКУ
Однак рівні ваги не є єдино можливим
варіантом.
Значення β<1 віддає перевагу точності, а
β>1 – повноті.
ОЦІНКА РАНЖОВАНИХ РЕЗУЛЬТАТІВ
ПОШУКУ
Точність, повнота і F-міра - це показники,
які обчислюють за невпорядкованими
сукупностями документів.
Щоб оцінити стандартні для сучасних
пошукових систем ранжовані результати,
необхідно розширити ці метрики (або
визначити нові).
У цій ситуації в якості відповідних множин
знайдених документів природно вибирати
перші k документів.
Для кожної такої множини точність і
повноту можна зобразити у вигляді кривої
"точність-повнота".
ОЦІНКА РАНЖОВАНИХ РЕЗУЛЬТАТІВ
ПОШУКУ
Криві "точність-повнота“ мають
пилкоподібний вигляд: якщо (k+1)-й
знайдений документ виявляється
нерелевантним, то повнота залишається
такою ж, як і для перших k документів,
але точність знижується.
Якщо ж цей документ виявляється
релевантним, то як точність, так і повнота
збільшуються, а крива робить стрибок
вгору і вправо.
ОЦІНКА РАНЖОВАНИХ РЕЗУЛЬТАТІВ
ПОШУКУ
У багатьох випадках корисно видалити ці
зубці й використовувати інтерпольовану
точність pinterp (interpolated precision), яка
при певному рівні повноти r являє собою
найбільшу точність для всіх значень
повноти r '≥ r.
Графік “точність-повнота”
ОЦІНКА РАНЖОВАНИХ РЕЗУЛЬТАТІВ
ПОШУКУ
Вивчення кривої "точність-повнота" є
дуже інформативною, проте досить часто
бажано представити всю цю інформацію
за допомогою декількох і навіть одного
значення.
Традиційно для цього використовується
середня точність, інтерпольована по
одинадцяти точках (eleven-point
interpolated average precision).
Саме цей показник був використаний,
наприклад, у перших восьми
експериментах ТРЕК Ad Hoc.
ОЦІНКА РАНЖОВАНИХ РЕЗУЛЬТАТІВ
ПОШУКУ
Для кожної інформаційної потреби
інтерпольована точність вимірюється на 11
рівнях повноти: 0,0; 0,1; 0,2; ...; 1,0.
Для кривої "точність-повнота",
представленої на рисунку, що ми
розглянули, ці 11 точок наведено в
табличці на наступному слайді.
Для кожного рівня повноти обчислюється
середнє арифметичне значення
інтерпольованої точності, що забезпечує
задану повноту пошуку по колекції для
кожної інформаційної потреби.
Після цього можна побудувати загальний
11-точковий графік "точність-повнота".
ОЦІНКА РАНЖОВАНИХ РЕЗУЛЬТАТІВ
ПОШУКУ
Повнота Інтерпольована точність
0,0 1,00
0,1 0,67
0,2 0,63
0,3 0,55
0,4 0,45
0,5 0,41
0,6 0,36
0,7 0,29
0,8 0,13
0,9 0,10
1,0 0,08
ОЦІНКА РАНЖОВАНИХ РЕЗУЛЬТАТІВ
ПОШУКУ
ОЦІНКА РЕЛЕВАНТНОСТІ
Для правильної оцінки системи тестові
інформаційні потреби повинні відповідати
документам, що зберігаються в тестовій
колекції, і майбутньому використанню
системи.
Найкраще, щоб ці інформаційні потреби
розроблялися експертами в предметної
області.
Використовувати як інформаційні потреби
випадкові поєднання термінів запитів
недоцільно, оскільки зазвичай вони не
відображають їх реальний розподіл.
ОЦІНКА РЕЛЕВАНТНОСТІ
Крім інформаційних потреб і документів,
необхідно зібрати оцінки релевантності.
Цей процес вимагає часу і грошей,
оскільки пов'язаний з участю людей.
Для маленьких колекцій на зразок
колекції Cranfield були отримані оцінки
релевантності для кожної пари "запит-
документ" з колекції.
При використанні великих сучасних
колекцій звичайно оцінюється
релевантність лише частини документів
для кожного запиту.
ОЦІНКА РЕЛЕВАНТНОСТІ
Найчастіше для цього використовується
метод загального казана (pooling), при
якому релевантність оцінюється для
підмножини колекції, що складається з k
перших документів, повернутих кількома
інформаційно-пошуковими системами (як
правило, системами, що підлягають
оцінці) і, можливо, отриманих з інших
джерел , наприклад з результатів
булевого пошуку за ключовими словами
або документів, знайдених експертами в
ході інтерактивного процесу.
ОЦІНКА РЕЛЕВАНТНОСТІ
Людина - це не робот, незворушно
повертаючий стандартні висновки про
релевантність документа по відношенню
до запиту.
Його судження про релевантність носять
суб'єктивний і мінливий характер.
Однак це не проблема: в остаточному
підсумку успіх інформаційно-пошукової
системи залежить від того, як вона
задовольняє інформаційні потреби саме
цих суб'єктивних користувачів.
ОЦІНКА РЕЛЕВАНТНОСТІ
Тим не менш цікаво вивчити і оцінити
узгодженість експертів при оцінці
релевантності документів.
У соціальних науках найбільш поширеним
показником узгодженості оцінок є каппа-
статистика (kappa statistics).
Вона розроблена для категоріальних
оцінок і робить поправку на випадковий
збіг оцінок.
ОЦІНКА РЕЛЕВАНТНОСТІ
Спостережувана частка узгоджених висновків
P (A) = (300 + 70)/400 = 370/400 = 0,925
Об'єднані маргінальні статистики
P (нерелевантний) = (80 + 90) / (400 + 400) = 170/800 = 0,2125
P (релевантний) = (320 + 310) / (400 + 400) = 630/800 = 0,7878
Ймовірність того, що думки експертів збіглися випадково
P (E) = P (нерелевантний)2 + P(релевантний)2 = 0,21252 + 0,78782 = 0,665
Каппа-статистика
κ = (P (A) - P (E)) / (1 - P (E)) = (0,925 - 0,665)/(1 - 0,665) = 0,776
ОЦІНКА РЕЛЕВАНТНОСТІ
Обчислення продемонстровані в таблиці.
Якщо два експерти завжди погоджуються
один з одним, то статистика каппа
дорівнює одиниці, якщо їх думки
співпадають випадково, то каппа-
статистика дорівнює нулю, і вона
негативна, якщо розбіжності більше, ніж
може пояснити випадковість.
Якщо експертів більше двох, то можна
обчислити середнє попарних значень
каппа-статистики.
ОЦІНКА РЕЛЕВАНТНОСТІ
На практиці вважається, що значення
каппа, що перевищує 0,8, означає гарне
узгодження, між 0,67 і 0,8 - задовільний, а
менше 0,67 - сумнівну підставу для
оцінки.
Однак точні пороги залежать від
призначення даних.
ПЕРЕВАГИ І НЕДОЛІКИ КОНЦЕПЦІЇ
РЕЛЕВАНТНОСТІ
Перевага оцінки системи на основі
стандартної моделі релевантних і
нерелевантних документів полягає в
тому, що ми маємо фіксовані умови, так
що ми можемо проводити порівняльні
експерименти за участю різних систем або
модифікацій однієї системи.
Таке формальне тестування набагато
дешевше і дозволяє більш точно виявити
вплив параметрів системи на її якість, ніж
на основі експериментів за участю
користувачів.
ПЕРЕВАГИ І НЕДОЛІКИ КОНЦЕПЦІЇ
РЕЛЕВАНТНОСТІ
Дійсно, спираючись на формальний
показник, якому ми довіряємо, ми можемо
оптимізувати якість системи за допомогою
методів машинного навчання, а не
налаштовувати параметри вручну.
Зрозуміло, якщо формальний показник
погано описує потреби користувача, то
такий підхід ніяк не допоможе підвищити
задоволеність користувача.
БІЛЬШ ШИРОКА ТОЧКА ЗОРУ: ЯКІСТЬ
СИСТЕМИ ТА ЇЇ КОРИСНІСТЬ ДЛЯ
КОРИСТУВАЧА
Формальні показники досить далекі від
нашої кінцевої мети - виміряти корисність
системи для людини, тобто оцінити,
наскільки кожен користувач задоволений
відповідями системи на його інформаційні
потреби.
Зазвичай задоволеність людей оцінюється
в ході різноманітних досліджень за участю
користувачів.
БІЛЬШ ШИРОКА ТОЧКА ЗОРУ: ЯКІСТЬ
СИСТЕМИ ТА ЇЇ КОРИСНІСТЬ ДЛЯ
КОРИСТУВАЧА
Вони можуть включати в себе кількісні
показники, як об'єктивні, наприклад час
виконання завдання, так і суб'єктивні, такі
як бали, виставлені користувачами
пошуковій системі, а також якісні оцінки,
такі як коментарі користувачів з приводу
пошукового інтерфейсу.
Ми торкнемося інших аспектів системи,
що дозволяють давати кількісні оцінки
корисності системи, а також проблем
корисності для користувача.
ХАРАКТЕРИСТИКИ СИСТЕМИ
Існує багато стандартних тестів, крім якості
пошуку, за якими можна оцінювати
інформаційно-пошукові системи.
Швидкість індексування, інакше кажучи, кількість
документів, індексованих в годину для певного
розподілу довжин документів.
Швидкість пошуку, тобто наскільки велика
затримка, що залежить від розміру індексу.
Наскільки виразна мова запитів і наскільки швидко
опрацьовуються складні запити.
Розмір колекції документів, тобто скільки
документів накопичено в колекції з різних тем.
Всі ці критерії, крім виразності мови запитів,
допускають безпосереднє вимірювання, адже
швидкість і розмір можна виміряти.
Виразність мови можна приблизно оцінити за
допомогою різних переліків властивостей.
КОРИСНІСТЬ ДЛЯ КОРИСТУВАЧІВ
Насправді нам потрібна загальна кількісна
оцінка ступеня задоволеності користувача,
заснована на релевантності, швидкості і
зручності інтерфейсу.
Для цього, зокрема, необхідно розуміти
потреби людей, для яких створюється
система.
Наприклад, користувачі пошукових веб-
систем задоволені, якщо вони знайшли те,
що шукали.
Побічно ступінь цієї задоволеності можна
оцінити за кількістю людей, які регулярно
користуються такими системами.
КОРИСНІСТЬ ДЛЯ КОРИСТУВАЧІВ
Цей показник є ефективним, але ми
отримали б більш точну оцінку, якби
могли знати, як часто ці користувачі
вдаються до допомоги інших пошукових
систем.
Ще одну групу користувачів пошукових
веб-систем утворюють рекламодавці.
Вони задоволені, якщо клієнти заходять
на їх веб-сайти і роблять там покупки.
На сайтах електронної комерції
користувачі зазвичай щось купують.
КОРИСНІСТЬ ДЛЯ КОРИСТУВАЧІВ
Таким чином, можна оцінити час, який
минув до вчинення покупки, або частку
відвідувачів, які стали покупцями.
На веб-сайті, що відіграє роль вітрини
магазину, потреби користувача та
магазину вважаються задоволеними,
якщо відвідувач здійснив покупку.
І все ж необхідно вирішити, що ми
оптимізуємо: задоволеність кінцевого
користувача або власника сайту
електронної комерції.
Адже за оптимізацію зазвичай платить
власник сайту.
КОРИСНІСТЬ ДЛЯ КОРИСТУВАЧІВ
Для корпоративної пошукової системи, що
працює у внутрішній мережі компанії,
урядової або академічної установи,
кращим показником може бути
продуктивність праці користувача: скільки
часу користувач витрачає в пошуках
потрібної інформації.
Крім того, існують інші практичні критерії,
що стосуються, наприклад, інформаційної
безпеки.
КОРИСНІСТЬ ДЛЯ КОРИСТУВАЧІВ
Ступінь задоволення користувача досить
важко оцінити, тому стандартні методології
використовують показники, засновані на
оцінках релевантності результатів пошуку.
Найпростіше оцінити задоволеність
безпосередньо в рамках спеціальних
експериментів за участю користувачів.
В ході цих експериментів проводяться
спостереження за роботою користувачів,
що вирішують типові задачі, вимірюються
різні показники і застосовуються методи
етнографічних інтерв'ю, які дозволяють
отримувати якісну інформацію про
задоволеність.
КОРИСНІСТЬ ДЛЯ КОРИСТУВАЧІВ
Експерименти за участю користувачів
ефективні при проектуванні системи, але
пов'язані з великими витратами часу і
грошей.
Крім того, для правильної організації
таких експериментів необхідні досвід і
знання, що дозволяють коректно
інтерпретувати їх результати.
НАЛАШТУВАННЯ ПРАЦЮЮЧОЇ
СИСТЕМИ
Якщо система інформаційного пошуку вже
створена і експлуатується численними
користувачами, то її розробники можуть
оцінити можливі зміни, розгорнувши різні
варіанти системи і фіксуючи показники,
що свідчать про задоволеність
користувачів тим чи іншим варіантом.
Цей метод часто використовується в
системах веб-пошуку.
НАЛАШТУВАННЯ ПРАЦЮЮЧОЇ
СИСТЕМИ
Найчастіше використовується метод А/В
тесту (A/B testing).
Цей термін запозичений з рекламної
індустрії.
В ході такого тесту в функціонуючій
системі змінюється тільки один аспект і на
її модифікований варіант випадковим
чином спрямовується невелика частка
трафіку (скажімо, 1-10% користувачів), у
той час як більшість користувачів як і
раніше застосовують поточну версію.
НАЛАШТУВАННЯ ПРАЦЮЮЧОЇ
СИСТЕМИ
Наприклад, якщо ми хочемо дослідити
модифікацію алгоритму ранжування, то
повинні перенаправити випадкову вибірку
користувачів на новий варіант системи та
оцінити певні показники, такі як частота
кліків по перших позиціях видачі або по
будь-якому результату на першій сторінці.
(Цей конкретний варіант методу
називається аналізом кліків).
Надалі ми будемо називати його методом
неявній зворотного зв'язку.
НАЛАШТУВАННЯ ПРАЦЮЮЧОЇ
СИСТЕМИ
В основі А/В-тестування лежить
проведення серії тестів (послідовно або
паралельно), в кожному з яких
досліджується вплив лише однієї змінної.
При виконанні кожного тесту змінюється
тільки один параметр в порівнянні з
контрольною версією (поточною версією
системи).
Це дозволяє легко з'ясувати, позитивно чи
негативно впливає зміна цього параметра
на роботу системи.
НАЛАШТУВАННЯ ПРАЦЮЮЧОЇ
СИСТЕМИ
Таке тестування працюючої системи
дозволяє просто і дешево оцінити вплив змін
на користувачів і, при досить великій
кількості користувачів, врахувати навіть
дуже маленькі ефекти.
В принципі, змінюючи одночасно декілька
параметрів випадковим чином, можна було б
використовувати більш потужні аналітичні
методи багатовимірного статистичного
аналізу, наприклад множинну лінійну
регресію.
Однак на практиці А/В-тестування
використовується широко, оскільки його
легко організувати, зрозуміти і пояснити
керівництву.
Дякую за увагу.
ЛЕКЦІЯ 9. ЗВОРОТНИЙ
ЗВ’ЯЗОК ПО
РЕЛЕВАНТНОСТІ І
РОЗШИРЕННЯ ЗАПИТУ
Глибовець А.М.
СНІППЕТИ
Як представити користувачу документи,
що повернула пошукова система?
Користувач не хоче перебирати всі
документи
СНІППЕТИ
Сніппети - короткі анотації документів, по
яких користувачі могли б оцінити
релевантність документів.
Як правило, спіппети складаються з
заголовка документа і короткої анотації,
що створена автоматично.
Проблема полягає в тому, щоб
представити анотацію в максимально
корисному для користувача вигляді.
СНІППЕТИ
Статичні (static)
Динамічні (dynamic) або запитозалежні
(query dependent)
СТАТИЧНА АНОТАЦІЯ
Статична анотація – фіксований фрагмент
Документ + метадані
Сама проста форма:
Перші два речення, або 50 символів, або певні
зони документу
Метадані (title + description)
СНІППЕТИ
NLP
Natural Language Processing (NLP) для
підвищення якості реферування тексту
(text summarization).
Сніппет – маленький реферат
Сторінка А Сторінка B
Сторінка C Сторінка D
Сторінка D
Сторінка C (1)
(1)
MINIRANK
Зараз згадайте правила передачі ваги.
Спочатку ми застосовуємо коефіцієнт
загасання.
Коефіцієнт загасання, в основному, говорить
про те, що сторінка не може голосувати так,
щоб інша сторінка була настільки ж важлива,
як вона сама.
Це означає, що сторінки, до яких важче
дістатися в Web, менш важливі.
Потім ми ділимо зоставшуся вагу на число
посилань.
Ми підраховуємо підсумкову вагу, який
повинен бути доданий до всіх сторінок,
перед тим як ми остаточно його додамо.
MINIRANK
Отже, дивлячись спочатку на сторінку A,
бачимо, що значення ваги MiniRank,
доступне для передачі, після загасання
дорівнює 1 * 0,85 = 0,85.
Зі сторінки ведуть два посилання, тому,
по закінченні ітерації, ми додамо 0,425 до
ваги MiniRank сторінки B і 0,425 до ваги
MiniRank сторінки C.
Ми не можемо зробити це до тих пір, поки
ми не розрахували всі посилання сторінки,
тому що це вплине на результати.
MINIRANK
Перейдемо до сторінки B.
Вона містить тільки одне посилання.
Сторінка A Сторінка B
(1,85) (1,425)
Сторінка C Сторінка D
(3,125) (1)
MINIRANK
Нові значення ваг MiniRank показують,
наскільки важлива сторінка C.
Але ми ще не завершили.
Оскільки всі сторінки почали з одного
значення, по правді кажучи, ми
вирахували тільки популярність в
посиланнях (link popularity).
Суть PageRank і MiniRank така, що
сторінкам, на які найчастіше посилаються,
слід отримати більше голосів; тому ми
повинні виконати те ж саме ще раз!
На цей раз сторінка C має більший вплив,
тому що її поточна вага MiniRank вище.
MINIRANK
Так, подивимося на сторінку A спочатку.
Її поточна вага MiniRank дорівнює 1,85.
Сторінка A Сторінка B
(4,50625) (2,9975)
Сторінка C Сторінка D
(5,18625) (1)
MINIRANK
Ми вже можемо бачити те, що слід було
очікувати: сторінка C має найбільшу вагу
MiniRank, сторінка A - наступний по
величині.
На практиці нам потрібно було б
повторити ці дії від 50 до 100 разів, щоб
гарантувати, що низька точність
попередніх ітерацій зведена нанівець.
ЗВОРОТНІЙ ЗВ'ЯЗОК PAGERANK
Щось відбувається між сторінками A і C,
тому поглянемо ще раз.
Сторінка А Сторінка B
Сторінка C Сторінка D
Головна Зовнішній
продукція сайт Б
сторінка
(1)
(1)
Посиланн Зовнішній
я сайт В
(1)
ПІСЛЯ ТРЬОХ ІТЕРАЦІЙ
Посиланн Зовнішній
я сайт В
(3,589617
)
ДОДАЄМО ОГЛЯД
Зовнішній
Про нас сайт А
(1)
Головна Зовнішній
продукція сайт Б
сторінка
(1)
(1)
Посиланн Зовнішній
я сайт В
(1)
Головна Зовнішній
сторінка продукція сайт Б
(21,80391 (6,50031)
)
Посиланн Зовнішній
я сайт В
(6,50031)
Другий приклад (з
Перший приклад
оглядами)
Число сторінок = 4 Число сторінок = 8
Початкова вага Початкова вага
MiniRank = 4 MiniRank = 8
Кінцева вага Кінцева вага
MiniRank сайту = MiniRank сайту =
19,959 47,31
Головна сторінка в 2,37 рази важливіше
при використанні другого методу
Основні сторінки «Про нас», «Продукція» і
«Посилання» в 1,8 разів важливіше при
використанні другого методу
ВНУТРІШНЯ СТРУКТУРА ТА ЗВ'ЯЗКИ
Чим більше сторінок конкретний сайт має в індексі
Google, тим вище у нього початкова сумарна вага
PageRank, і тим більше вага PageRank, з якою він
повинен працювати.
Так як кожній сторінці задано одне і те ж
початкове значення до того, як починає
обчислюватися PageRank, більше число сторінок
може бути тільки краще.
Буде логічно зробити висновок, що якщо у нас є
більше для початку, то ефект зворотного зв'язку
буде також більш значним.
Коли-небудь зверніть увагу, як же великим сайтам
вдається мати більш хорошу вагу PageRank?
Ефект зворотного зв'язку пояснює, чому.
Звичайно, ваші сторінки повинні мати сенс і
гарний зміст, щоб для початку потрапити в індекс.
ВНУТРІШНЯ СТРУКТУРА ТА ЗВ'ЯЗКИ
Зворотній зв'язок - це природний процес для
PageRank.
Він має місце серед внутрішніх посилань сайту і
є критичним для оцінок Google про те, які
сторінки сайту важливі.
Якщо у сайту не буде вхідних або вихідних
посилань, структура сайту забезпечить ту ж
саме кількість зворотного зв'язку.
Однак, коли ми враховуємо вхідні і вихідні
посилання, внутрішня структура сайту важлива.
Наприклад, якщо сайт має вихідні посилання на
сторінці, то ми захочемо залишити вагу
PageRank цієї сторінки мінімальною.
ВНУТРІШНЯ СТРУКТУРА ТА ЗВ'ЯЗКИ
Можуть бути:
циклічна
ієрархічна
поєднане
ВНУТРІШНЯ СТРУКТУРА ТА ЗВ'ЯЗКИ
На практиці це означає, що вам слід
поєднувати дані методи зв'язування
сторінок.
Правила такі:
Там, де група сторінок може містити зовнішні
посилання, використовуйте ієрархічну
структуру.
Там, де група сторінок не містить зовнішніх
посилань, використовуйте структуру з
обширними зв'язками, розширивши її
додаванням посилання на головну сторінку.
Якщо конкретна сторінка особливо важлива,
поміщайте її вище в ієрархічній структурі.
Дякую за увагу.
ЛЕКЦІЯ 13. NLP
Глибовець А.М.
ОБРОБКА ПРИРОДНОЇ МОВИ
(NLP)
Обробка природної мови - це
формулювання та дослідження
комп'ютерно-ефективних механізмів для
забезпечення комунікації з ЕОМ на ПМ.
Об'єктами досліджень є:
власнеприродні мови;
використання природної мови як у комунікації
між людьми, так і в комунікації людини з ЕОМ.
ОБРОБКА ПРИРОДНОЇ МОВИ
(NLP)
Дослідники обробки природної мови
намагаються зрозуміти та дослідити, як
людські створіння розуміють та
використовують мову, щоб використати
відповідні та доречні засоби для того, щоб
комп’ютерні системи розуміли та
використовували природну мову для
досягнення бажаних цілей.
ОБРОБКА ПРИРОДНОЇ МОВИ
(NLP)
Основи NLP стосуються багатьох
дисциплін, таких як: комп’ютерні та
інформаційні науки, лінгвістика,
математика, електронна інженерія,
штучний інтелект та роботи, психологія
тощо.
Застосування NLP включають значну
кількість галузей дослідження: машинний
переклад, обробки тексту природної мови
та узагальнення, інтерфейси користувача,
багатомовні і кросмовні ІПС, розпізнавання
мови, штучний інтелект та експертні
системи і т.д.
ЗАВДАННЯ NLP
Основною проблемою NLP є мовна
неоднозначність.
Існує досить велика кількість
складностей, з якими зустрічаються
системи під час обробки запитів, які було
введено українською чи будь-якою іншою
мовою.
ЗАВДАННЯ NLP
Наприклад, речення
«Ми віддали банани мавпам, оскільки вони були
голодні»
«Ми віддали банани мавпам, бо вони були
перезрілими»
схожі за синтаксичною побудовою.
Але насправді, це різні речення.
В першому реченні слово «вони» стосується
мавп, а в другому реченні стосується вже
бананів.
Авжеж, за правилами мови друге речення
недопустиме та граматично неправильне, але у
звичайній побутовій мові таку побудову речення
досить часто можна зустріти
ЗАВДАННЯ NLP
Іншим прикладом можна навести вільний
порядок слів, який може призвести до
зовсім іншого пояснення речення.
У фразі «Буття визначає свідомість» не
зрозуміло, що саме визначає що.
ЗАВДАННЯ NLP
Правильне розуміння омонімів - ще одна
проблема.
При розпізнаванні мови може виникнути
проблема фонетичних омонімів.
Приведемо приклад
«Сірийвовк в глухому лісі зустрів руду
лисицю».
Система має для себе відмічати, що саме
ліс глухий, а лисиця руда, а не навпаки,
оскільки випадок рудого лісу та глухої
лисиці може насправді існувати.
ЗАВДАННЯ NLP
Да й просте, на перший погляд, завдання -
«як навчити пошукову машину правильно
розбивати текст на речення», не зовсім й
таке просте.
Треба вміти зробити так, щоб система
могла розпізнавати точки, які не є кінцями
речень.
ЗАВДАННЯ NLP
Багато слів мають кілька значень
(смислова неоднозначність).
Система має вибрати те значення, яке має
більший сенс в контексті.
Зазвичай, для цього для кожного слова
даються асоційовані значення.
Наприклад, у реченні
«Чоловік купив банки»
незрозуміло, чи людина настільки
заможна, що скупила кілька банків, де
зберігаються гроші, чи чоловік пішов до
магазину та купив банки зі скла.
ЗАВДАННЯ NLP
В англійській мові досить часто системі
доводиться розбирати, чи є одні й ті ж
самі слова дієсловами, іменниками,
прикметниками чи чимось ще.
Наприклад, у реченні «Time flies like an
arrow» не зрозуміло, чи слово “flies” є
іменником («комахи») чи дієсловом
(«летить»).
ЗАВДАННЯ NLP
Деякі речення можуть виглядати зовсім по-
різному, але їх значення буде однаковим.
Таким прикладом є речення:
“IBM’sPC division was acquired by Lenovo.”
“Lenovo bought the PC division of IBM.”
Лематизація
Розмітка тексту
Head-Modifier Pairs
РОЗМІТКА ТЕКСТУ
Цей аналіз ще називають морфологічним.
Розмітка тесту (в англійській літературі цей процес
називається «part-of-speech tagging» (POST)) - це
ручний або автоматичний процес, в результаті якого
кожному слову тексту приписують атрибутивну
інформацію (тег), що визначає якою частиною мови є
це слово:
іменник
дієслово
прикметник
прислівник
займенник
частка
союз
вигук
і т.д.
Приклад: Танцююча <V> в <PREP> темряві <N>.
Повною морфологічною інформацією буде визначення
роду, множина/однина, тощо.
З'ЄДНАННЯ І СТАТИСТИЧНІ ФРАЗИ
Такі фрази зазвичай індексується в
мультітокени, а не в одиничні токени.
Якщо ж подібні фрази розбивати на одиничні
токени, то вони будуть вже мати зовсім інший
сенс, і при пошуку за допомогою них будуть
знайдені не відповідні документи (наприклад,
окремий пошук New у фразі New York).
Також використання мультітокенів дають
більшу можливість різноманітних варіацій,
наприклад, документи, що містять James T. Kirk
раптом більше не будуть відповідати запитам
«James Kirk».
Додання одиничних токенів та мультітокенів до
вектора документу вирішує ці проблеми.
HEAD-MODIFIER PAIRS
Такі пари слів базуються на залежностях
між словами, які можуть бути створені за
допомогою phrase structure-based parsing
чи dependency parsing.
Наприклад, пара слів президент+США
може видати результат за пошуком
колишній президент США.
HEAD-MODIFIER PAIRS
Іншим завданням такого аналізу є вибір
головних, корисних для пошуку слів в фразах,
що складаються з трьох слів.
Приклади:
Обробка природної мови:
природна+мова (підходить); мова+обробка
(підходить); природна+обробка(не підходить)
Виконавчий віце-президент
виконавчий+віце (не підходить); віце+президент
(підходить); виконавчий+президент (підходить
неоднозначно )
Приклад внутрішньої торгівлі
внутрішня+торгівля (підходить); приклад+торгівлі (не
підходить); приклад+внутрішньої (не підходить)
Таким чином, можна побачити, що
автоматичне визначення правильної (або
корисної) пари є досить складним завданням.
ПРОЦЕС ОБРОБКИ ПРИРОДНОЇ
МОВИ
Незалежно від того, якою мовою написаний
вихідний текст, його аналіз проходить одні й
ті ж стадії.
Перші дві стадії (розбиття тексту на окремі
речення і на слова) практично однакові для
більшості природних мов.
Єдине місце, де можуть проявитися
специфічні для вибраної мови риси, - це
обробка скорочень слів і обробка знаків
пунктуації.
Мається на увазі, які знаки пунктуації є
закінченням речення, а які ні.
Відбувається розбиття на окремі зразки
спеціальні типи: «слово_в_лапках», «слово»,
«знак_пунктуаціі», «блок_чисел» і т.д.
Це є графематичним аналізом.
ПРОЦЕС ОБРОБКИ ПРИРОДНОЇ
МОВИ
ПРОЦЕС ОБРОБКИ ПРИРОДНОЇ
МОВИ
До аналізу окремих слів відноситься
морфологічний аналіз (визначення
морфологічних характеристик кожного
слова - частина мови, відмінок,
відмінювання, і т.д.) і морфемний аналіз
(префікс, корінь, суфікс і закінчення)
до стадії аналізу всього речення -
синтаксичний аналіз
до аналізу всього тексту - різні завдання
семантичного аналізу (пошук фрагментів,
формалізація, реферування і т.д.)
ПРОЦЕС ОБРОБКИ ПРИРОДНОЇ
МОВИ
ГРАФЕМАТИЧНИЙ АНАЛІЗ
Виділення речень із суцільного тексту -
процедура необхідна для подальшого
аналізу тексту в будь-якій системі аналізу
природних мов.
Графематичний аналіз включає в себе
розпізнавання імен, ініціалів, скорочень,
дат, цифрових, цифробуквених
комплексів, імен файлів і веб сторінок,
абзаців, всіляких знаків пунктуації, дужок,
математичних формул і тд.
ГРАФЕМАТИЧНИЙ АНАЛІЗ
Елементами графематичного аналізу є:
каліграфи (елементи форматування - жирність,
курсив, підкреслення);
структурні елементи тексту - заголовки,
абзаци, примітки, пропозиції з вхідного тексту;
різні елементи тексту, які є словами (цифри і
числа, дати в цифрових форматах, буквено-
цифрові комплекси, вказівки на нетекстові
входження - малюнки, таблиці тощо);
імена (ім'я, по батькові), написані ініціалами;
іноземні лексеми, записані латиницею;
слова, написані великими літерами;
слова, що починаються з великої літери.
ГРАФЕМАТИЧНИЙ АНАЛІЗ
Графематичний аналіз виконує наступні
функції:
виділяє речення:
кінець речення фіксується при наявності точки,
питального знаку або оклику, трьох крапок і т.д.
крім того, необхідно враховує випадок пропозиції з