Iskanje po vektorjih (semantično iskanje)
Hitro definicija
Iskanje po vektorjih je metoda pridobivanja, ki vrne predmete, katerih vektorski prikazi so najbližje vektorskemu prikazu poizvedbe, tako da se rezultati ujemajo po pomenu in ne po skupnih ključnih besedah. To je običajen motor semantičnega iskanja.
Na tej strani
Kako deluje iskanje po vektorjih
Vsak dokument, odlomček ali izdelek se pretvori v vektorski prikaz in shrani v indeks. Ob času poizvedbe se vprašanje obdela z istim modelom, indeks pa vrne najbližje vektorje, običajno merjene z kosinusno podobnostjo. Stranka, ki vpraša "nešto toplo za smučanje", lahko najde jakno, opisano kot "izolirana, vodoodporna zimska jakna", čeprav se nobena beseda ne ujema.
Primerjanje poizvedbe z milijoni vektorjev eno za drugo bi bilo počasno, zato indeksi uporabljajo algoritme približnega najbližjega soseda. HNSW, plastični graf, ki ga opisujeta Malkov in Yashunin leta 2016, je eden najpogosteje uporabljenih; zamenja majhno izgubo natančnosti za zelo hitro iskanje. Razširitve z odprto kodo, kot je pgvector, prinašajo te indekse v PostgreSQL.
Semantično iskanje proti iskanju po ključnih besedah
Iskanje po ključnih besedah (BM25, iskanje po celotnem besedilu, ujemanje trigramov) je natančno pri natančnih izrazih: referenca na izdelek, blagovna znamka, koda napake. Ne uspe pri sinonimih in parafrazah. Iskanje po vektorjih je obratno: močno pri pomenu, šibko pri natančnih nizih in redkih identifikatorjih.
Zato večina proizvodnih sistemov uporablja hibridno iskanje: izvajajo oboje, nato združijo ali ponovno razvrstijo rezultate. Raziskave gostega pridobivanja, kot je delo Karpukhina in sodelavcev iz leta 2020 o odgovarjanju na vprašanja, so pokazale, kako zelo semantično pridobivanje izboljša priklic, in praktiki so se od takrat naučili, koliko še vedno koristi od partnerja za iskanje po ključnih besedah.
Past
Iskanje vektorjev vedno vrne nekaj, tudi ko nič relevantnega ne obstaja, zato mora sistem imeti prag relevantnosti ali preverjanje pred uporabo rezultatov. Ne razume številk ali omejitev: “pod 50 evri, na voljo, velikost M” potrebuje prave filtre na strukturiranih podatkih. In kakovost je odvisna od tega, kako je bil vsebina razdeljena: odlomki, ki so predolgi, zameglijo pomen, odlomki, ki so prekratki, izgubijo kontekst.
Iskanje vektorjev v AI SmartTalk
AI SmartTalk shranjuje vektorske predstavitve v PostgreSQL z pgvector, z indeksom HNSW na dokumentih izdelkov, in združuje podobnost vektorjev s trigramom in iskanjem celotnega besedila. Za izdelke orodje za iskanje asistenta dodaja strukturirane filtre na ceno, zalogo, blagovno znamko, kategorijo in atribute različic, tako da lahko semantično vprašanje in natančna omejitev odgovorita skupaj.
Pogosto zastavljena vprašanja
Ali je semantično iskanje enako iskanju vektorjev?
Semantično iskanje je cilj — iskanje rezultatov po pomenu. Iskanje vektorjev preko vektorskih predstavitev je najpogostejši način za dosego tega, pogosto v kombinaciji z iskanjem po ključnih besedah.
Ali potrebujem namensko vektorsko bazo podatkov?
Ne nujno. Razširitve, kot je pgvector, dodajajo vektorske indekse v PostgreSQL, kar je dovolj za mnoge aplikacije in ohranja vektorje poleg preostalih podatkov.
Kaj je hibridno iskanje?
Iskanje, ki hkrati izvaja iskanje vektorjev in iskanje po ključnih besedah ter združuje rezultate, tako da obravnava tako parafrazirana vprašanja kot natančne izraze, kot so reference na izdelke.