milvus-logo
LFAI
Home
  • Konzepte

Ähnlichkeitsmetriken

In Milvus werden Ähnlichkeitsmetriken verwendet, um Ähnlichkeiten zwischen Vektoren zu messen. Die Wahl einer guten Abstandsmetrik hilft, die Klassifizierungs- und Clustering-Leistung erheblich zu verbessern.

Die folgende Tabelle zeigt, wie diese weit verbreiteten Ähnlichkeitsmetriken zu verschiedenen Eingabedatenformen und Milvus-Indizes passen. Derzeit unterstützt Milvus verschiedene Datentypen, darunter Fließkomma-Einbettungen (oft auch als Fließkomma-Vektoren oder dichte Vektoren bezeichnet), binäre Einbettungen (auch als binäre Vektoren bezeichnet) und spärliche Einbettungen (auch als spärliche Vektoren bezeichnet).

Metrische Typen Index-Typen
  • Euklidischer Abstand (L2)
  • Inneres Produkt (IP)
  • Kosinus-Ähnlichkeit (COSINE)
  • FLAT
  • IVF_FLAT
  • IVF_SQ8
  • IVF_PQ
  • GPU_IVF_FLAT
  • GPU_IVF_PQ
  • HNSW
  • DISKANN
Metrische Typen Index-Typen
  • Jaccard
  • Hamming
  • BIN_FLAT
  • BIN_IVF_FLAT
Metrische Typen Index-Typen
IP
  • SPÄRLICHER_INVERTIERTER_INDEX
  • SPARSE_WAND

Euklidischer Abstand (L2)

Im Wesentlichen misst der euklidische Abstand die Länge eines Segments, das 2 Punkte miteinander verbindet.

Die Formel für den euklidischen Abstand lautet wie folgt:

euclidean euklidisch

wobei a = (a0, a1,...,an-1) und b = (b0, b0,..., bn-1) zwei Punkte im n-dimensionalen euklidischen Raum sind

Es ist die am häufigsten verwendete Abstandsmetrik und ist sehr nützlich, wenn die Daten kontinuierlich sind.

Milvus berechnet den Wert vor der Anwendung der Quadratwurzel nur dann, wenn der euklidische Abstand als Abstandsmetrik gewählt wird.

Inneres Produkt (IP)

Der IP-Abstand zwischen zwei Vektoreinbettungen ist wie folgt definiert:

ip ip

IP ist nützlicher, wenn Sie nicht-normalisierte Daten vergleichen müssen oder wenn Sie sich für den Betrag und den Winkel interessieren.

Wendet man die IP-Abstandsmetrik auf normalisierte Einbettungen an, entspricht das Ergebnis der Berechnung der Kosinusähnlichkeit zwischen den Einbettungen.

Angenommen, X' ist von der Einbettung X normalisiert:

normalize normalisieren.

Die Korrelation zwischen den beiden Einbettungen ist wie folgt:

normalization Normalisierung

Kosinus-Ähnlichkeit

Bei der Cosinus-Ähnlichkeit wird der Kosinus des Winkels zwischen zwei Vektorsätzen verwendet, um zu messen, wie ähnlich sie sich sind. Man kann sich die beiden Vektorsätze als zwei Liniensegmente vorstellen, die vom gleichen Ursprung ([0,0,...]) ausgehen, aber in unterschiedliche Richtungen zeigen.

Um die Cosinus-Ähnlichkeit zwischen zwei Mengen von Vektoren A = (a0, a1,...,an-1) und B = (b0, b1,..., bn-1) zu berechnen, verwenden Sie die folgende Formel:

cosine_similarity Cosinus_Ähnlichkeit

Die Kosinusähnlichkeit liegt immer im Intervall [-1, 1]. Zwei proportionale Vektoren haben beispielsweise eine Cosinus-Ähnlichkeit von 1, zwei orthogonale Vektoren haben eine Ähnlichkeit von 0 und zwei entgegengesetzte Vektoren haben eine Ähnlichkeit von -1. Je größer der Cosinus, desto kleiner der Winkel zwischen zwei Vektoren, was bedeutet, dass diese beiden Vektoren einander ähnlicher sind.

Wenn man die Kosinusähnlichkeit von 1 subtrahiert, erhält man den Kosinusabstand zwischen zwei Vektoren.

