Stable Learned Bloom Filters for Data Streams
布隆过滤器及其变种是一种优雅的空间高效的概率数据结构,用于近似集合成员查询。最近的研究表明,通过与预训练机器学习模型的结合,可显著降低布隆过滤器的空间成本,称为学习布隆过滤器(LBF)。LBF通过使用分类器来处理部分查询,从而降低了布隆过滤器的空间需求。然而,目前的LBF结构通常以静态成员集为目标。当集合中的成员发生更新时,它们的性能不可避免地会下降,而这种更新需求在现实世界的数据流应用中并不少见,例如重复项检测、恶意URL检查和web缓存。为了使LBF适应数据流,本文提出了稳定学习布隆过滤器(Stable Learned Bloom Filters, SLBF),通过将分类器与可更新的备份过滤器相结合,解决了密集插入工作负载下的性能下降问题。具体地,本文提出了两种SLBF结构:单SLBF (s-SLBF)和分组SLBF (g-SLBF)。对这两种结构的理论分析表明,SLBF的期望假阳性率(FPR)随新成员的加入渐近是一个常数。在真实数据集上的大量实验表明,与在数据流上优化的最先进的(非学习的)布隆过滤器相比,SLBF引入了类似水平的假阴性率(FNR),但产生了更好的FPR/存储权衡
与非学习滤波器相比,LBF的优点是,在静态元素集上,它需要更小的存储空间,但保留了具有竞争力的查询效率和错误率。用于构建备份过滤器的集合SN相对较小,存储训练良好的分类器通常需要更少的空间
Problem Statement
对于这种数据结构,我们考虑两种操作:insert,它将元素x添加到过滤器中;query,它使用过滤器返回元素y的成员测试结果。当应用于元素流时,这样的学习滤波器期望1)实现稳定特性(即,当n→∞时,FPR达到一个非平凡值);2)与在数据流上优化的非学习滤波器(如SBF)相比,在具有竞争力的FPR/FNR水平上消耗更少的存储空间。
STABLE LEARNED BLOOM FILTER
1 Single SLBF
为了使原始LBF框架在无限次插入后保持稳定,一个直观的想法是用一个稳定的布隆过滤器(2.3节)替换LBF中的备用滤波器,它是一个标准的BF。如图5a所示,这种结构被称为单一稳定学习布隆过滤器(s-SLBF),其中单一意味着在该框架中有一个备份过滤器。
2)Grouping SLBF