中文

HyperLogLogLog:多一个对数的基数估计

数据结构与算法 2022-05-24 v1

摘要

我们提出 HyperLogLogLog,一种 HyperLogLog 草图的实用压缩方法,使用 mm 个寄存器估计不同元素数 nn 时,将草图从 O(mloglogn)O(m\log\log n) 比特压缩至 mlog2log2log2m+O(m+loglogn)m \log_2\log_2\log_2 m + O(m+\log\log n) 比特。该算法作为直接替代方案,保留 HyperLogLog 草图的全部估计性质,可在压缩与未压缩表示间来回转换,且压缩草图在压缩域中保持可合并性。假设 nn 充分大于 mm,压缩草图可在均摊常数时间内更新。我们提供了该草图的 C++ 实现,并通过与 Google 和 Apache 知名实现的实验评估表明,我们的实现在保持有竞争力的更新与合并时间的同时提供了更小的草图。具体而言,我们观察到草图大小约减少 40%。此外,我们作为一个推论得到了一种理论算法,可将草图压缩至 mlog2log2log2log2m+O(mlogloglogm/loglogm+loglogn)m\log_2\log_2\log_2\log_2 m+O(m\log\log\log m/\log\log m+\log\log n) 比特。

关键词

引用

@article{arxiv.2205.11327,
  title  = {HyperLogLogLog: Cardinality Estimation With One Log More},
  author = {Matti Karppa and Rasmus Pagh},
  journal= {arXiv preprint arXiv:2205.11327},
  year   = {2022}
}

备注

10 pages, 7 figures, KDD '22