A Python library for efficient Point-to-hyperplane nearest neighbours search (P2HNNS) using locality sensitive hashing (LSH) approaches. The library implements the 5 different methods described below.
- Bilinear Hyperplane (BH) hashing
- Embedding Hyperplane (EH) hashing
- Multilinear Hyperplane (MH) hashing
- Nearest Hyperplane (NH) hashing
- Furthest Hyperplane (FH) hashing
The implementation is based on the original code of HuangQiang (implemented in C++) and stepping1st(implemented in Java).
The original papers proposing each method will be explicitly provided in section Resources.
The library can be installed via the pip package manager using the following command
pip install P2HNNS
Extensive documentation for using the library is available via Read the Docs
Unit tests are written using the pytest framework for all functionalities of the library. Tests are located in the /tests directory.
- Point-to-Hyperplane Nearest Neighbor Search Beyond the Unit Hypersphere, SIGMOD 2021 (Original FH and NH paper)
- Compact Hyperplane Hashing with Bilinear Functions, ICML 2012 (Original BH paper)
- Hashing Hyperplane Queries to Near Points with Applications to Large-Scale Active Learning, NeurIPS 2010 (Original EH paper)
- Multilinear Hyperplane Hashing,CVPR 2016 (Original MH paper)
- Original C++ implementation by Huang Qiang
- Java implementation
The library is licensed under the MIT Software license. You can see more details in the LICENSE file.