Vektorska pretraga (semantička pretraga)
Brza definicija
Vektorska pretraga je metoda preuzimanja koja vraća stavke čije su ugradnje najbliže ugradnji upita, tako da se rezultati poklapaju po značenju, a ne po zajedničkim ključnim rečima. To je uobičajeni motor semantičkog pretraživanja.
Na ovoj stranici
Kako funkcioniše vektorska pretraga
Svaki dokument, pasus ili proizvod se pretvara u ugradnju i čuva u indeksu. U vreme upita pitanje se ugrađuje istim modelom, a indeks vraća najbliže vektore, obično mereno po kosinusnoj sličnosti. Kupac koji pita "nešto toplo za skijanje" može pronaći jaknu opisanu kao "izolovana, vodootporna zimska jakna" iako nijedna reč ne odgovara.
Upoređivanje upita sa milionima vektora jedan po jedan bi bilo sporo, tako da indeksi koriste algoritme približnog najbližeg suseda. HNSW, složena mreža koju su opisali Malkov i Jašunin 2016. godine, jedan je od najčešće korišćenih; trguje malim gubitkom tačnosti za veoma brzu pretragu. Open-source ekstenzije kao što je pgvector donose ove indekse u PostgreSQL.
Semantička pretraga vs pretraga ključnih reči
Pretraga ključnih reči (BM25, pretraga punog teksta, trigram usklađivanje) je precizna na tačnim terminima: referenca na proizvod, brend, kod greške. Ne uspeva na sinonimima i parafrazama. Vektorska pretraga je obrnuta: jaka na značenju, slaba na tačnim stringovima i retkim identifikatorima.
Zato većina proizvodnih sistema koristi hibridnu pretragu: pokreću oboje, a zatim spajaju ili ponovo rangiraju rezultate. Istraživanje gustog preuzimanja kao što je rad Karpukhina i kolega iz 2020. godine o odgovaranju na pitanja pokazalo je koliko semantičko preuzimanje poboljšava povratak, a praktičari su od tada naučili koliko još uvek koristi od partnera za ključne reči.
Zamke
Vektorska pretraga uvek vraća nešto, čak i kada ne postoji ništa relevantno, tako da sistem treba prag relevantnosti ili proveru pre nego što koristi rezultate. Ne razume brojeve ili ograničenja: "ispod 50 evra, na skladištu, veličina M" zahteva prave filtere na strukturiranim podacima. A kvalitet zavisi od načina na koji je sadržaj podeljen: predugački odlomci zamagljuju značenje, prekratki odlomci gube kontekst.
Vektorska pretraga u AI SmartTalk
AI SmartTalk čuva urezane podatke u PostgreSQL sa pgvector, sa HNSW indeksom na dokumentima proizvoda, i kombinuje sličnost vektora sa trigram i pretragom punog teksta. Za proizvode, alat za pretragu asistenta dodaje strukturirane filtre na cenu, skladište, brend, kategoriju i varijante, tako da se semantičko pitanje i precizno ograničenje mogu odgovoriti zajedno.
Često postavljana pitanja
Da li je semantička pretraga isto što i vektorska pretraga?
Semantička pretraga je cilj — pronalaženje rezultata po značenju. Vektorska pretraga preko urezanih podataka je najčešći način da se to postigne, često u kombinaciji sa pretragom ključnih reči.
Da li mi je potrebna posvećena vektorska baza podataka?
Ne nužno. Ekstenzije kao što je pgvector dodaju vektorske indekse u PostgreSQL, što je dovoljno za mnoge aplikacije i drži vektore pored ostatka podataka.
Šta je hibridna pretraga?
Pretraga koja pokreće vektorsku pretragu i pretragu ključnih reči zajedno i spaja rezultate, tako da se bavi i parafraziranim pitanjima i tačnim terminima kao što su reference proizvoda.