文档

向量计算函数

更新时间:

文本、语音、图像、视频都能够以向量的形式保存在向量数据库中,方便用户快速搜索和查询。日志服务支持向量计算函数,本文介绍向量函数的基本语法和示例。

向量计算函数列表

重要

以下函数中使用的向量元素,可以用特定格式的字符串来描述,字符串是用"[]"或者"{}"包起来的一组数字,数字之间用逗号分隔开。

函数名称

语法

说明

支持SQL

支持SPL

余弦相似度函数

  • cosine_similarity(array(double) vector1, array(double) vector2)

  • cosine_similarity(varchar vector1, varchar vector2)

余弦相似度的取值范围是[-1, 1]:

  • 当余弦相似度为1时,表示两个向量方向完全相同。

  • 当余弦相似度为-1时,表示两个向量方向完全相反。

  • 当余弦相似度为0时,表示两个向量在几何上是正交的,即它们是垂直的。

×

内积(点积)函数

  • inner_product(array(double) vector1, array(double) vector2)

  • inner_product(varchar vector1, varchar vector2)

  • dot_product(array(double) vector1, array(double) vector2)

计算两个向量的内积。

×

欧氏距离函数

  • euclidean_distance(array(double) vector1, array(double) vector2)

  • euclidean_distance(varchar vector1, varchar vector2)

  • l2_distance(array(double) vector1, array(double) vector2)

  • l2_distance(varchar vector1, varchar vector2)

计算两个向量的欧式距离。

×

向量范数(长度)函数

  • vector_norm(array(double) vector1)

  • vector_norm(array(double) vector1, double p)

  • vector_norm(varchar vector1)

  • vector_norm(varchar vector1, double p)

计算一个向量的范数。范数相当于向量的长度。

×

向量元素和函数

  • vector_sum(array(double) vector1)

  • vector_sum(varchar vector1)

计算一个向量的所有元素之和。

×

向量元素均值函数

  • vector_mean(array(double) vector1)

  • vector_mean(varchar vector1)

计算一个向量的平均值。

×

向量元素方差函数

  • vector_variance(array(double) vector1)

  • vector_variance(varchar vector1)

计算一个向量的方差。方差代表向量元素偏离均值的平均波动幅度的平方和,描述了该向量中元素分布的离散程度。

×

向量元素标准差函数

  • vector_std_dev(array(double) vector1)

  • vector_std_dev(varchar vector1)

计算一个向量的标准差,标准差是方差的正平方根。方差描述了数据点围绕均值的波动大小。方差越大,表示数据点越分散;方差越小,表示数据点越集中。

×

向量加法函数

  • vector_add(array(double) vector1, array(double) vector2)

  • vector_add(varchar vector1, varchar vector2)

计算两个向量相加的结果。

结合向量加减法和向量缩放,可以做任意线性变换。

×

向量减法函数

  • vector_subtract(array(double) vector1, array(double) vector2)

  • vector_subtract(varchar vector1, varchar vector2)

计算两个向量相减的结果。

结合向量的加减法和向量的缩放,可以做任意线性变换。

×

向量缩放函数

  • vector_scale(array(double) vector1, double alpha)

  • vector_scale(varchar vector1, double alpha)

结合向量的加减法和向量的缩放,可以做任何线性变换。

×

cosine_similarity函数

计算x的余弦相似度。

使用示例

  • 查询和分析语句

    * | SELECT cosine_similarity(array[1, 2, 3, 4], array[10, 20, 30, 40])

    * | SELECT cosine_similarity('[1, 2, 3, 4]', '[10, 20, 30, 40]')
  • 返回结果

    1

返回值类型

与输入的参数值相同。

inner_product函数

计算两个向量的内积。

使用示例

  • 查询和分析语句

    * | SELECT inner_product(array[1, 2, 3, 4], array[10, 20, 30, 40])

    * | SELECT inner_product('[1, 2, 3, 4]', '[10, 20, 30, 40]')
  • 返回结果

    300.0

返回值类型

与输入的参数值相同。

l2_distance函数或euclidean_distance函数

说明

l2_distance开头为字母L的小写形式。

计算两个向量的欧式距离。

使用示例

  • 查询和分析语句

    * | SELECT l2_distance(array[1, 3], array[4, 2])

    * | SELECT l2_distance('[1, 3]', '[4, 2]')
  • 返回结果

    3.16

返回值类型

与输入的参数值相同。

vector_norm函数

根据范数类型p,计算向量的范数(norm)。

使用示例

  • 查询和分析语句

    * | SELECT vector_norm(array[1, 3], 1)
    * | SELECT vector_norm(array[1, 3], 2)
    * | SELECT vector_norm(array[1, 3], 3)
  • 返回结果

    根据范数类型1、2、3,分别计算向量[1,3]的范数。范数类型为1时,计算向量元素的绝对值和为4。范数类型为2时,计算向量元素的平方和的平方根,结果为3.16。范数类型为3时,计算向量元素的三次方和的三次方根,结果为3.04

返回值类型

与输入的参数值相同。

vector_sum函数

计算一个向量所有元素的和。

使用示例

  • 查询和分析语句

    * | SELECT vector_sum(array[1, -3])

    * | SELECT vector_sum('[1, -3]')
  • 返回结果

    -2

返回值类型

与输入的参数值相同。

vector_mean函数

计算一个向量所有元素的平均值。

使用示例

  • 查询和分析语句

    * | SELECT vector_mean(array[1, -3])

    * | SELECT vector_mean('[1, -3]')
  • 返回结果

    -1

返回值类型

与输入的参数值相同。

vector_variance函数

计算一个向量的方差,描述了该向量中数值分布离散程度。

使用示例

  • 查询和分析语句

    * | SELECT vector_variance(array[1, -3, 8])

    * | SELECT vector_variance('[1, -3, 8]')
  • 返回结果

    向量均值为2,结果为(12+52+62=62/3)=20.67

返回值类型

与输入的参数值相同。

vector_std_dev函数

计算一个向量的标准差,标准差是方差的正平方根。

使用示例

  • 查询和分析语句

    * | SELECT vector_std_dev(array[1, -3, 8])

    * | SELECT vector_std_dev('[1, -3, 8]')
  • 返回结果

    向量均值为2,结果为(12+52+62=62/3)0.5=20.670.5=4.54

返回值类型

与输入的参数值相同。

vector_add函数

vector_add函数用于计算两个向量的相加结果。

使用示例

  • 查询和分析语句

    * | SELECT vector_add(array[1, 2, 3, 4], array[2, 3, 1, 1.5])

    * | SELECT vector_add("[1, 2, 3, 4]", "[2, 3, 1, 1.5]")
  • 返回结果

    [3.0,5.0,4.0,5.5]

返回值类型

与输入的参数值相同。

vector_subtract函数

vector_subtract函数用于计算两个向量相减的结果。

使用示例

  • 查询和分析语句

    * | SELECT vector_subtract(array[1, 2, 3, 4], array[2, 3, 1, 1.5])

    * | SELECT vector_subtract(array[1, 2, 3, 4], array[2, 3, 1, 1.5])
  • 返回结果

    [-1.0,-1.0,2.0,2.5]

返回值类型

与输入的参数值相同。

vector_scale函数

vector_scale函数用于计算向量缩放的结果。

使用示例

  • 查询和分析语句

    * | SELECT vector_scale(array[1, 2, 3, 4], 5)

    * | SELECT vector_scale('[1, 2, 3, 4]', 5)
  • 返回结果

    [5.0,10.0,15.0,20.0]

返回值类型

与输入的参数值相同。

  • 本页导读 (1)
文档反馈