448 research outputs found
Hashing for Similarity Search: A Survey
Similarity search (nearest neighbor search) is a problem of pursuing the data
items whose distances to a query item are the smallest from a large database.
Various methods have been developed to address this problem, and recently a lot
of efforts have been devoted to approximate search. In this paper, we present a
survey on one of the main solutions, hashing, which has been widely studied
since the pioneering work locality sensitive hashing. We divide the hashing
algorithms two main categories: locality sensitive hashing, which designs hash
functions without exploring the data distribution and learning to hash, which
learns hash functions according the data distribution, and review them from
various aspects, including hash function design and distance measure and search
scheme in the hash coding space
Accelerating Minimal Perfect Hash Function Construction Using GPU Parallelization
Eine Minimale Perfekte Hashfunktion (MPHF) bildet eine Menge von N Schlüsseln kollisionsfrei auf die Menge [N ] := {0, .., N − 1} ab. Diese Thesis leistet einen signifikanten Beitrag für den folgenden generischen MPHF Konstruktionsalgorithmus. Im ersten Schritt werden die Schlüssel in Buckets unterschiedlicher erwarteter Größe verteilt. Wir zeigen, dass die Wahl der erwarteten Bucketgröße ein Optimierungsproblem darstellt welches durch die Euler-Lagrange Gleichung gelöst werden kann. Dies resultiert in eine signifikante Verbesserung im Vergleich zum derzeitigen Stand der Forschung. Im zweiten Schritt werden die Buckets primär in nicht aufsteigender Größe geordnet. Wir zeigen, dass der Platzbedarf verbessert wird wenn Buckets gleicher Größe sekundär in aufsteigender Erwartungsgröße angeordnet werden. Die Buckets werden dann im dritten Schritt in dieser Reihenfolge verarbeitet indem eine Hashfunktion gefunden wird welche alle Schlüssel des Buckets kollisionsfrei auf [N ] abbildet. Abschließend wird für jeden Bucket ein Identifikator der Hashfunktion komprimiert gespeichert. Wir präsentieren eine neue Kompressionstechnik, welche die Identifikatoren in unterschiedliche Enkodierer anordnet, sodass alle Identifikatoren innerhalb eines Enkodierers der gleichen statistischen Verteilung folgen. Dies verbessert die Komprimierbarkeit der Identifikatoren. Wir nutzen die parallele Leistungsfähigkeit von GPUs um die Konstruktion von MPHFs weiter zu beschleunigen. Unsere GPU Implementierung konstruiert eine MPHF mit 1,73 Bits pro Schlüssel in nur 36 ns pro Schlüssel mit einer CPU Abfragezeit von 44 ns. Eine solch geringe Abfragezeit bei gleichzeitig niedrigem Platzbedarf ist nach heutigem Stand, wie z.B. mit PTHash, nicht erreichbar. Eine MPHF, die einen höheren Platzbedarf von 1,88 Bits pro Schlüssel aufweist, wird mit unserer Implementierung 9926 mal schneller konstruiert als durch PTHash. Die meisten unserer Beiträge sind über unsere spezifische Implementierung hinaus anwendbar und können selbst modernste Techniken weiter verbessern
- …