SubtractEmbeddings
Subtrai o vetor de incorporação v2 de v1 e retorna o resultado como um vetor normalizado.
Formato
SubtractEmbeddings ( v1 ; v2 )
Parâmetros
v1
e v2
- qualquer expressão de texto, campo de texto ou campo de container que contenha vetores de incorporação com as mesmas dimensões.
Tipo de dados retornado
texto, container
Originada na versão
22.0
Descrição
Essa função realiza subtração vetorial (v1
- v2
) em dois vetores de incorporação e retorna o resultado como um vetor normalizado. A normalização concentra o vetor resultante em sua direção semântica, em vez de sua magnitude, o que é uma prática padrão para comparar ou manipular incorporações.
Use essa função para isolar ou modificar conceitos semânticos removendo o significado de um vetor (v2
) de outro (v1
). Por exemplo, subtrair o vetor "frio" do vetor "inverno" pode resultar em um vetor que representa "aspectos do inverno não relacionados ao frio", potencialmente inclinados a conceitos como "inverno ameno" ou simplesmente "estação". Uma analogia famosa é que o vetor para "rei" menos o vetor para "homem" mais o vetor para "mulher" resulta em um vetor muito próximo de "rainha".
Se v1
e v2
forem texto, eles deverão estar na forma de matrizes JSON. Normalmente, o uso de vetores de incorporação como dados de container binário melhora o desempenho.
Notas
-
Os vetores de incorporação devem ser gerados a partir do mesmo modelo para garantir compatibilidade e desempenho; a combinação de vetores de incorporação de modelos diferentes não é suportada.
-
Essa função retorna "?" se:
-
Se
v1
ev2
tiverem dimensões diferentes -
Ou o resultado for um vetor zero (o que pode acontecer se v1 e v2 forem idênticos), porque a função não pode normalizar um vetor zero
-
Exemplo 1
SubtractEmbeddings ( "[1, 2, 3]" ; "[4, 5, 6]" )
retorna [-0,57735026918962573106, -0,57735026918962573106, -0,57735026918962573106]. A subtração é [1-4, 2-5, 3-6] = [-3, -3, -3]. Então a função normaliza esse vetor e o retorna como uma matriz JSON porque ambas as entradas eram de texto.
Exemplo 2
SubtractEmbeddings ( Concepts::Winter_Embedding ; Concepts::Cold_Embedding )
retorna um objeto de container contendo o vetor normalizado que representa o conceito de "inverno" com o conceito de "frio" removido.
Este exemplo assume que Concepts::Winter_Embedding contém o vetor de incorporação para "inverno" e Concepts::Cold_Embedding contém o vetor de incorporação para "frio". O vetor resultante pode ser usado com a etapa de script Etapa de script Realizar pesquisa semântica para encontrar registros discutindo o inverno em contextos em que o frio não é o foco principal (por exemplo, moda de inverno, férias de inverno).
Exemplo 3
Para demonstrar a analogia "rei - homem + mulher ≈ rainha", você pode combinar o uso de SubtractEmbeddings e AddEmbeddings. Suponha que você tenha uma tabela de Conceitos com os campos ConceptName e ConceptVector contendo incorporações para "Rei", "Homem", "Mulher" e "Rainha".
Definir variável [ $kingMinusMan ; Valor: SubtractEmbeddings ( Concepts::King_Embedding ; Concepts::Man_Embedding ) ]
Definir variável [ $queenAnalogyEmbedding ; Valor: AddEmbeddings ( $kingMinusMan ; Concepts::Woman_Embedding ) ]
A variável $queenAnalogyEmbedding agora contém um objeto de container com o vetor normalizado resultante do cálculo da analogia. Você pode então testar a analogia usando:
CosineSimilarity ( $queenAnalogyEmbedding ; Concepts::Vector_Queen )
Um resultado próximo de 1 indicaria que a analogia é bem representada pelo modelo de incorporação utilizado.