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 en v2 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".

Kopiëren
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.