Metrik-Typen

Ähnlichkeitsmetriken werden verwendet, um Ähnlichkeiten zwischen Vektoren zu messen. Durch die Wahl einer geeigneten Distanzmetrik kann die Klassifizierungs- und Clustering-Leistung erheblich verbessert werden.

Derzeit unterstützt Milvus die folgenden Arten von Ähnlichkeitsmetriken: Euklidischer Abstand (L2), Inneres Produkt (IP), Kosinusähnlichkeit (COSINE), JACCARD, HAMMING und BM25 (speziell für die Volltextsuche in spärlichen Vektoren).

Die folgende Tabelle fasst die Zuordnung zwischen verschiedenen Feldtypen und den entsprechenden metrischen Typen zusammen.

Feldtyp

Dimension Bereich

Unterstützte metrische Typen

Standardmetrischer Typ

FLOAT_VECTOR

2-32,768

COSINE L2, IP

COSINE

FLOAT16_VECTOR

2-32,768

COSINE, L2, IP

COSINE

BFLOAT16_VECTOR

2-32,768

COSINE, L2, IP

COSINE

INT8_VECTOR

2-32,768

COSINE, L2, IP

COSINE

SPARSE\_FLOAT\_VECTOR

Die Angabe der Dimension ist nicht erforderlich.

IP BM25 (nur für die Volltextsuche verwendet)

IP

BINARY_VECTOR

8-32,768*8

HAMMING, JACCARD, MHJACCARD

HAMMING

  • Für Vektorfelder des Typs SPARSE\_FLOAT\_VECTOR verwenden Sie den metrischen Typ BM25 nur, wenn Sie eine Volltextsuche durchführen. Weitere Informationen finden Sie unter Volltextsuche.

  • Bei Vektorfeldern des Typs BINARY_VECTOR muss der Dimensionswert (dim) ein Vielfaches von 8 sein.

Die nachstehende Tabelle fasst die Eigenschaften der Ähnlichkeitsabstandswerte aller unterstützten metrischen Typen und ihren Wertebereich zusammen.

Metrischer Typ

Merkmale der Werte für den Ähnlichkeitsabstand

Ähnlichkeitsabstand Wertebereich

L2

Ein kleinerer Wert zeigt eine größere Ähnlichkeit an.

[0, ∞)

IP

Ein größerer Wert weist auf eine größere Ähnlichkeit hin.

[-1, 1]

COSINE

Ein größerer Wert weist auf eine größere Ähnlichkeit hin.

[-1, 1]

JACCARD

Ein kleinerer Wert weist auf eine größere Ähnlichkeit hin.

[0, 1]

MHJACCARD

Schätzt die Jaccard-Ähnlichkeit anhand der MinHash-Signaturbits; kleinerer Abstand = größere Ähnlichkeit

[0, 1]

HAMMING

Ein kleinerer Wert weist auf eine größere Ähnlichkeit hin.

[0, dim(vector)]

BM25

Bewertet die Relevanz auf der Grundlage der Termhäufigkeit, der invertierten Dokumenthäufigkeit und der Dokumentnormalisierung.

[0, ∞)

Um Vektorfelder in einem Array of Structs-Feld zu indizieren, sollten Sie MAX_SIM dem oben genannten Satz metrischer Typen vorangestellt werden, basierend auf den in diesen Feldern gespeicherten Vektoreinbettungen. Zum Beispiel,

  • Für ein Vektorfeld, das Vektoreinbettungen des Typs FLOAT_VECTOR, FLOAT16_VECTOR, BFLOAT16_VECTOR oder INT8_VECTOR speichert, können Sie MAX_SIM_COSINE, MAX_SIM_IP oder MAX_SIM_L2 als metrischen Typ verwenden.

  • Für ein Vektorfeld, das Vektoreinbettungen des Typs BINARY_VECTOR speichert, können Sie MAX_SIM_JACCADR oder MAX_SIM_HAMMING als metrischen Typ verwenden.

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 Metric Euklidische Metrik

