Sliding Block Hashing (Slick) -- Basic Algorithmic Ideas
本文提出滑动块哈希(Slick),一种兼顾高性能与高空间效率的简单哈希表数据结构,并概述了后续分析与实现方向。
2023-04-18 cs.DS
The Power of Simple Tabulation Hashing
随机算法通常因其简单性而受到欢迎,但用于产生所需理论保证的散列函数通常既不简单也不实用。在这里,我们表明,最简单的列表哈希提供了意想不到的强大保证。该计划本身可以追溯到卡特和韦格曼(STOC'77)。键被视为由C字符组成。我们初始化c个表T_1,.,T_c将字符映射到随机哈希码。密钥x=(x_1,...,x_q)被散列为T_1[x_1] xor.异或T_c[x_c]。虽然这个方案甚至不是4-独立的,但我们证明了它提供了许多通常通过更高的独立性获得的保证,例如,用于估计集合交集的最小散列和布谷鸟散列。
2011-05-07 cs.DS
Locally Uniform Hashing
本文提出 tornado tabulation hashing,通过系统性打破制表哈希中的依赖获得局部完全随机性,在保持简单快速的同时为多种算法提供接近完全随机哈希的理论保证。
2023-09-28 cs.DS
Understanding the Moments of Tabulation Hashing via Chaoses
简单的制表哈希可以追溯到1970年的Zobrist,定义如下:每个键被视为来自某些字母表$Σ$的$c$字符,我们有$c$完全随机哈希函数$h_0, \ldots, h_{c - 1} \colon Σ\to \{0, \ldots, 2^l - 1\}$,并且键$x = (x_0, \ldots, x_{c - 1})$被哈希为$h(x) = h_0(x_0) \oplus \ldots \oplus h_{c - 1}(x_{c - 1})$,其中$\oplus$是逐位XOR运算。本文讨论了P{ \v a}tra{ \c s}cu和Thorup~[J.ACM'11]及Aamand等~[12]关于表列散列的结果。[STOC'20]专注于证明基于散列的和上的Buckoff风格的尾界,例如,数字键散列到给定值,用于简单的制表散列,但它们的边界不覆盖整个尾部。混沌是$\sum a_{i_0, \ldots, i_{c - 1}} X_{i_0} \cdot \ldots \cdot X_{i_{c - 1}}$形式的随机变量,其中$X_i$是独立随机变量。混沌是来自概率论的被充分研究的概念,并且严密分析已经在几个实例中被证明,例如,当独立随机变量是标准高斯变量和当独立随机变量具有几何凸尾时。我们注意到,基于散列的简单列表散列的总和可以被视为不独立的混沌的总和。这促使我们使用混沌理论中的技…
2022-05-03 cs.DS
Separate Chaining Meets Compact Hashing
虽然在大多数教科书中,单独的链接是解决哈希表中冲突的常见策略,但紧凑哈希是一种不太常见的技术,用于在哈希域相对于问题大小相对较小的整数时节省空间。人们普遍认为,哈希表浪费了大量的内存,因为它们要么保持分配的空间不变(开放寻址),要么存储额外的指针(单独的链接)。对于前者,Cleary引入了紧凑散列技术,该技术仅存储密钥的一部分以节省空间。然而,从专注于开放寻址的紧凑哈希表的研究路线可以看出,恢复密钥需要额外的信息,称为位移。存在具有不同空间和时间权衡的该位移信息的若干表示。在本文中,我们介绍了一个单独的链式哈希表,它应用了紧凑哈希技术,而不需要位移信息。实际的评估表明,在此哈希表中的插入速度更快,或使用更少的空间比所有以前已知的紧凑的哈希表在现代计算机体系结构存储足够大的卫星数据时。
2019-05-01 cs.DS
Round-Hashing for Data Storage: Distributed Servers and External-Memory Tables
本文提出了轮散列,这是适合于分布式服务器上的数据存储和实现外部内存表,其中每个查找检索最多一个外部内存块,使用一个stash。对于数据存储,轮散列就像一致性散列一样,因为它避免了在添加新服务器时对密钥进行完全重排序。实验表明,服务请求的速度是10倍以上的最先进的。在分布式数据存储,这保证了更好的吞吐量为服务请求,而且,大大减少了决策时间,数据应该移动到新的服务器作为重新扫描数据要快得多。
2018-05-08 cs.DS
Explicit and Efficient Hash Families Suffice for Cuckoo Hashing with a Stash
结果表明,对于Kirsch,Mitzenmacher和Wieder(2008)提出的具有隐藏的布谷鸟散列,可以使用非常简单的散列函数族,保持良好的性能保证:对于隐藏大小$s$,隐藏的概率为$O(1/n^{s+1})$,评估时间为$O(s)$。Kirsch等人和Kutzelnigg(2010)(分别为$Θ(\log n)$ -明智的独立性为标准的布谷鸟散列)的新方法,甚至工程与2明智的独立散列家庭作为积木。构建和分析都建立在Dietzfelbinger和Woelfel(2003)的工作基础上。分析,这也可以适用于完全随机的情况下,利用图计数参数,是比以前的证明简单得多。作为副产品,获得了用于模拟均匀散列的算法。虽然它需要的空间大约是最节省空间的解决方案的两倍,但由于其简单而直接的结构而具有吸引力。
2012-04-19 cs.DS
Linear Hashing is Awesome
我们考虑散列函数$h(x) = ((ax+b) \bmod p) \bmod n$,其中$a,b$是从$\{0,1,\ldots,p-1\}$中随机均匀选择的。我们证明,当我们使用$h(x)$在哈希与链接插入$n$元素到一个表的大小$n$的最长链的预期长度是$\tilde{O}\!\left(n^{1/3}\right)$。当我们使用Dietzfelbinger等人[Journal of Algorithms 1997]的乘法移位散列函数时,证明也推广到给出相同的界。
2017-06-08 cs.DS
SuperMinHash - A New Minwise Hashing Algorithm for Jaccard Similarity Estimation
本文提出了一种新的计算集合散列签名的算法,该算法可直接用于Jaccard相似性估计。新方法是对MinHash算法的改进,因为它具有更好的运行时行为,并且生成的签名允许更精确地估计Jaccard索引。
2017-06-18 cs.DS
HalftimeHash: Modern Hashing without 64-bit Multipliers or Finite Fields
HalftimeHash是一种新的长字符串哈希算法。目标是减少冲突(不同的输入产生相同的输出哈希值)和高性能。与长字符串上最快的通用哈希函数(clhash和UMASH)相比,HalftimeHash降低了冲突概率,同时还将性能提高了50%以上,每个周期超过16字节。此外,HalftimeHash不使用任何可能限制其可移植性的扩展64位乘法或任何有限域算法。
2021-04-21 cs.DS
Fusion Hashing: A General Framework for Self-improvement of Hashing
散列算法由于其查询和存储效率而被广泛用于高效的相似性搜索。为了获得更好的精度,大多数研究集中在设计不同的目标函数,不同的约束或惩罚项,考虑邻域信息。在本文中,对比现有的哈希方法,我们提出了一种新的广义框架称为融合哈希(FH),以提高现有的哈希方法的精度,而不增加新的约束条件或惩罚条款。在所提出的FH中,给定一个现有的哈希方法,我们首先执行它几次,以获得一组训练样本的几个不同的哈希码。然后,我们提出了两种新的融合策略,将这些不同的哈希码组合成一组最终的哈希码。基于最终的哈希码,我们为样本学习了一个简单的线性哈希函数,可以显着提高模型精度。一般来说,建议FH可以采用现有的散列方法,并实现更精确和稳定的性能相比,原始散列方法在时间和空间方面的额外支出很少。基于三个基准数据集进行了大量的实验,结果证明了所提出的框架的优越性能
2018-10-01 cs.DS cs.MM
Cascade hash tables: a series of multilevel double hashing schemes with O(1) worst case lookup time
本文提出了一系列多级双散列方案,称为级联哈希表。它们使用多级哈希表。在每个表中,我们使用常见的双哈希方案。较高级别的哈希表用作较低级别的哈希表的故障保护。通过该策略,可以有效地减少哈希插入中的冲突。因此,它获得了一个恒定的最坏情况下的查找时间与一个相对较高的负载因子(70%-85%)在随机实验。对级联哈希表的不同参数进行了测试。
2015-06-25 cs.AI cs.DS
On the insertion time of random walk cuckoo hashing
Cuckoo Hashing是Pagh和Rodler发明的一种哈希算法。它使用$d\geq 2$不同的哈希函数将项插入到哈希表中。一段时间以来,随机漫步插入添加项目的预期时间一直是一个悬而未决的问题。我们表明,如果哈希函数$d=O(1)$的数量是足够大的,那么预期的插入时间是$O(1)$每项。
2017-01-08 cs.DS math.CO
Directed Graph Hashing
针对有向图哈希研究空白,本文提出多种有向图哈希算法,含可处理环的Merkle风格递归哈希算法,能为对称节点分配相同哈希,可拓展至超图等复杂结构。
2023-06-19 cs.DM cs.DS
Data-Parallel Hashing Techniques for GPU Architectures
哈希表是用于有效地存储和访问稀疏数据的最基本的数据结构之一,在从计算机图形到机器学习的领域中广泛使用。本研究调查的国家的最先进的研究数据并行哈希技术,新兴的并行,众核GPU架构。发现影响不同哈希方案性能的关键因素,并用于建议最佳实践和确定进一步研究的领域。
2018-07-11 cs.DC cs.DS
Optimal Densification for Fast and Accurate Minwise Hashing
Rice University(莱斯大学)
Minwise hashing是一种基本的hashing算法,也是文献中最成功的hashing算法之一。最近的进展基于致密化~ \cite{Proc:OneHashLSH_ICML14,Proc:Shrivastava_UAI14}的思想已经表明,它是可能的计算$k$ minwise散列,一个向量与$d$非零,在纯粹的$(d + k)$计算,一个显着的改进,在经典的$O(dk)$。这些进步导致了基于minwise散列的传统索引算法的查询复杂度的算法改进。不幸的是,目前的致密化技术的方差是不必要的高,这导致显着差的准确性相比,香草minwise散列,特别是当数据稀疏。在本文中,我们提供了一种新的致密化方案,它依赖于精心定制的2-通用哈希。我们表明,该方案是方差最优的,而不会失去运行时的效率,它是显着更准确的比现有的致密化技术。因此,我们得到了一个显着有效的散列方案,它具有相同的方差和碰撞概率minwise散列。真实稀疏和高维数据集上的实验评估验证了我们的主张。我们相信,鉴于显着的优势,我们的方法将在实践中取代minwise散列实现。
2017-03-14 cs.DS cs.LG
Hyperdimensional Hashing: A Robust and Efficient Dynamic Hash Table
大多数云服务和分布式应用程序都依赖于哈希算法,这些算法允许动态扩展健壮且高效的哈希表。例如AWS、Google Cloud和BitTorrent。一致性哈希和会合哈希是在调整哈希表大小时最小化键重新映射的算法。虽然大规模云部署中的内存错误很常见,但这两种算法都不能同时提供效率和鲁棒性。超维计算是一种新兴的计算模型,具有固有的效率,鲁棒性,非常适合矢量或硬件加速。我们提出了超维(HD)哈希,并表明它具有部署在大型系统中的效率。此外,现实水平的内存错误会导致一致性哈希超过20%的不匹配,而HD哈希则不受影响。
2022-05-16 cs.DC cs.DS cs.NI
The universality of iterated hashing over variable-length strings
迭代哈希函数递归地处理字符串,一次一个字符。在每次迭代中,它们根据前一个哈希值和下一个字符计算新的哈希值。我们证明了迭代哈希可以是两两独立的,但永远不会是三两独立的。我们表明,它几乎可以是普遍的字符串比哈希值的数量长得多,我们绑定的最大字符串长度给定的碰撞概率。
2011-11-24 cs.DB cs.DS
Balanced Allocations and Double Hashing
双哈希最近在使用多个哈希函数的方案中发现了更常见的用法。在双散列中,对于项目$x$,生成两个散列值$f(x)$和$g(x)$,然后使用$k=0,1,2,...$的组合$(f(x) +k g(x)) \bmod n$,以从初始的两个散列值生成多个散列值。我们首先进行实证研究表明,令人惊讶的是,双重哈希和完全随机哈希之间的性能差异似乎可以忽略不计的标准平衡分配范式,其中每个项目被放置在最少的$d$的选择,以及几个相关的变种。然后,我们提供理论结果,解释在这种情况下的双重哈希的行为。
2014-01-29 cs.DC cs.DM cs.DS
Sparse similarity-preserving hashing
近年来,大量的注意力已经投入到有效的最近邻搜索的相似性保持哈希。现有散列技术的困境之一是性能和计算复杂性之间的内在权衡:虽然较长的散列码允许较低的误报率,但很难在不导致非常高的误报率或禁止计算成本的情况下增加嵌入维数。在本文中,我们提出了一种方法来克服这种限制,强制散列码是稀疏的。稀疏高维码享有长散列的典型的低假阳性率,同时保持假阴性率类似于具有相等数量的自由度的较短密集散列方案的假阴性率。我们使用一个定制的前馈神经网络的哈希函数。涉及视觉和多模态数据的广泛的实验评估显示了所提出的方法的好处。
2014-02-16 cs.CV cs.DS
Hashing for Similarity Search: A Survey
Microsoft Research(微软研究院);The University of Queensland(昆士兰大学);Tsinghua University(清华大学)
相似性搜索(最近邻搜索)是从大型数据库中寻找与查询项距离最小的数据项的问题。已经开发了各种方法来解决这个问题,最近已经投入了大量的努力近似搜索。在本文中,我们提出了一个调查的主要解决方案之一,哈希,这已经被广泛研究,因为开拓性的工作局部敏感哈希。本文将散列算法分为两大类:局部敏感散列算法(locality sensitive hashing)和学习散列算法(learning to hash),局部敏感散列算法是根据数据分布来学习散列函数,本文从散列函数的设计、散列编码空间中的距离度量和搜索机制等方面对散列算法进行了综述。
2014-08-13 cs.CV cs.DB cs.DS
Tight Lower Bounds for Data-Dependent Locality-Sensitive Hashing
我们证明了一个紧的下界指数$ρ$的数据依赖的局部敏感哈希方案,最近用于设计有效的解决方案的$c$ -近似最近邻搜索。特别是,我们的下界匹配$\ell_1$空间的$ρ\le \frac{1}{2c-1}+o(1)$的界,通过最近的算法从[Andoni-Razenshteyn,STOC'15]获得。近年来,人们发现,当散列函数与数据无关时,数据相关散列严格优于经典的局部敏感散列。在后一种设置中,最佳指数已经知道:对于$\ell_1$空间,紧边界是$ρ=1/c$,上限来自[Indyk-Motwani,STOC'98],匹配的下限来自[O' Donnell-Wu-Zhou,ITCS'11]。我们证明,即使散列是数据相关的,它必须持有的$ρ\ge \frac{1}{2c-1}-o(1)$。为了证明这个结果,我们需要形式化数据相关哈希的确切概念,它也捕获了哈希函数的复杂性(除了它们的冲突属性)。如果不限制这种复杂性,我们将允许明显不可行的解决方案,如数据集的沃罗诺伊图。为了排除这种解决方案,我们要求哈希函数简洁。所有已知的算法结果都满足这个条件。
2015-07-15 cs.CC cs.CG cs.DS
Improved Densification of One Permutation Hashing
Cornell University(康奈尔大学);Rutgers University(罗格斯大学)
关于一个排列散列的致密化的现有工作减少了具有最小散列的$(K,L)$参数化局部敏感散列(LSH)算法的查询处理成本,从$O(dKL)$到仅仅$O(d + KL)$,其中$d$是数据向量的非零的数量,$K$是每个散列表中的散列的数量,并且$L$是散列表的数量。虽然这是一个实质性的改进,但我们的分析表明,现有的致密化方案是次优的。特别是,在该过程中没有足够的随机性,这影响了其在非常稀疏的数据集上的准确性。在本文中,我们提供了一个新的致密化过程,这是证明优于现有的计划。这种改进对于网络上常见的非常稀疏的数据集来说更显着。改进的技术具有相同的成本$O(d + KL)$的查询处理,从而使其严格优于现有的过程。在公共数据集上的实验评估,在基于哈希的近邻搜索的任务,支持我们的理论研究结果。
2014-06-18 cs.DS cs.IR cs.LG