TATECHATLAS
◎ Deutsch
Künstliche Intelligenz

Verständnis semantischer Suche: Wie sie funktioniert und warum ähnlicher Text Ihre Frage möglicherweise nicht beantwortet

Erkunden Sie die Prinzipien der semantischen Suche, ihre Abhängigkeit von Embeddings und die Gründe, warum Text, der ähnlich erscheint, möglicherweise nicht die gewünschte Antwort liefert. Erfahren Sie mehr über Vektorsuche, hybride Suche und ihre Anwendungen bei der Informationsbeschaffung.

Auf dieser Seite

Semantische Suche, angetrieben durch Vektor-Embeddings, findet Informationen basierend auf konzeptioneller Ähnlichkeit und nicht auf exakten Schlüsselwortübereinstimmungen. Sie funktioniert, indem Text, Bilder oder andere Inhalte in numerische Vektoren umgewandelt werden. Wenn Sie eine Abfrage stellen, wird Ihre Eingabe ebenfalls in einen Vektor umgewandelt, und das System ruft Inhalte ab, deren Vektoren im Embedding-Raum am nächsten liegen. Dies ermöglicht den Abgleich konzeptionell ähnlicher Begriffe (z. B. 'Hund' und 'Vierbeiner') und sogar mehrsprachiger Inhalte. Die semantische Suche ist jedoch nicht narrensicher. Sie beantwortet möglicherweise keine spezifische Frage, wenn die zugrunde liegenden Embeddings nicht die genaue Nuance erfassen oder wenn die ähnlichsten Vektoren die Absicht der Abfrage nicht direkt ansprechen. Hybride Suche, die Vektorsuche mit traditioneller Schlüsselwortsuche kombiniert, liefert oft bessere Ergebnisse, indem sie die Stärken beider Ansätze nutzt.

Was ist semantische Suche?

Semantische Suche ist eine fortschrittliche Technik zur Informationsbeschaffung, die über einfache Schlüsselwortübereinstimmungen hinausgeht. Anstatt nach exakten Wörtern in einem Dokument zu suchen, zielt sie darauf ab, die Bedeutung und den Kontext hinter einer Abfrage zu verstehen. Dies ermöglicht es ihr, konzeptionell ähnliche Informationen zu finden, auch wenn die Formulierung anders ist. Zum Beispiel könnte eine Suche nach 'Vierbeiner' Dokumente über 'Hunde' zurückgeben, da das System ihre semantische Beziehung erkennt. Diese Fähigkeit ist entscheidend für die Handhabung von Synonymen, verwandten Konzepten und sogar verschiedenen Sprachen.

Der Kern der semantischen Suche liegt in ihrer Fähigkeit, Inhalte numerisch darzustellen. Dies wird durch Embedding-Modelle erreicht, die Text, Bilder oder andere Datentypen in hochdimensionale Vektoren umwandeln. Diese Vektoren erfassen die semantische Essenz des Inhalts. Wenn eine Abfrage gestellt wird, wird sie ebenfalls in einen Vektor umgewandelt, und die Suchmaschine findet Vektoren in ihrem Index, die dem Abfragevektor in diesem mehrdimensionalen Raum am nächsten liegen.

Wie Vektorsuche funktioniert

Vektorsuche ist die technische Implementierung hinter der semantischen Suche. Sie beinhaltet die Indizierung und Abfrage numerischer Darstellungen von Inhalten, bekannt als Embeddings oder Vektoren. Während der Indizierungsphase werden Inhalte von Embedding-Modellen verarbeitet, um diese Vektoren zu generieren. Diese Vektoren werden dann in einem spezialisierten Vektorindex gespeichert, oft unter Verwendung von Algorithmen wie Hierarchical Navigable Small World (HNSW) oder exhaustive K Nearest Neighbors (eKNN), um sie effizient zu organisieren und ähnliche Vektoren nahe beieinander zu platzieren.

