Lighedssøgning forklaret
Forstå algoritmerne og mekanismerne bag søgning efter lignende elementer ved hjælp af vektordistancemål.
Lighedssøgning forklaret er en gratis Vektordatabaser: Pinecone, Weaviate og pgvector-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Vektordatabaser: Pinecone, Weaviate og pgvector, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Vektordatabaser: Pinecone, Weaviate og pgvector-kurset indeholder 4 lektioner i alt.
Find det, der ligner
Du kender nu vektorer og embeddings — se nu, hvordan vektordatabaser bruger dem til at finde elementer, der ligner hinanden. Denne proces kaldes lighedssøgning.
Vektorer: Dine datas koordinater
Et embedding er blot koordinater i et rum, som [0.1, 0.5, -0.2]. Lighedssøgning sammenligner dem: Koordinater, der ligger tæt på hinanden, betyder, at de oprindelige elementer ligner hinanden.
Ideen om 'afstand'
Vi måler nærhed med afstandsmål — formler, der returnerer et tal for, hvor langt to vektorer ligger fra hinanden. Mindre afstand betyder større lighed.
Euklidisk afstand: Den rette linje
Euklidisk afstand er den mest intuitive: længden af den rette linje mellem to punkter. Den er velegnet, når en vektors størrelse har betydning for ligheden.
Euklidisk afstand i praksis
Sådan beregner du euklidisk afstand mellem to enkle 2D-vektorer i kode.
import math
def euclidean_distance(v1, v2):
# Calculates the square root of the sum of squared differences
return math.sqrt(sum((x - y)**2 for x, y in zip(v1, v2)))
# Example vectors
vec_a = [1, 2]
vec_b = [4, 6]
distance = euclidean_distance(vec_a, vec_b)
print(f"Vector A: {vec_a}")
print(f"Vector B: {vec_b}")
print(f"Euclidean Distance: {distance:.2f}")Cosinuslighed: Vinklen betyder noget
Cosinuslighed måler vinklen mellem vektorer — om de peger i samme retning. Det er velegnet til tekst, fordi det følger temaet uafhængigt af længden og ignorerer størrelsen.
Cosinus i praksis
En cosinuslighed tæt på 1 betyder, at vektorerne er tæt på at være parallelle og derfor ligner hinanden mere i retning. Se det i praksis her.
import math
def dot_product(v1, v2):
return sum(x * y for x, y in zip(v1, v2))
def magnitude(v):
return math.sqrt(sum(x**2 for x in v))
def cosine_similarity(v1, v2):
dp = dot_product(v1, v2)
mag1 = magnitude(v1)
mag2 = magnitude(v2)
if mag1 == 0 or mag2 == 0:
return 0 # Handle zero vectors
return dp / (mag1 * mag2)
# Example vectors
vec_x = [1, 1] # Direction 45 degrees
vec_y = [2, 2] # Same direction, larger magnitude
vec_z = [-1, 1] # Different direction
sim_xy = cosine_similarity(vec_x, vec_y)
sim_xz = cosine_similarity(vec_x, vec_z)
print(f"Cosine Similarity (X, Y): {sim_xy:.2f}")
print(f"Cosine Similarity (X, Z): {sim_xz:.2f}")Ud over euklidisk afstand og cosinus
Ud over euklidisk afstand og cosinus findes der andre mål: Manhattan-afstand summerer absolutte forskelle, og prikproduktet måler projektion. Vælg den definition af 'lighed', der passer til dine data.
Sådan søger vektordatabaser
Vektordatabaser beregner ikke afstande én ad gangen — det ville være for langsomt for millioner af vektorer. De bruger indekseringsstrukturer, som et bibliotekskatalog for vektorer, til hurtigt at indsnævre søgningen.
Tilnærmet nærmeste nabo (ANN)
De fleste vektordatabaser bruger søgning efter tilnærmet nærmeste nabo (ANN): I stedet for den nøjagtigt nærmeste vektor returnerer de vektorer, der ligger meget tæt på — lidt mindre nøjagtighed byttes for en enorm hastighedsforøgelse.
Hurtigt tjek: Hvilket mål?
Du er ved at bygge et system, der skal finde artikler med lignende temaer, selv om den ene artikel er meget længere end den anden. Hvilket lighedsmål vil generelt være mest passende?
Opsummering: Din værktøjskasse til lighedssøgning
Opsummering: lighedssøgning sammenligner vektorer ved hjælp af afstandsmål — euklidisk afstand (følsom over for størrelse) og cosinus (vinkel, robust over for længde) — og gøres hurtigere med indekser og ANN.
Lær Vektordatabaser: Pinecone, Weaviate og pgvector med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 12
- Lektioner
- 48
Ofte stillede spørgsmål
Er lektionen “Lighedssøgning forklaret” gratis?
Ja — hele teksten til “Lighedssøgning forklaret” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Vektordatabaser: Pinecone, Weaviate og pgvector-kurset, skal du opgradere til CoddyKit PRO. Vektordatabaser: Pinecone, Weaviate og pgvector-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Lighedssøgning forklaret”?
Forstå algoritmerne og mekanismerne bag søgning efter lignende elementer ved hjælp af vektordistancemål. Du øver dig i Vektordatabaser: Pinecone, Weaviate og pgvector med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Vektordatabaser: Pinecone, Weaviate og pgvector?
Der kræves ingen tidligere erfaring. Vektordatabaser: Pinecone, Weaviate og pgvector på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.
Hvor lang tid tager lektionen “Lighedssøgning forklaret”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Vektordatabaser: Pinecone, Weaviate og pgvector-lektion?
Ja. Alle Vektordatabaser: Pinecone, Weaviate og pgvector-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Hvad er vektordatabaser?
- Vektorrepræsentationer: kernebegrebet
- Lighedssøgning forklaret
- Afstandsmetrics og grundlæggende indeksering