wobei a = (a0, a1,...,an-1) und b = (b0, b1,..., 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 nur dann den Wert vor der Anwendung der Quadratwurzel, wenn der euklidische Abstand als Abstandsmetrik gewählt wurde.

Inneres Produkt (IP)

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

IP Formula IP-Formel

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

Wenn Sie IP zur Berechnung von Ähnlichkeiten zwischen Einbettungen verwenden, müssen Sie Ihre Einbettungen normalisieren. Nach der Normalisierung entspricht das innere Produkt der Kosinusähnlichkeit.

Angenommen, X' ist von der Einbettung X normalisiert:

Normalize Formula Normalisierungsformel

Die Korrelation zwischen den beiden Einbettungen ist wie folgt:

Correlation Between Embeddings Korrelation zwischen Einbettungen

Kosinus-Ähnlichkeit

Bei der Kosinusä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 Liniensegmente vorstellen, die vom gleichen Punkt ausgehen, z. B. [0,0,...], aber in unterschiedliche Richtungen zeigen.

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

Cosine Similarity Kosinus-Ä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 ist, desto kleiner ist der Winkel zwischen den beiden 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-Distanzkoeffizient 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 Formula Formel für den JACCARD-Ähnlichkeitskoeffizienten

Die JACCARD-Distanz misst die Unähnlichkeit zwischen Datensätzen und wird durch Subtraktion des JACCARD-Ähnlichkeitskoeffizienten von 1 ermittelt. Bei binären Variablen entspricht die JACCARD-Distanz dem Tanimoto-Koeffizienten.

JACCARD Distance Formula JACCARD-Abstandsformel

MHJACCARD

MinHash Jaccard (MHJACCARD) ist ein metrischer Typ, der für eine effiziente, ungefähre Ähnlichkeitssuche über große Mengen verwendet wird, wie z. B. Dokument-Wortmengen, Benutzer-Tagmengen oder genomische k-mer-Mengen. Anstatt rohe Mengen direkt zu vergleichen, vergleicht MHJACCARD MinHash-Signaturen, die kompakte Darstellungen zur effizienten Schätzung der Jaccard-Ähnlichkeit sind.

Dieser Ansatz ist wesentlich schneller als die Berechnung der exakten Jaccard-Ähnlichkeit und ist besonders in großen oder hochdimensionalen Szenarien nützlich.

Anwendbarer Vektortyp

  • BINARY_VECTOR, wobei jeder Vektor eine MinHash-Signatur speichert. Jedes Element entspricht dem minimalen Hash-Wert unter einer der unabhängigen Hash-Funktionen, die auf die ursprüngliche Menge angewendet werden.

Definition der Entfernung

MHJACCARD misst, wie viele Positionen in zwei MinHash-Signaturen übereinstimmen. Je höher die Übereinstimmungsquote, desto ähnlicher sind die zugrunde liegenden Mengen.

Milvus berichtet:

  • Abstand = 1 - geschätzte Ähnlichkeit (Übereinstimmungsverhältnis)

Der Abstandswert reicht von 0 bis 1:

  • 0 bedeutet, dass die MinHash-Signaturen identisch sind (geschätzte Jaccard-Ähnlichkeit = 1)

  • 1 bedeutet, dass es an keiner Position eine Übereinstimmung gibt (geschätzte Jaccard-Ähnlichkeit = 0)

Informationen zu technischen Details finden Sie unter MINHASH_LSH.

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.

BM25-Ähnlichkeit

BM25 ist eine weit verbreitete Methode zur Messung der Textrelevanz, die speziell für die Volltextsuche entwickelt wurde. Sie kombiniert die folgenden drei Schlüsselfaktoren:

  • Termfrequenz (TF): Misst, wie häufig ein Begriff in einem Dokument vorkommt. Während höhere Häufigkeiten oft auf eine größere Bedeutung hinweisen, verwendet BM25 den Sättigungsparameter k1k_1 k um zu verhindern, dass zu häufige Begriffe die Relevanzbewertung dominieren.

  • Umgekehrte Dokumenthäufigkeit (IDF): Spiegelt die Bedeutung eines Begriffs im gesamten Korpus wider. Begriffe, die in weniger Dokumenten vorkommen, erhalten einen höheren IDF-Wert, was auf einen größeren Beitrag zur Relevanz hinweist.

  • Normalisierung der Dokumentlänge: Längere Dokumente werden tendenziell höher bewertet, da sie mehr Begriffe enthalten. BM25 entschärft diese Verzerrung durch Normalisierung der Dokumentlängen, wobei der Parameter bb b die Stärke dieser Normalisierung steuert.

Die BM25-Bewertung wird wie folgt berechnet:

score(D,Q)=i=1nIDF(qi)TF(qi,D)(k1+1)TF(qi,D)+k1(1b+bDavgdl)score(D, Q)=\sum_{i=1}^{n}IDF(q_i)\cdot {{TF(q_i,D)\cdot(k_1+1)}\over{TF(q_i, D)+k_1\cdot(1-b+b\cdot {{|D|}\over{avgdl}})}}

Beschreibung der Parameter:

  • QQ Q: Der vom Benutzer angegebene Suchtext.

  • DD D: Das zu bewertende Dokument.

  • TF(qi,D)TF(q_i, D) TF,: Termfrequenz, die angibt, wie oft der Term qiq_iq im Dokument DD D vorkommt.

  • IDF(qi)IDF(q_i)): Inverse Dokumenthäufigkeit, berechnet als:

    IDF(qi)=log(Nn(qi)+0.5n(qi)+0.5+1)IDF(q_i)=\log({N-n(q_i)+0.5\over n(q_i)+0.5} + 1)

    wobei NN N die Gesamtzahl der Dokumente im Korpus ist,undn(qi)n(q_i) n ) die Anzahl der Dokumente ist, die den Begriff qiq_i q enthalten.

  • ∣D∣|D| Länge des Dokuments DD D (Gesamtzahl der Begriffe).

  • avgdlavgdl: Durchschnittliche Länge aller Dokumente im Korpus.

  • k1k_1 k: Steuert den Einfluss der Termhäufigkeit auf die Punktzahl. Höhere Werte erhöhen die Bedeutung der Termhäufigkeit. Der typische Bereich ist [1.2, 2.0], während Milvus einen Bereich von [0, 3] zulässt.

  • bb b: Steuert den Grad der Längennormalisierung, der von 0 bis 1 reicht. Bei einem Wert von 0 wird keine Normalisierung vorgenommen; bei einem Wert von 1 wird eine vollständige Normalisierung vorgenommen.

Try Managed Milvus for Free

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

Get Started
Feedback

War diese Seite hilfreich?