您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

是否可以使用特征向量查询Elastic Search?

是否可以使用特征向量查询Elastic Search?

我没有特定于Elastic Search的答案,因为我从未使用过它(我使用构建了elasticsearch的Lucene)。但是,我正在尝试为您的问题提供一个通用的答案。给定查询向量,有两种获取最近向量的标准方法,如下所述。

第一种方法是借助支持最近邻居查询的数据结构(例如 kd树) 将向量存储在内存中。甲kd树是二叉查找树中的意义上的概括,所述的二叉查找树分区一个的每一个电平? 尺寸分成两个部分。如果您有足够的空间来加载内存中的所有点,则可以在kd树上应用最近的邻居搜索算法,以获取按余弦相似度值排序的检索到的向量的列表。这种方法的明显缺点是,它无法像信息检索中经常遇到的那样扩展到大量的点集。

第二种方法是使用 反量化矢量一个简单的基于范围的量化将 伪项 标记 分配给矢量的实数,以便以后可以由Lucene对其进行索引(或就此而言为Elastic搜索)。

例如,我们可以将标签分配 于范围 [0,0.1) 到范围 [0.1,0.2) 等等…在你的问题的样本矢量随后被编码成(J,d,C, ..A) 。(因为[.9,1]是J,[0.3,0.4)是D,依此类推)。

因此,实数向量因此转换为字符串(可以视为文档),并因此使用标准信息检索(IR)工具进行索引。查询向量也被转换成一袋伪术语,因此可以计算集合中与当前最相似(在余弦相似度或其他度量方面)的一组其他相似向量。

方法的主要优点是,它可以很好地扩展以用于大量实数向量集合。关键缺点是,计算出的相似度值仅是真实余弦相似度的近似值(由于量化中遇到的损失)。较小的量化范围以增加索引大小为代价获得更好的性能

其他 2022/1/1 18:17:57 有447人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