基于 Bloom 多重过滤器的多集合匹配与预过滤
数据结构与算法
2019-01-14 v2
摘要
Bloom 过滤器是一种空间高效的概率数据结构,用于检查元素在集合中的成员资格。然而,给定多个集合,当查找某个元素或一组输入元素所属的项时,标准 Bloom 过滤器并不足够。在本文中,我们通过提出两种称为 Bloom Matrix 和 Bloom Vector 的高效 Bloom 多重过滤器来解决多集合匹配问题。二者均空间高效,并为多集合匹配问题返回一组标识符查询答案。我们展示了可根据标签在多个集合间的分布(Uniform 和 Zipf)进一步优化空间效率。虽然二者都空间高效,但 Bloom Vector 能有效利用数据的 Zipf 分布来进一步降低空间。我们的结果还强调,Bloom Matrix 上的基本 ADD 和 LOOKUP 操作比 Bloom Vector 更快。然而,若所表示的数据或标签在多个集合中非均匀分布,Bloom Matrix 无法满足 LOOKUP 操作低于 的理论假阳性率。因此,我们引入 \textit{Bloom Test},其使用 Bloom Matrix 作为预过滤结构,以确定哪种结构适合在任意输入数据集下获得改进性能。
引用
@article{arxiv.1901.01825,
title = {Multiple Set Matching and Pre-Filtering with Bloom Multifilters},
author = {Francesco Concas and Pengfei Xu and Mohammad A. Hoque and Jiaheng Lu and Sasu Tarkoma},
journal= {arXiv preprint arXiv:1901.01825},
year = {2019}
}
备注
12 pages, 11 figures, Submitted