SubtractEmbeddings
Zieht den Einbettungsvektor v2 von v1 ab und gibt das Ergebnis als normalisierten Vektor zurück.
Format
SubtractEmbeddings ( v1; v2 )
Parameter
v1
und v2
– beliebiger Textausdruck, Textfeld oder Containerfeld, das Einbettungsvektoren mit denselben Dimensionen enthält.
Zurückgegebener Datentyp
Text, Container
Ursprung in Version
22.0
Beschreibung
Diese Funktion führt eine Vektorsubtraktion (v1
- v2
) für zwei Einbettungsvektoren durch und gibt das Ergebnis als normalisierten Vektor zurück. Die Normalisierung konzentriert den resultierenden Vektor auf seine semantische Richtung und nicht auf seine Größe, was beim Vergleichen oder Bearbeiten von Einbettungen gängige Praxis ist.
Verwenden Sie diese Funktion, um semantische Konzepte zu isolieren oder zu verändern, indem Sie die Bedeutung eines Vektors (v2
) aus einem anderen (v1
) entfernen. Wenn Sie beispielsweise den Vektor für „kalt” vom Vektor für „Winter” subtrahieren, könnte dies zu einem Vektor führen, der „Winteraspekte ohne Bezug zu Kälte” darstellt und möglicherweise zu Konzepten wie „milder Winter” oder einfach „Jahreszeit” tendiert. Eine bekannte Analogie ist, dass der Vektor für „König” minus dem Vektor für „Mann” plus dem Vektor für „Frau” einen Vektor ergibt, der sehr nahe an „Königin” liegt.
Wenn v1
und v2
Text sind, müssen sie in Form von JSON-Arrays vorliegen. Normalerweise verbessert die Verwendung von Einbettungsvektoren als binäre Containerdaten jedoch die Leistung.
Hinweise
-
Einbettungsvektoren müssen aus demselben Modell generiert werden, um Kompatibilität und Leistung zu gewährleisten; das Mischen von Einbettungsvektoren aus verschiedenen Modellen wird nicht unterstützt.
-
Diese Funktion gibt „?“ zurück, wenn:
-
Wenn
v1
undv2
unterschiedliche Dimensionen haben -
Oder das Ergebnis ein Nullvektor ist (was passieren kann, wenn v1 und v2 identisch sind), da die Funktion einen Nullvektor nicht normalisieren kann
-
Beispiel 1
SubtractEmbeddings ( "[1, 2, 3]" ; "[4, 5, 6]" )
gibt [-0.57735026918962573106, -0.57735026918962573106, -0.57735026918962573106] zurück. Die Subtraktion lautet [1-4, 2-5, 3-6] = [-3, -3, -3]. Anschließend normalisiert die Funktion diesen Vektor und gibt ihn als JSON-Array zurück, da beide Eingaben Text waren.
Beispiel 2
SubtractEmbeddings ( Konzepte::Winter_Einbettung ; Konzepte::Kälte_Einbettung )
gibt ein Containerobjekt zurück, das den normalisierten Vektor enthält, der das Konzept „Winter” ohne das Konzept „Kälte” darstellt.
In diesem Beispiel wird davon ausgegangen, dass Konzepte::Winter_Einbettung den Einbettungsvektor für „Winter” und Konzepte::Kälte_Einbettung den Einbettungsvektor für „Kälte” enthält. Der resultierende Vektor könnte mit dem Scriptschritt „Semantische Suche durchführen“ verwendet werden, um Datensätze zu finden, in denen Winter in einem Kontext erwähnt wird, in dem Kälte nicht im Vordergrund steht (z. B. Wintermode, Winterurlaub).
Beispiel 3
Um die Analogie „König - Mann + Frau ≈ Königin” zu veranschaulichen, können Sie die Funktionen „SubtractEmbeddings” und „AddEmbeddings” kombinieren. Angenommen, Sie haben eine Tabelle „Konzepte“ mit den Feldern „KonzeptName“ und „KonzeptVektor“, die Einbettungen für „König“, „Mann“, „Frau“ und „Königin“ enthalten.
Variable setzen [ $königMinusMann ; Wert: SubtractEmbeddings ( Konzepte::König_Einbettung ; Konzepte::Mann_Einbettung ) ]
Variable setzen [ $königinAnalogieEinbettung ; Wert: AddEmbeddings ( $königMinusMann ; Konzepte::Frau_Einbettung ) ]
Die Variable $königinAnalogieEinbettung enthält nun ein Containerobjekt mit dem normalisierten Vektor, der sich aus der Analogieformel ergibt. Sie können die Analogie dann wie folgt testen:
CosineSimilarity ( $königinAnalogieEinbettung ; Konzepte::Vektor_Königin )
Ein Ergebnis nahe 1 würde darauf hindeuten, dass die Analogie für das verwendete Einbettungsmodell gut zutrifft.