“Count–Min 对非负频率使用无符号桶和逐行最小值,碰撞只会造成单边高估;CountSketch加入随机符号并取中位数,误差围绕真实频率摆动,更适合 turnstile 流和 $\ell…”
形式陈述
CountSketch 属于线性 Sketch:每行对频率向量做带随机符号的桶投影,更新和摘要合并保持线性,坐标估计则在这些线性测量上取作为顺序统计量的中位数。
线性摘要
对从零开始的一般 Turnstile 流,先固定与随机哈希独立的净频率向量
第
无偏与方差
展开得
记碰撞指示量为
例如取
资源口径
在哈希求值与计数器算术均按常数时间计的模型下,一次更新处理
直觉
符号哈希先把碰撞键随机翻转,使它们的贡献围绕零而不是单向累加;桶哈希再把总尾部能量分摊到多个桶。不同重复行给出彼此独立的噪声样本,中位数忽略少数灾难性碰撞,所以最终保证自然以
例子与边界
正负碰撞例子
turnstile 流中两个其他键可能与目标同桶。一个符号与目标同号、另一个反号时,噪声可能相互抵消;不同重复行重新抽桶和符号,单行偶然大偏差不会主导中位数。即使当前频率本身有正有负,上面的平方和方差证明仍适用;strict turnstile 则允许正负更新,但要求所有键的当前频率始终非负。
边界与对照
估计可高可低,不提供单调上界。取行均值仍可无偏,但少数极端碰撞会拉动结果,不能照搬中位数的指数失败界。Count–Min在当前频率非负等条件下给一侧
推论与应用
Heavy hitters 恢复
点查询只在给定键时估计。若要从巨大宇宙中找 heavy hitters,需候选生成机制,例如按键位建立分层 CountSketch、递归识别高能桶,再对候选精查。逐键扫描整个宇宙会执行
误差中
参考资料
- 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.