Wenn ein Benutzer eine Abfrage sendet, wird diese ebenfalls mit demselben oder einem kompatiblen Embedding-Modell in einen Vektor umgewandelt. Das Suchsystem führt dann eine Ähnlichkeitssuche durch und sucht nach den 'k' nächsten Nachbarn (kNN) - den Vektoren im Index, die mathematisch dem Abfragevektor am nächsten liegen. Dieser Prozess ermöglicht den Abgleich basierend auf konzeptioneller Ähnlichkeit, mehrsprachigen Inhalten und sogar verschiedenen Modalitäten wie Text und Bildern.

```python
# Beispiel für die Generierung eines Embeddings (konzeptionell, die tatsächliche Implementierung hängt vom Modell-Anbieter ab)
from sentence_transformers import SentenceTransformer

# Ein vortrainiertes Modell laden
model = SentenceTransformer('all-MiniLM-L6-v2')

# Zu einbettender Text
text = "Eine Katze sitzt auf einer Matte."

# Embedding generieren
embedding = model.encode(text)

print(f"Embedding-Form: {embedding.shape}")
# print(f"Embedding: {embedding}") # Auskommentieren, um den tatsächlichen Vektor anzuzeigen
```

**Erklärung:** Dieser Python-Code-Schnipsel zeigt, wie ein Text mithilfe eines vortrainierten Sentence Transformer-Modells in einen numerischen Vektor (Embedding) umgewandelt werden kann. Die `encode`-Methode nimmt den Text entgegen und gibt ein NumPy-Array zurück, das seine semantische Bedeutung darstellt. Dieser Vektor würde dann zur Suche in einem Vektorindex gespeichert werden.

Die Rolle von Embeddings

Embeddings sind der Eckpfeiler der semantischen Suche. Es handelt sich um numerische Darstellungen, typischerweise dichte Vektoren, die die Bedeutung eines Datenelements wie eines Wortes, eines Satzes oder eines Bildes erfassen. Diese Vektoren werden von Machine-Learning-Modellen generiert, die auf riesigen Datenmengen trainiert wurden. Der Trainingsprozess stellt sicher, dass semantisch ähnliche Elemente Vektoren haben, die im hochdimensionalen Embedding-Raum nahe beieinander liegen, während sich unähnliche Elemente Vektoren haben, die weit voneinander entfernt sind.

Zum Beispiel könnten die Wörter 'König' und 'Königin' nahe beieinander liegende Vektoren haben, und der Vektorunterschied zwischen 'König' und 'Mann' könnte dem Vektorunterschied zwischen 'Königin' und 'Frau' ähneln. Diese Eigenschaft ermöglicht es Suchmaschinen, Beziehungen und Nuancen in der Sprache zu verstehen, was relevantere Suchergebnisse als traditionelle schlüsselwortbasierte Methoden ermöglicht.

Warum ähnlicher Text eine Frage nicht beantworten könnte

Während die semantische Suche hervorragend darin ist, konzeptionell ähnliche Inhalte zu finden, ist sie nicht unfehlbar. Ein häufiger Grund, warum ähnlicher Text keine spezifische Frage beantworten könnte, ist, dass die Embeddings, obwohl sie die allgemeine Bedeutung erfassen, möglicherweise nicht die nuancierte Absicht der Abfrage präzise darstellen. Zum Beispiel könnte eine Abfrage nach 'dem besten Weg, einen Kuchen zu backen' Dokumente über 'Kuchenrezepte' oder 'Backtechniken' abrufen, die semantisch verwandt sind, aber keine direkte Antwort auf die 'beste' Methode bieten.

