En informatique, le count sketch est une technique de réduction de dimensionnalité basée sur une structure de données probabiliste, permettant d'estimer avec un coût en mémoire limité le nombre d'apparitions des éléments les plus fréquents dans un flux de données.
Il a été introduit en 2004 par M. Charikar, K. Chen, et M. Farach-Colton[1].
Histoire
[modifier | modifier le code]Le count sketch a été proposé comme une amélioration du sketch AMS de N.Alon, Y.Matias et M.Szegedy[2].
Définition
[modifier | modifier le code]Le count sketch peut être vu comme un nom recouvrant à la fois une structure de données, une procédure permettant de la mettre à jour lorsqu'un nouvel élément du flux doit être traité, ainsi qu'une règle permettant à tout moment d'estimer la fréquence des éléments les plus courants à partir de la structure de données.
Structure de données
[modifier | modifier le code]Soit l'ensemble d'entrée, c.-à-d. auquel appartiennent les éléments du flux. Soit deux paramètres controllant la taille du sketch. Soient des fonctions de hachage de vers indépendantes. Soient des fonctions de hachage de vers , indépendantes deux à deux et indépendantes des
Le sketch lui-même consiste en une table (matrice) , dont toutes les entrées sont initialisées à zéro.
Ajout d'un élément
[modifier | modifier le code]Lorsqu'un nouvel élément est traité, la table est mise à jour de la manière suivante:
Pour
Ainsi, chaque ligne du tableau a exactement une entrée qui est modifiée (incrémentée ou décrémentée selon la valeur de ) lors de l'ajout d'un nouvel élément.
Estimation du nombre d'occurrences
[modifier | modifier le code]Pour estimer le nombre d'occurrences d'un élément , l'estimateur suivant est calculé:
Garanties
[modifier | modifier le code]Soit , et le nombre total d'éléments dans le flux. Soit le nombre d’occurrences dans le flux du -ième élément apparaissant le plus. Dans leur article original, les auteurs prouvent[1] qu'en choisissant et plus grand qu'un seuil dépendant notamment de , l'algorithme permet de retrouver une liste de éléments apparaissant chacun strictement plus de .
Références
[modifier | modifier le code]- M. Charikar, K. Chen, M. Farach-Colton, « Finding frequent items in data streams », Theoretical Computer Science, Elsevier, vol. 312, t. 1,
- ↑ N. Alon, Y. Matias, M. Szegedy, « The space complexity of approximating the frequency moments », Proceedings of the twenty-eighth annual ACM symposium on Theory of Computing,
