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
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
2Kilder
2- Introduction to Information Retrieval (Manning, Raghavan, Schütze, 2008)
- Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks (Lewis et al., 2020)