Wie man die Embeddings von Anfragen und Produkten vergleicht, um relevante Kandidaten zu finden?
sobes.tech KI
Antwort von AI
Zum Vergleich von Anfrage- und Produkt-Embeddings werden in der Regel Ähnlichkeits- oder Distanzmaße im Vektorraum verwendet. Die Hauptansätze:
-
Kosinusähnlichkeit (Cosine Similarity): misst den Winkel zwischen zwei Vektoren, ignoriert deren Länge. Wird häufig verwendet, da sie die semantische Nähe gut widerspiegelt.
-
Euklidische Distanz (Euclidean Distance): misst die direkte Entfernung zwischen Punkten im Raum.
-
Manhattan-Distanz (Manhattan Distance): Summe der absoluten Differenzen in jeder Koordinate.
Um relevante Produkte anhand einer Anfrage zu finden:
- Wandeln Sie die Anfrage und die Produkte mit einem Modell (z.B. BERT, Word2Vec) in Embeddings um.
- Berechnen Sie die Kosinusähnlichkeit zwischen dem Embedding der Anfrage und jedem Produkt-Embedding.
- Sortieren Sie die Produkte nach absteigender Ähnlichkeit — die relevantesten oben.
Beispiel in Python mit Kosinusähnlichkeit:
from sklearn.metrics.pairwise import cosine_similarity
import numpy as np
query_embedding = np.array([[0.1, 0.3, 0.5]])
product_embeddings = np.array([
[0.2, 0.1, 0.4],
[0.9, 0.8, 0.7],
[0.05, 0.3, 0.5]
])
similarities = cosine_similarity(query_embedding, product_embeddings)
# similarities.shape = (1, anzahl_der_produkte)
# Indizes der Produkte, sortiert nach Ähnlichkeit
sorted_indices = np.argsort(-similarities[0])
print("Relevante Produkte nach absteigender Ähnlichkeit:", sorted_indices)
Für skalierbare Suche in großen Embedding-Sammlungen werden spezialisierte Bibliotheken und Indizes wie FAISS oder Annoy verwendet.