Vektorsøgning (semantisk søgning)
Hurtig definition
Vektorsøgning er en retrieval-metode, der returnerer de elementer, hvis indlejringer er tættest på forespørgselens indlejring, så resultaterne matcher efter betydning snarere end ved delte nøgleord. Det er den sædvanlige motor for semantisk søgning.
På denne side
Hvordan vektorsøgning fungerer
Hvert dokument, passage eller produkt omdannes til en indlejring og gemmes i et indeks. Ved forespørgselstidspunktet indlejres spørgsmålet med den samme model, og indekset returnerer de nærmeste vektorer, normalt målt ved cosinuslighed. En kunde, der spørger "noget varmt til skiløb", kan finde en jakke beskrevet som "isoleret, vandtæt vinterjakke", selvom ingen ord matcher.
At sammenligne en forespørgsel med millioner af vektorer én ad gangen ville være langsomt, så indekser bruger omtrentlige nærmeste-nabo algoritmer. HNSW, en lagdelt graf beskrevet af Malkov og Yashunin i 2016, er en af de mest anvendte; den bytter en lille tab af nøjagtighed for meget hurtig søgning. Open-source udvidelser som pgvector bringer disse indekser til PostgreSQL.
Semantisk søgning vs nøgleordsøgning
Nøgleordsøgning (BM25, fuld tekst, trigram match) er præcis på præcise termer: en produktreference, et mærke, en fejl kode. Den fejler på synonymer og parafraser. Vektorsøgning er det modsatte: stærk på betydning, svag på præcise strenge og sjældne identifikatorer.
Det er derfor, de fleste produktionssystemer bruger hybrid søgning: kør begge, og så saml eller omrangér resultaterne. Tæt retrieval forskning som Karpukhin og kollegers arbejde fra 2020 om spørgsmålssvar viste, hvor meget semantisk retrieval forbedrer recall, og praktikere har siden lært, hvor meget det stadig drager fordel af en nøgleords partner.
Faldgruber
Vektor-søgning returnerer altid noget, selv når der ikke findes noget relevant, så et system har brug for en relevansgrænse eller en kontrol, før resultaterne bruges. Det forstår ikke tal eller begrænsninger: “under 50 euro, på lager, størrelse M” kræver reelle filtre på strukturerede data. Og kvaliteten afhænger af, hvordan indholdet blev opdelt: passager, der er for lange, slører betydningen, passager, der er for korte, mister konteksten.
Vektor-søgning i AI SmartTalk
AI SmartTalk gemmer indlejringer i PostgreSQL med pgvector, med en HNSW-indeks på produkt-dokumenter, og kombinerer vektor-lighed med trigram- og fuldtekst-søgning. For produkter tilføjer assistentens søgeværktøj strukturerede filtre på pris, lager, mærke, kategori og variant-attributter, så et semantisk spørgsmål og en præcis begrænsning kan besvares sammen.
Ofte stillede spørgsmål
Er semantisk søgning det samme som vektor-søgning?
Semantisk søgning er målet — at finde resultater efter betydning. Vektor-søgning over indlejringer er den mest almindelige måde at opnå det på, ofte kombineret med nøgleordsøgning.
Har jeg brug for en dedikeret vektor-database?
Ikke nødvendigvis. Udvidelser som pgvector tilføjer vektor-indekser til PostgreSQL, hvilket er nok til mange applikationer og holder vektorer ved siden af resten af dataene.
Hvad er hybrid-søgning?
En søgning, der kører vektor-søgning og nøgleordsøgning sammen og samler resultaterne, så den håndterer både parafraserede spørgsmål og præcise termer som produktreferencer.