Gesprochene Zusammenfassung — drücke auf Play zum Mitlesen: die gesprochene Zeile bleibt oben.
Wie multidimensionale „Nähe" funktioniert
Das Problem mit Strings
Suchen Sie nach „Auto" und Sie finden jedes Dokument, das das Wort „Auto" enthält. Sie werden „Kraftwagen" nicht finden. Oder „Fahrzeug". Oder „mein Civic braucht neue Bremsen. "
Jahrzehntelang war das die Suche, die Ergebnisse basierend auf String-Ähnlichkeit statt auf Bedeutung zurückgab. Google machte kontinuierlich inkrementelle Verbesserungen durch Engineering: Synonym-Wörterbücher ordneten „Auto" „Kraftwagen" zu, Stemming-Regeln verbanden „laufen" mit „lauf", und Click-Pattern-Mining zeigte, dass Menschen, die nach „NYC Wohnungen" suchen, die gleichen Ergebnisse wie „Manhattan Mietungen" wollen. Die Verbindungen zwischen nicht übereinstimmenden Strings mussten mehr oder weniger von Hand zugeordnet werden.
Embeddings stellten all dies in Frage mit der Idee, dass Bedeutung ein Ort sein könnte. Durch die Umwandlung von Text in Koordinaten landen ähnliche Konzepte in der Nähe beieinander. Diese Abbildung des semantischen Raums ist nicht manuell, sondern vielmehr emergent aus Trainingsdaten.
Kodierung
Beginnen wir mit einem vereinfachten Beispiel.
Stellen Sie sich vor, Sie würden jedes Dokument in einem Wissenscorpus auf zwei Dimensionen bewerten: wie sehr es sich auf Dinosaurier bezieht, und wie sehr es sich auf Achterbahnen bezieht. Dokumente über ähnliche Themen würden in der Nähe beieinander landen.
Beginnen wir mit nur drei Quellen. Platzieren Sie jede davon dort, wo Sie denken, dass sie hingehört.
Wie sehr bezieht sich dies auf Achterbahnen? →
überhaupt nicht sehr sehr klicken Sie, um das ausgewählte Element zu platzieren
Wie sehr bezieht sich dies auf Dinosaurier? →
Quellen
🦕
Ein Kinderbuch über Dinosaurier klicken Sie zum Auswählen
🎢
Die Velocicoaster-Webseite klicken Sie zum Auswählen
📚
Eine ganze Enzyklopädie klicken Sie zum Auswählen
Sie haben gerade Bedeutung im 2D-Raum abgebildet und unsere Sammlung von Elementen basierend auf ihren Inhalten aufgezeichnet.
Abruf
Jetzt durchsuchen wir diesen Raum.
Zeichnen Sie eine Frage auf demselben Diagramm mit denselben Achsen auf. Durch die Abbildung Ihrer Frage mit der gleichen Logik, die Sie zur Abbildung von Quellen verwendet haben, können Sie sicher sein, dass die nächsten Elemente die relevantesten sind. Bonusfunktion: Verwenden Sie den Schieberegler, um zu steuern, wie viele abgerufen werden.
Abzurufende Quellen (k): 2
Wie sehr bezieht sich dies auf Achterbahnen? →
überhaupt nicht sehr sehr klicken Sie, um die Frage zu platzieren
Wie sehr bezieht sich dies auf Dinosaurier? →
Frage
❓ „Was ist die beste dinosaurier-themed Achterbahn? "
klicken Sie auf das Diagramm, um zu platzieren
Das ist Ähnlichkeitssuche in a nutshell. Wir zeichnen die Frage auf und finden die nächsten k Elemente. Statt Keyword-Matching oder Synonym-Tabellen verwenden wir mehrdimensionale Nähe.
Zwei Achsen sind ein Anfang. Aber zwei Dimensionen können nur zwei Konzepte erfassen. Die reale Welt hat mehr als zwei Themen, daher brauchen wir mehr Dimensionen.
Mehr Dimensionen
Was wäre, wenn wir eine dritte Achse hinzufügen würden? Verwenden wir Biologie.
Das Kinderbuch schneidet hoch ab (Arten, Lebensräume, Ernährung). Die Enzyklopädie behandelt einiges. Die Velocicoaster-Seite erwähnt es kaum.
Ziehen Sie, um zu drehen.
Drei Dimensionen, drei Koordinaten pro Dokument. Die Velocicoaster-Seite ist jetzt (0,50, 0,90, 0,05) statt (0,50, 0,90).
Versuchen Sie jetzt, sich eine vierte Achse vorzustellen.
Da ich nur in 3 Dimensionen existiere, kann ich persönlich nicht 😔 aber das spielt eigentlich keine Rolle! Jede neue Dimension fügt einfach eine weitere Koordinate zu jedem Punkt und einen weiteren quadrierten Term zur Distanzformel hinzu. Die räumliche Darstellung funktioniert bei 4D nicht mehr, aber die Mathematik funktioniert weiter.
Wir müssen weit über 4D hinausgehen, da echte Embedding-Modelle etwa tausend Dimensionen verwenden. Jedes Dokument und jede Abfrage wird zu einem Punkt in diesem tausenddimensionalen Raum. „Finde die nächsten Dokumente" bedeutet immer noch das Gleiche wie auf dem 2D-Diagramm. Es ist nur eine längere Distanzberechnung.
Unbeschriftete Achsen
Wir haben die Achsen gewählt: Dinosaurier, Achterbahnen, Biologie. Aber wer bestimmt, welche 1. 024 Themen es in ein echtes Embedding-Modell schaffen?
Tatsächlich entscheidet niemand. Die Bedeutung jeder Achse ist emergent (das heißt, sie taucht einfach während des Trainings auf) und eher eine Black Box. Sie können sich Dimension 847 ansehen und sagen „das ist die Dinosaurier-Achse". Die Dimensionen entsprechen nichts, das ein Mensch benennen könnte.
Dies macht den Raum schwerer zu verstehen. Wir können Dimension 847 nicht abfragen, um zu verstehen, warum zwei Texte in der Nähe beieinander landeten, oder warum etwas, das wir erwartet hätten, nah beieinander zu sein, weit entfernt endete.
Text als Koordinaten
Wer weist also die Koordinaten zu? Ein Embedding-Modell. Beliebiger String rein, eine Liste mit fester Länge von Zahlen raus.
Text
„von zu Hause aus arbeiten"
→
Embedding
[0,23, -0,87, 0,41, ... ]
1. 024 Werte
Text
„Mitarbeiter dürfen bis zu zwei Tage pro Woche mit Genehmigung des Managers remote arbeiten. "
→
Embedding
[0,71, 0,09, -0,33, ... ]
1. 024 Werte
Die Ausgabe hat immer die gleiche Länge (1. 024 Werte in unserem spezifischen Fall, da wir das Embedding-Modell von VoyageAI verwenden) und dies gilt unabhängig davon, ob die Eingabe drei Wörter oder drei Absätze sind. Ein Textabschnitt entspricht einem Punkt im Raum. Das Embedding-Modell liest den Text und gibt einen einzelnen Vektor aus.
Diejenigen unter Ihnen mit mathematischem Blick werden erkennen, dass „Vektor" und „Koordinatensatz" nicht wirklich austauschbar sind, aber für unsere Zwecke ist es angemessen, den Vektor als die Adresse zu betrachten, unter der dieser Text relativ zu allem anderen lebt.
Ähnlichkeit
„Nächster" auf unserem 2D-Diagramm bedeutete Luftliniendistanz. In der Praxis verwendet die Ähnlichkeitssuche stattdessen Kosinus-Ähnlichkeit. Kosinus-Ähnlichkeit ist einfach ein weiteres Maß dafür, wie ähnlich zwei Textstücke sind, basierend auf der Richtung, in die ihre Vektoren zeigen, statt wie weit auseinander sie sitzen.
Probieren Sie es selbst aus! Wählen Sie zwei Quellen, um ihre Kosinus-Ähnlichkeit zu sehen.
Quelle A
❓ 🦕 🎢 📚
❓ Beste Dinosaurier-Achterbahn?
Quelle B
❓ 🦕 🎢 📚
🦕 Kinderbuch über Dinosaurier
Kosinus-Ähnlichkeit 0,2894
-1 entgegengesetzt 0 unverbunden 1 identisch
Versuchen Sie, die Velocicoaster-Seite mit dem Dinosaurierbuch zu vergleichen — ihre Vektoren zeigen in sehr unterschiedliche Richtungen. Die Enzyklopädie landet irgendwo zwischen allem, was passt, da sie ein Allrounder, aber kein Spezialist ist.