形式陈述
问题接口
在整数频率流公理库插入流与 Turnstile 流Insertion-only stream · Turnstile stream以频率向量更新语义区分非负插入、严格 Turnstile 与一般正负流。中,固定正整数宇宙大小 ,键域为 。流从零向量开始,由更新 组成,处理完前 个更新后,键 的频率为
Distinct Elements 问题要求输出当前频率向量支持集的大小
这个量也记作零阶频率矩公理库频率矩问题Frequency moments用 F_k 汇总频率向量,统一不同项数、流长与重复集中度目标。 。问题关心有多少种键当前净频率非零,而不是一共处理了多少次更新:某个键出现一次或一百万次,只要最终频率非零,都只贡献 。
输出契约
精确版本要求返回 。流式近似版本通常给定精度 和失败概率 ,要求输出 ,使
概率来自算法内部随机性;若输入本身也随机,必须另行说明分布,不能把两者合并成一个未注明来源的“平均准确率”。当 时,成功事件中的误差区间退化为单点 ,即输出恰好为零。
另一种可单独选择的输出规格是渐近偏差与相对标准差。固定单位插入流,对不同键使用独立均匀的无限哈希位串,同键复用其位串;先固定寄存器数 ,沿宇宙足以容纳 个不同键的实例族令 ,考察
规格须保留主项、余项和可能随 振荡而不消失的项。HLL 的理论估计器公理库Flajolet–Martin 与 HyperLogLogFlajolet-Martin · HyperLogLog · HLL用哈希位串中的罕见前导零事件估计不同元素数,并以多寄存器调和聚合降低方差。在此口径下提供相对偏差的有界振荡项加 ,以及相对标准差的 、有界振荡项和 ;其精确常数与归一化见算法页。若另令 、 增长,讨论的是系数 的第二个极限,不能把两个极限未经证明合成任意增长速率的保证。本页为 HLL 选择这一渐近实现范围;有限位哈希、舍入校准及有限 成功率各须另作分析。
完整的资源保证还要写明遍数、工作空间、每次更新时间和最终查询时间。空间可能依赖 ,而流长 、宇宙大小 与答案 是不同参数,不能在公式里互换。
直觉
Distinct Elements 把频率向量压成“哪些坐标最终非零”这一集合信息:同一键的重复次数不增加答案,删除却可能让一个坐标重新退出支持集。因此事件抽样会被高频键偏置,而能否处理删除又取决于摘要是否记住净频率而非历史上见过与否。
重复流与不同元素计数
例子与边界
一个可追踪的实例
插入流
共有六次到达,却只有三个不同键,所以 。若再到达一千个 ,答案仍为 。这正是独立访客、不同查询词和唯一设备数等应用的共同接口:重复活跃度不应增加基数。
对流位置作均匀采样不能直接解决这个问题。高频键占据更多位置,因而更容易进入样本;样本分布针对出现次数,而目标对每种键只计一次。有效摘要必须控制这种频率偏差,而不能把“随机抽到一些事件”当成“随机抽到一些不同键”。
更新模型决定问题版本
在 insertion-only 模型中,,支持集只增不减;逐条事件计数选择其 的子模型。Strict turnstile 允许删除,但每个中间时刻保持 ;general turnstile 还允许中间频率为负。三者虽然共享同一个输出公式,却给算法不同的信息恢复义务。
例如先插入 ,再删除 ,最终答案应从 降为 。一个只记住“见过哪些键”或只会单调增加的插入式摘要无法知道 已离开支持集。支持删除的算法必须重新证明其状态能反映最终非零频率,不能通过忽略删除把插入算法直接推广。
推论与应用
在只需近似基数且可接受随机误差时,Flajolet–Martin 与 HyperLogLog公理库Flajolet–Martin 与 HyperLogLogFlajolet-Martin · HyperLogLog · HLL用哈希位串中的罕见前导零事件估计不同元素数,并以多寄存器调和聚合降低方差。用哈希值前导零和分桶寄存器压缩已见集合。它们适合 insertion-only、去重计数和参数一致的逐寄存器合并;一般删除流、对抗性哈希输入或不兼容种子的摘要不能直接沿用同一估计与合并保证。
单遍精确计数为什么需要大状态
对宇宙大小 、流长 ,即使保证前 项全异,末项至多制造一对重复,单遍精确计数仍需最坏空间 bits,允许每个固定流至多 的错误也不例外。通信下界的完整证明公理库通信下界归约范式Communication lower-bound reduction pattern · Communication reduction for lower bounds用固定长度的 INDEX 编码,把单遍精确不同元素计数的完整内存状态变成一次消息,并逐项保留错误、随机性和空间单位。用前缀 编码任意位串,末项 使 。若状态太短,把它交给持有 的 Bob,就会得到违反 INDEX 下界的单向协议。
这里“精确”修饰成功事件中的数值,算法本身可以随机且偶尔失败。下界也不依赖大量重复:全异与仅一对重复之间已经足以携带一 bit 的答案。-bit 已见表加一个计数器给出本参数族的 -bit 上界,所以这一族的单遍精确空间量级为 。
这组输入的答案只有 与 。加性误差严格小于 仍可区分,但相对误差需要 才让两个保证区间不重叠。因此该例没有证明常数相对误差也需要线性空间;上述近似摘要正是在更宽的误差契约下工作。
求解路线与边界
精确维护所有已见键可以直接得到答案,但在大宇宙中可能占用与支持集近似线性的空间。近似算法用随机化换取小空间;尾零统计、分桶寄存器和分层采样是不同求解路线,它们通过不同的统计量和哈希机制估计同一个支持集大小。
分布式场景还需核对摘要的合并规则。两个摘要只有在参数、随机种子和合并操作兼容时,才可能等价于集中处理联合流;重复合并同一分片还可能把传输重放误当成新更新。若输入允许自适应地观察摘要后选择后续键,也必须在模型中声明对手能力,因为这会改变概率保证。
参考资料
- Flajolet, Martin, “Probabilistic Counting Algorithms,” JCSS, 1985.
- Noga Alon, Yossi Matias, Mario Szegedy, “The Space Complexity of Approximating the Frequency Moments”, JCSS, 1999,作者稿 §3.4 Proposition 3.8(p. 16):包含零阶矩在内的精确计数空间下界。
- Tim Roughgarden, Communication Complexity (for Algorithm Designers), 2015,§2.4–2.6.1:INDEX、精确计数应用与近似间隔。