Semantic Search
Semantische Suche ordnet Dokumente und Bilder nach ihrer Bedeutung für eine Anfrage statt nach übereinstimmenden Wörtern. Dafür nutzt sie Embeddings, die Suche nach nächsten Nachbarn und Reranker.
Die semantische Suche ordnet Dokumente, Bilder und andere Elemente danach, wie stark ihre Bedeutung der einer Suchanfrage ähnelt, statt nach gemeinsamen Wörtern. Eine Suche nach „Meine Katze hat Hunger“ kann eine Seite mit dem Titel „Fütterungsplan für ein neues Kätzchen“ zurückgeben, obwohl die beiden Texte keine Wörter gemeinsam haben. Moderne Systeme nutzen dafür Embeddings: Ein neuronaler Encoder bildet Suchanfragen und Elemente auf Vektoren ab, die bei ähnlicher Bedeutung nahe beieinander liegen. Die Vektorsuche findet dann die nächstgelegenen Elemente. Die Websuche entwickelte sich 2019 in diese Richtung, als Google begann, BERT zum Verständnis von Suchanfragen einzusetzen. Laut Google betraf die Änderung eine von zehn englischsprachigen Suchanfragen in den USA.
So funktioniert die semantische Suche#
Die meisten Systeme für semantische Suche rufen Inhalte mit einem Bi-Encoder ab und verfeinern die Ergebnisse mit einem Reranker. Der Bi-Encoder bettet jedes Dokument einmal im Voraus ein, und die Vektoren werden in einer Vektordatenbank gespeichert. Zum Zeitpunkt der Anfrage wird nur die Suchanfrage eingebettet. Ein Index für approximative Suche nach nächsten Nachbarn gibt die besten Kandidaten anhand der Kosinusähnlichkeit zurück. Sentence-BERT (2019) machte dieses Verfahren für Sätze praktisch: Die Suche nach dem ähnlichsten Paar unter 10.000 Sätzen dauerte mit einem BERT-Cross-Encoder etwa 65 Stunden, mit den Satz-Embeddings hingegen etwa 5 Sekunden. Dense Passage Retrieval (2020) zeigte anschließend, dass gelernte Embeddings das Keyword-Ranking mit BM25 bei der Genauigkeit der Top-20-Passagen für offene Fragebeantwortung um 9 bis 19 Prozentpunkte übertrafen. Ein Reranker mit Cross-Encoder liest schließlich die Suchanfrage und jeden Kandidaten gemeinsam, um die kurze Liste genauer neu zu sortieren.
Dieses Beispiel vergleicht die Übereinstimmung von Wörtern mit der Ähnlichkeit von Embeddings mithilfe der Bibliothek Sentence Transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
documents = [
"How to reset a forgotten account password",
"Feeding schedule for a new kitten",
"Quarterly sales report for the retail division",
"Best hiking trails near Denver",
]
query = "my cat is hungry"
# Keyword search: documents sharing at least one word with the query
query_words = set(query.lower().split())
print("Keyword matches:", [d for d in documents if query_words & set(d.lower().split())])
# Semantic search: rank documents by cosine similarity of their embeddings
doc_embeddings = model.encode(documents)
query_embedding = model.encode(query)
scores = model.similarity(query_embedding, doc_embeddings)[0]
best = int(scores.argmax())
print(f"Semantic match: {documents[best]!r} (cosine {scores[best]:.2f})")Der Abgleich von Schlüsselwörtern gibt eine leere Liste zurück, weil kein Dokument „meine“, „Katze“, „hat“ oder „Hunger“ enthält. Die semantische Suche findet den Fütterungsplan für das Kätzchen mit einer Kosinusähnlichkeit von 0,56 – das inhaltlich ähnlichste Dokument.
Semantische Suche und verwandte Begriffe#
- Schlüsselwortsuche: Ordnet Dokumente anhand exakter Begriffsübereinstimmungen mithilfe von Formeln wie BM25. Sie eignet sich für Namen, Teilenummern und seltene Wörter, die durch Embeddings verwischt werden können, übersieht aber Synonyme und Umschreibungen.
- Hybride Suche: Führt die Suche nach Schlüsselwörtern und semantische Suche gemeinsam aus und führt die Ergebnisse zusammen. Dies ist ein gängiger Ansatz bei Produktivsystemen für Suche und RAG.
- Semantische Segmentierung: Eine nicht verwandte Aufgabe der Computer Vision, die jedes Pixel eines Bildes mit einer Klasse versieht und nur das Wort „semantisch“ mit der semantischen Suche gemeinsam hat.
- Semantisches Caching: Wendet denselben bedeutungsbasierten Abgleich auf LLM-Anfragen an und verwendet eine gespeicherte Antwort wieder, wenn eine neue Eingabeaufforderung dasselbe bedeutet wie eine frühere.
Anwendungen in der Praxis#
- Retrieval-Augmented Generation (RAG): Findet die Passagen, die ein Sprachmodell benötigt, auch wenn die Formulierung des Nutzers von der Dokumentation abweicht.
- Patentsuche: Findet den Stand der Technik, der dieselbe Erfindung mit anderen Begriffen beschreibt.
- Produktsuche im Einzelhandel: Findet zu einer Suchanfrage wie „Schuhe für den Weg zur Arbeit bei Regen“ wasserdichte Sneaker, auch wenn in deren Produktbeschreibungen diese Wörter nicht vorkommen.
- Empfehlungssysteme: Schlagen Artikel oder Produkte vor, deren Embeddings nahe bei denen liegen, die ein Nutzer bereits ausgewählt hat.
Bilder nach Bedeutung durchsuchen#
Modelle, die mit kontrastivem Lernen anhand von Bild-Beschriftungs-Paaren trainiert wurden, etwa CLIP, betten Text und Bilder in denselben Raum ein. So kann eine Textanfrage Fotos finden, die weder Tags noch Bildunterschriften haben. Die Ultralytics-Lösung für semantische Bildsuche funktioniert nach diesem Prinzip: Ihre Klasse VisualAISearch bettet jedes Bild in einem Ordner einmal mit CLIP ein, bildet jede Textanfrage auf denselben Raum ab und gibt bis zu 30 Bilder zurück, deren Kosinusähnlichkeit zur Anfrage einen Schwellenwert überschreitet. Die Bilder werden dabei von der größten bis zur geringsten Ähnlichkeit sortiert. Eine Anfrage wie „ein Hund sitzt auf einer Bank“ findet so passende Fotos in einer unbeschrifteten Sammlung.










