Skip to content

算法Algorithm

CountSketch

施工中 · 内容逐步修订

CountSketch · Count Sketch

以桶哈希和随机符号抵消碰撞,再跨行取中位数估计频率与 L2 heavy hitters。

形式陈述 ​

CountSketch 属于线性 Sketch:每行对频率向量做带随机符号的桶投影,更新和摘要合并保持线性,坐标估计则在这些线性测量上取作为顺序统计量的中位数。

线性摘要 ​

对从零开始的一般 Turnstile 流,先固定与随机哈希独立的净频率向量 f 和查询键 i,以及 0<ε<1、0<δ<1。一组足够的随机性条件是:每行的桶哈希 hj:[U]→[w] 来自碰撞概率至多 1/w 的通用哈希族;符号哈希 sj:[U]→{−1,+1} 均匀且四路独立,并与桶哈希独立;不同行的整组随机选择相互独立。更新 (i,Δ) 时

C[j,hj(i)]+=sj(i)Δ.

第 j 行对 i 的估计为 Xj=sj(i)C[j,hj(i)],最终取各行中位数。

无偏与方差 ​

展开得

Xj=fi+∑k≠i:hj(k)=hj(i)sj(i)sj(k)fk.

记碰撞指示量为 Ik=1{hj(k)=hj(i)}。由于符号与桶哈希独立且 E[sj(i)sj(k)]=0,有 E[Xj]=fi。展开噪声平方,k≠l 的交叉项含 E[sj(k)sj(l)]=0,留下

Var(Xj)=∑k≠ifk2Pr(Ik=1)≤‖f−i‖22w.

例如取 w≥3/ε2,Chebyshev 不等式给出单行误差超过 ε‖f−i‖2 的概率至多 1/3。跨独立行取中位数后,只有至少一半行同时失准才会失败;对坏行指示量应用Hoeffding 不等式,失败概率至多 e−d/18,故取最小的奇数 d≥18ln⁡(1/δ) 即可。若 ‖f−i‖2=0,查询直接精确,无需使用这一概率界。

资源口径 ​

在哈希求值与计数器算术均按常数时间计的模型下,一次更新处理 d 行,耗时 O(d);一次点查询也耗时 O(d),其中跨行中位数用线性时间选择算法计算,不必排序。摘要保存 O(wd) 个计数器,另存所用哈希函数的描述。计数器位宽须按允许的流质量和更新幅度单独选择并计入空间;上述操作次数不是对任意精度整数的无条件位复杂度保证。

直觉

符号哈希先把碰撞键随机翻转,使它们的贡献围绕零而不是单向累加;桶哈希再把总尾部能量分摊到多个桶。不同重复行给出彼此独立的噪声样本,中位数忽略少数灾难性碰撞,所以最终保证自然以 L2 尾部能量而非全局 L1 质量计量。

例子与边界

正负碰撞例子 ​

turnstile 流中两个其他键可能与目标同桶。一个符号与目标同号、另一个反号时,噪声可能相互抵消;不同重复行重新抽桶和符号,单行偶然大偏差不会主导中位数。即使当前频率本身有正有负,上面的平方和方差证明仍适用;strict turnstile 则允许正负更新,但要求所有键的当前频率始终非负。

边界与对照 ​

估计可高可低,不提供单调上界。取行均值仍可无偏,但少数极端碰撞会拉动结果,不能照搬中位数的指数失败界。Count–Min在当前频率非负等条件下给一侧 L1 误差,本页给双侧 L2 误差。若查询键或输入由同一摘要的反馈自适应选择,也不能直接套固定 f,i 的概率界。

推论与应用

Heavy hitters 恢复 ​

点查询只在给定键时估计。若要从巨大宇宙中找 heavy hitters,需候选生成机制,例如按键位建立分层 CountSketch、递归识别高能桶,再对候选精查。逐键扫描整个宇宙会执行 U 次点查询;每次读取 d 行并用线性时间选择中位数,总计 Θ(Ud) 次基本操作,适合宇宙本身较小的场合。

误差中 ‖f−i‖2 可进一步用去掉若干最大频率后的 tail norm 表达,支撑 sparse recovery。具体桶数、行数和候选阈值要随 theorem 版本一致,不能把点查询式直接称完整 heavy-hitter 算法。

参考资料
  • Moses Charikar, Kevin Chen, Martin Farach-Colton, Finding Frequent Items in Data Streams, ICALP, 2002.
  • Piotr Indyk, Stable Distributions, Pseudorandom Generators, Embeddings, and Data Stream Computation, JACM, 2006.
关系图谱16 个相邻概念 · 4 类关系

拖动节点调整位置。

显示关系

显示:依赖

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

上位 / 更一般

下位 / 直接特例

暂未标注直接特例。

类型化关系