Skip to main content

Векторний пошук проти Ctrl+F (Dense vs Sparse)(Векторний пошук проти класичного BM25: де перемагає зміст, а де точні букви)

Порівняння двох підходів до пошуку: нейромережевого смислового (Dense Retrieval) та класичного ключового за збігом слів (Sparse / BM25). Пояснює, чому векторний пошук може провалитися на пошуку артикулів товарів і як працює гібридний пошук.

1. Огляд концепції та призначення

Коли у 2023 році з'явилися векторні бази даних, багато ентузіастів кричали: «Старий текстовий пошук помер! Тепер усе шукатиметься тільки через вектори нейромереж!».

Проте коли компанії почали впроваджувати чистий векторний пошук у реальні інтернет-магазини чи на склади, почалися проблеми:

  • Клієнт вводить точний код запчастини: A211-540-00-44 ➔ векторний пошук видає схожі запчастини з іншими цифрами!
  • Юрист шукає номер справи № 752/1234/25 ➔ векторний пошук показує зовсім інші судові рішення з подібними словами.

Виявилося, що у кожного методу є свої суперсили та свої сліпі зони:

  • Dense (Векторний пошук): неперевершений для розуміння ідей, абстрактних питань та синонімів.
  • Sparse / Keyword (BM25): незамінний для пошуку точних артикулів, шифрів, номерів паспортів та рідкісних прізвищ.

2. Порівняльна таблиця: Хто де перемагає

┌─────────────────────────────────────────────────────────────┐
│                 ХТО КРАЩЕ ЗНАЙДЕ ВІДПОВІДЬ?                 │
├──────────────────────────────┬──────────────────────────────┤
│ 🔍 Запит користувача:        │ 🏆 Хто перемагає і чому:     │
├──────────────────────────────┼──────────────────────────────┤
│ «Дешева машина для сім'ї»    │ 🟢 DENSE (Векторний пошук):  │
│                              │ Зрозуміє зміст і знайде      │
│                              │ універсали та мінівени       │
├──────────────────────────────┼──────────────────────────────┤
│ «Фільтр масляний OC-90»      │ 🔵 BM25 (Пошук за словами):  │
│                              │ Миттєво знайде точний індекс │
│                              │ без вигадок сусідніх деталей │
├──────────────────────────────┼──────────────────────────────┤
│ «Як збити температуру вночі» │ 🟢 DENSE (Векторний пошук):  │
│                              │ Знайде парацетамол та        │
│                              │ жарознижуючі ліки            │
├──────────────────────────────┼──────────────────────────────┤
│ «Стаття 115 частина 2 ККУ»   │ 🔵 BM25 (Пошук за словами):  │
│                              │ Знайде саме цю статтю, а не  │
│                              │ загальні міркування про кримінал
└──────────────────────────────┴──────────────────────────────┘

3. Рішення майбутнього: Гібридний пошук (Hybrid Search)

Сьогодні ніхто з професійних архітекторів не обирає щось одне. Стандартом індустрії став гібридний підхід:

                  ┌────────────────────────┐
                  │   Запит користувача    │
                  └───────────┬────────────┘
                              │
              ┌───────────────┴───────────────┐
              ▼                               ▼
     [Векторний Dense]                 [Класичний BM25]
     (Пошук за сенсом)               (Пошук за артикулами)
              │                               │
              └───────────────┬───────────────┘
                              ▼
               ┌─────────────────────────────┐
               │    Злиття списків (RRF)     │
               │   Найкращі спільні знахідки │
               └─────────────────────────────┘

4. Практичний підсумок для новачка

Якщо ви будуєте пошук для інтернет-магазину або каталогу документації:

  • Не викидайте звичайний пошук за ключовими словами!
  • Використовуйте бази даних, які нативно підтримують гібридний пошук (наприклад, Qdrant чи PostgreSQL із поєднанням pgvector та tsvector). Це гарантує, що ваші користувачі знайдуть товар і за описом «гарна червона сукня», і за точним артикулом SKU-881!
/ Часті запитанняSchema.org FAQPage

FAQ: Векторний пошук проти Ctrl+F (Dense vs Sparse)

Векторний пошук шукає загальний СЕНС. Для нього артикули «SKU-99214» та «SKU-99215» майже ідентичні за координатами (це просто абстрактні набори цифр одного класу). Якщо користувач шукає точну деталь за кодом або назву препарату за серією, класичний пошук за точним збігом літер (BM25) впорається у 100 разів краще.
/ Внутрішня перелінковка
Всі терміни