cosine_similarity()
函数说明
cosine_similarity()
是余弦相似度,它衡量了两个向量之间夹角的余弦值,通过它们在多维空间中的接近程度来表示它们的相似性,其中 1 表示完全相似,-1 表示完全不相似。余弦相似度的计算是通过将两个向量的内积除以它们的 l2 范数的乘积来实现的。
函数语法
> SELECT cosine_similarity(vector1, vector2) AS similarity FROM table_name;
示例
drop table if exists vec_table;
create table vec_table(a int, b vecf32(3), c vecf64(3));
insert into vec_table values(1, "[1,2,3]", "[4,5,6]");
mysql> select * from vec_table;
+------+-----------+-----------+
| a | b | c |
+------+-----------+-----------+
| 1 | [1, 2, 3] | [4, 5, 6] |
+------+-----------+-----------+
1 row in set (0.00 sec)
mysql> select cosine_similarity(b,"[1,2,3]") from vec_table;
+-------------------------------+
| cosine_similarity(b, [1,2,3]) |
+-------------------------------+
| 1 |
+-------------------------------+
1 row in set (0.00 sec)
限制
- 两个参数向量必须具有相同的维度。
- 余弦相似度的值位于 -1 和 1 之间。
- 输入向量不允许为 0 向量,因为这会出现除以零的情况,这在数学上是未定义的。在实际应用中,我们通常认为零向量与任何其他向量的余弦相似度为 0,因为它们之间没有任何方向上的相似性。