La función INNER_PRODUCT_DISTANCE calcula la distancia de producto interno entre dos vectores.
Nota
El producto interno, también conocido como producto punto o producto escalar, es el resultado de multiplicar dos vectores. Este valor indica el grado de alineación entre ambos vectores. Los vectores similares tienen un producto interno mayor que los vectores distintos.
Sintaxis
FLOAT INNER_PRODUCT_DISTANCE(<vector>, <vector>)
Parámetros
vector: obligatorio. Un vector del tipo de datos VECTOR.
Valor devuelto
Devuelve un valor FLOAT que representa la distancia de producto interno entre los dos vectores de entrada.
Las optimizaciones en las funciones de vectores pueden reducir la precisión de punto flotante. El resultado de esta función puede tener un error de hasta 1e-4.
Ejemplos
-- 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 |
+------------+