Sobes.tech
Middle

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:

  1. Wandeln Sie die Anfrage und die Produkte mit einem Modell (z.B. BERT, Word2Vec) in Embeddings um.
  2. Berechnen Sie die Kosinusähnlichkeit zwischen dem Embedding der Anfrage und jedem Produkt-Embedding.
  3. 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.