Semantische Suche vs. lexikalische Suche vs. Volltextsuche
In der digitalen Welt, in der wir heute leben, sind Suchmaschinen zu einem integralen Bestandteil unseres Lebens geworden und helfen uns, schnell und einfach auf Informationen zuzugreifen. Im Zentrum dieser Suchmaschinen stehen Information-Retrieval-Algorithmen, die bestimmen, wie Informationen abgerufen werden.
Es stehen mehrere Information-Retrieval-Algorithmen zur Verfügung, die von traditionellen Methoden wie Volltext- und lexikalischer Suche bis hin zu fortgeschritteneren Techniken wie der semantischen Suche reichen. Jeder dieser Algorithmen hat seine eigenen Vor- und Nachteile; daher ist es entscheidend, dass wir den besten Information-Retrieval-Algorithmus wählen, der zu unserem Anwendungsfall passt.
In diesem Artikel werden diese Information-Retrieval-Algorithmen besprochen, wobei der Schwerpunkt insbesondere auf lexikalischer, Volltext- und semantischer Suche liegt. Beginnen wir mit der einfachsten: der lexikalischen Suche.
Lexikalische Suche
Lexikalische Suche, auch bekannt als Keywords-Suche, bezeichnet einen Suchalgorithmus, der auf der Analyse von Text auf Wortebene basiert (daher der Name). Dieser Information-Retrieval-Algorithmus gleicht Suchbegriffe genau so ab, wie sie im Text erscheinen. Wenn unsere Suchanfrage beispielsweise „run“ lautet, gibt der Algorithmus alle Vorkommen des Begriffs „run“ in einem Dokument zurück.
Die lexikalische Suche ist der grundlegendste verfügbare Information-Retrieval-Algorithmus, da sie nur jene Begriffe in einem Dokument zurückgibt, die eine exakte Übereinstimmung mit unserer Anfrage enthalten. Dadurch ist die lexikalische Suche besonders nützlich, wenn Präzision und Spezifität erforderlich sind, etwa beim Finden von Dokumenten oder Datensätzen, die eine bestimmte Zeichenfolge oder ein bestimmtes Wort enthalten.
Abbildung: Illustration einer einfachen lexikalischen Suche.
Die Einfachheit der lexikalischen Suche führt jedoch auch zu mehreren Nachteilen. Erstens toleriert sie keine Tippfehler in unserer Anfrage. Wenn wir beispielsweise versehentlich „ron“ statt „run“ eingeben, erhalten wir nicht die Ergebnisse, nach denen wir suchen. Zweitens berücksichtigt die lexikalische Suche weder Synonyme noch Stemming oder Lemmatisierung. Folglich wird die Suche nach „run“ keine ähnlichen Wörter in anderen Formen wie „ran“ oder „running“ finden.
Darüber hinaus ist die lexikalische Suche möglicherweise nicht die beste Option, wenn wir auf Grundlage unserer Anfrage nach den relevantesten Datensätzen suchen. Den Dokumenten oder Datensätzen, die unseren Suchbegriff enthalten, fehlt jegliche Vorstellung von Ordnung oder Ranking, was es schwierig macht, die Relevanz der von der lexikalischen Suche zurückgegebenen Ergebnisse zu bewerten.
Wie Sie sehen, hat die lexikalische Suche definitiv erhebliche Einschränkungen, wenn man die Anforderungen der meisten Information-Retrieval-Anwendungsfälle berücksichtigt. Außerdem benötigen Nutzer häufig mehr Flexibilität hinsichtlich der in den Ergebnissen enthaltenen Begriffe, die der lexikalischen Suche ebenfalls fehlt. Hier kommt die Volltextsuche ins Spiel.
Volltextsuche
Eine Volltextsuche funktioniert ähnlich wie eine lexikalische Suche und zielt darauf ab, Datensätze zu finden, die die Begriffe unserer Anfrage enthalten. Die Volltextsuche bietet jedoch umfassendere und fortgeschrittenere Möglichkeiten als die lexikalische Suche und adressiert die mit der lexikalischen Suche verbundenen Probleme.
Die Implementierung der Volltextsuche umfasst häufig beliebte Techniken der Natural Language Processing (NLP) wie Stemming und Lemmatisierung. Das bedeutet, dass bei der Suche nach dem Begriff „run“ auch alle Dokumente oder Datensätze mit ähnlichen Wörtern in anderen Formen, wie „ran“ oder „running“, in die Ergebnisse aufgenommen werden.
Abbildung: Illustration der Weiterentwicklung der Volltextsuche im Vergleich zur traditionellen lexikalischen Suche.
Um Suchergebnisse basierend auf Relevanz zu sortieren, können wir auch Algorithmen wie TF-IDF und BM25 implementieren. Lassen Sie uns diese beiden Algorithmen näher betrachten.
Grundlagen von TF-IDF und BM25
Term Frequency-Inverse Document Frequency (TF-IDF) verwendet eine einfache statistische Methode, um die Relevanz eines Dokuments oder Datensatzes für einen bestimmten Begriff oder eine bestimmte Abfrage zu bestimmen. Sie besteht aus zwei Komponenten:
Term Frequency (TF): Diese berechnet die Anzahl der Vorkommen des Abfragebegriffs in einem Dokument. Je häufiger der Abfragebegriff in einem Dokument vorkommt, desto höher ist daher der TF-Wert für dieses Dokument.
Inverse Document Frequency (IDF): Diese berechnet den Anteil der Dokumente in der gesamten Sammlung, die den Abfragebegriff enthalten.
Das Hauptziel der IDF-Komponente besteht darin, häufige und weniger aussagekräftige Begriffe wie „a“, „an“, „the“ und „and“ abzuwerten, die in fast allen Dokumenten vorkommen. Wenn unser Abfragebegriff beispielsweise „mix and match“ ist, möchten wir, dass die relevantesten Dokumente viele Vorkommen von „mix“ und „match“ enthalten und nicht zahlreiche Vorkommen von „and“. Schließlich wird der endgültige TF-IDF-Wert für ein Dokument durch Multiplikation der TF- und IDF-Werte erhalten.
Ein wesentlicher Nachteil von TF-IDF besteht darin, dass die Länge des Dokuments bei der Berechnung der Relevanz nicht berücksichtigt wird. In der Realität enthalten längere Dokumente unseren Abfragebegriff mit höherer Wahrscheinlichkeit häufiger. Wenn unser Abfragebegriff beispielsweise 10-mal in einem Dokument mit 1.000 Wörtern vorkommt (Dokument A), während er nur 5-mal in einem Dokument mit 50 Wörtern vorkommt (Dokument B), könnten wir argumentieren, dass Dokument B trotz weniger Vorkommen relevanter sein könnte.
BM25 behebt diese Einschränkung von TF-IDF, indem zusätzliche Terme eingeführt und die TF-IDF-Gleichung erweitert wird, um die Dokumentlänge zu berücksichtigen.
Dadurch beseitigt BM25 die Verzerrung zugunsten längerer Dokumente bei der Messung der Relevanz eines Dokuments für eine beliebige Abfrage.
Das Konzept des Sparse Embedding
Sowohl TF-IDF als auch BM25 können als sparse embeddings dargestellt werden. Ein Sparse Embedding ist ein n-dimensionaler Vektor, wobei die Dimensionalität von der Anzahl der eindeutigen Begriffe in unserem Korpus oder unserer Dokumentensammlung abhängt.
Nehmen wir zum Beispiel an, wir haben 10 Dokumente, die insgesamt 10.000 eindeutige Wörter enthalten. Jedes Dokument würde dann in einen 10.000-dimensionalen Vektor umgewandelt, wobei jede Dimension die Bedeutung eines bestimmten Begriffs in diesem Dokument darstellt.
Abbildung: Darstellung der Transformation eines Dokuments in ein Sparse Embedding.
Da die Dimensionalität des Vektors durch die Anzahl der eindeutigen Begriffe im Korpus bestimmt wird, erhalten wir häufig Vektoren mit enormer Dimensionalität. Da ein Dokument außerdem typischerweise nur einen kleinen Bruchteil der verfügbaren Begriffe enthält, ist die überwiegende Mehrheit der Elemente dieser Vektoren null, wie Sie im obigen Bild sehen können. Deshalb werden solche Vektoren üblicherweise als Sparse Embeddings bezeichnet.
Da nun alle Dokumente als Embeddings dargestellt werden, können wir die Ähnlichkeit zwischen zwei beliebigen Embeddings mithilfe gängiger Algorithmen wie der Kosinus-Ähnlichkeit oder der euklidischen Distanz berechnen. Die Intuition dahinter ist, dass zwei Dokumente mit ähnlichen Begriffen von hoher Bedeutung eine hohe Ähnlichkeit aufweisen.
Trotz der Vorteile von Sparse Embeddings in der Volltextsuche gibt es einen erheblichen Nachteil: Sie berücksichtigen nicht die semantische Bedeutung von Suchbegriffen. Wenn unsere Suchanfrage beispielsweise „Apple device“ lautet, können Dokumente, die viele Vorkommen von „apple“ (der Frucht) enthalten, höher eingestuft werden als Technologiedokumente, die für unsere Suchanfrage relevanter sind, aber den Begriff „Apple“ (das Unternehmen) nicht enthalten.
Abbildung: Beispielabfragen, die semantisches Verständnis und Kontext erfordern.
Wenn die Einbeziehung von Ergebnissen mit ähnlichen semantischen Bedeutungen eine Anforderung für unseren Anwendungsfall ist, ist die Volltextsuche möglicherweise nicht der beste Information-Retrieval-Algorithmus. Hier kommt die semantische Suche ins Spiel.
Semantische Suche
Semantische Suche ist ein nützlicher Ansatz, wenn wir Suchergebnisse wünschen, die die semantische Bedeutung berücksichtigen. Unter Verwendung des im vorherigen Abschnitt genannten Beispiels suchen wir, wenn wir eine Abfrage wie „Apple device“ eingeben, eigentlich nicht nach Dokumenten oder Datensätzen, die das Wort „apple“ enthalten. Stattdessen suchen wir nach Dokumenten, die Technologien behandeln, vorzugsweise Apple-Geräte. In diesem Fall würde die Volltextsuche unerwünschte Ergebnisse liefern, wodurch die semantische Suche die bessere Option ist.
Das Konzept des Dense Embedding
Die semantische Suche funktioniert, indem sie ausgefeilte KI-Modelle nutzt, um unsere Dokumente und Suchbegriffe in Embeddings umzuwandeln. Die von diesen Modellen erzeugten Embeddings, oft als Dense Embeddings bezeichnet, unterscheiden sich jedoch von den zuvor besprochenen Sparse Embeddings.
Bei Dense Embeddings sind die Werte in jeder Vektordimension selten genau null, und die Dimensionalität selbst hängt vom verwendeten Modell ab. Die Dimensionalität von Dense Embeddings ist jedoch deutlich geringer als die von Sparse Embeddings.
Abbildung: Darstellung der Umwandlung eines Dokuments in ein Dense Embedding.
Dense Embeddings enthalten semantisch reichhaltige Informationen über den Inhalt, den sie repräsentieren. Um daher zu bestimmen, wie semantisch ähnlich zwei Dense Embeddings sind, können wir einfach gängige Ähnlichkeitsalgorithmen wie Kosinusähnlichkeit oder euklidische Distanz verwenden.
Die Rolle von Vektordatenbanken in der semantischen Suche
In realen Information-Retrieval-Anwendungen haben wir es wahrscheinlich mit Millionen oder sogar Milliarden von Dense Embeddings zu tun. Daher ist es unpraktisch, all diese Embeddings im Speicher unseres Computers abzulegen; und wir benötigen ein Datenbanksystem, das sie effizient speichern kann.
Eine Vektordatenbank ist ein System, das es uns ermöglicht, riesige Mengen an Dense Embeddings effizient zu speichern, indem fortschrittliche Indexierungsmethoden wie Approximate Nearest Neighbors (ANN) und Hierarchical Navigable Small World (HNSW) eingesetzt werden. Sie bietet außerdem Funktionalität zur Durchführung von Vektorsuch-Operationen, um mithilfe gängiger Ähnlichkeitsalgorithmen wie Kosinusähnlichkeit und euklidischer Distanz die semantisch relevantesten Dokumente für unsere Suchanfrage zu finden.
Abbildung: Workflow zur Durchführung einer Vektorsuchoperation.
Darüber hinaus bieten beliebte Vektordatenbanken wie Milvus erweiterte Funktionen wie hybride Suche, die es uns ermöglicht, Vektorsuchen durchzuführen, indem die Stärken sowohl dichter als auch spärlicher Einbettungen kombiniert werden. Wir werden dies in den folgenden Abschnitten weiter besprechen.
Lexikalische Suche vs. Volltextsuche vs. semantische Suche
Nachdem wir nun ein detailliertes Verständnis von lexikalischer, Volltext- und semantischer Suche haben, vergleichen wir ihre Matching-Mechanismen, Komplexität, beispielhafte Anwendungsfälle und Leistung.
| Semantische Suche | Lexikalische Suche | Volltextsuche | |
|---|---|---|---|
| Mechanismus | Kontext und Absicht | Exakte Übereinstimmung | Schlüsselwort und Relevanz |
| Komplexität | Hoch | Niedrig | Mittel |
| Leistung | Langsamer | Schnell | Moderat |
| Anwendungsfälle | NLP-basierte Systeme, Retrieval-Augmented Generation (RAG), LLM-gestützte Anwendungen, Empfehlungssysteme | Einfache Suche | Dokumentenlastige Systeme |
Tabelle: Lexikalische Suche vs. Volltextsuche vs. semantische Suche
In Bezug auf den Matching-Mechanismus ist die lexikalische Suche die einfachste der drei, da sie exakte Begriffe in der Abfrage abgleicht. Die Volltextsuche verbessert die lexikalische Suche, indem sie ganze Dokumente nach Vorkommen der Abfragebegriffe durchsucht, sodass wir Ergebnisse basierend auf ihrer Relevanz für die Abfrage sortieren können. Die semantische Suche hingegen gleicht Abfragebegriffe anhand semantischer Bedeutung und Kontext mit einer Sammlung von Dokumenten ab und nutzt dabei fortschrittliche Deep-Learning-Modelle und NLP-Techniken.
In Bezug auf die Komplexität ist die lexikalische Suche ebenfalls die einfachste Option. Die Volltextsuche ist aufgrund der Einführung von Algorithmen wie TF-IDF oder BM25, die Texte in spärliche Einbettungen umwandeln, etwas komplexer. Die semantische Suche ist die komplexeste, da sie fortschrittliche Deep-Learning-Modelle einsetzt, um Texte in dichte Einbettungen umzuwandeln.
Beispielsweise ist die lexikalische Suche eine ausgezeichnete Wahl, wenn exakte Übereinstimmung entscheidend ist, etwa beim Auffinden eines Variablennamens in Code-Suchen oder beim Finden einer Produkt-ID in einem Dokument. Die Volltextsuche eignet sich für Anwendungen, bei denen Dokumente mit speziellen Begriffen oder Konzepten in der Abfrage gefunden werden sollen, etwa bei der Suche in akademischen Datenbanken oder juristischen Repositorien. Die semantische Suche ist ideal für Anwendungsfälle, in denen das Verständnis des Kontexts Priorität hat, etwa bei Kundenservice-Chatbots, Empfehlungssystemen und Content Discovery.
In Bezug auf die Leistung sind semantische und Volltextsuchen aufgrund ihrer Komplexität relativ langsamer, während die lexikalische Suche aufgrund ihres geradlinigen Ansatzes schneller ist.
Das Konzept der hybriden Suche
Angesichts der Vielfalt sowie der Vor- und Nachteile jedes Information-Retrieval-Algorithmus ist es nicht einfach, den besten auszuwählen, und er erfüllt möglicherweise nicht wirklich alle Ihre Anforderungen. In praktischen Anwendungsfällen müssen wir möglicherweise sogar mehr als einen Algorithmus einsetzen, um verschiedene Anforderungen innerhalb unserer Anwendung zu erfüllen, da effektive Information-Retrieval-Systeme den Nutzern sowohl semantisches Verständnis als auch exaktes Keyword-Matching bieten sollten. Hybrid Search ist ein Konzept, das entwickelt wurde, um diese Herausforderung zu bewältigen.
Hybrid Search ermöglicht es uns, zwei verschiedene Suchalgorithmen zu kombinieren, am häufigsten die Kombination von semantischer Suche mit entweder Volltext- oder lexikalischer Suche. Die Implementierung einer Hybrid Search bringt jedoch aufgrund der unterschiedlichen beteiligten Systeme Herausforderungen mit sich. Konkret benötigen wir eine Vektordatenbank wie Milvus, um dichte Embeddings zu speichern und semantische Suchen durchzuführen, sowie eine Suchmaschine wie Elasticsearch, um Volltextsuchen durchzuführen.
Die Verwendung zweier separater Systeme zur Unterstützung unterschiedlicher Retrieval-Algorithmen führt jedoch zu neuen Komplexitäten. Das bedeutet, dass separate Konfigurations- und Wartungsaufgaben zu bewältigen sind, was später zu Integrationsproblemen führen kann. Dieser Ansatz kann auch unsere Kosten verdoppeln, da die Datenspeicherung in zwei Infrastrukturen erforderlich ist.
Abbildung: Elasticsearch vs Milvus bei Hybrid Search.
Eine bessere Lösung ist die Verwendung eines einheitlichen Systems, das sowohl semantische als auch Volltext-/lexikalische Suchen ermöglicht. Milvus ist eine perfekte Open-Source-Vektordatenbank für diesen Fall, da es die Implementierung von hybriden semantischen und Volltextsuchen unterstützt. Darüber hinaus unterstützt Milvus auch Metadaten-Filterungssuche, Range Search, und Reranking, um die genauesten Ergebnisse zu erhalten.
Mit Milvus können wir alle notwendigen Daten für verschiedene Arten von Suchen speichern, einschließlich dichter Embeddings, sparsamer Embeddings und Metadaten. Dies ermöglicht uns die Durchführung hybrider Suchen – wie semantischer und Volltext- oder lexikalischer Suchen. Dank seiner fortschrittlichen Indexierungsmethoden ist Milvus außerdem hochgradig für Vektorsuchoperationen optimiert, wodurch der Information-Retrieval-Prozess im Vergleich zu Elasticsearch erheblich beschleunigt wird.
Fazit
Die Wahl des Information-Retrieval-Algorithmus spielt eine wichtige Rolle bei der Bestimmung der Effizienz und Relevanz der Suchergebnisse in unserer Anwendung. Lexikalische Suche bietet exakte Begriffsübereinstimmung, was sie ideal für Szenarien macht, in denen exakte Treffer unerlässlich sind. Volltextsuche führt Weiterentwicklungen der lexikalischen Suche ein, indem sie Techniken wie Stemming, Fuzzy Matching und Relevanz-Ranking mit Algorithmen wie TF-IDF und BM25 integriert, wodurch sie sich für dokumentenlastige Anwendungen eignet. Semantische Suche hingegen bietet Fähigkeiten zum Verständnis von Kontext und Absicht, was sie für komplexe NLP-basierte Systeme wie Kunden-Chatbots äußerst nützlich macht.
Da jedoch die Nachfrage nach flexiblen und effizienten Suchsystemen wächst, wird Hybrid Search zu einer praktischen Lösung, um die Stärken mehrerer Retrieval-Algorithmen zu nutzen. Durch die Integration sowohl semantischer als auch Volltext-/lexikalischer Suche bietet Milvus Flexibilität und eine verbesserte Nutzererfahrung. Sehen Sie sich dieses Tutorial an, um unsere semantischen und Volltextsuchen mit Milvus auszuprobieren.
Verwandte Ressourcen
Weiterlesen

Zilliz Cloud Now Available in Azure North Europe: Bringing AI-Powered Vector Search Closer to European Customers
The addition of the Azure North Europe (Ireland) region further expands our global footprint to better serve our European customers.

How to Build an Enterprise-Ready RAG Pipeline on AWS with Bedrock, Zilliz Cloud, and LangChain
Build production-ready enterprise RAG with AWS Bedrock, Nova models, Zilliz Cloud, and LangChain. Complete tutorial with deployable code.

Expanding Our Global Reach: Zilliz Cloud Launches in Azure Central India
Zilliz Cloud expands to Azure Central India. This new region helps customers meet compliance, reduce latency, and optimize cloud costs when building AI applications.


