Wyszukiwanie wektorowe (wyszukiwanie semantyczne)
Szybka definicja
Wyszukiwanie wektorowe to metoda wyszukiwania, która zwraca elementy, których osadzenia są najbliższe osadzeniu zapytania, więc wyniki pasują pod względem znaczenia, a nie wspólnych słów kluczowych. To zwykły silnik wyszukiwania semantycznego.
Na tej stronie
Jak działa wyszukiwanie wektorowe
Każdy dokument, fragment lub produkt jest przekształcany w osadzenie i przechowywany w indeksie. W czasie zapytania pytanie jest osadzane tym samym modelem, a indeks zwraca najbliższe wektory, zazwyczaj mierzone za pomocą podobieństwa cosinusowego. Klient pytający „coś ciepłego na narty” może znaleźć kurtkę opisaną jako „izolowana, wodoodporna powłoka zimowa”, mimo że żadne słowo się nie zgadza.
Porównywanie zapytania z milionami wektorów jeden po drugim byłoby wolne, więc indeksy używają przybliżonych algorytmów najbliższego sąsiada. HNSW, warstwowy graf opisany przez Malkova i Yashunina w 2016 roku, jest jednym z najczęściej używanych; wymienia niewielką utratę dokładności na bardzo szybkie wyszukiwanie. Rozszerzenia open-source, takie jak pgvector, wprowadzają te indeksy do PostgreSQL.
Wyszukiwanie semantyczne vs wyszukiwanie słów kluczowych
Wyszukiwanie słów kluczowych (BM25, pełnotekstowe, dopasowywanie trigramów) jest precyzyjne w przypadku dokładnych terminów: odniesienie do produktu, marka, kod błędu. Nie radzi sobie z synonimami i parafrazami. Wyszukiwanie wektorowe jest odwrotnością: silne w znaczeniu, słabe w dokładnych ciągach i rzadkich identyfikatorach.
Dlatego większość systemów produkcyjnych korzysta z wyszukiwania hybrydowego: uruchamia oba, a następnie scala lub ponownie klasyfikuje wyniki. Badania nad gęstym wyszukiwaniem, takie jak prace Karpukhina i współpracowników z 2020 roku na temat odpowiadania na pytania, pokazały, jak bardzo wyszukiwanie semantyczne poprawia przypomnienie, a praktycy od tego czasu nauczyli się, jak bardzo nadal korzysta z partnera w postaci słów kluczowych.
Pułapki
Wyszukiwanie wektorowe zawsze zwraca coś, nawet gdy nie ma nic istotnego, więc system potrzebuje progu istotności lub sprawdzenia przed użyciem wyników. Nie rozumie liczb ani ograniczeń: „poniżej 50 euro, w magazynie, rozmiar M” wymaga rzeczywistych filtrów na danych strukturalnych. A jakość zależy od tego, jak treść została podzielona: zbyt długie fragmenty zacierają znaczenie, zbyt krótkie fragmenty tracą kontekst.
Wyszukiwanie wektorowe w AI SmartTalk
AI SmartTalk przechowuje osadzenia w PostgreSQL z pgvector, z indeksem HNSW na dokumentach produktów, i łączy podobieństwo wektorowe z wyszukiwaniem trigramowym i pełnotekstowym. Dla produktów narzędzie wyszukiwania asystenta dodaje strukturalne filtry na cenę, stan magazynowy, markę, kategorię i atrybuty wariantów, aby pytanie semantyczne i precyzyjne ograniczenie mogły być odpowiedziane razem.
Najczęściej zadawane pytania
Czy wyszukiwanie semantyczne jest tym samym co wyszukiwanie wektorowe?
Wyszukiwanie semantyczne jest celem — znajdowanie wyników według znaczenia. Wyszukiwanie wektorowe na osadzeniach jest najczęściej stosowanym sposobem na osiągnięcie tego, często w połączeniu z wyszukiwaniem słów kluczowych.
Czy potrzebuję dedykowanej bazy danych wektorów?
Niekoniecznie. Rozszerzenia takie jak pgvector dodają indeksy wektorowe do PostgreSQL, co wystarcza dla wielu aplikacji i trzyma wektory obok reszty danych.
Czym jest wyszukiwanie hybrydowe?
Wyszukiwanie, które uruchamia wyszukiwanie wektorowe i wyszukiwanie słów kluczowych razem i łączy wyniki, aby obsługiwać zarówno parafrazowane pytania, jak i dokładne terminy, takie jak odniesienia do produktów.