Skip to content

频繁项与 Heavy Hitters 问题

Heavy hitters · Frequent items

以范数阈值定义必须报告的高频坐标,并明确误差与假阳性区间。

条目类型
模型

形式陈述

定义族

对频率向量 f,用$\ell_p$ 范数衡量整体规模时通常取 p1;坐标 i(ϕ,p) heavy hitter,若

|fi|ϕfp.

p=1p=2 分别得到 12 版本。在insertion-only 或 strict turnstile 流中频率非负,绝对值可以省略;general turnstile 允许正负抵消,必须保留它。近似输出还要定义必报区、必不报区与灰区。

流量大户是实例。Top-k 必须返回固定数量,即使第 kk+1 名几乎相同;heavy hitters 按阈值,可能返回零项或多项,二者不等价。

Misra–Gries 状态

给定参数 k,Misra–Gries 维护至多 k1 个键计数器。新项命中候选则加一;有空槽则以计数 1 插入;否则所有计数器减一,并删除变为 0 的项。

k=3,流为 a,b,a,c,a,b。状态依次是 {a:1}{a:1,b:1}{a:2,b:1};读到 c 时全减并删除 b,得到 {a:1};最后两项使状态成为 {a:2,b:1}

真实频率为 fa=3,fb=2,fc=1。候选计数不是精确频率:a 被低估 1,b 被低估 1。若接口需要输出真实超过阈值的项,可在允许二次扫描时只对候选重新计数。

直觉

配对不变量

每次全减可与“当前新项加 k1 个候选项”这 k 个互异流位置配成一组并从分析中删除。全减次数至多 m/k,所以保存计数从不超过真实频率,且每个键的低估至多 m/k

任何频率严格大于 m/k 的键都不可能在这些互异组中被全部消去,因而一定留在候选表。这个证明依赖所有更新都是正的一次出现;给计数器直接处理负更新会失去“删除互异组”的证据。

例子与边界

12 与 top-k

插入流中 ϕ-1 heavy hitter 最多 1/ϕ 个。General turnstile 的正负抵消要求明确取绝对频率和范数;CountSketch 用随机符号估计,并给出与去掉大坐标后的 2 尾部相关的误差,适合这类模型。

频率 (100,99,98) 的 top-2 必须区分 99 与 98;阈值 0.2f1 却可能把三者都报出。没有 frequency gap 时,固定名次对微小误差敏感,而 heavy-hitter 规格通过必报区、必不报区和灰区表达容忍度。

输出契约

完整规格应列出必报区、必不报区、灰区、频率估计误差、失败概率、流模型和是否允许第二趟。只承诺候选表大小为 O(1/ε),不能推出无假阴性或计数准确。

推论与应用

在 insertion-only 流和 1 频率阈值下,Misra–Gries 摘要用至多 k1 个计数器生成所有频率超过 m/k 的候选,并给出确定性的加性欠估界。它不直接提供精确频率,也不覆盖带负更新的 turnstile 语义;需要精确输出时应再对候选做第二遍计数或接入独立验证层。

Heavy-hitter 规格把流量大户、热点键和高能坐标统一为带阈值与灰区的恢复问题。Misra–Gries 适合正更新下的 1 候选,CountSketch 则面向 turnstile 与 2 尾部;候选生成、频率验证和 top-k 排名应按各自输出契约组合。

参考资料
  • Misra, Gries, “Finding Repeated Elements,” 1982.
  • Cormode, Hadjieleftheriou, “Finding Frequent Items in Data Streams,” VLDB 2008.
关系图谱9 个相邻概念 · 3 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系