Os fluxos de dados tornavam a contagem exata impraticável: manter um contador para cada item possível poderia custar mais memória do que o processador de fluxo tinha. Resumos mais antigos melhoravam o espaço, mas muitos limites ainda eram caros demais.
O Count-Min Sketch usava uma pequena matriz de contadores e várias funções de hash. As atualizações eram incrementos em tempo constante; as consultas pontuais, de intervalo e de produto interno eram aproximadas, mas rápidas e sublineares em memória.
A página de publicação de Cormode e Muthukrishnan resume a melhoria: para vários problemas de fluxo, o limite de espaço ou de tempo tipicamente melhorava de um fator de 1/epsilon ao quadrado para 1/epsilon.
Fazer todo erro apontar para cima
As colisões de hash são toleradas em vez de evitadas, o que torna a memória fixa e previsível.
Tomar o mínimo entre as linhas transforma muitos contadores ruidosos em uma superestimativa limitada.
A estrutura suporta várias consultas de fluxo, não apenas um único relatório de itens frequentes.
Seu formato pequeno e mesclável a tornou prática para telemetria, publicidade, redes e bancos de dados.
A aproximação é mais fácil de operar quando seus erros têm uma direção; o erro unilateral permite que os sistemas a jusante tratem o resultado como uma estimativa superior segura.
O Count-Min Sketch tornou-se um dos sketches padrão para estimativa de frequência em sistemas de streaming. O movimento inteligente não foi fingir que as colisões desaparecem; foi organizar as colisões de modo que seu dano fosse mensurável e unilateral.
CONFIRA AS EVIDÊNCIAS
As fontes
- An improved data stream summary: The count-min sketch and its applications University of Oxford · cs.ox.ac.uk