类别:

向量相似性函数

VECTOR_COSINE_SIMILARITY

计算两个 向量 之间的余弦相似性。

余弦相似性基于多维空间中两个向量之间的角度;不考虑向量的大小。余弦相似性值是向量的内积除以其长度的乘积。余弦相似性始终在区间 [-1, 1] 内。例如,相同向量的余弦相似性为 1,两个正交向量的相似性为 0,而两个相反向量的相似性为 -1

另请参阅:

VECTOR_INNER_PRODUCTVECTOR_L2_DISTANCE向量嵌入

语法

VECTOR_COSINE_SIMILARITY( <vector>, <vector> )
Copy

实参

vector

计算角度起始值的 VECTOR 值。

vector

计算角度终止值的 VECTOR 值。

返回

返回 FLOAT 值,区间为 [-1, 1],表示两个输入向量之间的余弦相似性。

使用说明

  • 由于对向量比较函数进行了计算优化,浮点误差可能会比通常情况下稍大(例如约 1e-4)。

示例

此示例调用 VECTOR_COSINE_SIMILARITY 函数查找最接近 [1,2,3] 的向量。

SELECT a, VECTOR_COSINE_SIMILARITY(a, [1,2,3]::VECTOR(FLOAT, 3)) AS similarity
  FROM vectors
  ORDER BY similarity DESC
  LIMIT 1;
Copy
+-------------------------+
| [1, 2.2, 3] | 0.9990... |
+-------------------------+
语言: 中文