SubtractEmbeddings

Soustrait le vecteur d’intégration v2 au v1 et renvoie le résultat sous forme de vecteur normalisé.

Format 

SubtractEmbeddings ( v1 ; v2 )

Paramètres 

v1 et v2 : toute expression de texte, rubrique de texte ou rubrique de conteneur qui contient des vecteurs d'intégration avec les mêmes dimensions.

Résultat 

Texte, Conteneur

Provient de la version 

22.0

Description 

Cette fonction effectue une soustraction de vecteurs sur deux vecteurs d'intégration (v1 - v2) et renvoie le résultat sous forme de vecteur normalisé. La normalisation concentre le vecteur résultant sur sa direction sémantique plutôt que sur son ampleur ; une pratique standard pour comparer ou manipuler les intégrations.

Utilisez cette fonction pour isoler ou modifier les concepts sémantiques en supprimant la signification d'un vecteur (v2) d'un autre (v1). Par exemple, soustraire le vecteur pour « froid » du vecteur pour « hiver » pourrait aboutir à un vecteur représentant « les aspects hivernaux sans rapport avec le froid », potentiellement en se penchant vers des concepts tels que « hiver doux » ou simplement « saison ». Une analogie célèbre est que le vecteur pour « roi » moins le vecteur pour « homme » plus le vecteur pour « femme » donne un vecteur très proche de « reine ».

Si v1 et v2 sont du texte, ils doivent se présenter sous la forme de tableaux JSON. Généralement, l'utilisation de vecteurs d'intégration en tant que données de conteneurs binaires améliore les performances.

Remarques 

  • Les vecteurs d'intégration doivent être générés à partir du même modèle pour garantir une compatibilité et des performances optimales ; le mélange de vecteurs d'intégration depuis différents modèles n'est pas pris en charge.

  • Cette fonction renvoie « ? » si :

    • v1 et v2 ont des dimensions différentes ;

    • le résultat est un vecteur zéro (ce qui peut se produire si v1 et v2 sont identiques), car la fonction ne peut pas normaliser un vecteur zéro.

Exemple 1 

SubtractEmbeddings ( "[1, 2, 3]" ; "[4, 5, 6]" ) renvoie [-0,57735026918962573106, -0,57735026918962573106, -0,57735026918962573106]. La soustraction est [1-4, 2-5, 3-6] = [-3, -3, -3]. La fonction normalise ensuite ce vecteur et le renvoie sous forme de tableau JSON (car les deux entrées se présentaient sous forme de texte).

Exemple 2 

SubtractEmbeddings ( Concepts::Intégration_Hiver ; Concepts::Intégration_Froid ) renvoie un objet conteneur qui comprend le vecteur normalisé représentant le concept pour « hiver » avec le concept de « froid » supprimé.

Cet exemple suppose que Concepts::Intégration_Hiver contient le vecteur d'intégration pour « hiver » et Concepts::Intégration_Froid contient le vecteur d'intégration pour « froid ». Le vecteur résultant pourrait être utilisé avec l'action de script Effectuer une recherche sémantique pour trouver des enregistrements évoquant l'hiver dans des contextes où le froid n'est pas le sujet principal (par exemple, la mode d'hiver, les vacances d'hiver, etc.).

Exemple 3 

Pour démontrer l'analogie « roi - homme + femme ≈ reine », vous pouvez combiner SubtractEmbeddings et AddEmbeddings. Supposons que vous ayez une table Concepts avec les rubriques NomConcept et VecteurConcept contenant des intégrations pour « roi », « homme », « femme » et « reine ».

Copier
Définir variable [ $roiMoinsHomme ; Valeur: SubtractEmbeddings ( Concepts::Intégration_Roi ; Concepts::Intégration_Homme ) ]
Définir variable [ $intégrationAnalogieReine ; Valeur: AddEmbeddings ( $roiMoinsHomme ; Concepts::Intégration_Femme ) ]

La variable $intégrationAnalogieReine contient maintenant un objet conteneur avec le vecteur normalisé résultant du calcul de l'analogie. Vous pouvez alors tester l'analogie avec :

CosineSimilarity ( $intégrationAnalogieReine ; Concepts::Reine_Vecteur )

Un résultat proche de 1 indiquerait que l'analogie tient bien la route pour le modèle d'intégration utilisé.