中文

最近邻查找的快速精确检索(FERN)

计算与语言 2024-05-08 v1 数据结构与算法

摘要

精确的最近邻搜索是计算密集型过程,即使其较为简单的兄弟——向量检索——也可能计算复杂。当检索的向量维数dd相对于数据库中向量数NN时,这种情况尤为突出。精确的最近邻检索通常被认为是O(Nd)O(Nd)的问题,尚无亚线性解决方案。注意力转向近似最近邻(ANN)检索技术,许多技术具有亚线性甚至 logarithmic 时间复杂度。然而,如果我们从二进制搜索问题的直觉中获取灵感(例如d=1d=1向量检索),则应可以一种方法来检索组织化的向量表示,而无需通过蛮力求解。在低维情况下(例如d=2d=2d=3d=3情况),kd树提供了一种O(dlogN)O(d\log N)的检索算法。然而,该算法在高维情况下(例如k=128k=128)会迅速恶化为O(dN)O(dN)解决方案。我们提出一种新算法,用于最近邻查找的快速精确检索(FERN),灵感来自kd树。该算法在100%召回率下实现对1000万个d=128d=128均匀随机生成向量的O(dlogN)O(d\log N)查找。

关键词

引用

@article{arxiv.2405.04435,
  title  = {Fast Exact Retrieval for Nearest-neighbor Lookup (FERN)},
  author = {Richard Zhu},
  journal= {arXiv preprint arXiv:2405.04435},
  year   = {2024}
}

备注

NAACL 2024 SRW