Embedding
Numerische Repräsentation von Texten, Bildern oder anderen Daten als Vektor, die semantische Ähnlichkeit messbar macht.
Ausführliche Erklärung
Ein Embedding ist die Übersetzung eines Inhalts – meist Text – in eine Reihe von Zahlen, die seine Bedeutung repräsentieren. Typischerweise entstehen Vektoren mit mehreren hundert bis tausenden Dimensionen. Was zunächst abstrakt klingt, hat eine erstaunlich praktische Eigenschaft: Inhalte mit ähnlicher Bedeutung erhalten ähnliche Vektoren, auch wenn sie unterschiedliche Worte verwenden.
Ein Beispiel verdeutlicht das Prinzip. Die Sätze „Wo finde ich die Stornobedingungen?" und „Welche Regeln gelten beim Kündigen?" verwenden völlig andere Worte. Ein Embedding-Modell ordnet beiden Sätzen aber sehr ähnliche Vektoren zu, weil es die zugrundeliegende Bedeutung erkennt. Eine traditionelle Schlagwortsuche würde hier scheitern – eine semantische Suche über Embeddings findet die Verbindung.
Im KMU-Kontext bilden Embeddings die Grundlage für drei zentrale Anwendungsfelder: semantische Suche in Wissensdatenbanken, Klassifikation von Texten oder Anfragen sowie Empfehlungssysteme. Sie sind außerdem die Voraussetzung für RAG-Systeme, weil dort die Suche nach passenden Dokumenten über Embedding-Ähnlichkeit erfolgt.
Praxisbeispiel
Ein Online-Shop mit 5.000 Produkten nutzt Embeddings, um auf Produktdetailseiten ähnliche Artikel anzuzeigen. Zuvor war die Verlinkung manuell oder regelbasiert über Kategorien gepflegt – aufwändig und ungenau. Mit Embeddings werden alle Produktbeschreibungen einmal in Vektoren umgewandelt und in einer Vektordatenbank gespeichert. Für jeden Artikel werden die fünf nächstgelegenen Vektoren als „ähnliche Produkte" angezeigt. Resultat: doppelt so viele Klicks auf Empfehlungen, weil die Vorschläge tatsächlich semantisch passen.
Code-Beispiel
# Beispiel: Embedding mit OpenAI-Python-SDK
from openai import OpenAI
client = OpenAI()
response = client.embeddings.create(
model="text-embedding-3-small",
input="Wo finde ich die Stornobedingungen?"
)
vector = response.data[0].embedding
# vector ist nun eine Liste mit 1536 Float-Werten