Уявіть, що ви заходите в бібліотеку і хочете знайти книгу про «як почати бізнес». Є два способи це зробити:
1. Пошук за ключовими словами
- Ви підходите до бібліотекаря і кажете: «Знайди мені книгу, в якій є слова бізнес і почати в заголовку».
- Бібліотекар швидко сканує каталог книг, що містять ці точні слова.
Результат: Ви можете знайти книги під назвою Почни свій бізнес або Як почати бізнес, але при цьому можете пропустити релевантні книги, такі як Підприємництво 101 або Як побудувати стартап, які не використовують ці точні ключові слова.
BM25: Покращений алгоритм ранжування
BM25 (Best Match 25) покращує пошук за ключовими словами завдяки введенню ранжування релевантності:
- Частота терміну (TF): Чим більше слово з’являється в документі, тим більше воно релевантне.
- Інверсна частота документа (IDF): Рідкісні слова мають вищу вагу, ніж поширені (наприклад, «туманність» проти «the»).
- Нормалізація довжини документа: Запобігає тому, щоб довші документи несправедливо домінували в результатах.
2. Семантичний пошук
- Замість цього ви кажете бібліотекарю: «Я хочу дізнатися, як почати бізнес».
- Бібліотекар розуміє ваш намір і пропонує книги не тільки на основі точних ключових слів, але й на основі змісту вашого запиту.
Результат: Ви отримаєте книги як Підприємництво 101, Посібник по створенню малого бізнесу або навіть Тонкий стартап, які можуть не містити точних слів, але є контекстуально релевантними вашому запиту.
Вбудовування та щільне вилучення
Системи щільного вилучення використовують вбудовування для кращого співвіднесення:
- Запити та документи перетворюються у вбудовування.
- Система вилучає результати на основі косинусної подібності або евклідової відстані між векторами.
- Пошукова система повинна ефективно порівнювати вектори для знаходження найбільш релевантних результатів. Тут на допомогу приходять бібліотеки Approximate Nearest Neighbor (ANN) та векторні бази даних.
Основний висновок: Бібліотеки ANN чудово підходять для прототипування, тоді як векторні бази даних ідеальні для масштабованих пошукових систем у виробництві.
Переранжування
Модель машинного навчання уточнює ранжування початкових результатів пошуку, оцінюючи їх на основі додаткового контексту, вподобань користувача чи семантичного значення.
Приклад процесу:
- Етап 1: BM25 вилучає 50 документів на основі релевантності за ключовими словами.
- Етап 2: Нейронна модель (наприклад, Cohere, OpenAI вбудовування) переранжує топ-10 результатів, фокусуючись на семантичній релевантності.
Оцінка
Щоб переконатися, що ваша пошукова система працює ефективно, важливо вимірювати її ефективність. Ось деякі поширені метрики:
Нормалізоване знижене кумулятивне підвищення (NDCG):
- Оцінює релевантність результатів, надаючи більшу вагу результатам на початку списку.
- Приклад: Ідеальне ранжування отримує оцінку NDCG 1.0.
Середній обернений ранг (MRR):
- Оцінює, наскільки рано в списку результатів з’являється перший релевантний результат.
- Особливо корисно для систем, де користувачі очікують знайти відповіді в перших результатах.
У наступному блозі я детальніше розгляну деталі впровадження семантичного пошуку, включаючи використання вбудовувань, векторних баз даних та нейронних моделей для покращення результатів пошуку та створення більш інтелектуальних систем.
Перекладено з: How Semantic Search Makes Your Queries Smarter