中文

在分析数据流中寻找子立方体频繁项

数据结构与算法 2018-02-22 v2

摘要

数据流通常包含大量维度的数据项。我们研究了该场景下的基础频繁项问题。形式上,数据流由 dd 维数据项 x1,,xm[n]dx_1,\ldots,x_m \in [n]^d 组成。kk 维子立方体 TT 是不同坐标的子集 {T1,,Tk}[d]\{ T_1,\cdots,T_k \} \subseteq [d]。子立方体频繁项查询 Query(T,v){\rm Query}(T,v), v[n]kv \in [n]^k,在 fT(v)γf_T(v) \geq \gamma 时输出 YES,在 fT(v)<γ/4f_T(v) < \gamma/4 时输出 NO,其中 fTf_T 是坐标 TT 联合取值为 vv 的流数据项数量占比。所有子立方体频繁项查询 AllQuery(T){\rm AllQuery}(T) 输出所有对 Query(T,v){\rm Query}(T,v) 返回 YES 的联合值 vv。该问题在 d=1d=1 时的一维版本在数据流理论、数据库、网络和信号处理领域已被广泛研究。子立方体频繁项问题适用于所有这些情况。我们提出了一种简单的基于蓄水池采样的单遍流算法,在 O~(kd/γ)\tilde{O}(kd/\gamma) 的空间内解决子立方体频繁项问题。鉴于已有的下界,这在多对数因子内是最优的。在最坏情况下,该空间复杂度为 Θ(d2/γ)\Theta(d^2/\gamma),对于较大的 dd 而言代价过高,我们的目标是规避这一二次瓶颈。我们的主要贡献是针对子立方体频繁项问题的基于模型的求解方法。具体而言,我们假设各维度之间通过 Naive Bayes 模型相互关联,包含或不包含潜在维度。在此假设下,我们针对该问题提出了一种新的两遍、O~(d/γ)\tilde{O}(d/\gamma) 空间的算法,以及一种能在 O(k/γ2)O(k/\gamma^2) 时间内响应 AllQuery(T){\rm AllQuery}(T) 的快速算法。本研究推进了基于模型的数据流分析方向,该方向仍有大量内容有待探索。

关键词

引用

@article{arxiv.1708.05159,
  title  = {Finding Subcube Heavy Hitters in Analytics Data Streams},
  author = {Branislav Kveton and S. Muthukrishnan and Hoa T. Vu and Yikun Xian},
  journal= {arXiv preprint arXiv:1708.05159},
  year   = {2018}
}

备注

To appear in WWW 2018