1 / 23

研究紹介 #1

Best Paper. 研究紹介 #1. Finding Frequent Items in Data Streams Graham Cormode (AT&T Labs, USA), Marios Hadjieleftheriou (AT&T Labs, USA). The Frequent Items Problem ?. Item のストリームにおいて、与えられた閾値よりも多く出現する Item を全て見つける 例: Item が TCP パケットなら、 Frequent Items は 人気のある終端 バンド幅を占有しているユーザ

Download Presentation

研究紹介 #1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. BestPaper 研究紹介#1 Finding Frequent Items in Data Streams Graham Cormode (AT&T Labs, USA), Marios Hadjieleftheriou (AT&T Labs, USA).

  2. The Frequent Items Problem? • Itemのストリームにおいて、与えられた閾値よりも多く出現するItemを全て見つける • 例: • ItemがTCPパケットなら、Frequent Itemsは • 人気のある終端 • バンド幅を占有しているユーザ • Itemがサーチエンジンクエリなら、Frequent Itemsは • 人気のある検索語 • たくさん目の前を通り過ぎたネタは何か?

  3. 定義 • Stream S of n items: t1, …, tn. • Frequency of item i is fi= |{j|tj= i}|. • The exact φ-frequent set is: {i|fi> φn}. • もし φ=0.2なら Frequent Set = {i|fi> 2} • よって、0.2-Frequent Items = t1 t2 t3 t4 t5 t6 t7 t8 t9 tn ・ ・ ・ n=10 → fi=4 i t1 A t2 Z t3 i t4 Z t5 t6 A t7 P i t8 t9 i Z t10 φ:ストリーム中に出現する頻度を表す変数 i A Z i Z A P i i Z 出現回数 3回以上 i Z

  4. 定義(続き) 不可 良 優 • 実際にこの論文が扱うのは… • ε-approximate frequent item要件 • 結果集合Fの全てのiにおいてfi>(φ-ε)nが成り立ち、 • fi>φnの成り立つ{i|i∉F}は無い • 簡単に言うなら • 間違い(False Positive)は含んでるかもしれないけど • 見落とし(False Negative)は無い i A Z i Z A P i i Z φ=0.2(=3回以上出現) False Positive False Nagative Z i i A Z Z A P i

  5. Frequent Item Problem • 要件 • 速い動作 • 少ない作業領域 • 正確さ • アルゴリズムの分類 • Counter Based • Quantile Based • Skeches

  6. 本研究では・・・ • 可能なアルゴリズム全て実装 • 一般的なテストベッド上に構築 • 可能な限り様々な実装方式を採用 • 様々なデータ形式 • 様々なアルゴリズム・デザイン • 様々なシナリオで何がBestかを調べる

  7. ① Counter Based Algorithms • 特徴 • Fast • Small Space • Deterministic • Do not Support Deletions • 削除のイベント(item)を含むストリームは対象外

  8. 準備:Majority Algorithm (Boyer) • 最も頻出なアイテムを探すアルゴリズム • カウンターを1として最初のアイテムを保存する • 次に同じアイテムが来たらカウンターを1増やす • 違うアイテムが来たら… • もしカウンターが0でなければ → カウンターを1減らす • カウンターが0ならば → カウンターを1として新しいアイテムを保存 • 最後に保存されていたアイテムがMajority! ストリーム カウンタ値・保存アイテム 赤 赤 緑 緑 緑 紫 1 2 1 0 1 0 緑がMajority! ただし、本研究で扱うのはTop-kを得るアルゴリズム

  9. #1:Frequent Algorithm 赤 赤 赤 赤 青 青 緑 緑 緑 緑 • 出典 • E. Demaine, A. L´opez-Ortiz, and J. I. Munro. Frequencyestimation of internet packet streams with limited space. In European Symposium on Algorithms (ESA), 2002. • R. Karp, C. Papadimitriou, and S. Shenker.A simplealgorithm for finding frequent elements in sets and bags.ACM Transactions on Database Systems, 28:51–55, 2003. |T|<k e.g. Frequent(k=2) No! No! ∊ T ? ∊ T ? 赤 赤 青 緑 緑 i ∅ T= Yes! Yes! 1 1 2 1 1 0 カウンタを1増やす アイテムをカウンタとともにTへ保存 カウンタ0のアイテムはTから削除 Tの全てのアイテムのカウンタを1減らす A. 赤 緑

  10. #2:Lossy Counting 赤 赤 赤 赤 青 青 緑 緑 緑 緑 赤 赤 • 出典 • G. Manku and R. Motwani. Approximate frequency countsover data streams. In International Conference on Very LargeData Bases, 2002. home e.g. LossyCounting(k=2) e.g. LossyCounting(k=2) カウンタ値を⊿+1としTに保存 カウンタ値を⊿+1としTに保存 No! No! No! n++ n++ ∊ T ? ∊ T ? 赤 赤 赤 赤 緑 青 緑 Yes! Yes! カウンタを1増やす カウンタを1増やす Yes! Yes! 全てのj∊Tに関して 全てのj∊Tに関して ∅ カウンタが⊿未満ならTからアイテムを削除 カウンタが⊿未満ならTからアイテムを削除 ⊿= ⊿= 0 0 3 1 2 n= n= 5 2 3 4 1 0 6 0 T= T= 3 1 2 2 2 3 A. home 赤 緑

  11. #3:Space Saving 赤 赤 赤 赤 青 青 緑 緑 緑 緑 • 出典 • A. Metwally, D. Agrawal, and A. E. Abbadi. Efficientcomputation of frequent and top-k elements in data streams. In International Conference on Database Theory, 2005. e.g. SpaceSaving(k=2) |T|<k ? |T|<k ? No! No! No! No! ∊ T ? ∊ T ? 緑 青 赤 赤 i 緑 Yes! Yes! Yes! Yes! カウンタを1増やす カウンタを1増やす 最少カウンタ値に1を加えた値⇒ 最少カウンタ値に 1を加えた値を得る 2 ∅ アイテムをカウンタとともにTへ保存 アイテムをカウンタとともにTへ保存 T= T= 2 1 3 1 新しいアイテムカウンタ値で最小カウンタアイテムを置換 新しいアイテムカウンタ値で最小カウンタアイテムを置換 A. 赤 緑

  12. 実験 • VC++, g++ • データセット • Zipfデータ • AT&T UDP and TCP backbone traffic • 計測 • 速度 • スペースコスト • Recall, Precision • Average Relative Error(ARE):相対誤差の平均値

  13. 実装系 3つのアルゴリズム、計5種類の実装系で計測 • F: Frequentアルゴリズム • LC: Lossy Counting アルゴリズム(⊿なし) • LCD: Lossy Countingアルゴリズム • SSL: Space Savingアルゴリズム(Linked List実装) • SSH: Space Savingアルゴリズム(Heap実装)

  14. 結果(Speed) 正誤表: グラフの縦軸の速・遅が逆 オレンジ色の線の位置 その他、下線部を更新 スピード 速 Log Scale 遅 φ Skew • FとSSLが速い • Linkd List は総じて速い • Heapは低skew時に遅い • φの影響は殆ど無い F: Frequentアルゴリズム LC: Lossy Counting アルゴリズム(⊿なし) LCD: Lossy Countingアルゴリズム SSL: Space Savingアルゴリズム(Linked List実装) SSH: Space Savingアルゴリズム(Heap実装)

  15. 結果(Size) スピード サイズ • SpaceSavingに関して • Heapは小さい • Linked Listはφが低い時Heapの二倍 F: Frequentアルゴリズム LC: Lossy Counting アルゴリズム(⊿なし) LCD: Lossy Countingアルゴリズム SSL: Space Savingアルゴリズム(Linked List実装) SSH: Space Savingアルゴリズム(Heap実装)

  16. 結果(Recall) 再現率 Log Scale φ Skew • Recallはすべて100% • =false negative無し F: Frequentアルゴリズム LC: Lossy Counting アルゴリズム(⊿なし) LCD: Lossy Countingアルゴリズム SSL: Space Savingアルゴリズム(Linked List実装) SSH: Space Savingアルゴリズム(Heap実装)

  17. 結果(Precision) 適合率 Log Scale φ Skew • Fは適合率が低い • LC, LCDはskewの影響 • SSL, SSHはほぼ100% • データセットの影響無し F: Frequentアルゴリズム LC: Lossy Counting アルゴリズム(⊿なし) LCD: Lossy Countingアルゴリズム SSL: Space Savingアルゴリズム(Linked List実装) SSH: Space Savingアルゴリズム(Heap実装)

  18. 結果(Average Relative Error) ARE Log Scale φ Skew • Fのみ誤差がある • 低skew時に顕著 • HTTP, UDPは異なる特徴 • (データセットによる違い) F: Frequentアルゴリズム LC: Lossy Counting アルゴリズム(⊿なし) LCD: Lossy Countingアルゴリズム SSL: Space Savingアルゴリズム(Linked List実装) SSH: Space Savingアルゴリズム(Heap実装)

  19. まとめ • 勝者: Space Savingアルゴリズム • 特にHeap実装 • 消費スペースが小さい • Recall, Precision = 100% • Lossy CountingやFrequentに比べて速い • Linked List実装 • スピードだけでいえば最速 • ただしHeapに比べて二倍の消費スペース • スペースが問題とならない場合はLinked Listが良いだろう…

  20. と、ここまでで • 論文の1/3です・・・ • Frequent Item Problem • Counter-base algorithm • Quantile algorithm • Sketch algorithm • こんなに残っています。 ☜今はココ! ここでは(VLDB08でも)、 これらに関してはサマリー

  21. ② Quantile Algorithm • Greenwald and Khanna (GK) • Quantile Digest (Suri et al.) • 特徴 • Large space • Answer a more general problem • まとめ • 総じてQDはGKに勝っている • スピードは遅い • メモリ効率も悪い • Frequencies Accuratelyの見積もりができない

  22. ③ Sketch Algorithm • CountSketch (Charikar et al.) • CountMin Sketch (Cormode and Muthukrishnan) • 特徴 • 削除に対応 • まとめ • どちらが勝っているかは結果からは分からなかった • Hierarchical CountMinはスピードが速く、メモリ効率も良かった。 • ただしskewなデータでのみ正確だった • Combinatorial Group Testing CountMinは早く正確だった。 • ただしメモリ効率は悪かった • CountSketchはメモリ効率が良く正確だった。 • ただしスピードが遅い

  23. おわりに • ここで紹介したアルゴリズムの実装は全て以下のURLで公開されている。 • http://research.att.com/~marioh/frequent-items/index.html

More Related