Vektorsko pretraživanje (semantičko pretraživanje)
Brza definicija
Vektorsko pretraživanje je metoda preuzimanja koja vraća stavke čije su ugradnje najbliže ugradnji upita, tako da se rezultati podudaraju prema značenju, a ne prema zajedničkim ključnim riječima. To je uobičajeni motor semantičkog pretraživanja.
Na ovoj stranici
Kako funkcionira vektorsko pretraživanje
Svaki dokument, odlomak ili proizvod pretvara se u ugradnju i pohranjuje u indeks. U trenutku upita pitanje se ugrađuje s istim modelom, a indeks vraća najbliže vektore, obično mjereći prema kosinusnoj sličnosti. Kupac koji pita "nešto toplo za skijanje" može pronaći jaknu opisanu kao "izolirana, vodootporna zimska jakna" iako nijedna riječ ne odgovara.
Usporedba upita s milijunima vektora jedan po jedan bila bi spora, pa indeksi koriste algoritme približnog najbližeg susjeda. HNSW, slojeviti graf opisan od strane Malkova i Jašunina 2016. godine, jedan je od najčešće korištenih; trguje malim gubitkom točnosti za vrlo brzo pretraživanje. Open-source ekstenzije poput pgvector donose ove indekse u PostgreSQL.
Semantičko pretraživanje vs pretraživanje ključnih riječi
Pretraživanje ključnih riječi (BM25, pretraživanje punog teksta, podudaranje trigramom) precizno je na točnim pojmovima: referenca proizvoda, marka, kod pogreške. Ne uspijeva s sinonimima i parafrazama. Vektorsko pretraživanje je obrnuto: snažno na značenju, slabo na točnim nizovima i rijetkim identifikatorima.
Zato većina proizvodnih sustava koristi hibridno pretraživanje: pokreću oboje, a zatim spajaju ili ponovno rangiraju rezultate. Istraživanje gustog preuzimanja kao što je rad Karpukhina i suradnika iz 2020. o odgovaranju na pitanja pokazalo je koliko semantičko preuzimanje poboljšava povratak, a praktičari su od tada naučili koliko još uvijek koristi partnera s ključnim riječima.
Zamke
Vektorsko pretraživanje uvijek vraća nešto, čak i kada ne postoji ništa relevantno, pa sustav treba prag relevantnosti ili provjeru prije korištenja rezultata. Ne razumije brojeve ili ograničenja: "ispod 50 eura, na skladištu, veličina M" trebaju stvarne filtre na strukturiranim podacima. A kvaliteta ovisi o tome kako je sadržaj podijeljen: odlomci koji su predugi zamagljuju značenje, odlomci koji su prekratki gube kontekst.
Vektorsko pretraživanje u AI SmartTalk
AI SmartTalk pohranjuje urezane vektore u PostgreSQL s pgvector, s HNSW indeksom na dokumentima proizvoda, i kombinira sličnost vektora s trigram i pretraživanjem punog teksta. Za proizvode, alat za pretraživanje asistenta dodaje strukturirane filtre na cijenu, skladište, marku, kategoriju i varijante, tako da se semantičko pitanje i precizno ograničenje mogu odgovoriti zajedno.
Često postavljana pitanja
Je li semantičko pretraživanje isto što i vektorsko pretraživanje?
Semantičko pretraživanje je cilj — pronalaženje rezultata prema značenju. Vektorsko pretraživanje preko urezanih vektora najčešći je način za postizanje toga, često u kombinaciji s pretraživanjem ključnih riječi.
Trebam li posvećenu vektorsku bazu podataka?
Ne nužno. Ekstenzije poput pgvector dodaju vektorske indekse u PostgreSQL, što je dovoljno za mnoge aplikacije i drži vektore uz ostatak podataka.
Što je hibridno pretraživanje?
Pretraživanje koje pokreće vektorsko pretraživanje i pretraživanje ključnih riječi zajedno i spaja rezultate, tako da se nosi s parafraziranim pitanjima i točnim pojmovima poput referenci proizvoda.