• Aucun résultat trouvé

La localité dans la recherche des plus proches voisins

{𝑡 ∶ 𝔡(𝑡, 𝑥) = 𝑟1} 𝑉𝑟1 1 (𝑥) = {𝑡 ∶ 𝑑(𝑡, 𝑥) = 𝑟1} rectangle Localité cible 𝑉𝑟2 2 (𝑖) = {𝑗 ∶ 𝑗 − 𝑖 = 𝑟2} 𝑉 𝑟2 2 (𝑖) = {𝑗 ∶ |𝑖 − 𝑗| = 𝑟2} grappe Poid 𝑠1 1 𝑟1 󰚵1 si 𝑟1 = 1 0 si 𝑟1 ≠ 1 1 𝑠2 𝑟2 𝑟𝑞2 1 𝑙 󰚵1 si 𝑥 = 𝐶(𝑖)0 si non 󰚵1 si 𝑥 = 𝐶(𝑖)0 si non 󰚵1 si 𝐿0 si 𝐿22 ∈ 𝖢(𝐿∉ 𝖢(𝐿11)) T󰛈󰛉󰛓󰛌󰛈󰛜 3.1 – Paramètres décrivant les mesures existantes par la nouvelle mesure générale proposée.

3.5 La localité dans la recherche des plus proches

voi-sins

3.5.1 Recherche des plus proches voisins

La recherche des plus proches voisins est un problème très courant en l'informa-tique [7,18,20,85,139,147,159]. C'est une recherche des points les plus proches par rapport à une référence dans un espace métrique. Elle est présente dans plusieurs domaines, dont :

CHAPITRE 3. CONSERVATION DE LOCALITÉ 39 — La reconnaissance de formes [15,86,104],

— La classification automatique [5,6,152] avec sa méthode des k plus proches voisins qui est largement utilisée,

— Partitionnement de données [51,52,148] — La vision par ordinateur [55,149,163]

— La recherche d'images par le contenu (CBIR) [35,59,143]

— Théorie des codes [91,153], typiquement, décodage par maximum de vrai-semblance [38,47,154]

— La compression des données [131,135,136]

— Les autres domaines : marketing [27,40,115,134], correcteur orthogra-phique [137], détection du plagiat [161,164].

La solution la plus simple est la recherche linéaire qui consiste à examiner tous les éléments de la base de données. Cependant, comme il s'agit d'une recherche exhaustive, elle est très coûteuse, en particulier dans le cas de grandes dimensions et de grandes bases de données.

Pour une recherche efficace dans le contexte multidimensionel,certaines mé-thodes tentent de partitionner l'espace comme l'arbre k-d (k-d tree) [17,58,166], l'arbre-R (R-tree) et ses extensions [14,67,140]. Le principe de ces méthodes est d'utiliser des structures de données permettant d'indexer l'espace en conservant la localité. Cela revient à partitionner l'espace en segments et que les données dans chaque segment correspondent aux index proches.

Le partitionnement de données, qui est le coeur de ces méthodes, nous permet aussi de les distinguer. Par exemple, l'arbre k-d propose un partitionnement binaire fixé. L'arbre-R divise l'espace en s'adaptant aux données. Chaque segment est défini par le rectangle contenant ses points. Les différentes façons de partitionnement cause un écart de performance dans l'indexation, qui peut être expliqué par l'écart de la conservation de la localité des méthodes de partitionnement.

3.5.2 Approche pour la recherche des plus proches voisins

Nous définissons la recherche des plus proches voisins comme suit :

Définition 7. Examinons un espace 𝒫 avec la métrique 𝑑𝒫, 𝒮𝒫𝑘(𝑝0) est l'ensemble

de𝑘 plus proches voisins dans 𝒫 du point 𝑝0 si∀𝑝 ∈ 𝒫 :

󰚵𝑑𝒫(𝑝, 𝑝0) < max𝑝𝑖∈𝒮𝒫𝑘(𝑝0)𝑑𝒫(𝑝𝑖, 𝑝0) ⇒ 𝑝 ∈∈ 𝒮𝒫𝑘(𝑝0) 𝑑𝒫(𝑝, 𝑝0) > max𝑝𝑖∈𝒮𝒫𝑘(𝑝0)𝑑𝒫(𝑝𝑖, 𝑝0) ⇒ 𝑝 ∉∈ 𝒮𝒫𝑘(𝑝0) Nous appelons le rayon de 𝒮𝒫𝑘(𝑝0) la valeur

max

𝑝𝑖∈𝒮𝒫𝑘(𝑝0)𝑑𝒫(𝑝𝑖, 𝑝0)

