카운트-최소 스케치

Count–min sketch

컴퓨팅에서 count-min 스케치(CM sketch)는 데이터 스트림에서 사건의 빈도표 역할을 하는 확률론적 데이터 구조다.해시함수를 사용하여 이벤트를 주파수에 매핑하지만, 해시 테이블달리 충돌로 인한 일부 이벤트의 과대 계수를 감수하면서 하위 선형의 공간만 사용한다.count-min 스케치는 Graham CormodeS에 의해 2003년에 발명되었다. 무쓰 무투크리슈난[1] 2005년 논문에서 기술했다.[2]

Count-min 스케치는 팬 등이 1998년에 도입한 Counting Bloom 필터와 본질적으로 동일한 데이터 구조다.[3]그러나, 그것들은 다르게 사용되고 따라서 크기가 다르다: 카운트-민 스케치는 일반적으로 원하는 스케치의 근사 품질과 관련된 하위 선형의 셀 수를 가지고 있는 반면 카운팅 블룸 필터는 일반적으로 세트의 요소 수와 일치하도록 크기가 더 크다.

데이터 구조

count-min 스케치의 기본 버전의 목표는 이벤트 스트림을 한 번에 하나씩 소비하고 스트림에서 다양한 유형의 이벤트의 빈도를 계산하는 것이다.언제든지 이벤트 유형 의 우주에서 특정 이벤트 유형 i의 주파수에 대해 스케치를 쿼리할 수 있으며, 특정 확률로 실제 주파수에서 일정 거리 내에 있는 이 주파수의 추정치를 반환한다.[a]

실제 스케치 데이터 구조는 w열d행의 2차원 배열이다.스케치 w와 d 매개변수는 스케치가 작성될 때 고정되며, 빈도나 내부 제품에 대해 스케치를 쿼리할 때의 시간과 공간 필요성과 오류 확률을 결정한다.d 행과 연관된 해시 함수는 별도의 해시 함수로 해시 함수는 쌍으로 독립적이어야 한다.w와 d 매개변수w = e/ε⌉⌉ d = lln 1/Δ를 설정하여 선택할 수 있으며, 여기서 질의 응답의 오차는 확률 1 Δ(아래 참조), e오일러의 숫자다.

i 유형의 새로운 이벤트가 도착하면 다음과 같이 업데이트한다: 테이블의 각 행 j에 대해 해당 해시 함수를 적용하여 열 인덱스 k = hj(i)를 얻으십시오.그런 다음 j행, k행의 값을 하나씩 증가시킨다.

