INNER_PRODUCT_DISTANCE函數用於計算兩個向量的內積距離。
說明
內積(也稱點積或標量積)是將兩個向量相乘。結果表示兩個向量的共同方向。相似向量的內積大於不相似向量的內積。
命令格式
FLOAT INNER_PRODUCT_DISTANCE(<vector>, <vector>)參數說明
vector:必填。VECTOR類型。用於計算內積距離的向量值。
傳回值說明
返回FLOAT類型,表示兩個給定輸入向量的內積距離。
向量函數經過最佳化,可能會降低浮點精度。此函數的結果誤差範圍最大可達1e-4。
使用樣本
-- 開啟VECTOR資料類型
set odps.sql.type.vector.enable=true;
set odps.sql.type.system.odps2=true;
-- 準備資料
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));
-- 計算a,b之間的內積距離
SELECT INNER_PRODUCT_DISTANCE(a, b) FROM vectors;
-- 返回結果
+------------+
| _c0 |
+------------+
| -40.20000076293945 |
| -5.300000190734863 |
+------------+