Cache-Efficient Graph Algorithms for Near Neighbor Search

Date
2021-11-01
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract

Graph search has recently become one of the most successful algorithmic trends for near neighbor search. Several of the most popular and empirically successful algorithms are, at their core, a simple walk along a pruned near neighbor graph. Such methods consistently outperform other approaches and are a central component of industrial- scale information retrieval and recommendation systems. However, graph algorithms often suffer from issues related to the memory access pattern of graph traversal. Our measurements show that near neighbor search is no exception to this rule: popular graph indices have poor cache performance and rely on complex heuristics with a large memory cost. To address this problem, we apply graph reordering methods to near neighbor graphs. Graph reordering is a memory layout optimization that groups commonly-accessed nodes together in memory. We present exhaustive experiments that apply several reordering algorithms to the hierarchical navigable small-world (HNSW) graph, and we analyze the algorithms under the ideal cache model. We find that reordering improves the query time by up to 40%. We also demonstrate that popular heuristics can be replaced by simpler alternatives with no performance loss, and we show that the time needed to reorder the graph is negligible compared to the time required to construct the index.

Description
Degree
Master of Science
Type
Thesis
Keywords
near neighbor search, graphs, caching
Citation

Coleman, Ben. "Cache-Efficient Graph Algorithms for Near Neighbor Search." (2021) Master’s Thesis, Rice University. https://hdl.handle.net/1911/111627.

Has part(s)
Forms part of
Published Version
Rights
Copyright is held by the author, unless otherwise indicated. Permission to reuse, publish, or reproduce the work beyond the bounds of fair use or other exemptions to copyright law must be obtained from the copyright holder.
Link to license
Citable link to this page