SubtractEmbeddings
Resta el vector de incrustación v2 de v1 y devuelve el resultado como un vector normalizado.
Formato
SubtractEmbeddings ( v1 ; v2 )
Parámetros
v1
y v2
: cualquier expresión de texto, campo de texto o campo de contenedor que contenga vectores de incrustación con las mismas dimensiones.
Tipo de datos devuelto
texto, contenedor
Se origina en
22.0
Descripción
Esta función realiza la resta de vectores (v1
- v2
) en dos vectores de incrustación y devuelve el resultado en forma de vector normalizado. La normalización centra el vector resultante en su dirección semántica en lugar de en su magnitud, lo cual representa una práctica estándar para comparar o manipular incrustaciones.
Utilice esta función para aislar o modificar los conceptos semánticos eliminando el significado de un vector (v2
) de otro (v1
). Por ejemplo, restar el vector de "frío" del vector de "invierno" podría resultar en un vector que represente "aspectos invernales no relacionados con el frío", potencialmente inclinado hacia conceptos como "invierno suave" o simplemente "temporada". Una analogía famosa es que el vector de "rey" menos el vector de "hombre" más el vector de "mujer" da como resultado un vector muy cercano a "reina".
Si v1
y v2
son texto, deben tener formato de matrices de JSON. Sin embargo, por lo general, el uso de vectores de incrustación como datos contenedores binarios mejora el rendimiento.
Notas
-
Los vectores de incrustación deben generarse a partir del mismo modelo para garantizar la compatibilidad y el rendimiento; no se admite la combinación de vectores de incrustación de diferentes modelos.
-
Esta función devuelve "?" en los siguientes casos:
-
Si
v1
yv2
tienen dimensiones diferentes -
O el resultado es un vector cero (lo que puede suceder si v1 y v2 son idénticos), porque la función no puede normalizar un vector cero
-
Ejemplo 1
SubtractEmbeddings ( "[1, 2, 3]" ; "[4, 5, 6]" )
devuelve [-0.57735026918962573106, -0.57735026918962573106, -0.57735026918962573106]. La resta es [1-4, 2-5, 3-6] = [-3, -3, -3]. Luego, la función normaliza este vector y lo devuelve como matriz de JSON porque ambas entradas eran texto.
Ejemplo 2
SubtractEmbeddings ( Concepts::Winter_Embedding ; Concepts::Cold_Embedding )
devuelve un objeto contenedor que contiene el vector normalizado que representa el concepto de "invierno" con el concepto de "frío" eliminado.
Este ejemplo asume que Concepts::Winter_Embedding contiene el vector de incrustación para "invierno" y Concepts::Cold_Embedding contiene el vector de incrustación para "frío". El vector resultante podría usarse con el paso de guión Realizar búsqueda semántica para buscar registros que traten el invierno en contextos en los que el frío no es el enfoque principal (por ejemplo, moda de invierno, vacaciones de invierno).
Ejemplo 3
Para demostrar la analogía "rey - hombre + mujer ≈ reina", puede combinar el uso de SubtractEmbeddings y AddEmbeddings. Supongamos que tiene una tabla de Conceptos con los campos ConceptName y ConceptVector que contienen incrustaciones para "Rey", "Hombre", "Mujer" y "Reina".
Establecer variable [ $kingMinusMan ; Valor: SubtractEmbeddings ( Conceptos::King_Embembedding ; Conceptos::Man_Embedding ) ]
Establecer variable [ $queenAnalogyEmbedding ; Valor: AddEmbeddings ( $kingMinusMan ; Conceptos::Woman_Embedding ) ]
La variable $queenAnalogyEmbedding ahora contiene un objeto contenedor con el vector normalizado resultante del cálculo de la analogía. A continuación, se puede probar la analogía usando:
CosineSimilarity ( $queenAnalogyEmbedding ; Concepts::Vector_Queen )
Un resultado cercano a 1 indicaría que la analogía se sostiene para el modelo de incrustación utilizado.