SubtractEmbeddings
Trekt insluitvector v2 van v1 af en retourneert het resultaat als een genormaliseerde vector.
Opmaak
SubtractEmbeddings ( v1 ; v2 )
Parameters
v1
en v2
- een tekstexpressie, tekstveld of containerveld dat ingesloten vectoren met dezelfde afmetingen bevat.
Resulterend gegevenstype
tekst, container
Afkomstig uit versie
22.0
Beschrijving
Deze functie voert vectorsubtractie (v1
- v2
) uit op twee inbedvectoren en retourneert het resultaat als een genormaliseerde vector. Normalisatie richt de resulterende vector op de semantische richting in plaats van op de grootte, wat de standaardwerkwijze is voor het vergelijken of manipuleren van insluitingen.
Gebruik deze functie om semantische concepten te isoleren of te wijzigen door de betekenis van de ene vector (v2
) van een andere (v1
) te verwijderen). Het aftrekken van de vector voor 'kou' van de vector voor 'winter' kan bijvoorbeeld resulteren in een vector die 'winteraspecten vertegenwoordigt die geen verband houden met kou', die mogelijk neigt naar concepten als 'milde winter' of gewoon 'seizoen'. Een bekende analogie is dat de vector voor "koning" minus de vector voor "man" plus de vector voor "vrouw" resulteert in een vector zeer dicht bij "koningin".
Als v1
en v2
tekst zijn, moeten ze de vorm hebben van JSON arrays. Meestal echter verbetert het gebruik van insluitvectoren als binaire containergegevens de prestaties.
Opmerkingen
-
Alle insluitvectoren moeten worden gegenereerd op basis van hetzelfde model om compatibiliteit en prestaties te garanderen; het mengen van insluitvectoren van verschillende modellen wordt niet ondersteund.
-
Deze functie retourneert "?" als:
-
Als
v1
env2
verschillende afmetingen hebben -
Of het resultaat is een nulvector (wat kan gebeuren als v1 en v2 identiek zijn), omdat de functie een nulvector niet kan normaliseren
-
Voorbeeld 1
SubtractEmbeddings ( "[1, 2, 3]" ; "[4, 5, 6]" )
geeft [-0.57735026918962573106, -0.57735026918962573106, -0.57735026918962573106] als resultaat. De subtractie is [1-4, 2-5, 3-6] = [-3, -3, -3]. Vervolgens normaliseert de functie deze vector en retourneert deze als een JSON-array omdat beide invoeren tekst waren.
Voorbeeld 2
SubtractEmbeddings ( Concepts::Winter_Embedding ; Concepten::Cold_Embedding )
retourneert een container object dat de genormaliseerde vector vertegenwoordigt het concept van "winter" met het concept van "kou" verwijderd.
In dit voorbeeld wordt ervan uitgegaan dat Concepts::Winter_Embedding de insluitvector voor "winter" bevat en Concepts::Cold_Embedding bevat de insluitvector voor "kou". De resulterende vector kan worden gebruikt met de Semantische zoekopdracht uitvoeren scriptstap om records te vinden die de winter bespreken in contexten waar koud niet de primaire focus is (bijvoorbeeld wintermode, wintervakanties).
Voorbeeld 3
Om de analogie "koning - man + vrouw ≈ koningin" te demonstreren, kunt u het gebruik van SubtractEmbeddings en AddEmbeddings combineren. Stel dat u een Concepts-tabel hebt met de velden ConceptName en ConceptVector met insluitingen voor "Koning", "Man", "Vrouw" en "Koningin".
Variabele instellen [ $kingMinusMan ; Waarde: SubtractEmbeddings ( Concepts::King_Embedding ; Concepts::Man_Embedding ) ]
Variabele instellen [ $queenAnalogyEmbedding ; Waarde: AddEmbeddings ( $kingMinusMan ; Concepts::Woman_Embedding ) ]
De variabele $queenAnalogyEmbedding bevat nu een containerobject met de genormaliseerde vector die het resultaat is van de analoge berekening. Vervolgens kunt u de analogie testen met:
CosineSimilariteit ( $queenAnalogyEmbedding ; Concepts::Vector_Queen )
Een resultaat dicht bij 1 geeft aan dat de analogie goed is voor het gebruikte insluitmodel.