形式陈述
定义与特例
对流的频率向量 公理库 插入流与 Turnstile 流 Insertion-only stream · Turnstile stream 以频率向量更新语义区分非负插入、严格 Turnstile 与一般正负流。 ,非负频率下 F p = ∑ i f i p 。F 0 = | { i : f i ≠ 0 } | 单独定义以避开 0 0 ;一般非负更新下 F 1 = ∑ t Δ t ,只有单位插入 Δ t = 1 时才等于更新数 m ;F 2 是 self-join size。
流 a , a , b , b 与 a , a , a , b 都长 4;前者 F 2 = 2 2 + 2 2 = 8 ,后者 F 2 = 3 2 + 1 2 = 10 。任务可要求精确值,或给定 ε , δ 返回 ( 1 ± ε ) 近似。
对单位插入流,从 m 个更新位置中有放回独立抽两次,键相同的有序位置对数正是 F 2 。因此 F 2 / m 2 是两次抽取命中同键的概率。它不是频率的方差;在范数空间 公理库 赋范向量空间 Normed vector space 带满足正定、齐次与三角不等式范数的向量空间。 语言中,它与 ‖ f ‖ 2 2 相同,并直接测量碰撞集中度。对 0 < p < 1 ,相应表达只是拟范数幂,不能无条件沿用范数术语。
直觉
不同阶数给频率分布施加不同的放大方式:F 0 只看支持集,F 1 线性累计质量,F 2 把碰撞和集中度放大,更高阶则越来越受最大坐标支配。它们共用一个记号,却不是把同一估计器的指数换掉就能互相得到。
图片加载失败 频率向量与不同阶矩
例子与边界
AMS 二阶矩估计器
选择四独立随机符号 ξ i ∈ { − 1 , + 1 } ,维护
Z = ∑ i ξ i f i . 更新 ( i , Δ ) 只做 Z ← Z + ξ i Δ ,因此同一状态同时支持正负更新。展开可得
E Z 2 = ∑ i f i 2 + 2 ∑ i < j E [ ξ i ξ j ] f i f j = F 2 , 因为交叉项的符号期望为零。对频率 ( 3 , 1 ) ,符号同号时 Z 2 = 16 ,异号时为 4,二者平均为 10,恰等于 3 2 + 1 2 。
单副本波动很大。四独立性用于控制四阶矩与方差;重复独立副本先分组取均值,再取组间中位数,可把相对误差与失败概率降到目标范围。只写“两两独立使估计无偏”不足以支持集中保证。
各阶任务为何不同
F 0 只看支持集,不随同一键重复增长;F 1 在非负流中是更新增量总和,单位插入时才是更新数 m ,无需 sketch;F 2 测量碰撞集中度。更高阶 p 更受最大坐标支配,流算法空间随 p 出现相变,不能把 AMS 的平方换成任意指数就得到通用估计器。
General turnstile 中通常定义
F p = ∑ i | f i | p . 若对奇数 p 直接使用 f i p ,正负坐标会抵消,甚至产生负的“矩”,失去范数语义。严格 turnstile 的非负性又要求每个前缀成立,不能只检查最终向量。
近似与输入边界
乘法 ( 1 ± ε ) 在 F p = 0 时要求精确返回 0,接口应单独约定空流或完全抵消状态。若结果只有加性误差,必须说明相对于 ‖ f ‖ 1 p 、尾部范数还是其他尺度;不能把两者统称“近似”。p 是算法参数,引用空间界时也不能固定后隐藏。
推论与应用
对 turnstile 流中的二阶矩 F 2 ,AMS 二阶矩 Sketch 公理库 AMS 二阶矩 Sketch AMS sketch · Alon–Matias–Szegedy sketch 用随机符号线性投影的平方无偏估计频率向量二阶矩,并以均值—中位数组合放大。 用固定随机符号将频率向量投影为一个标量,再以重复和中位数控制方差与失败概率。其线性更新和可合并性来自同一随机投影;它直接实现的是 F 2 估计,而不是所有 p 的频率矩或逐项 heavy-hitter 恢复。
频率矩统一了 distinct counting、流长、self-join size 与分布集中度等流式目标,并为 AMS、CountSketch 等线性摘要规定了精确估计对象。选用算法时还要固定 insertion-only 或 turnstile 语义、误差尺度与 p 的取值,不能只按 F p 的共同记号迁移保证。
参考资料
Noga Alon, Yossi Matias, and Mario Szegedy, “The Space Complexity of Approximating the Frequency Moments,” Journal of Computer and System Sciences 58(1), 1999, pp. 137–147.
S. Muthukrishnan, “Data Streams: Algorithms and Applications,” Foundations and Trends in Theoretical Computer Science 1(2), 2005, pp. 117–236.