相关疑难解决方法(0)

在一组向量中找到最佳余弦相似度

我有n个向量,每个向量都有m个元素(实数).我想找到所有对中余弦相似度最大的对.

直接的解决方案需要O(n 2 m)的时间.

有没有更好的解决方案?

更新

余弦相似度/距离和三角方程激励我,我可以用"弦长"代替"余弦相似度",这会损失精度,但会大大提高速度.(有很多现有解决方案解决度量空间中的最近邻,如ANN)

algorithm math cosine-similarity

9
推荐指数
1
解决办法
3414
查看次数

Postgres:用于一对多搜索的浮点数组的余弦相似性索引

两个相等大小的矢量(实数)之间的余弦相似性被定义为点积乘以规范的乘积.

为了表示向量,我有一个大型float数组表,例如CREATE TABLE foo(vec float[])'.给定一个特定的float数组,我需要快速(使用索引,而不是seqscan)通过余弦相似性找到该表中最接近的数组,例如SELECT * FROM foo ORDER BY cos_sim(vec, ARRAY[1.0, 4.5, 2.2]) DESC LIMIT 10; 但我该怎么用?

pg_trgm余弦相似度的支持是不同的.它比较文本,我不确定它究竟是做什么的.称为smlar(此处)的扩展也对浮点数组具有余弦相似性支持,但是又做了不同的事情.我所描述的通常用于数据分析以比较文档的特征,所以我认为Postgres会支持它.

postgresql cosine-similarity

8
推荐指数
2
解决办法
2115
查看次数

标签 统计

cosine-similarity ×2

algorithm ×1

math ×1

postgresql ×1