Ein weiterer Faktor ist die Qualität und der Umfang des verwendeten Embedding-Modells. Wenn das Modell nicht auf Daten trainiert wurde, die für den spezifischen Bereich relevant sind, oder wenn es inhärente Verzerrungen aufweist, spiegeln seine Embeddings möglicherweise nicht genau die gewünschten Beziehungen wider. Darüber hinaus kann die Art und Weise, wie Inhalte während der Indizierung aufgeteilt und vektorisiert werden, die Abrufung beeinflussen. Wenn ein entscheidendes Informationsstück über mehrere Chunks verteilt ist oder wenn das Embedding für einen relevanten Chunk nicht stark mit dem Abfragevektor übereinstimmt, kann die Antwort möglicherweise übersehen werden.

Hybride Suche: Stärken kombinieren

Um die Einschränkungen der rein semantischen oder schlüsselwortbasierten Suche zu überwinden, ist die hybride Suche entstanden. Dieser Ansatz kombiniert die Stärken der Vektorsuche und der traditionellen Volltextsuche (Schlüsselwortsuche) innerhalb einer einzigen Abfrageanforderung. Durch die parallele Ausführung beider Suchtypen gegen einen Suchindex, der sowohl Embeddings als auch reinen Text enthält, kann die hybride Suche das konzeptionelle Verständnis der Vektorsuche und die Präzision der Schlüsselwortübereinstimmung nutzen.

Die Ergebnisse beider Suchen werden dann zusammengeführt und neu geordnet, oft unter Verwendung von Algorithmen wie Reciprocal Rank Fusion (RRF). Dieser einheitliche Ansatz verbessert die Suchrelevanz erheblich. Wenn Sie beispielsweise nach einer bestimmten Produktcode (am besten für die Schlüsselwortsuche) zusammen mit einer allgemeinen Produktbeschreibung (am besten für die semantische Suche) suchen, kann die hybride Suche ein umfassenderes und genaueres Ergebnis liefern.

```json
{
  "search": "historisches Hotel zu Fuß zu Restaurants",
  "vectorQueries": [
    {
      "kind": "vector",
      "vector": [ 0.1, 0.5, -0.2, ... ], 
      "k": 50,
      "fields": "DescriptionVector"
    }
  ],
  "queryType": "semantic",
  "semanticConfiguration": "my-semantic-config"
}
```

**Erklärung:** Dieser JSON-Schnipsel veranschaulicht eine hybride Abfragestruktur. Der `search`-Parameter behandelt die Volltextabfrage, während `vectorQueries` die Vektorabfrageparameter angibt. `queryType` und `semanticConfiguration` weisen auf die Verwendung semantischer Rangfolge hin. Dieser kombinierte Ansatz stellt sicher, dass sowohl Schlüsselwortrelevanz als auch semantische Ähnlichkeit berücksichtigt werden.

Unterstützte Szenarien

Vektor- und hybride Suche unterstützen eine breite Palette von Szenarien. Ähnlichkeitssuche ist grundlegend und ermöglicht es Benutzern, konzeptionell ähnliche Elemente zu finden. Hybride Suche ist besonders leistungsfähig und kombiniert Vektor- und Schlüsselwortsuche für verbesserte Relevanz, was besonders nützlich für Abfragen ist, die spezifische Fachbegriffe, Codes oder Namen beinhalten.

Multimodale Suche erweitert dies, indem sie Suchen über verschiedene Inhaltstypen wie Text und Bilder hinweg ermöglicht, unter Verwendung multimodaler Embeddings (z. B. CLIP). Mehrsprachige Suche wird ebenfalls unterstützt, sodass Abfragen in einer Sprache relevante Inhalte in einer anderen finden können, vorausgesetzt, es werden geeignete Embedding-Modelle verwendet. Gefilterte Vektorsuche fügt eine weitere Steuerungsebene hinzu, die es ermöglicht, Vektorabfragen mit traditionellen Filtern für Metadatenfelder zu kombinieren und die Ergebnisse nach bestimmten Kriterien einzugrenzen.

Integration und Verfügbarkeit