Jaccard-Abstand

Der Jaccard-Ähnlichkeitskoeffizient misst die Ähnlichkeit zwischen zwei Stichprobenmengen und ist definiert als die Kardinalität der Schnittmenge der definierten Mengen geteilt durch die Kardinalität der Vereinigung dieser Mengen. Er kann nur auf endliche Stichprobenmengen angewendet werden.

Jaccard similarity coefficient Jaccard-Ähnlichkeitskoeffizient

Die Jaccard-Distanz misst die Unähnlichkeit zwischen Datensätzen und wird ermittelt, indem der Jaccard-Ähnlichkeitskoeffizient von 1 subtrahiert wird. Für binäre Variablen entspricht die Jaccard-Distanz dem Tanimoto-Koeffizienten.

Jaccard distance Jaccard-Abstand

Hamming-Abstand

Die Hamming-Distanz misst binäre Datenstrings. Der Abstand zwischen zwei Zeichenfolgen gleicher Länge ist die Anzahl der Bitpositionen, an denen die Bits unterschiedlich sind.

Nehmen wir zum Beispiel an, es gibt zwei Zeichenketten, 1101 1001 und 1001 1101.

11011001 ⊕ 10011101 = 01000100. Da dies zwei 1en enthält, ist der Hamming-Abstand d (11011001, 10011101) = 2.

Strukturelle Ähnlichkeit

Wenn eine chemische Struktur als Teil einer größeren chemischen Struktur auftritt, wird die erste als Substruktur und die zweite als Superstruktur bezeichnet. Zum Beispiel ist Ethanol eine Substruktur von Essigsäure und Essigsäure ist eine Superstruktur von Ethanol.

Die strukturelle Ähnlichkeit wird verwendet, um festzustellen, ob zwei chemische Formeln einander insofern ähnlich sind, als die eine die Über- oder Unterstruktur der anderen ist.

Um festzustellen, ob A ein Überbau von B ist, verwendet man die folgende Formel:

superstructure Überbau

Wobei:

  • A die binäre Darstellung einer chemischen Formel ist, die abgerufen werden soll
  • B ist die binäre Darstellung einer chemischen Formel in der Datenbank

Wenn 0 zurückgegeben wird, ist A keine Überstruktur von B. Andernfalls ist das Ergebnis genau umgekehrt.

Um festzustellen, ob A eine Unterstruktur von B ist, verwenden Sie die folgende Formel:

substructure Unterstruktur

Wobei:

  • A die binäre Darstellung einer chemischen Formel ist, die abgerufen werden soll
  • B ist die binäre Darstellung einer chemischen Formel in der Datenbank

Wenn 0 zurückgegeben wird, ist A keine Unterstruktur von B. Andernfalls ist das Ergebnis genau andersherum.

FAQ

Warum ist das Top1-Ergebnis einer Vektorsuche nicht der Suchvektor selbst, wenn der Metrik-Typ das innere Produkt ist?Dies geschieht, wenn Sie die Vektoren nicht normalisiert haben, wenn Sie das innere Produkt als Abstandsmetrik verwenden.
Was ist Normalisierung? Warum ist eine Normalisierung erforderlich?

Normalisierung bezieht sich auf den Prozess der Umwandlung einer Einbettung (eines Vektors), so dass seine Norm gleich 1 ist. Wenn Sie das innere Produkt zur Berechnung der Ähnlichkeit von Einbettungen verwenden, müssen Sie Ihre Einbettungen normalisieren. Nach der Normalisierung ist das innere Produkt gleich der Kosinusähnlichkeit.

Siehe Wikipedia für weitere Informationen.

Warum erhalte ich unterschiedliche Ergebnisse, wenn ich den euklidischen Abstand (L2) und das innere Produkt (IP) als Abstandsmetrik verwende?Prüfen Sie, ob die Vektoren normalisiert sind. Wenn nicht, müssen Sie die Vektoren zunächst normalisieren. Theoretisch unterscheiden sich die mit L2 ermittelten Ähnlichkeiten von den mit IP ermittelten Ähnlichkeiten, wenn die Vektoren nicht normalisiert sind.

Der nächste Schritt

  • Erfahren Sie mehr über die unterstützten Index-Typen in Milvus.

Übersetzt vonDeepL

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

War diese Seite hilfreich?