文章目录
Count-Min-Sketch data structure (CMS) (Cormode and Muthukrishnan 2005)
01 起源與定義
從名字來看,顧名思義是要 tracking count 的變化,在解問題時,若只需要著重數量變化上,這時候就適合使用 Count-Min-Sketch 以下簡稱 CMS。
傳統上,當想要紀錄 element 出現的次數,通常會建立 map 去記錄下 element 與出現次數方便查閱,但是當資料量龐大,或是隨時會有新的 element 加入就會不夠有效率。為顧及記憶體使用量和運算時間,於是有人提出 Probabilistic data structure,在容忍一定誤差情況下,以準確率去換取實用性(tradeoff)的紀錄方式,CMS就屬於其中一種。透過容忍一定程度上的誤差,使響應速度加快,同時對存儲的數據的需求也能大幅降低。
02 步驟說明
- 訂下 d 種不同的 hash function,且產生長度為 w 的計數器們,如下圖一所示,這裡以d=5, w=10 建立 CMS 資料結構,也就是想以五種不同 hash function 和長度為 10 的計數器來追蹤數量變化。
- 當增加一筆資料 element e {e} e 的時候,會透過以下五種 hash function (