Vektorsuchfunktionen sind in Dienste wie Azure AI Search integriert. Diese Integration ermöglicht die Indizierung, Speicherung und Abfrage von Vektor-Embeddings direkt innerhalb des Suchdienstes. Azure AI Search bietet Optionen zur Generierung von Embeddings entweder intern innerhalb einer Indexer-Pipeline (erfordert Verbindungen zu Diensten wie Azure OpenAI) oder extern, wobei vorab vektorisierte Inhalte in den Suchindex gepusht werden.

Die Vektorsuche ist in allen Azure-Regionen und -Stufen ohne zusätzliche Kosten allgemein verfügbar, obwohl die Generierung von Embeddings selbst Kosten vom Modell-Anbieter verursachen kann. Der Zugriff erfolgt über das Azure-Portal, REST-APIs und Azure SDKs. Es ist wichtig zu beachten, dass ältere Suchdienste (erstellt vor dem 1. Januar 2019) möglicherweise keine Vektor-Workloads unterstützen und die Erstellung eines neuen Dienstes erfordern.

Einschränkungen und Überlegungen

Trotz ihrer Leistungsfähigkeit hat die semantische Suche Einschränkungen. Wie bereits erwähnt, liefert ähnlicher Text möglicherweise nicht immer die präzise Antwort, wenn die Embeddings die spezifische Absicht oder Nuance der Abfrage nicht erfassen. Die Effektivität hängt auch stark von der Qualität und Relevanz des verwendeten Embedding-Modells und den Daten ab, auf denen es trainiert wurde. Schlecht gewählte Modelle oder unzureichende Trainingsdaten können zu suboptimalen Ergebnissen führen.

Darüber hinaus ist die Vektorsuche rechenintensiv und erfordert spezialisierte Indizierungs- und Abfragetechniken. Obwohl die hybride Suche einige Probleme mildert, ist es wichtig zu verstehen, dass die semantische Suche kein Ersatz für faktische Genauigkeit oder logisches Denken ist. Sie ist hervorragend darin, verwandte Informationen zu finden, garantiert aber nicht von Natur aus die Korrektheit oder Anwendbarkeit der abgerufenen Inhalte auf ein bestimmtes Problem. Sorgfältige Prompt-Entwicklung und Ergebnisvalidierung sind oft notwendig, insbesondere in Anwendungen wie Retrieval-Augmented Generation (RAG).

Was Sie prüfen sollten

  • Stellen Sie sicher, dass das verwendete Embedding-Modell für die Domäne und Sprache des durchsuchten Inhalts geeignet ist.
  • Stellen Sie sicher, dass der Inhalt vor dem Einbetten ordnungsgemäß aufgeteilt wird, um Kontextverlust oder die Aufteilung kritischer Informationen zu vermeiden.
  • Erwägen Sie die Verwendung einer hybriden Suche, um die Stärken der semantischen und schlüsselwortbasierten Übereinstimmung für eine verbesserte Genauigkeit zu kombinieren.
  • Testen Sie Abfragen mit unterschiedlichen Formulierungen, um zu verstehen, wie sich semantische Ähnlichkeit auf die Abrufergebnisse auswirkt.
  • Bewerten Sie die Qualität der abgerufenen Ergebnisse, indem Sie prüfen, ob sie die Absicht des Benutzers direkt ansprechen und nicht nur die konzeptionelle Ähnlichkeit.

Vektorsuchfunktionen sind zwar weit verbreitet, werden aber möglicherweise nicht auf sehr alten Azure AI Search-Instanzen unterstützt, die vor dem 1. Januar 2019 erstellt wurden. Spezifische Embedding-Modelle und ihre damit verbundenen Kosten sind extern zum Suchdienst selbst. Die Effektivität der semantischen Suche hängt stark von der Qualität und den Trainingsdaten des gewählten Embedding-Modells ab.

Quellen

  1. Microsoft Learn: vector search ↗
  2. Microsoft Learn: hybrid search ↗
Nach oben ↑