A função INNER_PRODUCT_DISTANCE calcula a distância do produto interno entre dois vetores.
Nota
O produto interno, também conhecido como produto escalar ou produto ponto, resulta da multiplicação de dois vetores. Esse valor indica o grau de alinhamento entre eles: vetores semelhantes apresentam um produto interno maior que vetores distintos.
Sintaxe
FLOAT INNER_PRODUCT_DISTANCE(<vector>, <vector>)
Parâmetros
vector: obrigatório. Vetor do tipo de dados VECTOR.
Valor de retorno
Retorna um valor FLOAT que representa a distância do produto interno entre os dois vetores de entrada.
Otimizações em funções vetoriais podem reduzir a precisão de ponto flutuante. O resultado desta função pode apresentar erro de até 1e-4.
Exemplos
-- Enable the VECTOR data type.
set odps.sql.type.vector.enable=true;
set odps.sql.type.system.odps2=true;
-- Prepare the data.
CREATE TABLE vectors (a VECTOR(FLOAT, 3), b VECTOR(FLOAT, 3));
INSERT INTO vectors SELECT CAST(ARRAY(1.1,2.2,3.0) AS VECTOR(FLOAT,3)), CAST(ARRAY(1.0,1.0,1.0) AS VECTOR(FLOAT,3));
INSERT INTO vectors SELECT CAST(ARRAY(1.0,2.2,3.0) AS VECTOR(FLOAT,3)), CAST(ARRAY(4.0,6.0,8.0) AS VECTOR(FLOAT,3));
-- Calculate the inner product distance between a and b.
SELECT INNER_PRODUCT_DISTANCE(a, b) FROM vectors;
-- Result
+------------+
| _c0 |
+------------+
| -40.20000076293945 |
| -5.300000190734863 |
+------------+