Vyhľadávanie vektorov (sémantické vyhľadávanie)
Rýchla definícia
Vyhľadávanie vektorov je metóda vyhľadávania, ktorá vracia položky, ktorých embeddings sú najbližšie k embeddingu dopytu, takže výsledky sa zhodujú podľa významu, nie podľa zdieľaných kľúčových slov. Je to obvyklý motor sémantického vyhľadávania.
Na tejto stránke
Ako funguje vyhľadávanie vektorov
Každý dokument, pasáž alebo produkt sa premení na embedding a uloží do indexu. V čase dopytu je otázka vložená rovnakým modelom a index vracia najbližšie vektory, zvyčajne merané pomocou kosínusovej podobnosti. Zákazník, ktorý sa pýta „niečo teplé na lyžovanie“, môže nájsť bundu opísanú ako „izolovaná, nepremokavá zimná bunda“, aj keď žiadne slovo sa nezhoduje.
Porovnávanie dopytu s miliónmi vektorov jeden po druhom by bolo pomalé, takže indexy používajú prístupové algoritmy približných najbližších susedov. HNSW, viacúrovňová grafová štruktúra opísaná Malkovom a Yashuninom v roku 2016, je jednou z najpoužívanejších; vymieňa malú stratu presnosti za veľmi rýchle vyhľadávanie. Rozšírenia s otvoreným zdrojom, ako pgvector, prinášajú tieto indexy do PostgreSQL.
Sémantické vyhľadávanie vs vyhľadávanie kľúčových slov
Vyhľadávanie kľúčových slov (BM25, full-text, porovnávanie trigramov) je presné na presných termínoch: referencia produktu, značka, chybový kód. Zlyháva na synonymách a parafrázach. Vyhľadávanie vektorov je opakom: silné na význam, slabé na presné reťazce a zriedkavé identifikátory.
Preto väčšina produkčných systémov používa hybridné vyhľadávanie: spustiť obidva, potom zlúčiť alebo preusporiadať výsledky. Výskum hustého vyhľadávania, ako je práca Karpukhina a kolegov z roku 2020 o odpovedaní na otázky, ukázal, ako veľmi sémantické vyhľadávanie zlepšuje presnosť, a praktici sa od tej doby naučili, ako veľmi stále ťaží z partnera kľúčových slov.
Pasce
Vyhľadávanie vektorov vždy vracia niečo, aj keď neexistuje nič relevantné, takže systém potrebuje prah relevantnosti alebo kontrolu pred použitím výsledkov. Nerozumie číslam alebo obmedzeniam: „pod 50 eur, na sklade, veľkosť M“ potrebuje skutočné filtre na štruktúrovaných údajoch. A kvalita závisí od toho, ako bol obsah rozdelený: pasáže, ktoré sú príliš dlhé, rozmazávajú význam, pasáže, ktoré sú príliš krátke, strácajú kontext.
Vyhľadávanie vektorov v AI SmartTalk
AI SmartTalk ukladá embeddings v PostgreSQL s pgvector, s indexom HNSW na dokumentoch produktov, a kombinuje podobnosť vektorov s trigramovým a full-textovým vyhľadávaním. Pre produkty nástroj vyhľadávania asistenta pridáva štruktúrované filtre na cenu, sklad, značku, kategóriu a atribúty variantov, aby mohla byť semantická otázka a presné obmedzenie zodpovedané spolu.
Často kladené otázky
Je semantické vyhľadávanie to isté ako vyhľadávanie vektorov?
Semantické vyhľadávanie je cieľ — nájsť výsledky podľa významu. Vyhľadávanie vektorov nad embeddings je najbežnejší spôsob, ako to dosiahnuť, často kombinované s vyhľadávaním podľa kľúčových slov.
Potrebujem špeciálnu databázu vektorov?
Nie nevyhnutne. Rozšírenia ako pgvector pridávajú vektorové indexy do PostgreSQL, čo je dostatočné pre mnohé aplikácie a uchováva vektory vedľa ostatných údajov.
Čo je hybridné vyhľadávanie?
Vyhľadávanie, ktoré spúšťa vyhľadávanie vektorov a vyhľadávanie podľa kľúčových slov spolu a zlúčuje výsledky, takže zvláda ako parafrázované otázky, tak presné termíny, ako sú referencie produktov.