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 |
|---|---|---|---|
|
2-32,768 |
|
|
|
2-32,768 |
|
|
|
2-32,768 |
|
|
|
2-32,768 |
|
|
|
Die Angabe der Dimension ist nicht erforderlich. |
|
|
|
8-32,768*8 |
|
|
Für Vektorfelder des Typs
SPARSE\_FLOAT\_VECTORverwenden Sie den metrischen TypBM25nur, wenn Sie eine Volltextsuche durchführen. Weitere Informationen finden Sie unter Volltextsuche.Bei Vektorfeldern des Typs
BINARY_VECTORmuss 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 |
|---|---|---|
|
Ein kleinerer Wert zeigt eine größere Ähnlichkeit an. |
[0, ∞) |
|
Ein größerer Wert weist auf eine größere Ähnlichkeit hin. |
[-1, 1] |
|
Ein größerer Wert weist auf eine größere Ähnlichkeit hin. |
[-1, 1] |
|
Ein kleinerer Wert weist auf eine größere Ähnlichkeit hin. |
[0, 1] |
|
Schätzt die Jaccard-Ähnlichkeit anhand der MinHash-Signaturbits; kleinerer Abstand = größere Ähnlichkeit |
[0, 1] |
|
Ein kleinerer Wert weist auf eine größere Ähnlichkeit hin. |
[0, dim(vector)] |
|
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_VECTORoderINT8_VECTORspeichert, können SieMAX_SIM_COSINE,MAX_SIM_IPoderMAX_SIM_L2als metrischen Typ verwenden.Für ein Vektorfeld, das Vektoreinbettungen des Typs
BINARY_VECTORspeichert, können SieMAX_SIM_JACCADRoderMAX_SIM_HAMMINGals 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:
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-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:
Normalisierungsformel
Die Korrelation zwischen den beiden Einbettungen ist wie folgt:
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:
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.
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-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 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 b die Stärke dieser Normalisierung steuert.
Die BM25-Bewertung wird wie folgt berechnet:
Beschreibung der Parameter:
Q: Der vom Benutzer angegebene Suchtext.
D: Das zu bewertende Dokument.
TF,: Termfrequenz, die angibt, wie oft der Term q im Dokument D vorkommt.
): Inverse Dokumenthäufigkeit, berechnet als:
wobei N die Gesamtzahl der Dokumente im Korpus ist, n ) die Anzahl der Dokumente ist, die den Begriff q enthalten.
Länge des Dokuments D (Gesamtzahl der Begriffe).
: Durchschnittliche Länge aller Dokumente im Korpus.
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.
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.