发表机构
CICESE(CICESE)
机构由 AI 辅助整理,请以论文原文为准。AI 中文总结
提出一种无需搜索的三阶段导航图构建方法,中间阶段决定质量,组合构建在六个大规模语料库上优于现有方法,且构建时间更短。
AI 中文摘要
导航图可以在不搜索邻居的情况下构建:对数据进行分区,评估每个分区内的所有点对,并从候选中选择每个点的边。我们给出了一个由三个可分离阶段组成的构建方法,并表明中间阶段决定了质量。池是任何分区,每个点具有少量成员资格。结束阶段将点的候选转换为出边;我们的方法保持一个有界堆,通过带语料库松弛的遮挡进行剪枝,并附加反向边,仅在列表溢出时重新剪枝。脊柱是任何边集,免于剪枝,保持图从其入口可达;我们的方法在随机样本上使用半空间近邻边,单调路由到每个采样点,并以生成树的1/10至1/500的成本替代生成树。结束阶段与任何分区器组合:在PiPNN自身的候选池上,它在六个语料库(从10^6到10^8个点)上优于PiPNN的结束阶段,在相同召回率下距离评估减少3%至14%,并且每个点60至120个成员资格时,组合构建在k=10和k=100时匹配或优于全密集构建,在所有六个语料库上,构建时间为其0.5至0.9倍,且确定性。分析解释了原因。一旦池被局部化,其质量由数据决定:在GIST上构建的每个池都落在精确kNN上限的4%以内,块覆盖遗漏的点对由kNN图的局部聚类逐点预测,其零聚类尾部设置语料库所需的成员资格并随n增长。所有代码、补丁和日志都是公开的。
英文摘要
Navigable graphs can be built without searching for neighbors: partition the data, evaluate every pair inside each part, and select each point's edges from the candidates. We give such a construction in three separable stages and show that the middle one decides the quality. The pool is any partition with a few memberships per point. The ending turns a point's candidates into out-edges; ours keeps a bounded heap, prunes by occlusion with a per-corpus slack, and appends reverse edges, re-pruning only where a list overflows. The spine is any edge set, exempt from the prune, that keeps the graph reachable from its entry; ours, half-space-proximal edges over a random sample, routes monotonically to every sampled point and replaces a spanning tree at 1/10 to 1/500 of its cost. The ending composes with any partitioner: on PiPNN's own candidate pool it beats PiPNN's ending on each of six corpora from $10^6$ to $10^8$ points, by 3 to 14% in distance evaluations at equal recall, and with 60 to 120 memberships per point the composed build matches or beats a full dense construction at k=10 and k=100 on all six, in 0.5 to 0.9 of its build time, deterministically. The analysis explains why. Once a pool is localised its quality is set by the data: every pool built on GIST lands within 4% of the exact-kNN ceiling, and the pairs a block cover misses are predicted, point by point, by the local clustering of the kNN graph, whose zero-clustering tail sets the memberships a corpus needs and grows with n. All code, patches and logs are public.
Comments26 pages. Code: github.com/zevahcle/graft-ann (branch fgraft); experiments, logs and patches: github.com/zevahcle/fgraft-experiments