1. Si

𝑑𝒫(𝑝, 𝑝0) < max

𝑝𝑖∈𝒮𝒫𝑘(𝑝0)𝑑𝒫(𝑝𝑖, 𝑝0)

on est sûr que 𝑝 est dans 𝒮𝒫𝑘(𝑝0), 2. Si

𝑑𝒫(𝑝, 𝑝0) > max

𝑝𝑖∈𝒮𝒫𝑘(𝑝0)𝑑𝒫(𝑝𝑖, 𝑝0)

on est sûr que 𝑝 n'est pas dans 𝒮𝒫𝑘(𝑝0).

Pour les points que 𝑑𝒫(𝑝, 𝑝0) = max𝑝𝑖∈𝒮𝒫𝑘(𝑝0)𝑑𝒫(𝑝𝑖, 𝑝0), on a au moins un point appartient 𝒮𝒫𝑘(𝑝0), les autres points sont incertains.

Recherche des proches voisins La définition ci-dessus est une approche

tradi-tionnelle et connue de la recherche des plus proches voisins. C'est une recherche stricte des plus proches voisins. Cependant, dans certain contexte, une approche moins stricte peut être utilisée.

Par exemple, dans le contexte de recherche d'images par le contenu dans les bases d'images très grandes, la question de temps d'exécution est toujours posée. La condition plus proche peut être ainsi moins exigeante, une sortie des images si-milaires à celle d'entrée étant acceptable. De plus, comme ces bases d'images sont très grandes, il y a plusieurs images similaires à celle d'entrée et l'écart de niveau

similairen'est pas très grand. Ainsi, une sortie des images similaires, qui ne sont pas obligées les plus similaires, à celle d'entrée peut être acceptée.

Définition 8. Dans un espace 𝒫 avec métrique 𝑑𝒫, une recherche des 𝑘 proches voisins parmi les𝑘 plus proches voisins dans 𝒫 du point 𝑝0permet d'identifier certains

𝑘 points dans𝒮𝒫𝑘(𝑝0).

Indexation Une recherche linéaire, qui examine successivement des éléments dans

la base, est inefficace et parfois impossible, surtout dans les grandes bases de don-nées. Dans un système de recherche d'information en général et dans celui des plus proches voisins en particulier, on fait une étape préparatoire supplémentaire : l'in-dexation. L'indexation est une étape permettant de structurer l'espace de recherche pour faciliter et accélérer la recherche. En accompagnant l'indexation, une méthode de recherche propre doit être proposée.

Mathématiquement, une indexation est simplement une bijection 𝑓 entre un es-pace des données 𝒫 et un eses-pace des index ℑ. Après cette indexation, 𝑖 = 𝑓(𝑝) ∈ ℑ est appelé l'index de 𝑝.

Un exemple simple et connu de l'indexation peut être retrouvé dans la recherche des nombres dans une liste. L'indexation est le tri de la liste, l'index d'un nombre

CHAPITRE 3. CONSERVATION DE LOCALITÉ 41 est son ordre dans la liste classée. Une recherche par dichotomie peut accompagner cette indexation.

Une autre indexation connue est l'arbre-B. L'arbre-B a plusieurs variations (arbre-B+, arbre-B*) et adaptations dans des contextes particuliers, comme arbre-R pour les bases de données spatiales. Il s'agit d'une structure de données en arbre équili-bré. Les données sont stockées dans les noeuds, qui sont représentés par leur clé. Une identification de donnée est un parcours à travers ces noeuds. Ainsi, l'index d'un point est l'ensemble des noeuds parcourus. À noter que dans les noeuds, les clés sont aussi classées et recherchées par dichotomie. Une indexation complexe peut comprendre alors d'autres indexations.

Nous évaluons une indexation via le temps et la complexité de mise en oeuvre des éléments suivants :

— 𝑓 : l'identification de l'index depuis les données — 𝑓−1: l'identification des données depuis l'index — la recherche sur ℑ

Une indexation est bonne si

— elle nous permet de convertir facilement dans les deux sens : des données aux index et l'inverse,

— la recherche dans l'espace des index est rapide.

Pour la recherche des plus proches voisins, en dehors d'identification des don-nées, l'indexation représente en plus le voisinage. Elle permet de localiser un groupe assez petit de voisins où parmi eux, les plus proches voisins sont rapidement retrou-vées.

Dans ce cas-ci, l'indexation est en plus évaluée par un autre critère : la capa-cité de représenter le voisinage. Cette qualité peut être formulée sous forme de la conservation de la localité, qui est présentée au début de ce chapitre.

3.6 Conservation de localité de l'indexation