简体中文
Appearance
简体中文
Appearance
Datalayers 现在提供向量距离函数、向量数学计算函数。更多向量函数正在开发中。
向量距离函数用于计算两个相同维度的向量之间的距离。目前提供以下向量距离函数:
l2_distance
:L2 距离函数。cosine_distance
:余弦距离函数。dot_distance
:负内积距离函数。L2 距离,又称欧式距离,其计算公式为:
语法:
l2_distance(x, y)
示例:
# 计算两个向量之间的 L2 距离
SELECT l2_distance([1.0, 1.0, 1.0], [1.0, 1.0, 2.5]);
# 计算向量列 `embed` 与目标向量之间的 L2 距离
SELECT l2_distance(embed, [1.0, 2.0, 3.0]) FROM t;
# 根据向量列 `embed` 与目标向量之间的 L2 距离,对数据进行排序,并输出距离最近的一行数据
SELECT * FROM t ORDER BY l2_distance(embed, [1.0, 2.0, 3.0]) LIMIT 1;
计算公式为:
语法:
cosine_distance(x, y)
示例:参考 L2 距离函数的示例。
向量的内积(Dot Product,又称 Inner Product),定义为两个向量逐个元素的乘积之和。负内积,则为内积的负。之所以使用负内积, 是因为我们希望使得所有向量距离函数,均满足距离越小、向量相似度越大的关系。
计算公式为:
语法:
l2_distance(x, y)
示例:参考 L2 距离函数的示例。
向量数学计算函数用于向量的一些数学性质。目前提供以下函数:
dim
:维度函数,求解一个向量的维度,即向量中元素的数量。l2_norm
:L2 模函数,求解一个向量的 L2 模(或称 L2 范数)。l2_normalize
:L2 归一化函数,使用 L2 模对向量执行归一化。语法:
dim(x)
示例:
# 计算一个向量的维度,输出应为 3
SELECT dim([1.0, 2.0, 3.0]);
# 计算一个向量列中每个向量的维度
SELECT dim(embed) FROM t;
L2 模函数通常用于执行向量归一化,即将一个向量转换为模为 1 的单位向量,便于后续执行向量计算。一个向量的 L2 模的计算公式为:
语法:
l2_norm(x)
示例:
# 计算一个向量的 L2 模
SELECT l2_norm([1.0, 2.0, 3.0]);
# 计算一个向量列中每个向量的 L2 模
SELECT l2_norm(embed) FROM t;
该函数使用 L2 模将向量转换为标准向量,即模长为 1 的单位向量。使用 L2 模的向量归一化公式为:
语法:
l2_normalize(x)
示例:
# 对一个向量执行归一化
SELECT l2_normalize([1.0, 2.0, 3.0]);
# 对一个向量列中的每个向量执行归一化
SELECT l2_normalize(embed) FROM t;
[1, 2, 3]
与 [1.0, 2.0, 3.0]
等均合法。