almessadi.
Zur Übersicht

Kosinusähnlichkeit vs. Skalarprodukt hängt von Ihren Embeddings ab_

Die richtige Vektorähnlichkeitsmetrik hängt davon ab, ob Embeddings normalisiert sind und wie das Abrufsystem Größe im Vergleich zur Richtung interpretiert.

Veröffentlicht12. Februar 2025
Lesezeit5 min read

Die Qualität der Vektorsuche hängt nicht nur von der Datenbank ab. Sie beginnt mit der Mathematik, die Sie zur Vergleich von Embeddings verwenden. Teams wählen oft eine Ähnlichkeitsmetrik fast zufällig aus und fragen sich dann, warum die Abrufqualität inkonsistent wirkt.

Der praktische Unterschied

Kosinusähnlichkeit kümmert sich um den Winkel, was bedeutet, dass sie misst, ob zwei Vektoren in dieselbe Richtung zeigen. Das Skalarprodukt kombiniert Winkel und Größe.

Dieser Unterschied ist wichtig, da einige Embedding-Modelle normalisierte Vektoren erzeugen und andere nicht. Wenn Vektoren auf die Einheitlänge normalisiert sind, werden Kosinusähnlichkeit und Skalarprodukt eng miteinander verbunden:

function dot(a: number[], b: number[]) {
  return a.reduce((sum, value, index) => sum + value * b[index], 0);
}

function cosine(a: number[], b: number[]) {
  const normA = Math.sqrt(dot(a, a));
  const normB = Math.sqrt(dot(b, b));
  return dot(a, b) / (normA * normB);
}

Warum das im Abruf wichtig ist

Wenn die Größe in Ihrem Embedding-Pipeline Bedeutung hat, kann das Skalarprodukt nützlich sein. Wenn nur die gerichtete Ähnlichkeit zählt, ist der Kosinus oft das sicherere Maß.

Das bedeutet, dass die richtige Metrik von Folgendem abhängt:

  • ob Embeddings normalisiert sind
  • ob die Vektorgroße nützliche Signale kodiert
  • was Ihr Abrufmodell erwartet

Bessere Regel

Wählen Sie nicht Kosinus oder Skalarprodukt, weil es ein Tutorial vorgegeben hat. Überprüfen Sie die Dokumentation des Embedding-Modells, untersuchen Sie, ob Vektoren normalisiert sind, und bewerten Sie die Metrik anhand Ihrer tatsächlichen Relevanzurteile.

Vektorsuche ist Mathematik plus Daten plus Produkterwartungen. Das Weglassen eines dieser drei Elemente führt normalerweise zu schwachem Abruf.

Weiterführende Literatur