Gå til indhold
atlas

Hybrid søgning

At køre en ordbaseret og en betydningsbaseret søgning side om side og flette deres resultater sammen til én liste.

Kladde - dette opslag er endnu ikke gennemgået.

Formelt

En søgemetode, der sender det samme spørgsmål til nøgleordssøgning og semantisk søgning og kombinerer de to rangerede lister, fx ved at lægge vægtede point sammen eller belønne tekster, der ligger højt i begge.

Forklaret enkelt

Som at spørge både en pertentlig ekspedient, der kun tjekker præcise etiketter, og en hjælpsom ven, der forstår essensen - og så stole mest på det, de begge peger på.

I praksis

En tekniker på et regionshospital søger i udstyrsmanualerne efter “V-310 drypper”; ordmatchet finder reservedelslisten med den nøjagtige kode V-310, og betydningsmatchet finder siden med overskriften “hvis der løber vand fra ventilen”.

Hvorfor det betyder noget

Ingen af de to søgetyper er pålidelig alene på en arbejdsplads’ egne dokumenter, og at blande dem er en udbredt og billig måde at ramme det rigtige afsnit oftere.

Teknisk uddybning

En hybrid forespørgsel kører to søgemaskiner, normalt parallelt: en leksikalsk, der scorer med BM25 over et inverteret indeks, og en tæt (dense), der laver approksimativ nærmeste-nabo-søgning over embeddings. Hver returnerer sine egne top-k-kandidater, ofte et sted mellem 20 og et par hundrede, og et fusionstrin fletter dem. De to signaler fejler på hver sin måde. BM25 er præcis på identifikatorer, sjældne termer, navne og præcise fraser og robust på ukendte domæner; BEIR-benchmarket (Thakur m.fl., 2021) viste, at BM25 er en stærk zero-shot-basislinje, som flere dense retrievers ikke kunne slå uden for deres domæne. Dense retrieval håndterer omskrivninger, synonymer og match på tværs af sprog, men udvisker koder og tal.

Reciprocal Rank Fusion (Cormack, Clarke og Büttcher, 2009) er den mest udbredte fusionsmetode: RRF(d) = Σ_r 1 / (k + rank_r(d)), summeret over de resultatlister, hvor dokument d optræder, med k = 60 som den konstant, artiklen foreslog. Da den kun bruger placeringer, kræver den ingen kalibrering af scorer, og et dokument, som begge søgninger placerer højt, stiger til tops. Alternativet er en konveks kombination af normaliserede scorer, s = α · ŝ_dense + (1 − α) · ŝ_leksikalsk, med min-max- eller z-score-normalisering pr. forespørgsel. Det er nødvendigt, fordi BM25-scorer er ubegrænsede og varierer med forespørgslens længde og korpussets statistik, mens cosinusscorer ligger i et smalt bånd. Bruch, Gai og Ingber (2023) argumenterede for, at en tunet konveks kombination generelt slår RRF og kun kræver et lille mærket datasæt for at tune α; RRF er fortsat det sikreste standardvalg uden mærkede data.

De fleste søgemaskiner understøtter nu begge dele. Elasticsearch har en RRF-retriever, OpenSearch en hybrid query med en normaliseringsprocessor i en search pipeline, og Weaviate en hybrid-operator, hvis alpha-parameter går fra ren nøgleordssøgning (0) til ren vektorsøgning (1); i PostgreSQL kan samme mønster skrives i SQL, der kombinerer fritekstsøgning på tsvector med pgvector. Lærte sparse modeller som SPLADE er en tredje mulighed: vektorer vægtet over ordforrådet og serveret fra et inverteret indeks, som fanger en del semantik og samtidig bevarer adfærden for præcise termer.

Faldgruberne i implementeringen handler mest om konsistens. Adgangs- og metadatafiltre skal anvendes ens i begge grene, ellers lækker den ene gren dokumenter, som den anden udelukkede. Begge indeks skal opdateres og slettes i takt. Paginering over flettede resultater er ustabil, medmindre hver gren henter dybt nok. På dansk kræver den leksikalske gren en dansk analyzer med stemming og helst opsplitning af sammensatte ord, da sammensætninger som "sygedagpengeloven" ellers aldrig matcher "sygedagpenge"; uden det vinder hybriden kun lidt på dansk tekst. Kvaliteten bør måles med recall@k og nDCG@10 på mærkede forespørgsler, og den flettede liste sendes typisk videre til en reranker.

Hvad du bør lære først

Alt det, dette bygger på - grundlaget først.

  1. Nøgleordssøgning
  2. →Neuralt netværk
  3. →Token
  4. →Embedding
  5. →Cosinuslighed
  6. →Semantisk søgning
  7. →Hybrid søgning

Relationer

Kilder og videre læsning

Officiel dokumentation

Opslagsværker

Hvor dataene kommer fra

Dette opslag er skrevet af en AI ud fra kilderne ovenfor og er endnu ikke gennemgået af et menneske. Brug det som udgangspunkt, og tjek alt vigtigt mod kilderne.

Se gennemgangskøenForeslå en rettelse på GitHubDette begreb som JSON

Test dig selv

Indlæser…

Atlas er i beta.