SubtractEmbeddings

Sottrae il vettore di embedding v2 da v1 e restituisce il risultato come vettore normalizzato.

Formato 

SubtractEmbeddings ( v1 ; v2 )

Parametri 

v1 e v2 - qualsiasi espressione di testo, campo Testo o campo Contenitore che contiene vettori di embedding con le stesse dimensioni.

Tipo di dati riportato 

Testo, Contenitore

Creata nella versione 

22.0

Descrizione 

Questa funzione esegue la sottrazione dei vettori (v1 - v2) su due vettori di embedding e restituisce il risultato come vettore normalizzato. La normalizzazione concentra il vettore risultante sulla sua direzione semantica piuttosto che sulla sua grandezza; questo rappresenta una pratica standard per confrontare o manipolare gli embedding.

Utilizzare questa funzione per isolare o modificare i concetti semantici rimuovendo il significato di un vettore (v2) da un altro (v1). Ad esempio, sottrarre il vettore per "freddo" dal vettore per "inverno" potrebbe risultare in un vettore che rappresenta gli "aspetti dell'inverno non correlati al freddo", potenzialmente tendente a concetti come "inverno mite" o semplicemente "stagione". Una famosa analogia è quella in cui il vettore per "re" meno il vettore per "uomo", più il vettore per "donna" si traduce in un vettore molto vicino a "regina".

Se v1 e v2 sono testo, devono essere sotto forma di array JSON. In genere, tuttavia, l'uso di vettori di embedding come dati contenitore binari migliora le prestazioni.

Note 

  • Per garantire compatibilità e performance, i vettori di embedding devono essere generati dallo stesso modello; la combinazione di vettori di embedding generati da modelli diversi non è supportata.

  • Questa funzione restituisce "?" se:

    • Se v1 e v2 hanno dimensioni diverse

    • Oppure il risultato è un vettore zero (questo può accadere se v1 e v2 sono identici), perché la funzione non può normalizzare un vettore zero

Esempio 1 

SubtractEmbeddings ( "[1, 2, 3]" ; "[4, 5, 6]" ) restituisce [-0.57735026918962573106, -0.57735026918962573106, -0.57735026918962573106]. La sottrazione è [1-4, 2-5, 3-6] = [-3, -3, -3]. Quindi la funzione normalizza questo vettore e lo restituisce come array JSON perché entrambi gli input erano testo.

Esempio 2 

SubtractEmbeddings ( Concetti::Inverno_Embedding ; Concetti::Freddo_Embedding ) restituisce un oggetto Contenitore che include il vettore normalizzato che rappresenta il concetto di "inverno", con il concetto di "freddo" rimosso.

Questo esempio presuppone che Concetti::Inverno_Embedding contenga il vettore di embedding per "inverno" e che Concetti::Freddo_Embedding contenga il vettore di embedding per "freddo". Il vettore risultante potrebbe essere utilizzato con l'istruzione di script Esegui ricerca semantica per trovare record in cui si parla dell'inverno in contesti in cui il freddo non è il tema principale (ad esempio la moda invernale, le vacanze invernali).

Esempio 3 

Per dimostrare l'analogia "re - uomo + donna ≈ regina", è possibile combinare l'uso di SubtractEmbeddings e AddEmbeddings. Supponiamo di avere una tabella Concetti con campi NomeConcetto e VettoreConcetto contenenti embedding per "Re", "Uomo", "Donna" e "Regina".

Copia
Imposta variabile [ $reMenoUomo ; Valore: SubtractEmbeddings ( Concetti::Re_Embedding ; Concetti::Uomo_Embedding ) ]
Imposta variabile [ $embeddingAnalogiaRegina ; Valore: AddEmbeddings ( $reMenoUomo ; Concetti::Donna_Embedding ) ]

La variabile $embeddingAnalogiaRegina ora contiene un oggetto Contenitore con il vettore normalizzato risultante dal calcolo dell'analogia. Quindi si potrebbe testare l'analogia usando:

CosineSimilarity ( $embeddingAnalogiaRegina ; Concetti::Vettore_Regina )

Un risultato vicino a 1 indicherà che l'analogia regge bene per il modello di embedding utilizzato.