Count sketch
From Wikipedia, the free encyclopedia
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
Le count sketch a été proposé comme une amélioration du sketch AMS de N.Alon, Y.Matias et M.Szegedy[2].
Définition
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
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
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
Pour estimer le nombre d'occurrences d'un élément , l'estimateur suivant est calculé:
Garanties
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 .