스트림에서 몇 가지 유형의 쿼리가 가능하다.

  • 가장 간단한 것은 이벤트 유형 i의 카운트를 묻는 포인트 쿼리다.추정 카운트는 에 대한 표의 최소값, i= j [, h ()] 여기서 은 {이다

분명히 각 i 가 있는데 서 i 스트림에서 발생한 실제 주파수다.

Additionally, this estimate has the guarantee that with probability , where is the stream size, i.e. the total number of items se스케치대로

  • 내부 제품 쿼리 a {\ { _와 c o o o t {\{count} _{의 두 개의 count min 스케치로 대표되는 히스토그램 사이에 내부 제품을 묻는다

데이터 구조에 대한 작은 수정은 다른 스트림 통계를 스케치하는 데 사용될 수 있다.

백작 스케치처럼 백작-민 스케치는 선형 스케치다.즉, 두 개의 하천이 주어진 경우 각 하천에 스케치를 구성하고 스케치를 합하면 하천을 연결한 후 연결된 하천에 스케치를 구성하는 것과 동일한 결과를 얻는다.이것은 스케치를 병합할 수 있게 하고 스트리밍 설정뿐만 아니라 분산된 설정에서도 사용할 수 있게 한다.

치우침 및 오류 감소

카운트-미네 스케치에 대한 일반적인 최소 추정기의 한 가지 잠재적인 문제는 그것들이 사건의 실제 빈도에 대한 편향된 추정기라는 것이다. 즉, 그것들은 과대평가할 수 있지만, 점 질의에서는 결코 진정한 카운트를 과소평가하지 않는다.더욱이 분포가 심하게 치우쳐 있을 때는 최소 추정기가 잘 작동하지만, 분포가 충분히 치우치지 않을 때는 수단에 기초한 카운트 스케치와 같은 다른 스케치가 더 정확하다.오차를 줄이고 편향을 줄이거나 제거하기 위해 스케치의 몇 가지 변형이 제안되었다.[4]

치우침을 제거하기 위해 hCount* 추정기는 스케치에서 d 랜덤 항목을 반복적으로 선택하고 최소값을 취하여 치우침의 불편 추정치를 구한 후 이를 뺀다.

최대우도 추정기(MLE)는 Ting에서 도출되었다.[6]MLE를 사용함으로써 추정기는 항상 최소 추정기와 일치하거나 더 잘 조합할 수 있으며 분포가 치우치지 않더라도 잘 작동한다.또한 본 논문에서는 hCount* debiasing 작업이 무작위 샘플링 없이 효율적으로 계산될 수 있는 부트스트래핑 절차라는 것을 보여주었으며, 어떤 추정기로도 일반화할 수 있다.

우주의 미지의 아이템과 해시 충돌에서 오류가 발생하기 때문에 우주의 여러 원소가 동시에 알려져 있거나 쿼리될 때 충돌에 대해 여러 가지 접근법이 수정된다.[8][6]이들 각각의 경우에, 우주의 많은 부분이 유의미한 이익을 관찰하기 위해 알려져 있어야 한다.

보수적인 업데이트는 업데이트를 변경하지만 쿼리 알고리즘은 변경하지 않는다.To count c instances of event type i, one first computes an estimate , then updates 화살표 {\ 대해.이 업데이트 절차는 스케치를 선형 스케치가 아니지만, 여전히 병합할 수 있다.

참고 항목

메모들

  1. ^ 다음 논의에서는 "긍정적인" 사건만 발생한다고 가정한다. 즉, 다양한 유형의 빈도는 시간이 지남에 따라 감소할 수 없다.주파수가 감소할 수 있는 보다 일반적인 경우를 위해 다음과 같은 알고리즘의 수정이 존재한다.

참조

  1. ^ Cormode, Graham (2009). "Count-min sketch" (PDF). Encyclopedia of Database Systems. Springer. pp. 511–516.
  2. ^ Cormode, Graham; S. Muthukrishnan (2005). "An Improved Data Stream Summary: The Count-Min Sketch and its Applications" (PDF). J. Algorithms. 55: 29–38. doi:10.1016/j.jalgor.2003.12.001.
  3. ^ Fan, Li; Cao, Pei; Almeida, Jussara; Broder, Andrei (2000), "Summary Cache: A Scalable Wide-Area Web Cache Sharing Protocol", IEEE/ACM Transactions on Networking, 8 (3): 281–293, CiteSeerX 10.1.1.41.1487, doi:10.1109/90.851975, S2CID 4779754'98년 SIGCOMM'에 예비 버전이 나왔어
  4. ^ Goyal, Amit; Daumé, Hal III; Cormode, Graham (2012). Sketch algorithms for estimating point queries in NLP. Proc. EMNLP/CoNLL.
  5. ^ Jin, C.; Qian, W.; Xu, X.; Zhou, A. (2003), Dynamically maintaining frequent items over a data stream, CiteSeerX 10.1.1.151.5909
  6. ^ a b Ting, Daniel (2018). "Count-Min": 2319–2328. doi:10.1145/3219819.3219975. {{cite journal}}:Cite 저널은 필요로 한다. journal=(도움말)
  7. ^ Deng, Fan; Rafiei, Davood (2007), New estimation algorithms for streaming data: Count-min can do more, CiteSeerX 10.1.1.552.1283
  8. ^ Lu, Yi; Montanari, Andrea; Prabhakar, Balaji; Dharmapurikar, Sarang; Kabbani, Abdul (2008). "Counter braids". ACM SIGMETRICS Performance Evaluation Review. 36 (1): 121–132. doi:10.1145/1384529.1375472. ISSN 0163-5999.

추가 읽기

  • Dwork, Cynthia; Naor, Moni; Pitassi, Toniann; Rothblum, Guy N.; Yekhanin, Sergey (2010). Pan-private streaming algorithms. Proc. ICS. CiteSeerX 10.1.1.165.5923.
  • Schechter, Stuart; Herley, Cormac; Mitzenmacher, Michael (2010). Popularity is everything: A new approach to protecting passwords from statistical-guessing attacks. USENIX Workshop on Hot Topics in Security. CiteSeerX 10.1.1.170.9356.

외부 링크