sparse retriever

En sparsom retriever er en informationssøgningsmetode, der bruger sparse vektorer (få ikke-nul elementer) til at repræsentere dokumenter og forespørgsler, typisk baseret på TF-IDF eller BM25.

Kort fortalt

En sparsom retriever finder relevante dokumenter ved at matche præcise ord, som i et klassisk søgemaskine-indeks.

Kategori
teknik
Niveau
øvet

Betydninger

1
  1. 1

    En informationssøgningskomponent, der anvender sparse vektorer (f.eks. TF-IDF, BM25) til at matche forespørgsler med dokumenter, og som typisk bruger et inverteret indeks for effektiv søgning.

    • I RAG-systemet bruges en sparsom retriever som første trin for at reducere antallet af kandidatdokumenter, før den tætte retriever foretager en finere rangering.
    • BM25 er en populær algoritme til sparse retrieval, der tager højde for ordhyppighed og dokumentlængde.

Hvornår bruges det

Sparse retrievere anvendes ofte som første trin i en RAG-pipeline (Retrieval-Augmented Generation), hvor de hurtigt henter et sæt kandidatdokumenter, der efterfølgende rangeres af en densen retriever eller en re-ranker. Metoden er beregningseffektiv og velegnet til store dokumentkorpus på grund af inverterede indekser.

Formel

BM25: score(D,Q) = sum_{t in Q} IDF(t) * (f(t,D)*(k1+1)) / (f(t,D) + k1*(1-b+b*|D|/avgdl))

Kodeeksempel

from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity

documents = ["dokument om kunstig intelligens", "maskinlæring og deep learning"]
query = "AI og maskinlæring"

vectorizer = TfidfVectorizer()
tfidf_matrix = vectorizer.fit_transform(documents)
query_vec = vectorizer.transform([query])

scores = cosine_similarity(query_vec, tfidf_matrix)
most_similar = scores.argsort()[0][-1]
print(f"Bedste match: {documents[most_similar]}")

Kort eksempel på sparsom retrieval med TF-IDF i Python. Dokumenterne omdannes til sparse vektorer, og forespørgslen sammenlignes med cosinus-lighed.

Oprindelse

Begrebet 'sparse' refererer til de få ikke-nul elementer i repræsentationen, i modsætning til 'dense' vektorer i embeddings. 'Retriever' kommer fra information retrieval.

Afledte ord

2

Kilder

2
  • Introduction to Information Retrieval (Manning, Raghavan, Schütze, 2008)
  • Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks (Lewis et al., 2020)