Vyhledávání vektoru (sémantické vyhledávání)
Rychlá definice
Vyhledávání vektoru je metoda vyhledávání, která vrací položky, jejichž embeddings jsou nejblíže embeddingu dotazu, takže výsledky odpovídají významu spíše než sdíleným klíčovým slovům. Je to obvyklý motor sémantického vyhledávání.
Na této stránce
Jak funguje vyhledávání vektoru
Každý dokument, pasáž nebo produkt je převeden na embedding a uložen v indexu. V době dotazu je otázka vložena stejným modelem a index vrací nejbližší vektory, obvykle měřené pomocí kosinové podobnosti. Zákazník, který se ptá „něco teplého na lyžování“, může najít bundu popsanou jako „izolovaná, voděodolná zimní bunda“, i když žádné slovo neodpovídá.
Porovnávání dotazu s miliony vektorů jeden po druhém by bylo pomalé, takže indexy používají přibližné algoritmy pro hledání nejbližších sousedů. HNSW, vrstvená grafová struktura popsaná Malkovem a Yashuninem v roce 2016, je jednou z nejvíce používaných; vyměňuje malou ztrátu přesnosti za velmi rychlé vyhledávání. Open-source rozšíření jako pgvector přinášejí tyto indexy do PostgreSQL.
Sémantické vyhledávání vs vyhledávání podle klíčových slov
Vyhledávání podle klíčových slov (BM25, full-text, trigramové porovnávání) je přesné na přesné termíny: reference produktu, značka, chybový kód. Selhává u synonym a parafrází. Vyhledávání vektoru je opak: silné na význam, slabé na přesné řetězce a vzácné identifikátory.
To je důvod, proč většina produkčních systémů používá hybridní vyhledávání: spustit obě, pak sloučit nebo znovu seřadit výsledky. Výzkum hustého vyhledávání, jako je práce Karpukhina a jeho kolegů z roku 2020 o odpovídání na otázky, ukázal, jak moc sémantické vyhledávání zlepšuje připomínku, a praktikující se od té doby naučili, jak moc stále těží z partnera na klíčová slova.
Úskalí
Vyhledávání vektory vždy vrací něco, i když neexistuje nic relevantního, takže systém potřebuje prahovou hodnotu relevance nebo kontrolu před použitím výsledků. Nerozumí číslům nebo omezením: „pod 50 eur, skladem, velikost M“ potřebuje skutečné filtry na strukturovaná data. A kvalita závisí na tom, jak byl obsah rozdělen: příliš dlouhé pasáže rozmazávají význam, příliš krátké pasáže ztrácejí kontext.
Vyhledávání vektory v AI SmartTalk
AI SmartTalk ukládá embeddingy v PostgreSQL s pgvector, s indexem HNSW na produktových dokumentech, a kombinuje podobnost vektorů s trigramovým a full-textovým vyhledáváním. Pro produkty nástroj pro vyhledávání asistenta přidává strukturované filtry na cenu, sklad, značku, kategorii a varianty atributů, takže může být zodpovězena jak sémantická otázka, tak přesné omezení.
Často kladené otázky
Je sémantické vyhledávání totéž jako vyhledávání vektory?
Sémantické vyhledávání je cíl — nalezení výsledků podle významu. Vyhledávání vektory přes embeddingy je nejběžnější způsob, jak toho dosáhnout, často kombinované s vyhledáváním podle klíčových slov.
Potřebuji specializovanou vektorovou databázi?
Není to nutné. Rozšíření jako pgvector přidávají vektorové indexy do PostgreSQL, což je dostatečné pro mnoho aplikací a udržuje vektory vedle ostatních dat.
Co je hybridní vyhledávání?
Vyhledávání, které provádí vyhledávání vektory a vyhledávání podle klíčových slov současně a slučuje výsledky, takže se vyrovnává s parafrázovanými otázkami i přesnými termíny, jako jsou odkazy na produkty.