estratÉgiaspararecuperaÇÃodedados ...€¦ ·...

67
LARISSA CAPOBIANCO SHIMOMURA ESTRATÉGIAS PARA RECUPERAÇÃO DE DADOS COMPLEXOS POR SIMILARIDADE UTILIZANDO GRAFOS LONDRINA–PR 2016

Upload: others

Post on 24-May-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

LARISSA CAPOBIANCO SHIMOMURA

ESTRATÉGIAS PARA RECUPERAÇÃO DE DADOSCOMPLEXOS POR SIMILARIDADE UTILIZANDO

GRAFOS

LONDRINA–PR

2016

Page 2: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem
Page 3: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

LARISSA CAPOBIANCO SHIMOMURA

ESTRATÉGIAS PARA RECUPERAÇÃO DE DADOSCOMPLEXOS POR SIMILARIDADE UTILIZANDO

GRAFOS

Trabalho de Conclusão de Curso apresentadoao curso de Bacharelado em Ciência da Com-putação da Universidade Estadual de Lon-drina para obtenção do título de Bacharel emCiência da Computação.

Orientador: Prof. Dr. Daniel dos Santos Kas-ter

LONDRINA–PR

2016

Page 4: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

Larissa Capobianco ShimomuraEstratégias para recuperação de dados complexos por similaridade utilizando

grafos/ Larissa Capobianco Shimomura. – Londrina–PR, 2016-65 p. : il. (algumas color.) ; 30 cm.

Orientador: Prof. Dr. Daniel dos Santos Kaster

– Universidade Estadual de Londrina, 2016.

1. Consultas por similaridade. 2. Grafos. I. Prof. Dr. Daniel dos SantosKaster. II. Universidade Estadual de Londrina. III. Ciência da computação. IV.Uma revisão de literatura sobre recuperação de dados complexos por similaridadeutilizando grafos

CDU 02:141:005.7

Page 5: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

LARISSA CAPOBIANCO SHIMOMURA

ESTRATÉGIAS PARA RECUPERAÇÃO DE DADOSCOMPLEXOS POR SIMILARIDADE UTILIZANDO

GRAFOS

Trabalho de Conclusão de Curso apresentadoao curso de Bacharelado em Ciência da Com-putação da Universidade Estadual de Lon-drina para obtenção do título de Bacharel emCiência da Computação.

BANCA EXAMINADORA

Prof. Dr. Daniel dos Santos KasterUniversidade Estadual de Londrina

Orientador

Prof. Dr. Alan Salvany FelintoUniversidade Estadual de Londrina

Prof. Ms. Fábio Cezar MartinsUniversidade Estadual de Londrina

Londrina–PR, 24 de novembro de 2016

Page 6: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem
Page 7: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

Este trabalho é dedicado aos meus falecidos avôs,Luís Capobianco e Satio Shimomura.

Page 8: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem
Page 9: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

AGRADECIMENTOS

Primeiramente agradeço a Deus por ser o maior mestre ao longo da minha vida.

Agradeço à minha família, em especial aos meus pais, pelo amor incondicional econstante apoio durante, não apenas o período da graduação mas em todos os momentosde minha vida. A todos entes queridos da família que já faleceram mas me deixarammuitos ensinamentos.

A todos que fazem parte do Departamento de Computação (DC) em especial aosdocentes que desempenharam com dedicação as aulas ministradas.

Um agradecimento especial à todos os amigos que me acompanharam durante àgraduação, inclusive aqueles com quem tive oportunidade de conviver junto durante operíodo de intercâmbio.

Agradeço também ao meu namorado que sempre esteve ao meu lado quando pre-cisei.

Gostaria de agradecer ao Prof.Dr. Daniel dos Santos Kaster pelo incentivo, paci-ência e orientações no projeto de iniciação científica, estágio e neste trabalho. Por fim, àtodos os membros do grupo CROSS da Universidade Estadual de Londrina pela compa-nhia durante as tardes de trabalho.

Page 10: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem
Page 11: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

O assunto mais importante do mundo pode ser simplificadoaté ao ponto em que todos possam apreciá-lo e compreendê-lo.

Isso é - ou deveria ser - a mais elevada forma de arte.(Charles Chaplin)

Page 12: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem
Page 13: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

SHIMOMURA, L. C.. Estratégias para recuperação de dados complexos por si-milaridade utilizando grafos. 65 p. Trabalho de Conclusão de Curso (Bacharelado emCiência da Computação) – Universidade Estadual de Londrina, Londrina–PR, 2016.

RESUMO

Atualmente, uma grande quantidade de aplicações utilizam dados complexos como ima-gens, vídeos e dados geográficos. A abordagem mais utilizada para recuperar dado com-plexos são as consultas por similaridade. As consultas por similaridade têm como objetivoprincipal recuperar dados similares a partir de características intrínsicas dos dados. As-sim, para facilitar a recuperação de dados complexos usando consultas por similaridade énecessário organizar grande quantidade de dados de forma que dados similares possam serrecuperados de forma fácil. Consultas por similaridade são geralmente modeladas comoespaços métricos onde o quanto mais próximo um dado estiver do outro mais similareseles são. Grafos permitem uma grande interconectividade de dados, por causa de sua es-trutura, podendo explorar relacionamentos e “vizinhos‘ de forma ágil. Assim, ao utilizargrafos para conectar dados similares, grafos, em hipótese, são mais adequados para a recu-peração de dados complexos utilizando consultas por similaridade que outras estruturas.Porém, a forma como o grafo é construído é um problema primordial, uma vez que estainfluencia não apenas em como as consultas são realizadas mas também na exatidão dasconsultas. Assim, este trabalho tem como contribuição uma categorização dos diferentestipos de grafos e algoritmos de consulta por similaridade em grafos já propostos na área.Além disso é feito um estudo quanto à estrutura dos grafos mais utilizados, propriedadesutilizadas para definir a inserção de arestas e a relação destas propriedades do grafo coma exatidão das consultas por similaridade. Experimentos foram realizados comparando ografo 𝑘-NN e o RNG utilizando o algoritmo de consulta por similaridade iGNNS, os resul-tados destes experimentos mostram que existe um trade-off entre o custo de construçãodos grafos e a acurácia dos resultados das consultas por similaridade.

Palavras-chave: Consultas por similaridade, dados complexos, grafos

Page 14: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem
Page 15: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

SHIMOMURA, L. C.. A survey of complex data similarity retrieval using graphs.65 p. Final Project (Bachelor of Science in Computer Science) – State University ofLondrina, Londrina–PR, 2016.

ABSTRACT

A huge amount of applications uses complex data such as images, videos and geographicdata. The most used approach to retrieve complex data are the similarity searches. Thesimilarity searches aim at retrieving similar data according to intrinsic characteristics ofthe data. Therefore, in order to facilitate the retrieval of complex data using similaritysearches it is necessary to organize large collections of data in a way that similar data canbe easily retrieved. Similarity searches are usually modelled in metric spaces where thecloser the data is from one another the more similar they are. Graphs allows a big inter-connectivity of data, due to its structure, enabling to explore relationships and neighborsin a agile way. So, by using graphs to link similar data, graphs, hypothetically, are moreappropriate for complex data retrieval using similarity searches than other structures.However, the way the graph is built is a primordial problem, it can influence not only onhow the queries are processed but also in the exactness of the query results. This workcontribution is a categorization of different types of graphs and algorithms of similar-ity searches in graph proposed in the literature. This work also presents a study aboutthe structure of the most used types of graphs, properties used to define the connection(edges) between vertices and the relation between these graphs properties and the exact-ness of the query results. Experiments comparing the 𝑘-NN graph and the RNG usingthe similarity search algorithm iGNNS have shown that there is a trade-off between thegraph construction cost and the accuracy of the similarity queries results.

Keywords: Similarity queries, complex data, graphs

Page 16: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem
Page 17: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

LISTA DE ILUSTRAÇÕES

Figura 1 – Amostra de 277 cidades da base de dados USCities apresentadas deacordo com suas coordenadas geográficas. . . . . . . . . . . . . . . . . 27

Figura 2 – Representação visual de consultas por similaridade no espaço Euclidi-ano. (a) Consulta por abrangência (limiar de dissimilaridade=𝑟). (b)Consulta aos 𝑘-vizinhos mais próximos (𝑘 = 4) . . . . . . . . . . . . . . 29

Figura 3 – Vértice de Voronoi e aresta de Voronoi . . . . . . . . . . . . . . . . . . 31Figura 4 – Diagrama de Voronoi gerado a partir do conjunto de 277 cidades da

Figura 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32Figura 5 – Grafo de Delaunay obtido através do diagrama de Voronoi da Figura 4. 33Figura 6 – Comparação da ordem dos grafos de Delaunay (DG), grafo de Gabriel

(GG) e grafo de vizinhança relativa (RNG) de acordo com o crescimentode dimensões, considerando ordem como o número de vértices adjacentes 35

Figura 7 – Crescimento da ordem dos grafo GG e RNG conforme o aumento dedimensões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

Figura 8 – Grafo 𝑘-NN de 𝑘 = 2 construído a partir das amostras da Figura 1 . . 43Figura 9 – Região desconexa do grafo 𝑘-NN . . . . . . . . . . . . . . . . . . . . . 44Figura 10 – Grafos 𝑘-NN e 𝑘-DR de 𝑘 = 2 a partir dos dados da Figura 1 . . . . . 44Figura 11 – Comparação do grafo 𝑘-NN e 𝑘-DR para o vértice Drayton city . . . . 45Figura 12 – Grafo RNG construído a partir das amostras da Figura 1 . . . . . . . . 46Figura 13 – Exemplo sobre a aproximação espacial no RNG com resposta incorreta 46Figura 14 – Tempo de execução de construção dos grafos na escala e número de

cálculos de distância realizados durante a construção, ambos na escalalog10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

Figura 15 – Comparação do tempo de construção entre os grafos 𝑘-NN e o RNGpara as bases Sintéticas de diferentes dimensões. Tempo de execuçãoem nanosegundos na escala log10 pelo número de elementos na base. . . 54

Figura 16 – Comparação da acurácia em porcentagem ao aplicar o algoritmo iGNNSnos grafos 𝑘-NNG e RNG para a base de dados USCities. . . . . . . . . 55

Figura 17 – Comparação do tempo de execução e da acurácia ao aplicar o algoritmoiGNNS nos grafos 𝑘-NNG e RNG para dados sintéticos de 2 dimensões.Tempo de execução em nanosegundos na escala log10 e acurácia emporcentagem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Figura 18 – Comparação do tempo de execução e da acurácia ao aplicar o algoritmoiGNNS nos grafos 𝑘-NNG e RNG para dados sintéticos de 8 dimensões.Tempo de execução em nanosegundos na escala log10 e acurácia emporcentagem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Page 18: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

Figura 19 – Comparação do tempo de execução e da acurácia ao aplicar o algoritmoiGNNS nos grafos 𝑘-NNG e RNG para dados sintéticos de 32 dimen-sões. Tempo de execução em nanosegundos na escala log10 e acuráciaem porcentagem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

Figura 20 – Comparação do tempo de execução, acurácia e número de nós visitadosdurante a consulta entre o algoritmo iGNNS e a aproximação espacial(algoritmo guloso) para o grafo RNG utilizando a base de dados sinté-tica de 32 dimensões. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

Page 19: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

LISTA DE TABELAS

Tabela 1 – Complexidade dos algoritmos propostos para construção dos diferentestipos de grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

Tabela 2 – Ordem média do número de arestas dos grafos RNG construídos, cadalinha representando uma base de dados e as colunas o número de ele-mentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Page 20: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem
Page 21: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

LISTA DE ABREVIATURAS E SIGLAS

SGBD Sistema de Gerenciamento de Banco de Dados

MAM Método de Acesso Métrico

Rq Range query (Consulta por Abrangência)

kNNq k Nearest Neighbor query (Consulta dos k vizinhos mais próximos)

LSH Locality Sensitive Hashing

kNNG k Nearest Neighbor Graph (Grafo dos k vizinhos mais próximos)

RNG Relative Neighborhood Graph (Grafo de vizinhança relativa)

kDRG k Degree Reduced Graph

HRG Hyperspherical Region Graph (Grafo de região hiperesférica)

MOBHRG Minimum Overlap Based Hyperspherical Region Graph

GS Greedy Search (Busca gulosa)

NSW Navigable Small World Graph

DG Delaunay Graph (Grafo de Delaunay)

GG Gabriel graph (Grafo de Gabriel)

FANNG Fast Approximate Nearest Neighbour Graph

Page 22: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem
Page 23: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

SUMÁRIO

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231.1 Motivação e Contribuições . . . . . . . . . . . . . . . . . . . . . . 241.2 Organização do trabalho . . . . . . . . . . . . . . . . . . . . . . . 25

2 RECUPERAÇÃO POR SIMILARIDADE EM GRAFOS DEPROXIMIDADE . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.1 Recuperação de Dados Complexos por Similaridade . . . . . . 282.2 Grafos de Proximidade . . . . . . . . . . . . . . . . . . . . . . . . 292.2.1 A Propriedade Fundamental de Aproximação Espacial . . . . 302.3 Grafos de Delaunay e seus Subgrafos . . . . . . . . . . . . . . . 302.4 Limitações do Grafo de Delaunay . . . . . . . . . . . . . . . . . . 34

3 GRAFOS DE PROXIMIDADE COM BUSCAS APROXIMA-DAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.1 Grafos dos k-Vizinhos Mais Próximos e Variações . . . . . . . 383.1.1 Variações do 𝑘-NNG . . . . . . . . . . . . . . . . . . . . . . . . . . 393.2 Grafos de vizinhança relativa e variações . . . . . . . . . . . . . 403.3 Comparação das estruturas dos grafos 𝑘-NN, 𝑘-DR e RNG . 42

4 PROPOSTAS PARA AUMENTAR A PRECISÃO DE CON-SULTAS EM GRAFOS DE PROXIMIDADE . . . . . . . . . . 47

4.1 Propriedade para definir a inserção de arestas entre os vértices 514.2 Comparação quanto a construção dos grafos 𝑘-NNG e RNG e

aplicabilidade dos algoritmos de busca . . . . . . . . . . . . . . . 514.2.1 Experimentos e discussão . . . . . . . . . . . . . . . . . . . . . . . 53

5 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

Page 24: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem
Page 25: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

23

1 INTRODUÇÃO

Dados de experimentos científicos, dados geográficos, imagens, vídeos, textos degrande extensão entre outros, são chamados no contexto deste trabalho de dados comple-xos. Devido à evolução da análise de dados complexos é fundamental o desenvolvimentode suporte computacional para recuperação e armazenamento eficiente para estes tiposde dados. Não é possível estabelecer uma relação de ordem total para comparar dadoscomplexos como é realizado nas consultas à dados estruturados (sequências de caracte-res, números, etc.) através dos operadores de comparação (>, <, ≥, ≤) [1]. Portanto, paraa recuperação de dados complexos a abordagem mais utilizada são as consultas porsimilaridade [2].

As consultas por similaridade têm como princípio recuperar dados similares a umou mais elementos de referência, ou elementos de consulta. Dados complexos raramentesão comparados diretamente, mas por meio de características extraídas do seu conteúdo.Por exemplo, de uma imagem podem ser extraídas características baseadas em propri-edades de cor, textura e/ou forma da imagem, gerando uma representação numérica,denominada vetor de características, que pode ser comparada utilizando uma função de(dis)similaridade, tipicamente uma função de distância [3]. A combinação entre o vetor decaracterísticas e a função de dissimilaridade forma o que é comumente chamado de espaçode similaridade, no qual quanto mais próximos dois elementos estão, maior é a sua simi-laridade. Espaços de similaridade têm sido modelados em vários trabalhos da literaturacomo espaços métricos [4].

Como as consultas por similaridade são complexas, devemos agilizar o processo deacesso às informações desejadas através do uso de estruturas de indexação e da modelagemde dados nas bases de dados utilizadas.

O modelo de dados mais utilizado atualmente para a recuperação e armazena-mento de dados complexos utilizando consultas por similaridade é o modelo de dadosrelacional [5, 6, 7, 8]. Além do modelo relacional, outros modelos de dados, como o mo-delo chave-valor [9] e o modelo de dados em grafos [10, 11], têm sido utilizados paradiferentes aplicações das consultas por similaridade.

Caso nenhuma estrutura de indexação for utilizada, as consultas por similaridadedevem ser executadas através de uma busca sequencial. Dependendo da quantidade dedados na relação de entrada, a consulta por similaridade têm um alto custo computa-cional tornando sua execução lenta e inviável de ser realizada. Na maioria dos sistemasgerenciadores de banco de dados (SGBDs) estruturas de indexação como árvores B e es-truturas hashing são oferecidas, porém não são adequadas para dados complexos. Assim,

Page 26: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

24

novas estruturas de indexação chamadas de métodos de acesso métrico (MAMs) forampropostos para a indexação de dados complexos como por exemplo a Slim Tree [12] e aDBM Tree [13].

1.1 Motivação e Contribuições

A forma como os dados estão organizados, em termos de modelo de dados, podemfacilitar explorar dados similares em várias situações. Os modelos de dados ditos “tra-dicionais” foram desenvolvidos com foco no armazenamento de dados tradicionais comocadeia de caracteres, valores numéricos. Para realizar consultas por similaridade deve-seinserir o conceito de similaridade nos modelos de dados.

A estrutura que os grafos fornecem permite uma grande interconectividade dedados, por este motivo, grafos são bastante utilizados em sistemas de recomendação[14]e redes sociais, tanto como estruturas auxiliares assim como modelo de dados [15]. Apropulsão que estas aplicações deram aos bancos de dados orientados a grafos os tornaramcandidatos interessantes a utilização em outras aplicações, incluindo a recuperação dedados por similaridade.

Tomando como hipótese que ao materializar o espaço de similaridade como umgrafo a “vizinhança” de um dado (dados similares) pode ser explorada de forma maiseficiente. Assim, acredita-se que seja possível desenvolver algoritmos mais rápidos paraalgumas operações de manipulação de dados complexos por similaridade utilizando grafoscomo modelo de dados do que usando outros modelos. Alguns exemplos são a execução delaços de realimentação de relevância que permitem refinar a consulta a partir de elementosretornados anteriormente [16], e opções de expansão de consultas, nas quais o usuáriofornece inicialmente uma condição de busca e segue o processo de consulta explorando osdados retornados de forma gradual [17].

Porém, para materializar o espaço de similaridade como um grafo há dois aspectosimportantes que devem ser considerados:

∙ A forma como o grafo é construído e como os dados são conectados;

∙ Como realizar uma consulta por similaridade através de algoritmos de busca emgrafos.

Estes dois aspectos influenciam na exatidão das consultas como pode ser observadonos trabalhos de [18] e [19]. Estes trabalhos executam consultas por similaridade sobregrafos, porém os resultados não foram exatos para todos os experimentos.

Alguns trabalhos sobre grafos na área de consultas por similaridade como [20, 21]realizam uma breve discussão sobre trabalhos relevantes porém relacionados apenas à sua

Page 27: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

25

contribuição. Por exemplo em [21] o autor explica apenas trabalhos relacionados à grafosdo tipo 𝑘-NN enquanto em [20] os autores discutem de forma muito sucinta quais tipos degrafos são utilizados na área. Apesar da variedade de trabalhos sobre grafos para consultaspor similaridade, não foi encontrado um trabalho que realizasse uma revisão sobre os váriostipos de grafos utilizados para consultas por similaridade. Assim, este trabalho tem comocontribuição uma categorização dos diferentes tipos de grafos e algoritmos de consulta porsimilaridade em grafos já propostos na área. Além de uma discussão quanto à estruturados grafos mais utilizados, propriedades utilizadas para definir a inserção de arestas e arelação destas propriedades do grafo com a exatidão das consultas por similaridade.

1.2 Organização do trabalho

O restante do trabalho está organizado da seguinte maneira: o Capítulo 2 contéma uma apresentação de conceitos iniciais sobre consultas por similaridade e grafos deproximidade principalmente sobre o grafo de Delaunay e suas limitações. O Capítulo 3inclui uma revisão sobre os principais trabalhos que apresentam consultas por similaridadecom resultados aproximados. O Capítulo 4 contém propostas que aumentam a precisãodas consultas por similaridade em grafos. Por fim, o Capítulo 5 contém a conclusão finaldo trabalho.

Page 28: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem
Page 29: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

27

2 RECUPERAÇÃO POR SIMILARIDADE EM GRAFOS DEPROXIMIDADE

Este capítulo contém uma apresentação de conceitos iniciais sobre consultas porsimilaridade na seção 2.1, conceitos iniciais sobre grafos de proximidade e grafos de De-launay na seção 2.2 e 2.3, respectivamente. Este capítulo inclui também uma discussãosobre a utilização do grafo de Delaunay para consultas por similaridade na seção 2.4 .

Para ilustrar os diferentes tipos de grafos que podem ser utilizados, será utilizadauma amostra de 277 cidades da base USCities. Esta base de dados contém as informaçõesdo censo realizado no ano 2001 nos Estados Unidos da América, reunindo aproximada-mente cem atributos numéricos, que representam os dados demográficos, e as coordenadasgeográficas das cidades que participaram da pesquisa. Todas as figuras utilizam como ca-racterísticas os valores de latitude e longitude e como função de distância a distânciaeuclidiana. A Figura 1 apresenta a disposição espacial das coordenadas das cidades emquestão.

Figura 1 – Amostra de 277 cidades da base de dados USCities apresentadas de acordocom suas coordenadas geográficas.

Kings Park CDP

Wanchese CDP

Eminence city

Delphos city

West Ocean City CDP Timberville town

Redwood CDP

Melrose village

West Manchester village

Homosassa Springs CDP

Bismarck city

Hollis city

Brush city

Marlton CDP

Coyle town

Greensburg city

Owens Cross Roads town

Sumrall town

Hindman city

Whitten city

Ava city

Manteo town

Exeter city

Alondra Park CDP

Gassaway town

Jeffrey City CDP

Esperanza comunidad

Belfield city

Mims CDP

Kingsley city

Oxford town

Lake St. Louis city

Nelson city

Enterprise city

Castle town

Ontario village

Fairmont village

Baxter city

Brandon city

Lincoln Park CDP

Princeton city

Rhine town

Westwood city Tallmadge city

Hampden CDP

Hoyleton village

New Plymouth city

San Antonio comunidad

Trosky city

Auburn city

Oak Brook village

Ocilla city

Port Isabel city

Brownsboro Farm city Springfield city

Keeseville village

Marsing city

Reserve village

Fircrest city

Chenega CDP

Irwin city

Milford city Culver city

Union City city

Mentone town

Register town

Centreville town

Buies Creek CDP

Morovis zona urbana

Castine village

Piney Green CDP

Purcellville town

Granville city Bancroft city

New Brighton city

Reading city

Pomeroy city

Parma city

Argo town

Danville city

Ashley village

Lake Louise CDP

McKey CDP

Adrian city Olathe town

Northcliff CDP

Loris city

Wayne town

North Laurel CDP

Douglas city

Mineral Springs town

Ely city

Cottageville town

Tipp City city

Attapulgus city

Otis city

Embarrass village

Pena Pobre comunidad

Wolcott village

Domino town

Kirtland Hills village

Wisner town

Soldier city

Grand Prairie city

Fraser city

Watsontown borough

Newport city

Eagle Lake city

Meraux CDP

Palmetto village

Gateway town

Fountain city

Mount Auburn village

Summit town

Bull Hollow CDP

Succasunna−Kenvil CDP

Beloit city

Indian Springs CDP

Ethete CDP

Fairlawn CDP

Ainsworth city

Greenup city

Bitter Springs CDP Fairview city

New Chapel Hill city

Jacksonville city

Plainville city Morgantown town

Graysville city

Pikeville town

Boone city

Big Sandy town

Stuarts Draft CDP

Cook city

Yuma city

Rudd city

Stone Mountain city

Mariposa CDP

Ladysmith city

Geddes city

Twin City city

Moose Lake city

Ouray city

Bishop town

Rushville city Axtell city

Wildwood city

Waimea CDP

Cahaba Heights CDP

Valatie village

San Marino city

Willow Street CDP

Toluca city

Uplands Park village

Savanna town

Duck Key CDP

Plumas Eureka CDP

Brooklyn village Lamont city

Eudora city

West Buechel city

Mission Hill town

St. Matthews town

Farmersville village

Makakilo City CDP

Gilberton borough

Landfall city

Beach city

Hurlock town

Morrill city

Glorieta CDP

Thomson village

Montgomery Village CDP

New Iberia city

Laketown town

Lyman town

Sugar Notch borough

Darlington village Boalsburg CDP

Clare city

Kenedy city

Mannsville town

Oakhurst city

Achille town Hodges town

Loring AFB CDP

West Lawn borough New Martinsville city

Preston−Potter Hollow CDP

Eastman city

Centennial CDP

Hulbert town

Memphis city

Yellow Bluff town

Drayton city

Depew town

Zapata Ranch CDP

Abbotsford city Cavour town

Elizabethtown borough

Krum city

Wittenberg village

Seaton village

Lansing city

Millbury village

Valley Falls city

Torreon CDP

Flemingsburg city

Lewiston village

Troxelville CDP

Samnorwood CDP

Johnstown town Tresckow CDP

Valley Park city

Parker Strip CDP

Broadway town

Corning city

Golconda city

Mount Ayr city Jersey Shore borough

Richville village

Liberty Hill city

Gumbranch city

Pendleton town

Richland city

New Sarpy CDP

Caro village

Latta town

Cohoes city Fraser city

Timblin borough

Tea city

Lake Belvedere Estates CDP

Elkhart city

Camargo town

South Lebanon village

Edina city

Ellisburg village

Sparks town

Boiling Springs CDP

Avalon town

Linn city

Hepburn city

Birchwood Village city

Bloomfield borough

Reed town

Starr School CDP

Copeland city

Millhousen town

Ravenden Springs town

Lake Katrine CDP

Indian Hills city

Papaikou CDP

Cruger town

Palmyra village

Worden CDP

Staley town

Dover town Arona borough

Atwater city

Fulton village

Ronan city

Union Park CDP

Randleman city

Paris city

Brundage CDP

Levelland city

Bearden town

Mentor city

Elfin Cove CDP

Roscoe city

Morgan City city

La Barge town

Fountain Green city

Hillcrest village

Buckingham village Loganton borough

20

30

40

50

60

−160 −140 −120 −100 −80

Longitude

Latit

ude

Page 30: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

28

2.1 Recuperação de Dados Complexos por Similaridade

Dados complexos podem ser representados através de conjuntos de atributos, cha-mados de vetores de características. Os vetores de características representam o con-teúdo de um dado por meio de números. Algoritmos denominados extratores de ca-racterísticas são utilizados para construir os vetores de características e realizam estatarefa a partir de características encontradas no dados complexos. Por exemplo, no casode imagens, essas características podem derivadas de propriedades de cor, textura e/ouforma identificadas na representação visual da imagem [22].

Para determinar o quão dois dados são similares, geralmente funções de distân-cia são utilizadas. Essas funções calculam a dissimilaridade entre dois vetores de caracte-rísticas, sendo a similaridade inversamente proporcional ao valor resultante do cálculo dadistância. Algumas funções de distância utilizadas nas consultas por similaridade são dasdistâncias da família Minkowski: 𝐿𝑝 = (

𝑛∑︀𝑖=1

|𝑥𝑖 − 𝑦𝑖|𝑝)1𝑝 ), onde, por exemplo, para 𝑝 = 1

tem-se a distância Manhattan (𝐿1) e para 𝑝 = 2 tem-se a distância Euclidiana (𝐿2) [2].

Pode-se formalizar o espaço de similaridade como espaço métrico. Um espaço mé-trico é definido pelo par ⟨S, 𝛿⟩, sendo S um conjunto de dados e 𝛿 uma função de distânciadefinida para S que atende às propriedades de simetria (𝛿(𝑥, 𝑦) = 𝛿(𝑦, 𝑥)), não negativi-dade (𝛿(𝑥, 𝑦) ≥ 0) e desingualdade triangular (𝛿(𝑥, 𝑦) ≤ 𝛿(𝑥, 𝑧) + 𝛿(𝑧, 𝑦)), ∀𝑥, 𝑦, 𝑧 ∈ S [4].

Existem principalmente dois tipos básicos de consultas por similaridade, a Con-sulta por Abrangência (Range query – Rq) e Consulta dos k vizinhos mais pró-ximos (𝑘-Nearest Neighbor query – 𝑘-NNq) [4]. A consulta por abrangência recupera osdados mais similares ao elemento de consulta dentro de um limiar como pode ser ilus-trado na Figura 2(a). Na figura, o elemento de consulta é representado pelo símbolo ⋆ e osdados do conjunto resposta desta consulta são os elementos representados pelo símbolo ∙na cor cinza pois estão dentro do limiar representado por 𝑟. Já a consulta dos 𝑘-vizinhosmais próximos recupera os 𝑘 dados mais similares ao elemento de consulta como pode serobservado na Figura 2(b). A figura ilustra uma consulta aos 4 vizinhos mais próximos doelemento de consulta representado por ⋆. Os elementos que fazem parte do conjunto derespostas desta consulta são os representado por ∙ que estão “conectados” ao elementode consulta (essa “conexão” é meramente um recurso visual na figura).

Pelo crescente volume dos bancos de dados complexos e a alta complexidade pararealizar cálculos de distância, as consultas por similaridade podem ter um alto custocomputacional. Para tornar a busca dos dados similares ao(s) elemento(s) de consultamais rápida, estruturas de indexação são utilizadas pelos bancos de dados. As estruturasde indexação tradicionais como árvores B e estruturas hashing convencionais são maisadequadas para dados tradicionais. Assim, novas estruturas de indexação adequadas paradados complexos estão sendo propostas por exemplo, árvores de indexação, como a Slim-

Page 31: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

29

r

(a) (b)

Figura 2 – Representação visual de consultas por similaridade no espaço Euclidiano. (a)Consulta por abrangência (limiar de dissimilaridade=𝑟). (b) Consulta aos 𝑘-vizinhos mais próximos (𝑘 = 4)

tree [23] e a CM-tree [24], e estruturas baseadas em hashing sensível à localidade (LocalitySensitive Hashing – LSH) [25], que mapeia os dados próximos no espaço métrico em chavesadjacentes, sendo o quanto mais próximos as chaves dos dados são, mais similares elessão.

2.2 Grafos de Proximidade

Um grafo 𝐺 pode ser definido pela tupla 𝐺 = (𝑉, 𝐸) sendo 𝑉 o conjunto de vérticese 𝐸 o conjunto de arestas, sendo que os vértices são conectados pelas arestas. De acordocom [15], o modelo de dados em grafos pode ser definido através das características aseguir.

∙ Organização dos dados – O dados são organizados neste modelo como grafos oucomo estruturas de dados que têm a noção de grafos, como hipergrafos. Enquantoos vértices de um grafo no modelo de dados podem representar um objeto ou umconceito, suas arestas representam, principalmente, relações entre os vértices.

∙ Manipulação dos dados – Os dados são manipulados por meio de operaçõessobre as características dos grafos como por exemplo, conectividade dos vértices,“caminhos”, subgrafos, padrões de grafos e vizinhança de vértices.

∙ Integridade dos dados – Para garantir a integridade de dados, estratégias podemser adotadas como rótulos com nomes únicos, domínio de propriedades dos vértices,identificadores de objetos.

Para inserir o conceito de similaridade neste modelo de dado, existem dois cri-térios que devem ser considerados em paralelo, dependendo do que cada vértice e cadaaresta significam. A abordagem mais utilizada é representar cada elemento do conjuntode dados como um vértice do grafo e as arestas que incidem neste vértice definem relaçõesde similaridade entre o vértice e elementos similares a ele. Nesse caso, normalmente o

Page 32: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

30

peso da aresta corresponde à distância no espaço de similaridade entre o par de vérticesconectados. Por exemplo, em [10] os vértices representam imagens e as arestas represen-tam uma possível similaridade entre os vértices conectados. Outra linha de representaçãoutiliza grafos para representar propriedades de um elemento do conjunto, ou seja, nãotratam o elemento como um todo e sim a partir de suas partes. Por exemplo, no trabalhode [11] os vértices representam diferentes subdivisões da imagem e as arestas são as res-ponsáveis por conectar vértices que representam subdivisões (vértices) similares. Assim,e possível combinar as duas abordagens em um modelo baseado em grafos que representeadequadamente dados relacionados por critérios de similaridade.

2.2.1 A Propriedade Fundamental de Aproximação Espacial

Em geral, os grafos utilizados como estrutura de indexação ou modelo de dadospara a recuperação de dados complexos por similaridade são os Grafos de Proximidade(Proximity Graphs). Os grafos de proximidade são grafos que a adjacência dos vérticesdescreve alguma relação de proximidade entre os vértices [26]. Os grafos de proximidadesão grafos que uma relação de proximidade 𝑃 é definida e para cada par de pontos (𝑣, 𝑢) ∈𝑉 ×𝑉 é conectado por uma aresta 𝑒 ∈ 𝐸 com peso 𝛿(𝑣, 𝑢)(valor de (dis)similaridade entre(𝑣, 𝑢)) se e somente se 𝑃 para for válida para (𝑣, 𝑢) [27, 28]. Esta relação de proximidade𝑃 entre os vértices determinam o tipo de grafo.

Uma propriedade fundamental desejada em grafos de proximidade para realizarconsultas por similaridade é conhecida como aproximação espacial. A abordagem deaproximação espacial é baseada na propagação de elementos vizinhos de forma que aolongo da busca o algoritmo sempre se aproxime ao elemento mais próximo do elementode consulta [29]. Esta é a base para a maioria das abordagens de algoritmos para con-sultas por similaridade em grafos encontradas na literatura. De acordo com Navarro[29],este tipo de algoritmo funciona em um grafo completo, onde todos pares de vértices sãovizinhos. Porém, o custo de construção de um grafo complexo, bem como o espaço de ar-mazenamento necessário, seriam muito altos. Para que o grafo tenha o menor número depossível de arestas e as consultas por similaridade realizadas por algoritmos baseados naaproximação espacial tenham uma resultado correto a Propriedade 2.1 deve ser satisfeita,sendo 𝑁(𝑢) o conjunto de todos os vértices adjacentes de 𝑢:

∀𝑢 ∈ S, ∀𝑞 ∈ 𝑉, if ∀𝑣 ∈ 𝑁(𝑢), 𝛿(𝑞, 𝑢) ≤ 𝛿(𝑞, 𝑣), then ∀𝑣 ∈ S, 𝛿(𝑞, 𝑢) ≤ 𝛿(𝑞, 𝑣) (2.1)

2.3 Grafos de Delaunay e seus Subgrafos

Um dos mais importantes grafos de proximidade da literatura são os Grafos deDelaunay (Delaunay Graph – DG). Para entender melhor os grafos de Delaunay, é útilcompreender primeiramente os diagramas de Voronoi. Seja 𝑃 = {𝑝1, . . . , 𝑝𝑛} um conjunto

Page 33: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

31

finito e não vazio de 𝑛 pontos, sendo que cada ponto é chamado de gerador, em um espaçoR2. De forma geral, a ideia do diagrama de Voronoi é subdividir o plano em 𝑛 regiõesassociando cada ponto à uma região do diagrama denominada região de Voronoi. A regiãode Voronoi é uma subdivisão do diagrama de Voronoi associada a uma gerador 𝑝𝑖 de 𝑃

(representado por 𝑉 (𝑝𝑖)) tal que qualquer ponto 𝑥 ∈ R2 está mais próximo de 𝑝𝑖 do quede qualquer outro ponto em 𝑃 . Ou seja:

𝑉 (𝑝𝑖) = {𝑥 ∈ R2 : 𝛿(𝑝𝑖, 𝑥) ≤ 𝛿(𝑝𝑗, 𝑥), 1 ≤ 𝑗 ≤ 𝑛}

onde 𝛿 denota a distância Euclidiana em R2 [30]. O conjunto definido por 𝑉 𝑜𝑟(𝑃 ) ={𝑉 (𝑝1), 𝑉 (𝑝2), . . . , 𝑉 (𝑝𝑛)} chama-se Diagrama de Voronoi.

Um vértice de Voronoi é um ponto do plano que estão tão próximos de três oumais pontos geradores de 𝑃 do que de qualquer outro, enquanto uma aresta de Voronoiconecta os vértices de forma que estejam mais próximos de dois pontos geradores do quede quaisquer outros, como pode ser visualizado na Figura 3.

Figura 3 – Vértice de Voronoi e aresta de Voronoi

Um método simples de construir uma região de Voronoi é através da intersecçãode todos semi-espaços definidos pelos bissetores entre cada ponto de 𝑃 e todos os outros.Ou seja, ao ligar cada ponto a todos os outros é calculada a mediatriz de cada uma dessas“ligações” então a partir da instersecção das mediatrizes a região de Voronoi é construída.Cada região é um polígono convexo não necessariamente fechado.

O grafo de Delaunay pode ser obtido através do diagrama de Voronoi. Utilizandoo diagrama de Voronoi como base o grafo de Delaunay é obtido ao conectar dois pontosquaisquer de 𝑃 se e somente se há intersecção entre suas regiões de Voronoi, ou seja, seestas regiões partilham uma aresta no diagrama de Voronoi [30]. A Figura 4 e a Figura 5ilustram a relação do diagrama de Voronoi com o grafo de Delaunay para a base de dadosUSCities.

Page 34: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

32

Kings Park CDP

Wanchese CDP

Eminence city

Delphos city

West Ocean City CDP Timberville town

Redwood CDP

Melrose village

West Manchester village

Homosassa Springs CDP

Bismarck city

Hollis city

Brush city

Marlton CDP

Coyle town

Greensburg city

Owens Cross Roads town

Sumrall town

Hindman city

Whitten city

Ava city

Manteo town

Exeter city

Alondra Park CDP

Gassaway town

Jeffrey City CDP

Esperanza comunidad

Belfield city

Mims CDP

Kingsley city

Oxford town

Lake St. Louis city

Nelson city

Enterprise city

Castle town

Ontario village

Fairmont village

Baxter city

Brandon city

Lincoln Park CDP

Princeton city

Rhine town

Westwood city Tallmadge city

Hampden CDP

Hoyleton village

New Plymouth city

San Antonio comunidad

Trosky city

Auburn city

Oak Brook village

Ocilla city

Port Isabel city

Brownsboro Farm city

Springfield city

Keeseville village

Marsing city

Reserve village

Fircrest city

Chenega CDP

Irwin city

Milford city Culver city

Union City city

Mentone town

Register town

Centreville town

Buies Creek CDP

Morovis zona urbana

Castine village

Piney Green CDP

Purcellville town

Granville city Bancroft city

New Brighton city

Reading city

Pomeroy city

Parma city

Argo town

Danville city

Ashley village

Lake Louise CDP

McKey CDP

Adrian city Olathe town

Northcliff CDP

Loris city

Wayne town

North Laurel CDP

Douglas city

Mineral Springs town

Ely city

Cottageville town

Tipp City city

Attapulgus city

Otis city

Embarrass village

Pena Pobre comunidad

Wolcott village

Domino town

Kirtland Hills village

Wisner town

Soldier city

Grand Prairie city

Fraser city

Watsontown borough

Newport city

Eagle Lake city

Meraux CDP

Palmetto village

Gateway town

Fountain city

Mount Auburn village

Summit town

Bull Hollow CDP

Succasunna−Kenvil CDP

Beloit city

Indian Springs CDP

Ethete CDP

Fairlawn CDP

Ainsworth city

Greenup city

Bitter Springs CDP Fairview city

New Chapel Hill city

Jacksonville city

Plainville city Morgantown town

Graysville city

Pikeville town

Boone city

Big Sandy town

Stuarts Draft CDP

Cook city

Yuma city

Rudd city

Stone Mountain city

Mariposa CDP

Ladysmith city

Geddes city

Twin City city

Moose Lake city

Ouray city

Bishop town

Rushville city Axtell city

Wildwood city

Waimea CDP

Cahaba Heights CDP

Valatie village

San Marino city

Willow Street CDP

Toluca city

Uplands Park village

Savanna town

Duck Key CDP

Plumas Eureka CDP

Brooklyn village Lamont city

Eudora city

West Buechel city

Mission Hill town

St. Matthews town

Farmersville village

Makakilo City CDP

Gilberton borough

Landfall city

Beach city

Hurlock town

Morrill city

Glorieta CDP

Thomson village

Montgomery Village CDP

New Iberia city

Laketown town

Lyman town

Sugar Notch borough

Darlington village Boalsburg CDP

Clare city

Kenedy city

Mannsville town

Oakhurst city

Achille town Hodges town

Loring AFB CDP

West Lawn borough

New Martinsville city

Preston−Potter Hollow CDP

Eastman city

Centennial CDP

Hulbert town

Memphis city

Yellow Bluff town

Drayton city

Depew town

Zapata Ranch CDP

Abbotsford city Cavour town

Elizabethtown borough

Krum city

Wittenberg village

Seaton village

Lansing city

Millbury village

Valley Falls city

Torreon CDP

Flemingsburg city

Lewiston village

Troxelville CDP

Samnorwood CDP

Johnstown town Tresckow CDP

Valley Park city

Parker Strip CDP

Broadway town

Corning city

Golconda city

Mount Ayr city Jersey Shore borough

Richville village

Liberty Hill city

Gumbranch city

Pendleton town

Richland city

New Sarpy CDP

Caro village

Latta town

Cohoes city

Fraser city

Timblin borough

Tea city

Lake Belvedere Estates CDP

Elkhart city

Camargo town

South Lebanon village

Edina city

Ellisburg village

Sparks town

Boiling Springs CDP

Avalon town

Linn city

Hepburn city

Birchwood Village city

Bloomfield borough

Reed town

Starr School CDP

Copeland city

Millhousen town

Ravenden Springs town

Lake Katrine CDP

Indian Hills city

Papaikou CDP

Cruger town

Palmyra village

Worden CDP

Staley town

Dover town

Arona borough

Atwater city

Fulton village

Ronan city

Union Park CDP

Randleman city

Paris city

Brundage CDP

Levelland city

Bearden town

Mentor city

Elfin Cove CDP

Roscoe city

Morgan City city

La Barge town

Fountain Green city

Hillcrest village

Buckingham village Loganton borough

20

30

40

50

60

−150 −125 −100 −75

Longitude

Latit

ude

Figura 4 – Diagrama de Voronoi gerado a partir do conjunto de 277 cidades da Figura 1.

O grafo de Delaunay resultante é um grafo planar (considerando dados de 2 dimen-sões)e caso consistir apenas de triângulos este grafo pode ser chamado de Triangulação deDelaunay 𝑇𝐷(𝑃 ) sendo que cada um dos triângulos é chamado de face da Triangulaçãode Delaunay. Como propriedade, três pontos 𝑝𝑖, 𝑝𝑗, 𝑝𝑘 são vértices de uma mesma face see somente se a circunferência definida por estes pontos não contiver qualquer outro pontode 𝑃 .

Além do grafo de Delaunay, existem outros tipos de grafos com relações de proxi-midade 𝑃 definidos como [28, 31]:

∙ Grafo de Gabriel (Gabriel Graph – GG): (𝑣, 𝑢) ∈ 𝐸 se e somente se 𝐵(𝑣+𝑢2 , 𝛿(𝑣,𝑢)

2 )∩𝑉 = ∅. Ou seja, neste tipo de grafo uma aresta existe entre os vértices 𝑣 e 𝑢 se esomente se não houver nenhum outro vértice 𝑘 ∈ 𝑉 na região da esfera de centrono ponto médio entre (𝑣, 𝑢) e raio 𝛿(𝑣,𝑢)

2 .

∙ Grafo de vizinhança relativa(Relative Neighborhood Graph – RNG): (𝑣, 𝑢) ∈ 𝐸

se e somente se 𝐵(𝑣, 𝛿(𝑣, 𝑢) ∩ 𝐵(𝑢, 𝛿(𝑣, 𝑢)) = ∅ sendo 𝐵(𝑥, 𝑟) uma esfera de centro𝑥 ∈ 𝑉 e raio 𝑟.

Page 35: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

33

Kings Park CDP

Wanchese CDP

Eminence city

Delphos city

West Ocean City CDP Timberville town

Redwood CDP

Melrose village

West Manchester village

Homosassa Springs CDP

Bismarck city

Hollis city

Brush city

Marlton CDP

Coyle town

Greensburg city

Owens Cross Roads town

Sumrall town

Hindman city

Whitten city

Ava city

Manteo town

Exeter city

Alondra Park CDP

Gassaway town

Jeffrey City CDP

Esperanza comunidad

Belfield city

Mims CDP

Kingsley city

Oxford town

Lake St. Louis city

Nelson city

Enterprise city

Castle town

Ontario village

Fairmont village

Baxter city

Brandon city

Lincoln Park CDP

Princeton city

Rhine town

Westwood city Tallmadge city

Hampden CDP

Hoyleton village

New Plymouth city

San Antonio comunidad

Trosky city

Auburn city

Oak Brook village

Ocilla city

Port Isabel city

Brownsboro Farm city Springfield city

Keeseville village

Marsing city

Reserve village

Fircrest city

Chenega CDP

Irwin city

Milford city Culver city

Union City city

Mentone town

Register town

Centreville town

Buies Creek CDP

Morovis zona urbana

Castine village

Piney Green CDP

Purcellville town

Granville city Bancroft city

New Brighton city

Reading city

Pomeroy city

Parma city

Argo town

Danville city

Ashley village

Lake Louise CDP

McKey CDP

Adrian city Olathe town

Northcliff CDP

Loris city

Wayne town

North Laurel CDP

Douglas city

Mineral Springs town

Ely city

Cottageville town

Tipp City city

Attapulgus city

Otis city

Embarrass village

Pena Pobre comunidad

Wolcott village

Domino town

Kirtland Hills village

Wisner town

Soldier city

Grand Prairie city

Fraser city

Watsontown borough

Newport city

Eagle Lake city

Meraux CDP

Palmetto village

Gateway town

Fountain city

Mount Auburn village

Summit town

Bull Hollow CDP

Succasunna−Kenvil CDP

Beloit city

Indian Springs CDP

Ethete CDP

Fairlawn CDP

Ainsworth city

Greenup city

Bitter Springs CDP Fairview city

New Chapel Hill city

Jacksonville city

Plainville city Morgantown town

Graysville city

Pikeville town

Boone city

Big Sandy town

Stuarts Draft CDP

Cook city

Yuma city

Rudd city

Stone Mountain city

Mariposa CDP

Ladysmith city

Geddes city

Twin City city

Moose Lake city

Ouray city

Bishop town

Rushville city Axtell city

Wildwood city

Waimea CDP

Cahaba Heights CDP

Valatie village

San Marino city

Willow Street CDP

Toluca city

Uplands Park village

Savanna town

Duck Key CDP

Plumas Eureka CDP

Brooklyn village Lamont city

Eudora city

West Buechel city

Mission Hill town

St. Matthews town

Farmersville village

Makakilo City CDP

Gilberton borough

Landfall city

Beach city

Hurlock town

Morrill city

Glorieta CDP

Thomson village

Montgomery Village CDP

New Iberia city

Laketown town

Lyman town

Sugar Notch borough

Darlington village Boalsburg CDP

Clare city

Kenedy city

Mannsville town

Oakhurst city

Achille town Hodges town

Loring AFB CDP

West Lawn borough New Martinsville city

Preston−Potter Hollow CDP

Eastman city

Centennial CDP

Hulbert town

Memphis city

Yellow Bluff town

Drayton city

Depew town

Zapata Ranch CDP

Abbotsford city Cavour town

Elizabethtown borough

Krum city

Wittenberg village

Seaton village

Lansing city

Millbury village

Valley Falls city

Torreon CDP

Flemingsburg city

Lewiston village

Troxelville CDP

Samnorwood CDP

Johnstown town Tresckow CDP

Valley Park city

Parker Strip CDP

Broadway town

Corning city

Golconda city

Mount Ayr city Jersey Shore borough

Richville village

Liberty Hill city

Gumbranch city

Pendleton town

Richland city

New Sarpy CDP

Caro village

Latta town

Cohoes city Fraser city

Timblin borough

Tea city

Lake Belvedere Estates CDP

Elkhart city

Camargo town

South Lebanon village

Edina city

Ellisburg village

Sparks town

Boiling Springs CDP

Avalon town

Linn city

Hepburn city

Birchwood Village city

Bloomfield borough

Reed town

Starr School CDP

Copeland city

Millhousen town

Ravenden Springs town

Lake Katrine CDP

Indian Hills city

Papaikou CDP

Cruger town

Palmyra village

Worden CDP

Staley town

Dover town Arona borough

Atwater city

Fulton village

Ronan city

Union Park CDP

Randleman city

Paris city

Brundage CDP

Levelland city

Bearden town

Mentor city

Elfin Cove CDP

Roscoe city

Morgan City city

La Barge town

Fountain Green city

Hillcrest village

Buckingham village Loganton borough

20

30

40

50

60

−160 −140 −120 −100 −80

Longitude

Latit

ude

Figura 5 – Grafo de Delaunay obtido através do diagrama de Voronoi da Figura 4.

∙ Árvore geradora mínima (Minimal Spanning Tree – MST ): A árvore geradoramínima de um grafo é uma árvore que interliga todos os vértices do grafo originalcom a soma mínima de todos os pesos das arestas. Apesar de ter a estrutura de umaárvore é também um subgrafo.

∙ Grafo do vizinho mais próximo (Nearest Neighbour Graph – NNG): O grafo dovizinho mais próximo é um grafo em que cada vértice 𝑣 é conectado por uma arestaao vértice 𝑢 se 𝑢 for o vizinho mais próximo de 𝑣.

Foi demonstrada em [26, 31] a relação de hierarquia 2.2 dos diferentes grafos deproximidade definidos.

𝑁𝑁𝐺 ⊆ 𝑀𝑆𝑇 ⊆ 𝑅𝑁𝐺 ⊆ 𝐺𝐺 ⊆ 𝐷𝐺 (2.2)

Uma observação importante é que a propriedade de aproximação espacial (Propri-edade 2.1) é atendida pelo diagrama de Voronoi para espaços Euclidianos. O grafo querepresenta o diagrama de Voronoi é o Grafo de Delaunay uma vez que neste grafo oselementos “vizinhos” do diagrama de Voronoi são conectados [29]. Contudo, o DG pos-sui limitações que inviabilizam seu uso prático para recuperação de dados complexos por

Page 36: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

34

similaridade, em particular considerando-se grandes bases de dados, como discutido a naseção a seguir.

2.4 Limitações do Grafo de Delaunay

O Grafo de Delaunay satisfaz a propriedade de aproximação espacial, porém apre-senta algumas limitações importantes. A primeira delas é que o DG é definido apenas emespaços euclidianos tornando sua construção em espaços com outras funções de similari-dade dificil [29]. Há vários trabalhos propostos que estendem o grafo de Delaunay paradados multidimensionais [32, 33]. Porém, a grande dificuldade deste grafo é sua utilizaçãoquanto a outras funções de distância além das distâncias 𝐿1, 𝐿2 e 𝐿∞, que já são utilizadasna literatura para este grafo. Para realizar as consultas por similaridade de forma geral énecessário uma estrutura que seja definida de forma que qualquer função de similaridadepossa ser utilizada.

Além dos obstáculos quanto a função de distância, outra limitação do DG é que,conforme o aumento das dimensões dos dados, o grafo pode se tornar rapidamente umgrafo completo [20]. Para evidenciar como um Grafo de Delaunay pode se tornar rapi-damente um grafo completo foi realizada a construção do grafo de Delaunay variandoas dimensões de uma base de dados sintética construída a partir de uma distribuiçãoGausssiana. Esta base de dados sintética contém 150 elementos e as dimensões do grafoconstruído variaram de 2 dimensões até 100 dimensões. Para ilustrar a diferença entreo DG e os grafos RNG e GG em várias dimensões, o mesmo processo foi realizado paraestes dois grafos. O resultado desta comparação pode ser observado na Figura 6.

Analizando a figura 6, percebe-se claramente que o GG, apesar de ser um subgrafodo grafo de Delaunay, também se torna um grafo completo rapidamente. Para avaliarcomo o número de vértices adjacente cresce de forma parecida com um número maior deelementos na base de dados, foi realizado o mesmo experimento utilizando bases sintéticascom 300 e 500 elementos, porém comparando-se apenas o GG e o RNG. O resultado destacomparação pode ser observado na Figura 7.

Ao se tornar um grafo completo as vantagens de ter um grafo para representaro espaço métrico deixam de existir. Para realizar a manutenção de um grafo completo,a inserção de um novo dado ou edição de um dado já inserido, seria necessário realizarcálculos de (dis)similaridade para todos os elementos da base de dados. Além disso, pararealizar consultas tanto 𝑘-NN𝑞 quanto Rq seria necessário comparar com todos elementosda base de dados também, isso não traria nenhum tipo de vantagem quando comparadoà uma busca sequencial na base de dados. Por isso, muitos trabalhos têm concentrado es-forços em utilizar grafos de proximidade com baixa conectividade entre vértices, conformeapresentado no próximo capítulo.

Page 37: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

35

0

50

100

150

0 25 50 75 100Dimensão

Méd

ia d

a or

dem

dos

vér

tices

Tipo de grafo

DG

GG

RNG

Crescimento da ordem dos vértices (150 elementos)

Figura 6 – Comparação da ordem dos grafos de Delaunay (DG), grafo de Gabriel (GG) egrafo de vizinhança relativa (RNG) de acordo com o crescimento de dimensões,considerando ordem como o número de vértices adjacentes

0

100

200

300

0 25 50 75 100Dimensão

Méd

ia d

a or

dem

dos

vér

tices

Tipo de grafo

GG

RNG

Crescimento da ordem dos vértices (300 elementos)

0

100

200

300

400

500

0 25 50 75 100Dimensão

Méd

ia d

a or

dem

dos

vér

tices

Tipo de grafo

GG

RNG

Crescimento da ordem dos vértices (500 elementos)

(a) 300 elementos (b) 500 elementos

Figura 7 – Crescimento da ordem dos grafo GG e RNG conforme o aumento de dimensões

Page 38: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem
Page 39: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

37

3 GRAFOS DE PROXIMIDADE COM BUSCAS APROXI-MADAS

Existe na literatura os grafos chamados de grafos de proximidade de ordem 𝑘 [34,35]. Nesta categoria são incluídos os grafos 𝑘-NNG𝑢

1 (grafo não direcionado dos 𝑘-vizinhosmais próximos), o 𝑘-𝑅𝑁𝐺 , 𝑘-𝐺𝐺 e o 𝑘-𝐷𝐺 que são grafos de proximidade que considerama propriedade de proximidade de seus grafos originais porém introduzindo uma ordemarbitrária 𝑘 o que modifica o resultado final do grafo e sua propriedade de proximidade.Por exemplo, no 𝑘-NNG𝑢 cada vértice é conectado (possui uma aresta) aos seus 𝑘-vizinhosmais próximos não apenas no seu vizinho mais próximo como o NNG. Já no 𝑘-𝑅𝑁𝐺

(𝑣, 𝑢) ∈ 𝐸 se e somente se a intersecção entre as bolas 𝐵𝑣(𝑣, 𝛿(𝑣, 𝑢)) e 𝐵𝑢(𝑢, 𝛿(𝑣, 𝑢)) contémno máximo um número 𝑘 de vértices que pertencem à 𝑉 , modificando o RNG. Assim osgrafos de proximidade de ordem 𝑘 também têm uma relação de hierarquia 3.1 [35]:

(𝑘 + 1)-NNG𝑢 ⊆ 𝑘-RNG ⊆ 𝑘-GG ⊆ 𝑘-DG (3.1)

Pelo fato dos vértices do 𝑘-NNG𝑢 estarem conectados aos seus 𝑘-vizinhos maispróximos e o grafo de Delaunay manter os vértices para todos os seus “vizinhos” noespaço métrico, há arestas entre os dois grafos em comum. Porém como o 𝑘-NNG𝑢 estálimitado pelo número máximo 𝑘 de arestas ao comparar sua estrutura com o grafo deDelaunay, o 𝑘-NNG𝑢 pode ter tanto arestas a mais quanto a menos para cada vértice umavez que o número de arestas para o grafo de Delaunay não é constante.

Para utilizar qualquer função de similaridade seria necessário um grafo que é de-finido para todas funções ou que seja definido em termos de distância métrica entre oselementos. Alguns grafos que fazem parte deste conjunto são: GG, RNG e 𝑘-NNG𝑢. Den-tro destes grafos em que podem ser utilizados qualquer função de similaridade para cons-truir, para que um algoritmo de busca no grafo baseado na aproximação espacial tenharesultados exatos é necessário que este mantenha a propriedade de aproximação espacialencontrada no grafo de Delaunay. Caso contrário, os resultados serão aproximados, comoacontece na maior parte das abordagens encontradas na literatura.

Nas seções seguintes será apresentado os grafos utilizados como estrutura de inde-xação ou modelo de dados para recuperação de dados por similaridade. Os tipos de estãosubdivididos em principalmente duas linhas: os grafos dos k-vizinhos mais próximos (kNearest Neighbor Graph – 𝑘-NNG) e variações e os grafos de vizinhança relativa (Rela-tive Neighborhood Graph – RNG) e variações incluindo grafos hierárquicos de estruturabaseada tanto no 𝑘-NNG quanto no RNG. Serão abordados também os algoritmos paraconsultas por similaridade com buscas aproximadas para cada tipo de grafo.1 Utiliza-se aqui a notação 𝑘-NNG𝑢 para grafos 𝑘-NNG não direcionados (‘u’ do Inglês undirected) para

diferenciar-se dos grafos 𝑘-NN, que são direcionados (vide Capítulo 3).

Page 40: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

38

3.1 Grafos dos k-Vizinhos Mais Próximos e Variações

Os grafos 𝑘-NN direcionados, ou simplesmente grafos 𝑘-NN (𝑘-NNG), são grafosdirecionados onde cada vértice está conectado com seus 𝑘 vizinhos mais próximos. For-malmente, seja 𝑉 o conjunto de dados, 𝛿 uma função de distância definida entre os dadose 𝑁𝑁𝑘(𝑣) os 𝑘 elementos mais próximos de 𝑣, tal que 𝑣 ∈ 𝑉 . O 𝑘-NNG é um grafodirecionado 𝐺 = (𝑉, 𝐸), onde cada aresta 𝑒 ∈ 𝐸 é do tipo 𝑒 =< 𝑣, 𝑢 >, 𝑢 ∈ 𝑁𝑁𝑘(𝑣) [36].

A construção dos grafos 𝑘-NN por força bruta tem um custo de 𝑂(𝑛2), podendoser utilizado em conjuntos de dados pequenos. Assim, vários métodos para a construçãodeste grafo vêm sendo desenvolvidos.

Em [36] os autores apresentam dois algoritmos de construção do 𝑘-NNG: o algo-ritmo baseado em partições recursivas e o algoritmo baseado em pivôs. Estes dois algorit-mos utilizam estruturas globais do conjunto de dados para facilitar e diminuir o númerode computações de distância na realização das consultas 𝑁𝑁𝑘(𝑣) para a construção do𝑘-NNG. O algoritmo baseado em partições recursivas utiliza a estrutura Division ControlTree – DCT, que é como uma árvore binária que representa as partições que o algoritmoutiliza para realizar as computações de distância entre os elementos, facilitando as consul-tas 𝑁𝑁𝑘(𝑣). A estrutura DCT é construída da seguinte forma: partindo de um elementocomo raiz e o conjunto de elementos 𝑆, dois elementos 𝑟, 𝑙 de 𝑆 são escolhido como nósfilhos e dois subconjuntos são gerados. O subconjunto 𝑆𝑙 contém os elementos que sãomais similares ao nó 𝑙, enquanto o subconjunto 𝑆𝑟 contém os elementos que são maissimilares ao nó 𝑟. Então este processo é realizado recursivamente com cada nó filho eo subconjunto de elementos mais próximos a ele. O processo de construção é finalizadoquando |𝑆| < 2. Já o algoritmo baseado em pivôs utiliza uma estrutura de indexaçãopor pivôs. Selecionando um conjunto aleatório de pivôs do conjunto de dados original 𝑃 ,uma tabela é armazenada contendo as distâncias de cada um dos pivôs para cada um doselementos do conjunto de dados (𝛿(𝑝, 𝑣), 𝑝 ∈ 𝑃 e 𝑣 ∈ 𝑉 ). Como no algoritmo anterior, aestrutura facilita as consultas 𝑁𝑁𝑘(𝑣). Uma vez que a consulta dos 𝑘-vizinhos mais pró-ximos dos pivôs já foi resolvida com a construção da estrutura, basta realizar as consultas𝑘-NN para o restante do conjunto de dados (𝑉 − 𝑃 ). Apesar do bom resultado atingidopelos algoritmos desenvolvidos, como demonstrado em [36], os dois algoritmos requerema construção de uma estrutura de dados global.

Para solucionar este problema o algoritmo NN-Descent [37] foi proposto. O algo-ritmo NN-Descent é um algoritmo simples e eficiente para a construção de grafos 𝑘-NNaproximados de complexidade 𝑂(𝑛1.14). O NN-Descent é baseado no princípio que “o vi-zinho mais próximo de um vizinho provavelmente também é um vizinho mais próximo”.Ou seja, a partir de um resultado 𝑘-NN aproximado para um vértice do grafo, este resul-tado pode ser melhorado explorando-se os vizinhos do vizinho do vértice que está sendoanalisado. O algoritmo NN-Descent básico é a repetição deste princípio. A partir de uma

Page 41: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

39

aproximação aleatória da consulta 𝑁𝑁𝑘(𝑣) para cada objeto 𝑣 do conjunto de dados,a cada iteração o resultado da consulta 𝑁𝑁𝑘(𝑣) é melhorado explorando-se os vizinhosdos vizinhos de cada vértice 𝑣; o algoritmo encerra quando não há mais melhorias nosresultados das consultas.

3.1.1 Variações do 𝑘-NNG

Outros tipos de grafos também são utilizados para realizar consultas por similari-dade. Alguns deles são construído a partir de um 𝑘-NNG ou utilizam algumas propriedadesdo mesmo.

O trabalho [38] apresenta o quasi-proximity graph. Neste trabalho os autores tra-tam da otimização do grafo para realizar consultas ao vizinho mais próximo (1-NN) atravésde uma busca gulosa no grafo. A vizinhança dos vértices em um 𝑘-NNG não é simétrica,ou seja, um vértice qualquer 𝑣 pode fazer parte dos k vizinhos mais próximos de outrovértice 𝑢, porém 𝑢 não é necessariamente parte dos k vizinhos mais próximos de 𝑣. Essapropriedade dos 𝑘-NNG faz com que o resultado das consultas 1-NN tenha resultadosfalso positivos, então para melhorar o resultado das consultas o quasi-proximity graphé utilizado. O quasi-proximity graph é construído a partir de um 𝑘-NNG e definido por𝐺(𝑉, 𝐸) onde (𝑢, 𝑣) ∈ 𝐸 ↔ |𝑁𝑁𝑘(𝑢)∩𝑁𝑁𝑘(𝑣)| ≥ 𝑘. Desta forma se dois vértices têm umnúmero 𝑘 de vizinhos em comum, estes vértices também devem ser adjacentes. De acordocom os experimentos dos autores, o quasi-proximity graph soluciona de forma efetiva oproblema de busca ao 1-NN avaliando apenas uma pequena fração do grafo.

Outra variação do 𝑘-NNG é o 𝑘-DRG (grafo 𝑘-NN de grau reduzido – Degree-Reduced nearest neighbor Graph) [39]. O 𝑘-DRG é construído a partir de um 𝑘-NNG. Aideia principal do 𝑘-DRG é construir um grafo que tenha um número menor de arestasque o 𝑘-NNG, porém garantindo-se que os vizinhos mais próximos de um vértice aindasejam alcançáveis a partir do mesmo. Para explorar os grafos 𝑘-DR e realizar a consultado vizinho mais próximo do elemento de consulta, um algoritmo de busca gulosa (GreedySearch – GS) é utilizado [19]. Como em trabalhos anteriores da área o algoritmo debusca gulosa é o mesmo. Primeiramente é calculada a dissimilaridade entre o elementode consulta e o vértice inicial e, então, a partir deste vértice inicial, a dissimilaridadeentre o elemento de consulta e os seus vizinhos são avaliadas. O algoritmo finaliza quandonão há nenhum outro vértice vizinho mais similar ao elemento de consulta que já foiavaliado. Para uma maior probabilidade de acerto no resultado das consultas, o algoritmoguloso apresentado é realizado de forma paralela partindo de diferentes vértices iniciais.Em um trabalho subsequente, os autores executam uma busca em largura para melhoraro resultado de uma consulta dos 𝑘-vizinhos mais próximos [40]. Esta busca em larguratem como ponto inicial o vértice encontrado pelo GS como o vértice mais similar aoelemento de consulta. Para encontrar os 𝑘-vizinhos mais próximos, as vizinhanças dos

Page 42: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

40

vértices são exploradas em largura até que não exista mais nenhum vértice mais próximodo que aqueles já encontrados.

Em [41] os autores utilizam um grafo do tipo 𝑘-DR hierárquico para diminuir oespaço de busca para as consultas por similaridade. Um grafo hierárquico é um grafoonde cada nível superior representa um conjunto de vértices no nível inferior. Ou seja,cada vértice de um nível superior tem em seu nível inferior um subgrafo. Primeiramenteum grafo 𝑘-DR é construído. Os autores propõem uma forma de clusterização do 𝑘-DRsem alto custo computacional. Os clusters são identificados como regiões densas do grafo,ou seja um cluster é identificado como um conjunto de vértices conectados no grafo 𝑘-DR.É designado a cada cluster um número de identificação. O algoritmo GS do trabalhoanterior dos autores [40], avalia todos os vértices adjacentes a partir do vértice inicial.Porém, no novo algoritmo proposto HGSS, caso mais de um “vizinho‘ do vértice queestá sendo avaliado pertencer ao mesmo cluster, será selecionado para avaliar apenas o“vizinho“ mais similar. Senão, o vértice adjacente do mesmo cluster será selecionado. Oalgoritmo de busca em largura realizada no grafo hierárquico diminui o espaço de buscado algoritmo. Pois, o algoritmo irá avaliar, apenas, a dissimilaridade dos vértices quepertencem ao mesmo cluster que os vértices de profundidade dois do vértice consideradocomo o mais similar ao elemento de consulta.

Em [42] é apresentado o DLG (Double Layer Neighborhood Graph). O DLG écomposto por dois níveis de grafos 𝑘-DR, o nível base contém todos os vértices do conjuntode dados enquanto o outro contém apenas representantes do nível base. O grafo do nívelbase é construído da mesma forma que em [41], então de cada cluster um vértice é escolhidocomo representante através da propriedade de intermediação. A intermediação é umamedida de centralidade de um vértice em um grafo [43]. Esta medida se refere ao númerode caminhos mínimos de todos os vértices para quaisquer outros que passam pelo nó queestá sendo avaliado. Cada nó representante tem como subgrafo o seu cluster e, a partirdo conjunto de vértices representantes, um grafo 𝑘-DR independente é construído. Pararealizar buscas no DLG os algoritmos GS e a busca em largura apresentados em [40]são utilizados. As consultas no DLG têm a mesma precisão que o grafo 𝑘-DR hierárquicoutilizado em [41], porém com tempo de execução de consultas menor.

3.2 Grafos de vizinhança relativa e variações

Além dos tipos de grafos já citados existem outros tipos de grafos propostos naliteratura para realizar consultas por similaridade.

Um deles é o grafo de vizinhança relativa (Relative Neighborhood Graph – RNG) [28].O RNG garante que, para qualquer par de vértices, existe um ou mais “caminhos” queconectam os dois vértices sendo sempre um grafo conexo. O RNG, como já definido an-

Page 43: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

41

teoriormente, é um grafo 𝐺(𝑉, 𝐸) onde 𝑉 é seu conjunto de vértices e 𝐸 o conjunto dearestas onde (𝑣, 𝑢) ∈ 𝐸 se não existe nenhum outro vértice na intersecção entre 𝐵(𝑣, 𝛿(𝑣, 𝑢)e 𝐵(𝑢, 𝛿(𝑣, 𝑢)) sendo 𝐵(𝑥, 𝑟) uma esfera de centro 𝑥 ∈ 𝑉 e raio 𝑟.

Para realizar consultas por abrangência e aos vizinhos mais próximos, o primeiropasso seria encontrar o vértice do grafo que está mais próximo ao elemento de consulta.Para isso um algoritmo parecido com o GS [40] pode ser utilizado no RNG. A partir deum vértice inicial escolhido aleatoriamente, os nós adjacentes são visitados até encontraro elemento mais próximo ao elemento de consulta. Porém, se o vértice inicial selecionadoestiver muito longe do elemento de consulta, o processo pode demorar muito. Por estemotivo, os autores propõem a criação de um conjunto de “sementes“ (seeds), que sãovértices representativos do RNG escolhidos com base na densidade de cada região dografo. As seeds são escolhidas fundamentadas no fator de densidade de vizinhança relativa(Relative Neighborhood Density Factor – RNDF) que é um valor baseado na vizinhançade cada vértice do RNG. O RNDF de um vértice 𝑣 tem valor 1 caso todos os vérticesadjacentes de 𝑣 tiverem 𝑣 como seu vizinho mais próximo, caso contrário o valor será menorque 1. Então, para realizar as consultas por similaridade, o elemento do conjunto seedsmais próximo ao elemento de consulta é utilizado como vértice inicial nos algoritmos deconsulta no RNG. As consultas por abrangência e consultas aos k vizinhos mais próximossão realizadas no RNG através de buscas simples no grafo por sua vizinhança.

O grafo de região hiperesférica (Hypherspherical Region Graph – HRG) [44] éinspirado no RNG. O grafo HRG pode ser definido como 𝐺(𝑉, 𝐸), onde 𝐻(𝑣𝑖, 𝑣𝑗), paraqualquer par de vértices 𝑣𝑖, 𝑣𝑗 ∈ 𝑉 , é uma hiperesfera onde o raio é a distância entre 𝑣𝑖

e 𝑣𝑗 (𝛿(𝑣𝑖, 𝑣𝑗)), sendo 𝑣𝑖 o centro da hiperesfera. Então 𝐺 é um grafo do tipo RNG ondea aresta que conecta 𝑣𝑖 e 𝑣𝑗 deve satisfazer a seguinte relação: (𝐻(𝑣𝑖, 𝑣𝑗) ⊓ 𝐻(𝑣𝑖, 𝑣𝑗)) ∩𝑉 = ⊘. Ou seja, apenas existirá aresta se não houver nenhum vértice na intersecçãoentre as hiperesferas 𝐻(𝑣𝑖, 𝑣𝑗) e 𝐻(𝑣𝑗, 𝑣𝑖). Como cada vértice do HRG é o centro de umahiperesfera, uma hiperesfera 𝐻 é definida pelo autores como 𝐻 = (𝑣, 𝑐, 𝑂), onde 𝑣 se refereao centro da hiperesfera, 𝑐 o número máximo elementos que podem ser incluídos em 𝐻 e𝑂, o conjunto de elementos que estão incluídos na hiperesfera 𝐻. Para realizar consultaspor similaridade no HRG as consultas são realizadas em dois níveis. Em um primeiro nívela consulta é realizada entre os centros das hiperesferas da mesma forma que é realizadano RNG. O resultado deste primeiro nível é utilizado como uma redução no espaço deconsulta. Então, em um segundo nível, os elementos que pertencem às hiperesferas dosvértices resultantes da primeira consulta são avaliados, resultando no conjunto respostada consulta por similaridade.

Em [45] melhorias ao HRG são apresentadas. O grafo proposto no trabalho cha-mado de MOBHRG parte da mesma definição do HRG, porém com algoritmo de constru-ção e atualização do grafo diferente. Na construção do HRG e também no algoritmo de

Page 44: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

42

atualização do grafo, ao inserir um novo elemento na estrutura é, primeiramente, identifi-cado em qual hiperesfera esse elemento pertence. Caso esta hiperesfera não estiver “cheia‘(com número de elementos igual à sua capacidade máxima), o novo elemento é inseridona hiperesfera identificada. Caso a hiperesfera estiver “cheia“, esta é dividida em duasregiões. A primeira mantendo o centro da hiperesfera original e a outra com retira o ele-mento mais distante, mais dissimilar, da hiperesfera original e o considera como centrode uma nova hiperesfera com capacidade igual à original. Então o novo elemento identi-fica qual das duas novas hiperesferas ele pertence e é inserido na hiperesfera identificado.No caso do MOBHRG, a divisão das hiperesferas é realizada de forma diferente. Paraescolher o elemento que será o centro da nova hiperesfera, é aplicado entre os elementosda hiperesfera a ser dividida o algoritmo da àrvore geradora mínima (Minimum spanningtree – MST) então, o elemento com a aresta mais “longa“ do resultado do algoritmo éselecionado como centro da nova hiperesfera. A utilização do MST tem como consequênciamais regiões “separadas“ no grafo, contribuindo para os algoritmos de consulta no grafo.Com regiões mais “separadas“ o número de vértices a serem avaliados nos algoritmos deconsulta diminui.

3.3 Comparação das estruturas dos grafos 𝑘-NN, 𝑘-DR e RNG

Para comparar a estrutura dos diferentes grafos utilizados para consulta por si-milaridade a partir de uma mesma amostra da base de dados USCities, os grafos 𝑘-NN,𝑘-DR e RNG foram gerados apresentada anteriormente na Figura 1. Para todos os grafosfoi considerada como característica para avaliar a similaridade entre os dados, os valoresde latitude e longitude de cada cidade. Como função de similaridade foi utilizada a funçãode distância Euclidiana.

A Figura 8 ilustra um grafo do tipo 𝑘-NN construído com 𝑘 = 2 a partir dosdados da Figura 1. Apesar de ser um dos tipos de grafos mais utilizados para recuperaçãopor similaridade, os grafos 𝑘-NN e suas variações podem limitar o espaço de busca deum algoritmo em apenas uma área do espaço de similaridade, pelo número limitado 𝑘 dearestas que um vértice pode ter. Observando a Figura 8, é perceptível a aglomeração devértices em diferentes regiões tornando o grafo desconexo. A Figura 9 ilustra o tipo deregião que o fato do grafo ser desconexo pode causar problemas no decorrer de algoritmosgulosos de busca no grafo, como é a proposta da maioria dos trabalhos.

Por se tratar de um grafo direcionado, as buscas irão seguir a direção das arestas.Tendo como um vértice inicial escolhido aleatorimente algum vértice da Figura 9, seriaimpossível analisar a similaridade em relação aos outros vértices do grafo que não estãorepresentados na figura. Este é um dos motivos que, na maioria das vezes, os resultadosde consultas por similaridade realizadas utilizando grafos 𝑘-NN ou suas variações trazemresultados aproximados, como, por exemplo, foi apresentado como resultado dos experi-

Page 45: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

43

Kings Park CDP

Wanchese CDP

Eminence city

Delphos city

West Ocean City CDP Timberville town

Redwood CDP

Melrose village

West Manchester village

Homosassa Springs CDP

Bismarck city

Hollis city

Brush city

Marlton CDP

Coyle town

Greensburg city

Owens Cross Roads town

Sumrall town

Hindman city

Whitten city

Ava city

Manteo town

Exeter city

Alondra Park CDP

Gassaway town

Jeffrey City CDP

Esperanza comunidad

Belfield city

Mims CDP

Kingsley city

Oxford town

Lake St. Louis city

Nelson city

Enterprise city

Castle town

Ontario village

Fairmont village

Baxter city

Brandon city

Lincoln Park CDP

Princeton city

Rhine town

Westwood city Tallmadge city

Hampden CDP

Hoyleton village

New Plymouth city

San Antonio comunidad

Trosky city

Auburn city

Oak Brook village

Ocilla city

Port Isabel city

Brownsboro Farm city

Springfield city

Keeseville village

Marsing city

Reserve village

Fircrest city

Chenega CDP

Irwin city

Milford city Culver city

Union City city

Mentone town

Register town

Centreville town

Buies Creek CDP

Morovis zona urbana

Castine village

Piney Green CDP

Purcellville town

Granville city Bancroft city

New Brighton city

Reading city

Pomeroy city

Parma city

Argo town

Danville city

Ashley village

Lake Louise CDP

McKey CDP

Adrian city Olathe town

Northcliff CDP

Loris city

Wayne town

North Laurel CDP

Douglas city

Mineral Springs town

Ely city

Cottageville town

Tipp City city

Attapulgus city

Otis city

Embarrass village

Pena Pobre comunidad

Wolcott village

Domino town

Kirtland Hills village

Wisner town

Soldier city

Grand Prairie city

Fraser city

Watsontown borough

Newport city

Eagle Lake city

Meraux CDP

Palmetto village

Gateway town

Fountain city

Mount Auburn village

Summit town

Bull Hollow CDP

Succasunna−Kenvil CDP

Beloit city

Indian Springs CDP

Ethete CDP

Fairlawn CDP

Ainsworth city

Greenup city

Bitter Springs CDP Fairview city

New Chapel Hill city

Jacksonville city

Plainville city Morgantown town

Graysville city

Pikeville town

Boone city

Big Sandy town

Stuarts Draft CDP

Cook city

Yuma city

Rudd city

Stone Mountain city

Mariposa CDP

Ladysmith city

Geddes city

Twin City city

Moose Lake city

Ouray city

Bishop town

Rushville city Axtell city

Wildwood city

Waimea CDP

Cahaba Heights CDP

Valatie village

San Marino city

Willow Street CDP

Toluca city

Uplands Park village

Savanna town

Duck Key CDP

Plumas Eureka CDP

Brooklyn village Lamont city

Eudora city

West Buechel city

Mission Hill town

St. Matthews town

Farmersville village

Makakilo City CDP

Gilberton borough

Landfall city

Beach city

Hurlock town

Morrill city

Glorieta CDP

Thomson village

Montgomery Village CDP

New Iberia city

Laketown town

Lyman town

Sugar Notch borough

Darlington village

Boalsburg CDP

Clare city

Kenedy city

Mannsville town

Oakhurst city

Achille town Hodges town

Loring AFB CDP

West Lawn borough

New Martinsville city

Preston−Potter Hollow CDP

Eastman city

Centennial CDP

Hulbert town

Memphis city

Yellow Bluff town

Drayton city

Depew town

Zapata Ranch CDP

Abbotsford city

Cavour town

Elizabethtown borough

Krum city

Wittenberg village

Seaton village

Lansing city

Millbury village

Valley Falls city

Torreon CDP

Flemingsburg city

Lewiston village

Troxelville CDP

Samnorwood CDP

Johnstown town

Tresckow CDP

Valley Park city

Parker Strip CDP

Broadway town

Corning city

Golconda city

Mount Ayr city Jersey Shore borough

Richville village

Liberty Hill city

Gumbranch city

Pendleton town

Richland city

New Sarpy CDP

Caro village

Latta town

Cohoes city

Timblin borough

Tea city

Lake Belvedere Estates CDP

Elkhart city

Camargo town

South Lebanon village

Edina city

Ellisburg village

Sparks town

Boiling Springs CDP

Avalon town

Linn city

Hepburn city

Birchwood Village city

Bloomfield borough

Reed town

Starr School CDP

Copeland city

Millhousen town

Ravenden Springs town

Lake Katrine CDP

Indian Hills city

Papaikou CDP

Cruger town

Palmyra village

Worden CDP

Staley town

Dover town

Arona borough

Atwater city

Fulton village

Ronan city

Union Park CDP

Randleman city

Paris city

Brundage CDP

Levelland city

Bearden town

Mentor city

Elfin Cove CDP

Roscoe city

Morgan City city

La Barge town

Fountain Green city

Hillcrest village

Buckingham village Loganton borough

Figura 8 – Grafo 𝑘-NN de 𝑘 = 2 construído a partir das amostras da Figura 1

mentos de [18]. O algoritmo 𝑘-NN utilizado é eficiente porém não apresenta resultadosexatos em todas as consultas.

Para ilustrar as diferenças entre o grafo 𝑘-NN e sua variação 𝑘-DR, um grado dotipo 𝑘-DR foi construído nas mesmas condições que o 𝑘-NNG apresentado na Figura 8,com valor de 𝑘 = 2 e utilizando a distância Euclidiana. Estas diferenças estão ilustradasna Figura 10 onde apenas a área de maior densidade do grafo é mostrada nos dois casos.

Por se tratar de grafos de 𝑘 pequeno, não há grandes diferenças notáveis entre o𝑘-NN e o 𝑘-DR. Portanto para explicar de forma clara a diferenças entre os dois tipos degrafos, na Figura 11 há uma comparação do grafo 𝑘-NN e do grafo 𝑘-DR para o vérticeque representa a cidade Drayton city. Enquanto no 𝑘-NN Drayton city está conectado comseus dois vizinhos mais próximos, por ser um grafo 𝑘-NN de 𝑘 = 2, no 𝑘-DR há apenasa conexão com o vértice Moose uma vez que a partir da propagação por seus “vizinhos“um algoritmo de busca simples conseguiria encontrar o seu segundo vértice mais próximo.A tendência é que quanto maior o 𝑘 do grafo 𝑘-NN maior será a redução de grau dosvértices para o 𝑘-DR, principalmente para regiões muito densas.

Vários algoritmos foram propostos para realizar consultas por similaridade em

Page 46: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

44

Figura 9 – Região desconexa do grafo 𝑘-NN

(a) (b)Grafo 𝑘-NN Grafo 𝑘-DR

Figura 10 – Grafos 𝑘-NN e 𝑘-DR de 𝑘 = 2 a partir dos dados da Figura 1

𝑘-NNG e suas variações. Uma vez que devem ser consideradas, além da estrutura dografo, as propriedades do espaço de similaridade. A abordagem mais comum é utilizaruma busca gulosa considerando-se a propridade de aproximação espacial. Entretanto,esta abordagem falha em retornar resultados exatos em grafos 𝑘-NN e variações pois nãohá garantias de existência de caminho entre quaisquer pares de vértices. Quando os grafossão desconexos, essa característica é mais visível. Em grafos não conexos como o 𝑘-NN eo 𝑘-DR, o algoritmo de busca deve considerar esta característica. O algoritmo de buscadeve ser realizado de forma que várias regiões desconexas de um grafo sejam analisadaspara não limitar o conjunto resposta da consulta por similaridade em apenas uma regiãodo grafo, obtendo então um resultado não exato da consulta ou até mesmo totalmenteincorreto.

Page 47: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

45

(a) (b)Grafo 𝑘-NN Grafo 𝑘-DR

Figura 11 – Comparação do grafo 𝑘-NN e 𝑘-DR para o vértice Drayton city

Contudo, há várias outras situações onde o resultado de uma consulta por simi-laridade sobre um 𝑘-NNG será aproximado. Por exemplo, analisando-se a Figura 11, seo elemento mais próximo do elemento de consulta for Drayton city, nenhuma busca quenão tivesse início neste vértice o retornaria como parte do resultado, pois não há caminhonos grafos 𝑘-NN ou 𝑘-DR que alcance este vértice.

O RNG garante que, para qualquer par de vértices, existe um ou mais caminhosque conectam os dois vértices. A Figura 12 mostra um RNG construído a partir dos dadosda Figura 1. Esta característica poderia indicar que, a partir de qualquer vértice do grafo,um algoritmo de busca que é baseado em percorrer os vértices do grafo de forma iterativao RNG com base na propriedade de aproximação espacial conseguiria “chegar” à respostaexata pelo fato do grafo ser conexo. Porém, essa suposição não é válida, como mostradoa seguir.

A forma para realizar a aproximação espacial sobre o RNG pode ser feita através deum algoritmo guloso, como já foi abordado anteriormente. Nessa abordagem, um vérticeinicial para a consulta é escolhido, aleatoriamente ou a partir de algum outro critério. Casoseja escolhido um vértice cujos vizinhos estejam mais distantes do elemento de consultaque o vértice inicial, a consulta retornará como resposta o próprio vértice inicial, mesmoque o vértice inicial nem sempre é o mais similar ao elemento de consulta. Este tipode situação também pode ocorrer durante consulta, quando o vértice escolhido como opróximo a ser analisado pelo algoritmo de consulta é o mais similar localmente (mínimolocal), ou seja, não há nenhum outro vizinho mais similar ao elemento de consulta doque ele mesmo. Desta froma a consulta retornaria um mínimo local como resposta e nãoum mínimo global. Da mesma forma o GG também está sujeito a respostas não exatassendo o único grafo que garante sempre a aproximação espacial por definição é o grafo de

Page 48: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

46

Kings Park CDP

Wanchese CDP

Eminence city

Delphos city

West Ocean City CDP Timberville town

Redwood CDP

Melrose village

West Manchester village

Homosassa Springs CDP

Bismarck city

Hollis city

Brush city

Marlton CDP

Coyle town

Greensburg city

Owens Cross Roads town

Sumrall town

Hindman city

Whitten city

Ava city

Manteo town

Exeter city

Alondra Park CDP

Gassaway town

Jeffrey City CDP

Esperanza comunidad

Belfield city

Mims CDP

Kingsley city

Oxford town

Lake St. Louis city

Nelson city

Enterprise city

Castle town

Ontario village

Fairmont village

Baxter city

Brandon city

Lincoln Park CDP

Princeton city

Rhine town

Westwood city Tallmadge city

Hampden CDP

Hoyleton village

New Plymouth city

San Antonio comunidad

Trosky city

Auburn city

Oak Brook village

Ocilla city

Port Isabel city

Brownsboro Farm city

Springfield city

Keeseville village

Marsing city

Reserve village

Fircrest city

Chenega CDP

Irwin city

Milford city Culver city

Union City city

Mentone town

Register town

Centreville town

Buies Creek CDP

Morovis zona urbana

Castine village

Piney Green CDP

Purcellville town

Granville city Bancroft city

New Brighton city

Reading city

Pomeroy city

Parma city

Argo town

Danville city

Ashley village

Lake Louise CDP

McKey CDP

Adrian city Olathe town

Northcliff CDP

Loris city

Wayne town

North Laurel CDP

Douglas city

Mineral Springs town

Ely city

Cottageville town

Tipp City city

Attapulgus city

Otis city

Embarrass village

Pena Pobre comunidad

Wolcott village

Domino town

Kirtland Hills village

Wisner town

Soldier city

Grand Prairie city

Fraser city

Watsontown borough

Newport city

Eagle Lake city

Meraux CDP

Palmetto village

Gateway town

Fountain city

Mount Auburn village

Summit town

Bull Hollow CDP

Succasunna−Kenvil CDP

Beloit city

Indian Springs CDP

Ethete CDP

Fairlawn CDP

Ainsworth city

Greenup city

Bitter Springs CDP Fairview city

New Chapel Hill city

Jacksonville city

Plainville city Morgantown town

Graysville city

Pikeville town

Boone city

Big Sandy town

Stuarts Draft CDP

Cook city

Yuma city

Rudd city

Stone Mountain city

Mariposa CDP

Ladysmith city

Geddes city

Twin City city

Moose Lake city

Ouray city

Bishop town

Rushville city Axtell city

Wildwood city

Waimea CDP

Cahaba Heights CDP

Valatie village

San Marino city

Willow Street CDP

Toluca city

Uplands Park village

Savanna town

Duck Key CDP

Plumas Eureka CDP

Brooklyn village Lamont city

Eudora city

West Buechel city

Mission Hill town

St. Matthews town

Farmersville village

Makakilo City CDP

Gilberton borough

Landfall city

Beach city

Hurlock town

Morrill city

Glorieta CDP

Thomson village

Montgomery Village CDP

New Iberia city

Laketown town

Lyman town

Sugar Notch borough

Darlington village

Boalsburg CDP

Clare city

Kenedy city

Mannsville town

Oakhurst city

Achille town Hodges town

Loring AFB CDP

West Lawn borough

New Martinsville city

Preston−Potter Hollow CDP

Eastman city

Centennial CDP

Hulbert town

Memphis city

Yellow Bluff town

Drayton city

Depew town

Zapata Ranch CDP

Abbotsford city

Cavour town

Elizabethtown borough

Krum city

Wittenberg village

Seaton village

Lansing city

Millbury village

Valley Falls city

Torreon CDP

Flemingsburg city

Lewiston village

Troxelville CDP

Samnorwood CDP

Johnstown town

Tresckow CDP

Valley Park city

Parker Strip CDP

Broadway town

Corning city

Golconda city

Mount Ayr city Jersey Shore borough

Richville village

Liberty Hill city

Gumbranch city

Pendleton town

Richland city

New Sarpy CDP

Caro village

Latta town

Cohoes city

Fraser city

Timblin borough

Tea city

Lake Belvedere Estates CDP

Elkhart city

Camargo town

South Lebanon village

Edina city

Ellisburg village

Sparks town

Boiling Springs CDP

Avalon town

Linn city

Hepburn city

Birchwood Village city

Bloomfield borough

Reed town

Starr School CDP

Copeland city

Millhousen town

Ravenden Springs town

Lake Katrine CDP

Indian Hills city

Papaikou CDP

Cruger town

Palmyra village

Worden CDP

Staley town

Dover town

Arona borough

Atwater city

Fulton village

Ronan city

Union Park CDP

Randleman city

Paris city

Brundage CDP

Levelland city

Bearden town

Mentor city

Elfin Cove CDP

Roscoe city

Morgan City city

La Barge town

Fountain Green city

Hillcrest village

Buckingham village Loganton borough

Figura 12 – Grafo RNG construído a partir das amostras da Figura 1

Delaunay.

Pode-se visualizar um exemplo deste problema na Figura 13. Supondo-se que aconsulta inicie do vértice Worden CDP e o elemento de consulta seja um próprio vérticedo grafo, no caso Ronan City. Ao iniciar do vértice Worden City, não existe vizinho maispróximo da cosnulta que o próprio vértice inicial.

Figura 13 – Exemplo sobre a aproximação espacial no RNG com resposta incorreta

Page 49: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

47

4 PROPOSTAS PARA AUMENTAR A PRECISÃO DE CON-SULTAS EM GRAFOS DE PROXIMIDADE

Em [46] foram propostos algoritmos para as consultas por similaridade 𝑘-NN e Rqcom resultados exatos utilizando grafos 𝑘-NN como estrutura de dados para as consultas.Estes algoritmos tiveram como resultado uma diminuição no número de computação dedistâncias quando comparados à estratégia AESA (Approximating and Eliminating SearchAlgorithm) [47]. A principal contribuição do trabalho foi a utilização do 𝑘-NNG paraestimar um limite inferior (lower bound) e o limite superior (upper bound) do elemento deconsulta para os elementos da base de dados. Os limites permitem o descarte de candidatosque garantidamente não farão parte do conjunto resposta. O limite superior da distânciaentre dois elementos 𝑢 e 𝑣 no 𝑘-NNG é dado pelo peso/custo do caminho mínimo entreestes dois elementos no grafo (𝑑𝐺(𝑢, 𝑣)), pois 𝛿(𝑢, 𝑣) ≤ 𝑑𝐺(𝑢, 𝑣).

Um algoritmo genérico para realizar uma Rq neste tipo de grafo, sendo 𝑞 o elementode consulta e 𝜉 o raio dado pela consulta, seria considerar todo o conjunto de dados comopotenciais elementos do conjunto resposta e então iterativamente, para cada elemento 𝑢

do conjunto, se 𝛿(𝑢, 𝑞) ≤ 𝜉 então 𝑢 faz parte do conjunto resposta, senão todos os objetos𝑣 tais que 𝑑𝐺(𝑢, 𝑣) < 𝛿(𝑢, 𝑞) − 𝜉 são eliminados como potenciais elementos do conjuntoresposta. Os autores melhoram este algoritmo genérico utilizando as propriedades do𝑘-NNG:

∙ Utilizar o raio de cobertura de cada vértice, ou seja, a distância do vértice até o seuk-ésimo elemento. Caso o elemento 𝑞 e o raio 𝜉 da consulta estiver contido no raio decobertura de um vértice 𝑣 do grafo, o potencial conjunto resposta será 𝑣 ∪ 𝑁𝑁𝑘(𝑣);

∙ Propagar na vizinhança dos vértices que estão no conjunto resposta. Se um vérticeestá no conjunto resposta da consulta, é muito provável que os vértices adjacentesa ele também estão. Para avaliar se um vizinho faz parte do conjunto resposta oslimites inferiores e superiores do vértice são computados, ou seja, não é necessárioa computação de distância em um primeiro instante.

∙ Avaliar não apenas os vértices concentrados na região do vértice mais próximo aoelemento de consulta, mas também outras regiões do grafo para evitar o cálculo deum mesmo limite superior várias vezes.

Para avaliar diferentes regiões do grafo duas heurísticas são introduzidas para selecionar opróximo vértice a ser avaliado como parte do conjunto resposta ou não. A primeira heurís-tica apresentada foi escolher os vértices que têm alguns vizinhos descartados do conjuntoresposta, pois estes são vértices que, provavelmente, serão descartados também. Em caso

Page 50: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

48

de empate, serão escolhidos os vértices que cobrem o menor raio, ou seja, aqueles quetêm vizinhos muito próximos dele, uma vez que caso o vértice escolhido for descartadoseus vizinhos também têm grande chance de ser também. Assumindo que se dois vérticesestão distantes no grafo, eles também estão distantes no espaço. Baseando-se nisso, asegunda heurística apresentada foi selecionar o vértice com o maior tamanho de distânciano grafo em relação aos selecionados anteriormente. O algoritmo proposto pelos autorespara 𝑘-NN𝑞 é similar ao algoritmo da Rq, mas utilizando um raio dinâmico de consulta,inicialmente definido como infinito (∞) e decrescendo durante a execução do algoritmo.Além disso, um conjunto auxiliar de candidatos ao conjunto resposta é manuseado sendoo raio da consulta a distância entre o elemento de consulta e o elemento mais distantedele dentro deste conjunto auxiliar. Vértices com limite inferior maior que o raio da con-sulta são eliminados como candidatos ao conjunto resposta. O limite inferior é calculadocomo 𝑚𝑎𝑥𝑝 = 𝛿(𝑝, 𝑞) − 𝑑𝐺(𝑝, 𝑢), onde 𝑝 é qualquer vértice selecionado anteriormente noalgoritmo.

No trabalho [18], os autores apresentam o algoritmo GNNS. Este algoritmo éutilizado para realizar a consulta 𝑘-NN com resultados aproximados. O algoritmo temcomo ponto inicial um vértice do grafo 𝑘-NN escolhido aleatoriamente denotado por 𝑦𝑡−1.A cada iteração do algoritmo, este vértice é substituído por 𝑦, seu vizinho mais próximoao elemento de consulta 𝑞, ou seja, aquele com menor distância ao elemento de consulta:

𝑦𝑡 = argmin𝑦∈𝑁𝑁𝐸(𝑦𝑡−1)

𝛿(𝑦, 𝑞),

sendo 𝛿 a função de distância utilizada e 𝑁𝑁𝐸(𝑦𝑡−1) uma função que retorna os 𝐸 ≤ 𝑘

vizinhos mais próximos de 𝑦𝑡−1 no grafo, onde 𝑘 é o número 𝑘 do 𝑘-NNG. O algoritmoé finalizado após um número 𝑇 de iterações deste processo guloso descrito. O algoritmoé iniciado 𝑅 vezes, cada vez com um vértice escolhido aleatoriamente como ponto inicialda consulta. Então, os 𝑘 elementos mais próximos de 𝑞 são selecionados para o conjuntoresposta da consulta. Apesar de ser um algoritmo bastante simples, o GNNS supera aeficiência dos algoritmos LSH [48] e da KD-tree [49]1.

Para aprimorar o algoritmo GNNS [18], os autores de [21] introduzem o improvedGNNS (iGNNS). O iGNNS utiliza o mesmo método de busca que o GNNS porém algumasmelhorias foram realizadas sendo elas: Caso o vértice inicial escolhido aleatoriamenteestiver muito distante do elemento de consulta, este é ignorado como vértice inicial. Essamelhoria foi realizada para diminuir o número de cálculos de (dis)similaridade durantea consulta. O número de cálculos de (dis)similaridade entre o vértice que está sendoanalisado e seus vizinhos também foi minimizado. Ao invés de calcular a (dis)similaridadede cada vizinho com o elemento de consulta é calculado apenas até encontrar um vizinhoque apresenta uma similaridade maior com o elemento de consulta do que o atual. A1 As implementações utilizadas no trabalho são: Para a KD-Tree [<http://www.cs.ubc.ca/research/

flann/>] e LSH [<http://ttic.uchicago.edu/~gregory/download.html>]

Page 51: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

49

condição de parada para o algoritmo também foi modificada. Enquanto a condição deparada para o GNNS é um número de iterações 𝑇 , como foi descrito anteriormente, acondição de parada do iGNNS é um número máximo de cálculos de (dis)similaridade.

Além dos grafos já apresentados neste capítulo existem outras abordagens maisrecentes de grafos para espaços métricos. Um deles é o Grafo de Mundo Pequeno Navegá-vel(Navigable Small World Graphs – NSW ) [50]. Um grafo de mundo pequeno é um grafoaleatório que possui as características estruturais [51, 52]:

∙ São grafos muito esparsos, ou seja, têm poucas conexões por vértice;

∙ Alta clusterização local;

∙ Um par de vértices é conectado por um caminho de tamanho muito pequeno quandocomparado ao tamanho do grafo, ou seja, há uma baixa distância entre os vérticesdo grafo.

O Grafo de Mundo Pequeno Navegável proposto é um grafo baseado na topologiados grafos de mundo pequeno mas contendo uma aproximação do grafo de Delaunay.Este grafo utiliza o algoritmo de busca gulosa para realizar buscas 𝑘-NN com resultadosaproximados.

O NSW é definido por 𝐺(𝑉, 𝐸) sendo os vértices 𝑉 os dados complexos e as arestas𝐸 definidas pela construção do grafo. Existem dois tipos de arestas no NSW, as arestasde curto alcance que serão utilizadas para a busca gulosa e as arestas de longo alcanceque são responsáveis por manter as propriedades de grafos de mundo pequeno no NSW.A construção do NSW é baseada na inserção iterativa de todos os dados (vértices). Paracada novo vértice inserido é realizada uma busca aos vértices do grafo que pertencemao conjunto dos seus vizinhos mais próximos conectando, então, este novo vértice aoresultado da busca realizada. Com isto, os autores criam uma aproximação ao grafo deDelaunay pois a ideia tem como base que a interseção entre o resultado da busca realizadana inserção de um novo vértice e os elementos que são vizinhos no grafo de Delaunay realé grande. As novas arestas são arestas do tipo de curto alcance pois conectam os vizinhosdo novo vértice, conforme a inserção consecutiva de novos dados no grafo novos vérticessão conectados à vértices inseridos anteriormente, tornando o NSW mais próximo ao grafode Delaunay. Com as novas arestas, as arestas que eram antes de curto alcance se tornamde longo alcance.

Para realizar a busca aos seus vizinhos mais próximos no momento da inserção oalgoritmo de busca 𝑘-NN é utilizado. O algoritmo de busca 𝑘-NN utilizado pelos autoresébaseado em uma série de 𝑚 buscas gulosas formando um conjunto de respostas e retorna os𝑘 vértices mais próximos do vértice a ser inserido deste conjunto de respostas. Os autoreschegaram à conclusão que os melhores parâmetros para realizar estas buscas 𝑘-NN são:

Page 52: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

50

𝑘 = 3*𝑑 sendo 𝑑 o número de dimensões do dado e 𝑚 um valor alto o bastante para obterum recall entre 0.95 e 0.99 definido experimentalmente para cada base de dados utilizada.

O NSW é um grafo de estrutura simples e pode ser utilizado para qualquer funçãode similaridade. Porém os resultados para consultas por similaridade são aproximadasapesar da taxa de erro pequena [53].

Além do NSW a abordagem mais recente da área é o Fast Approximate NearestNeighbour Graph – FANNG [20]. A ideia principal do trabalho é construir um grafo direci-onado cuja estrutura seja ideal para realizar consultas por similaridade. Como apresentadoanteriormente, a forma mais simples de utilizar grafos direcionados para encontrar o seuvizinho mais próximo para qualquer elemento de consulta é utilizar um algoritmo gulosoque inicia a busca a partir de um vértice qualquer e seleciona da sua vizinhança o vérticemais próximo do elemento de consulta para ser o próximo a ser analisado até que não hámais vértices mais próximos que o atual. Para que o algoritmo guloso de busca encontre ovértice mais próximo basta garantir que há sempre um vértice mais próximo ao elementode consulta partindo de qualquer outro vértice. Com isso, os autores definiram como pro-priedade no grafo proposto que se existe uma aresta entre os vértices 𝑣1 e 𝑣2 não hánecessidade de ter uma aresta de 𝑣1 e qualquer outro vértice 𝑣3 em que 𝑣3 é mais próximode 𝑣2 do que de 𝑣1. A partir desta propriedade o algoritmo de construção do FANNG ébastante simples, para cada novo vértice é calculada as distâncias para todos os vértices,estas distâncias são armazenadas em uma lista que é ordenada de forma crescente. Entãoseguindo a ordem da lista as arestas são adicionadas de forma que a propriedade definidase matenha em relação às arestas que já existem no grafo.

O grafo resultante é um grafo de grau (número de arestas por vértice) bastante pe-queno o que ajuda na execução do algoritmo de busca pois há poucos vizinhos para seremanalisados. Porém, a estrutura do grafo garante apenas resultados exatos de consultasonde o elemento de consulta é identico à um vértice inserido no grafo. Por isso, os autoresrealizam modificações tanto no método de busca quanto no algoritmo de construção doFANNG.

A propriedade definida no grafo é modificada para atender à situações onde o usuá-rio está interessado em realizar consultas dentro de um raio 𝑟. Portanto com a propriedademodificada, se 𝛿(𝑞, 𝑣2) < 𝛿(𝑞, 𝑣1) sendo 𝑞 o elemento de consulta, não há necessidade deter uma aresta de 𝑣1 para 𝑣3 onde 𝛿(𝑞, 𝑣3) < 𝑟. Com esta nova propriedade o grau do graforesultante aumenta consideravelmente, aumentando o tempo de execução das consultas etambém o consumo de memória. Com esta modificação o algoritmo de busca no FANNGtambém é modificado, é utilizado uma busca com backtracking. Ao invés de finalizar abusca quando não há mais vértices mais próximo que o atual como o algoritmo guloso,o algoritmo utiliza uma espécie de busca em profundidade para realizar o backtracking.Após encontrar o vértice mais próximo ao elemento de consulta, o algoritmo realiza um

Page 53: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

51

backtrack para o segundo vértice mais próximo e verifica se não há mais nenhum vizi-nho que não tenha sido explorado ainda durante a consulta, quando não há mais nenhumvizinhos o algoritmo realiza um backtrack para o terceiro mais próximo e assim por diante.

O FANNG foi comparado ao 𝑘-NNG e ao NSW. Quando comparado ao 𝑘-NNG,o FANNG obteve melhores resultado quanto ao tempo de execução de consultas e tam-bém consumo de memória, considerando que nos experimentos os autores utilizaram omesmo algoritmo de busca para as duas estruturas, o algoritmo de busca com backtrac-king. Quando comparado ao NSW o FANNG obtém resultados com uma taxa menor aindade erro que o NSW.

4.1 Propriedade para definir a inserção de arestas entre os vér-tices

Os trabalhos propostos mais recentes como o NSW [50] e o FANNG [20] apresen-tados no início deste capítulo trabalham com estruturas que têm como finalidade mantera propriedade de aproximação espacial definida por [29]. O NSW realiza isto a partirde uma aproximação ao grafo de Delaunay e o FANNG constrói o grafo de acordo compropriedades que foram definidas para que as consultas obtenham resultados, ainda queaproximados com uma taxa pequena de erro.

Vale lembrar que a utilização de um grafo que não mantém a propriedade deaproximação espacial não impede a garantia de resultados exatos das consultas por simi-laridade porém outros tipos de buscas em grafos devem ser desenvolvidos com heurísticasque garantem resultados exatos no tipo de grafo utilizado. Como foi proposto em [46] ondeum outro algoritmo de busca é utilizado no 𝑘-NNG e não simplesmente um algoritmo debusca baseado em um algoritmo guloso ou na propriedade de aproximação espacial.

4.2 Comparação quanto a construção dos grafos 𝑘-NNG e RNGe aplicabilidade dos algoritmos de busca

Nesta seção os algoritmos de construção serão comparados discutindo sua comple-xidade e também a aplicabilidade dos diferentes algoritmos de busca em outros tipos degrafos além dos abordados em sua proposta original.

A tabela 4.2 mostra a complexidade dos algoritmos de construção dos diferentestipos de grafos apresentados nos capítulos 2 e 3. Nesta tabela 𝑛 representa o número deelementos da base

Facilmente podemos perceber que pela complexidade de construção de cada tipodiferente de grafo o grafo que tem menor custo computacional é o 𝑘-NNG. O 𝑘-NNG comofoi discutido em na seção 3.3, pode resultar em um grafo desconexo sendo dependente do

Page 54: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

52

𝑘-NNG 𝑘-DR RNG DGForça bruta: 𝑂(𝑛2) 𝑂(𝑛2) [19] 𝑂(𝑛3) e 𝑂(𝑛2) [26] Iterativo:𝑂(𝑛2) [54]

NN-Descent [37]:𝑂(𝑛1.14) - 𝑂(𝑛𝑙𝑜𝑔𝑛) [55] Divisão e conquista:𝑂(𝑛𝑙𝑜𝑔𝑛) [54]

Tabela 1 – Complexidade dos algoritmos propostos para construção dos diferentes tiposde grafos

parâmetro 𝑘 em sua construção. Tornando difícil a recuperação de dados por consultas porsimilaridade com resultados exatos a partir de algoritmos mais simples como o GS [19].

Porém há abordagens para realizar consultas Rq e 𝑘-NN𝑞 com resultados exatosem grafos 𝑘-NN. Os algoritmos propostos em [46] realizam esta a partir de heurísticassendo que uma delas é avaliar não apenas os vértices concentrados na região do vérticemais próximo ao elemento de consulta, mas também outras regiões do grafo. Sendo assim,mesmo que o grafo seja desconexo o algoritmo ainda conseguirá analisar várias regiões dografo para construir o conjunto resposta. Nestes algoritmos os autores levam em consi-deração os limites inferiores e superiores para retirar ou inserir um elemento ao conjuntoresposta da consulta.

Como as propriedades para limites inferiores e superiores se mantém no 𝑘-DRpor ele ser uma variação do 𝑘-NNG, os algoritmos propostos podem ser utilizados comométodos de busca no 𝑘-DR também porém com algumas alterações pois o número devizinhos para cada vértice no 𝑘-DR não é fixo como no 𝑘-NNG. No 𝑘-DR o número devértices adjacentes podem ser no máximo 𝑘 enquanto no 𝑘-NNG o número 𝑘 de vizinhosé fixo.

O algoritmo GNNS [18] e iGNNS [21] são algoritmos utilizados para realizar con-sultas 𝑘-NN𝑞 em grafos 𝑘-NN, como o GNNS é um algoritmo baseado em processos gulososcom o objetivo de sempre chegar mais próximo possível ao elemento de consulta, o GNNSde certa forma se assemelha muito ao GS [19]. Assim, o GNNS também poderia ser utili-zado como método de busca não apenas no 𝑘-DR mas também em outros tipos de grafosque utilizam a busca gulosa para realizar consultas por similaridade como o RNG ou oGG.

Como pode ser observado na Tabela 4.2 o método de construção do RNG tem umcusto computacional mais elevado. Para construir um RNG ou um GG com complexidadebaixa como o algoritmo NN-Descent, seria necessário ter a priori um grafo de Delaunayou um diagrama de Voronoi para então construir a partir destas estruturas um RNG ouum GG com complexidade 𝑂(𝑛) [26].

Como já discutido na seção anterior, há uma série de limitações quanto a constru-ção do grafo de Delaunay dificultando utilizar um algortimo de baixa complexidade para"retirar" o RNG ou o GG do mesmo.

Page 55: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

53

4.2.1 Experimentos e discussão

Para verificar a diferença entre a construção dos grafos 𝑘-NN e do RNG e tambémo comportamento destes grafos quanto à diferentes algoritmos de consulta foi realizadouma série de experimentos utilizando a base de dados USCities e bases de dados sintéticas.

Foram utilizadas 9 bases de dados sintéticas geradas a partir de uma distribuiçãogaussiana variando o número de elementos entre 500, 5000 e 10000 e também as dimensõesentre 2, 8 e 32 dimensões. Além disso foi utilizado também a base de dados USCities quecontém 25375 elementos sendo o vetor de característica de cada cidade os valores delatitude e longitude. Em todos os experimentos a distância Euclidiana foi utilizada comomedidade de (dis)similaridade entre os elementos.

Foi utilizado para os experimentos uma máquina com processador Intel Core i5dual core de 2,6 GHz com 3MB de cache L3 compartilhado. Memória de 8GB 1600MHzDDR3, com armazenamento de 128 Gb.

Primeiramente foi comparado o tempo de execução de construção entre tanto o𝑘-NN quanto o RNG. O 𝑘-NNG foi construído utilizando o algoritmo NN-Descent en-quanto o RNG foi construído utilizando o algoritmo de complexidade 𝑂(𝑛2) de [26]. Parao grafo 𝑘-NN foi considerado os valores de 𝑘 para 2,5,10,20 e 50. O resultado desta com-paração tanto para a base USCities quanto para as bases sintéticas podem ser observadasnas Figuras 14 e 15.

1 × 10+2

1 × 10+5

1 × 10+8

2−NN 5−NN 10−NN 20−NN 50−NN RNGTipos de Grafos

Tem

po d

e ex

ecuç

ão (

nano

segu

ndos

)

Grafos10−NN2−NN20−NN5−NN50−NNRNG

Tempo de construção (USCities)

1 × 10+2

1 × 10+5

1 × 10+8

2−NN 5−NN 10−NN 20−NN 50−NN RNGTipos de Grafos

Cál

culo

s de

dis

tânc

ia

Grafos10−NN2−NN20−NN5−NN50−NNRNG

Cálculos de distância (USCities)

Figura 14 – Tempo de execução de construção dos grafos na escala e número de cálculosde distância realizados durante a construção, ambos na escala log10

Page 56: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

54

1 × 10+4

1 × 10+6

2500 5000 7500 10000Número de elementos

Tem

po d

e ex

ecuç

ão (

nano

segu

ndos

)

Grafos10−NN20−NN2−NN50−NN5−NNRNG

2 dimensões

1 × 10+3

1 × 10+5

1 × 10+7

2500 5000 7500 10000Número de elementos

Tem

po d

e ex

ecuç

ão (

nano

segu

ndos

)

Grafos10−NN20−NN2−NN50−NN5−NNRNG

8 dimensões

1 × 10+4

1 × 10+6

2500 5000 7500 10000Número de elementos

Tem

po d

e ex

ecuç

ão (

nano

segu

ndos

)

Grafos10−NN20−NN2−NN50−NN5−NNRNG

32 dimensões

Figura 15 – Comparação do tempo de construção entre os grafos 𝑘-NN e o RNG para asbases Sintéticas de diferentes dimensões. Tempo de execução em nanosegun-dos na escala log10 pelo número de elementos na base.

É perceptível a grande diferença entre o tempo de construção entre os dois tiposde grafos. Isso se deve principalmente pela complexidade do algoritmo utilizado para aconstrução dos dois grafos como demonstrado na Tabela 4.2. Outro ponto importante daconstrução dos grafos é o número médio de arestas por vértice, enquanto nos grafos 𝑘-NNeste é um parâmetro definido, no grafo RNG pode variar de acordo com a base de dados.A ordem média do número de arestas dos grafos RNG construídos pode ser obervada naTabela 4.2.1.

Base de dados 25372 500 5000 10000USCities 2 - - -

Sintética (2 dimensões) - 2 2 2Sintética (8 dimensões) - 4 5 5Sintética (32 dimenões) - 5 7 8

Tabela 2 – Ordem média do número de arestas dos grafos RNG construídos, cada linharepresentando uma base de dados e as colunas o número de elementos

Como mencionado anteriormente neste trabalho, tanto o RNG quanto o 𝑘-NNGnão garantem respostas exatas utilizando um algoritmo de busca gulosa sendo então ne-cessário utilizar outros recursos para realizar consultas por similaridade em qual a acurácia

Page 57: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

55

chegue à 100% ou o mais próximo possível disso. Para verificar como os dois grafos secomportam utilizando o mesmo algoritmo de consulta por similaridade foi aplicado oalgoritmo iGNNS [21] nos dois tipos de grafos utilizando os dados das bases sintéticasgeradas e da base de dados da USCities. As consultas foram realizadas utilizando os mes-mos 100 elementos aleatoriamente escolhidos como elementos de consulta com o objetivode encontrar o seu vizinho mais próximo (1 − 𝑁𝑁). Foi avaliado principalmente o tempode execução e a acurácia da consulta para cada tipo de grafo. Foi utilizado para todas asconsultas o parâmetro de parada padrão 4 que permite que o algoritmo realize no máximoum quarto do número de elementos em cálculos de distância.

Foi comparado a acurácia das consultas utilizando o iGNNS entre o RNG e osgrafos 𝑘-NNG com parâmtero 𝑘 = 2, 5, 10, 20, 50. A diferença entre a acurácia e o tempode execução dos grafos RNG e 𝑘-NNG pode ser observada em 16. Como pode ser observadona tabela 4.2.1 a ordem média do grafo RNG para a base de dados USCities é 2, assimcomparando a acurácia dos grafos 𝑘-NNG com valores de 𝑘 = 2, 5, 10, 20 que são próximosa ordem do RNG (considerando que o 𝑘-NNG é um grafo direcionado) o RNG ganha emacurácia.

0.00

0.25

0.50

0.75

1.00

2−NN 5−NN 10−NN 20−NN 50−NN RNGTipos de Grafos

Acu

ráci

a

Grafos10−NN2−NN20−NN5−NN50−NNRNG

Acurácia (USCities)

Figura 16 – Comparação da acurácia em porcentagem ao aplicar o algoritmo iGNNS nosgrafos 𝑘-NNG e RNG para a base de dados USCities.

Page 58: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

56

Da mesma forma o algoritmo iGNNS foi aplicado aos grafos construídos a partirda base de dados sintéticas, os resultados destes experimentos utilizando a base sintéticapara 2, 8 e 32 dimensões podem ser observados nas Figuras 17,18 e 19 respectivamente.

1 × 10+5

1 × 10+6

2500 5000 7500 10000Número de elementos

Te

mp

o d

e e

xe

cu

çã

o

Grafo10−NN2−NN20−NN5−NN50−NNRNG

Tempo de execução do iGNNS

0.25

0.50

0.75

1.00

2500 5000 7500 10000Número de elementos

Ac

urá

cia

Grafo10−NN2−NN20−NN5−NN50−NNRNG

Acurácia

Figura 17 – Comparação do tempo de execução e da acurácia ao aplicar o algoritmoiGNNS nos grafos 𝑘-NNG e RNG para dados sintéticos de 2 dimensões.Tempo de execução em nanosegundos na escala log10 e acurácia em por-centagem.

1 × 10+5

1 × 10+6

2500 5000 7500 10000Número de elementos

Te

mp

o d

e e

xe

cu

çã

o

Grafo10−NN2−NN20−NN5−NN50−NNRNG

Tempo de execução do iGNNS

0.00

0.25

0.50

0.75

1.00

2500 5000 7500 10000Número de elementos

Ac

urá

cia

Grafo10−NN2−NN20−NN5−NN50−NNRNG

Acurácia

Figura 18 – Comparação do tempo de execução e da acurácia ao aplicar o algoritmoiGNNS nos grafos 𝑘-NNG e RNG para dados sintéticos de 8 dimensões.Tempo de execução em nanosegundos na escala log10 e acurácia em por-centagem.

Pode-se observar claramente pelos resultados nas Figuras 17,18 e 19 que conformeo aumento do número de elementos e das dimensões o tempo de execução dos grafos𝑘-NN se torna cada vez maior enquanto a sua acurácia cai. Em 18 o tempo de execuçãodo RNG cai conforme o aumento do número de elementos, isso pode ocorrer quando ovértice inicial escolhido aleatoriamente está mais próximo da resposta da consulta, porémisto deve ser analisado com mais cautela futuramente. Porém o RNG apesar de tambémcrescer em tempo de execução conforme o aumento do número de elementos, este tempode execução cresce de forma mais lenta em maiores dimensões como pode ser verificado

Page 59: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

57

1 × 10+5

1 × 10+6

2500 5000 7500 10000Número de elementos

Te

mp

o d

e e

xe

cu

çã

o

Grafo10−NN2−NN20−NN5−NN50−NNRNG

Tempo de execução do iGNNS

0.25

0.50

0.75

1.00

2500 5000 7500 10000Número de elementos

Ac

urá

cia

Grafo10−NN2−NN20−NN5−NN50−NNRNG

Acurácia

Figura 19 – Comparação do tempo de execução e da acurácia ao aplicar o algoritmoiGNNS nos grafos 𝑘-NNG e RNG para dados sintéticos de 32 dimensões.Tempo de execução em nanosegundos na escala log10 e acurácia em porcen-tagem.

pela Figura 19 mantendo uma alta acurácia o que não ocorre com os grafos 𝑘-NN mesmocom um parâmetro 𝑘 muito maior quando comparado ao número de arestas médio dografo RNG para a mesma base.

Em relação do iGNNS com a abordagem de aproximação espacial em todos oscasos o tempo de execução é maior porém a acurácia também é maior, e é natural queisto ocorre pois a abordagem de aproximação espacial faz parte apenas de uma iteraçãodo GNNS original proposto por [18]. Sendo assim, em prática o GNNS realiza várias vezesa aproximação espacial aumentando as chances de encontrar a resposta exata da consultae não apenas um mínimo local. A diferença entre o tempo de execução, número de nósvisitados e acurácia da consulta para a base sintética de 32 dimensões pode ser observadana Figura 20.

Com isso podemos chegar a conclusão que existe um trade-off entre o custo deconstrução do grafo com a acurácia das consultas por similaridade realizadas com osdados modelados como um grafo. Enquanto grafos como o 𝑘-NNG e o 𝑘-DR são menoscustosos para construir, a acurácia dos resultados das consultas por similaridade diminuiconforme o aumento da dimensionalidade e da cardinalidade dos dados, isto utilizandoum algoritmo de consulta proposto recentemente desenvolvido para realizar consultas porsimilaridade em grafos 𝑘-NNG. Por outro lado grafos que conexos que permitem umaaproximação espacial ainda que local como o RNG têm uma construção mais custosa masmantém uma acurácia alta conforme o aumento da dimensionalidade e da cardinalidadedos dados utilizando o mesmo método.

Page 60: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

58

1 × 10+6

2500 5000 7500 10000Número de elementos

Tem

po d

e ex

ecuç

ão

ConsultaAprox.iGNNS

Tempo de execução

0.7

0.8

0.9

2500 5000 7500 10000Número de elementos

Acu

ráci

a ConsultaAprox.iGNNS

Acurácia

0

50

100

150

2500 5000 7500 10000Número de elementos

Núm

ero

de n

ós v

isita

dos

ConsultaAprox.iGNNS

Número de nós visitados

Figura 20 – Comparação do tempo de execução, acurácia e número de nós visitados du-rante a consulta entre o algoritmo iGNNS e a aproximação espacial (algoritmoguloso) para o grafo RNG utilizando a base de dados sintética de 32 dimen-sões.

Page 61: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

59

5 CONCLUSÃO

Ao materializar o espaço de similaridade como um grafo é de grande importânciaa forma como o grafo é construído, como os dados são conectados e também como realizaruma consulta por similaridade através de algoritmos de busca em grafos.

Assim, foi apresentado neste trabalho como contribuição uma revisão sobre osdiferentes tipos de grafos e algoritmos utilizados para realizar consultas por similaridadeapresentando uma visão geral dos trabalhos da área desde os mais antigos até os maisrecentes.

Foi realizada uma revisão bibliográfica tanto dos trabalhos que apresentam consul-tas por similaridade em grafos com resultado exatos tanto como resultados aproximados.Além disso foi abordado também definições de diferentes tipos de grafos de proximidadecomo o grafo de Delaunay, o grafo de Gabriel (GG) e o RNG e a propriedade de aproxi-mação espacial necessária para a realização de consulta por similaridade com resultadosexatos a partir de um algoritmo guloso de busca (algoritmo mais utilizado na literaturapara realizar consulta ao elemento mais similar ao elemento de consulta).

Com isso, foi discutido e comprovado através de pequenos experimentos que o grafode Delaunay apesar de satisfazer por definição a propriedade de aproximação espacial estepode se tornar rapidamente um grafo completo com o aumento das dimensões dos dadostornando inviável sua utilização como estrutura para armazenar e realizar consultas emgrandes volumes de dados complexos multidimensionais. Partindo então desta discussãoinicial foram então revisados os trabalhos que utilizam grafos de proximidade com baixaconectividade entre os vértices (dados) porém realizam consultas por similaridade comresultados aproximados.

Os principais tipos de grafos com buscas aproximadas revisados foram os grafos𝑘-NNG, 𝑘-DRG e o RNG abordando também diferentes variações destes tipos de grafose algoritmos de consultas por similaridade propostos para cada tipo. Além da revisão dostrabalhos propostos na literatura foi também realizada uma discussão sobre a estruturados três principais grafos com buscas aproximadas quanto a conectividade dos vértices,direção das arestas e também se estes grafos satisfazem a propriedade de aproximaçãoespacial.

Por final foi realizado experimentos para verificar a aplicabilidade do algoritmo deconsulta por similaridade iGNNS para os dois principais grafos utilizados na literatura o𝑘-NNG e o RNG. A partir dos resultados da consulta foi concluído que existe um trade-off entre os custo de construção do grafo com a acurácia das consultas por similaridade.Dos mesmos experimentos verificamos que o RNG poderia ser um tipo de grafo que se

Page 62: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

60

comporta melhor em consultas por similaridade porém há o obstáculo da construçãomais custosa em relação ao 𝑘-NNG. Além disso o RNG mantém um número de arestaspor vértice muito menor quando comparado ao 𝑘-NNG para manter a mesma taxa deprecisão, isto pode ser uma vantagem quando estes grafos forem utilizados como modelode dados.

Como trabalho futuro um maior número de algoritmos de consultas por simila-ridade em grafos e outros tipos de grafos propostos recentemente como o NSW [50] e oFANNG [20] devem ser avaliados. Assim como uma análise mais profunda sobre o com-portamento do 𝑘-NNG e RNG utilizando mais bases de dados reais.

Page 63: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

61

REFERÊNCIAS

[1] BARIONI, M. C. N. Operações de consulta por similaridade em grandes bases dedados complexos. Tese (Doutorado) — Universidade de São Paulo, São Carlos, SP,2006.

[2] CHáVEZ, E. et al. Searching in metric spaces. ACM Comput. Surv., ACM, NewYork, NY, USA, v. 33, n. 3, p. 273–321, set. 2001. ISSN 0360-0300. Disponível em:<http://doi.acm.org/10.1145/502807.502808>.

[3] BARIONI, M. C. N. et al. Advanced Database Query Systems. IGI Global, 2011.323–359 p. ISBN 9781609604752. Disponível em: <http://www.igi-global.com/chapter/querying-multimedia-data-similarity-relational/52308>.

[4] ZEZULA, P. et al. Similarity Search: The Metric Space Approach. 1st. ed.[S.l.]: Springer Publishing Company, Incorporated, 2010. ISBN 1441939725,9781441939722.

[5] GIANGRECO, I.; SCHULDT, H. Adam pro : Database support for big multimediaretrieval. Datenbank-Spektrum, v. 16, n. 1, p. 17–26, 2016. ISSN 1610-1995.Disponível em: <http://dx.doi.org/10.1007/s13222-015-0209-y>.

[6] ARAUJO, M. R. B. et al. Extending relational databases to support content-basedretrieval of medical images. In: IEEE International Conference on Computer BasedMedical Systems - CBMS. Maribor, Slovenia: IEEE Computer Society, 2002. p.303–308.

[7] BARIONI, M. C. N. et al. Siren: A similarity retrieval engine for complex data. In:32nd Intl Conference on Very Large Data Bases (VLDB 06). Seoul, South Korea:ACM Press, 2006. p. 1155–1158.

[8] KASTER, D. S. et al. Medfmi-sir: A powerful dbms solution for large-scalemedical image retrieval. In: . Information Technology in Bio- and MedicalInformatics: Second International Conference, ITBAM 2011, Toulouse, France,August 31 - September 1, 2011. Proceedings. Berlin, Heidelberg: SpringerBerlin Heidelberg, 2011. p. 16–30. ISBN 978-3-642-23208-4. Disponível em:<http://dx.doi.org/10.1007/978-3-642-23208-4_2>.

[9] ZHOU, W. et al. Hdkv: supporting efficient high-dimensional similaritysearch in key-value stores. Concurrency and Computation: Practice andExperience, v. 25, n. 12, p. 1675–1698, 2013. ISSN 1532-0634. Disponível em:<http://dx.doi.org/10.1002/cpe.2863>.

[10] MAI, H. T.; KIM, M. Integrating similar images to effectively improve imageretrieval accuracy. In: Computing Technology and Information Management (ICCM),2012 8th International Conference on. [S.l.: s.n.], 2012. v. 1, p. 410–415.

[11] XIA, Y. et al. Concurrent image query using local random walk with restart onlarge scale graphs. In: Multimedia and Expo Workshops (ICMEW), 2014 IEEEInternational Conference on. [S.l.: s.n.], 2014. p. 1–6. ISSN 1945-7871.

Page 64: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

62

[12] TRAINA, C. et al. Slim-trees: High performance metric trees minimizingoverlap between nodes. In: . Advances in Database Technology —EDBT 2000: 7th International Conference on Extending Database TechnologyKonstanz, Germany, March 27–31, 2000 Proceedings. Berlin, Heidelberg: SpringerBerlin Heidelberg, 2000. p. 51–65. ISBN 978-3-540-46439-6. Disponível em:<http://dx.doi.org/10.1007/3-540-46439-5_4>.

[13] VIEIRA, M. R. et al. Dbm-tree: A dynamic metric access method sensitive to localdensity data. In: CITESEER. In SBBD. [S.l.], 2004.

[14] LEE, J. K. H. Efficient recommender system based on graph data for multimediaapplication. International Journal of Multimedia and Ubiquitous Engineering, v. 8,n. 4, jul 2013.

[15] ANGLES, R.; GUTIERREZ, C. Survey of graph database models. ACM ComputingSurveys, ACM, v. 40, n. 1, p. 1–39, feb 2008. ISSN 03600300. Disponível em:<http://dl.acm.org/citation.cfm?id=1322432.1322433>.

[16] BULò, S. R.; RABBI, M.; PELILLO, M. Content-based image retrieval withrelevance feedback using random walks. Pattern Recognition, v. 44, n. 9, p. 2109 –2122, 2011. ISSN 0031-3203. Computer Analysis of Images and Patterns. Disponívelem: <http://www.sciencedirect.com/science/article/pii/S0031320311001014>.

[17] BARTHEL, K. U.; HEZEL, N.; MACKOWIAK, R. Graph-based browsing for largevideo collections. In: . MultiMedia Modeling: 21st International Conference,MMM 2015, Sydney, NSW, Australia, January 5-7, 2015, Proceedings, Part II.Cham: Springer International Publishing, 2015. p. 237–242. ISBN 978-3-319-14442-9.Disponível em: <http://dx.doi.org/10.1007/978-3-319-14442-9_21>.

[18] HAJEBI, K. et al. Fast approximate nearest-neighbor search with k-nearestneighbor graph. AAAI Press, p. 1312–1317, jul 2011. Disponível em: <http://dl.acm.org/citation.cfm?id=2283516.2283615>.

[19] AOYAMA, K. et al. Fast Approximate Similarity Search Based on Degree-ReducedNeighborhood Graphs Categories and Subject Descriptors. In: Sigkdd. New York,New York, USA: ACM Press, 2011. p. 1055–1063. ISBN 9781450308137. Disponívelem: <http://dl.acm.org/citation.cfm?id=2020408.2020576>.

[20] HARWOOD, B.; DRUMMOND, T. Fanng: Fast approximate nearest neighbourgraphs. In: The IEEE Conference on Computer Vision and Pattern Recognition(CVPR). [S.l.: s.n.], 2016.

[21] DEBATTY, T.; MICHIARDI, P.; MEES, W. Fast online k-nn graph building.CoRR, abs/1602.06819, 2016. Disponível em: <http://arxiv.org/abs/1602.06819>.

[22] SKLANSKY, J. Image segmentation and feature extraction. Systems, Man andCybernetics, IEEE Transactions on, IEEE, 1978.

[23] ARAUJO, M. R. B. et al. Extending relational databases to support content-basedretrieval of medical images. In: IEEE International Conference on Computer BasedMedical Systems - CBMS. Maribor, Slovenia: IEEE Computer Society, 2002. p.303–308.

Page 65: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

63

[24] ARONOVICH, L.; SPIEGLER, I. Cm-tree: A dynamic clustered index forsimilarity search in metric databases. Data and Knowledge Engineering, v. 63,n. 3, p. 919 – 946, 2007. ISSN 0169-023X. 25th International Conferenceon Conceptual Modeling (ER 2006) Four of the best papers presentedSomeissues in privacy data management (ICDE 2006). Disponível em: <http://www.sciencedirect.com/science/article/pii/S0169023X07001127>.

[25] ANDONI, A.; INDYK, P. Near-optimal hashing algorithms for approximate nearestneighbor in high dimensions. In: 2006 47th Annual IEEE Symposium on Foundationsof Computer Science (FOCS’06). [S.l.: s.n.], 2006. p. 459–468. ISSN 0272-5428.

[26] JAROMCZYK, J. W.; TOUSSAINT, G. T. Relative neighborhood graphs andtheir relatives. Proceedings of the IEEE, v. 80, n. 9, p. 1502–1517, Sep 1992. ISSN0018-9219.

[27] ABELLANAS, M. et al. On structural and graph theoretic propertiesof higher order delaunay graphs. International Journal of ComputationalGeometry and Applications, v. 19, n. 06, p. 595–615, 2009. Disponível em:<http://www.worldscientific.com/doi/abs/10.1142/S0218195909003143>.

[28] OCSA, A.; BEDREGAL, C.; CUADROS-VARGAS, E. A new approach forsimilarity queries using proximity graphs. In: XXII Simpósio Brasileiro de Banco deDados. [S.l.: s.n.], 2007.

[29] NAVARRO, G. Searching in metric spaces by spatial approximation. TheVLDB Journal The International Journal on Very Large Data Bases, Springer-Verlag, v. 11, n. 1, p. 28–46, aug 2002. ISSN 10668888. Disponível em:<http://link.springer.com/10.1007/s007780200060>.

[30] EDELSBRUNNER, H. Triangulations and meshes in computatio-nal geometry. Acta Numerica, Cambridge University Press, v. 9, p.133–213, Jan 2000. Disponível em: <https://www.cambridge.org/core/article/triangulations-and-meshes-in-computational-geometry/E6FC9615D9B558C719B311CA40E74E0A>.

[31] TOUSSAINT, G. Proximity graphs for nearest neighbor decision rules: Recentprogress. In: Progress”, Proceedings of the 34 th Symposium on the INTERFACE.[S.l.: s.n.], 2002. p. 17–20.

[32] DWYER, R. A. Higher-dimensional voronoi diagrams in linear expected time.Discrete & Computational Geometry, v. 6, n. 3, p. 343–367, 1991. ISSN 1432-0444.Disponível em: <http://dx.doi.org/10.1007/BF02574694>.

[33] DEVIJVER, P. A.; DEKESEL, M. Computing multidimensional delaunaytessellations. Pattern Recognition Letters, v. 1, n. 5, p. 311 – 316, 1983. ISSN0167-8655. Disponível em: <http://www.sciencedirect.com/science/article/pii/0167865583900697>.

[34] BOSE, P. et al. Proximity graphs: E, 𝛿, Δ, 𝜒 and 𝜔. International Journal ofComputational Geometry and Applications, v. 22, n. 05, p. 439–469, 2012. Disponívelem: <http://www.worldscientific.com/doi/abs/10.1142/S0218195912500112>.

Page 66: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

64

[35] ÁBREGO, B. M. et al. On crossing numbers of geometric proximity graphs.Computational Geometry, v. 44, n. 4, p. 216 – 233, 2011. ISSN 0925-7721. Disponívelem: <http://www.sciencedirect.com/science/article/pii/S0925772110000970>.

[36] PAREDES, R. et al. Practical construction of k-nearest neighbor graphs in metricspaces. In: . Experimental Algorithms: 5th International Workshop, WEA2006, Cala Galdana, Menorca, Spain, May 24-27, 2006. Proceedings. Berlin,Heidelberg: Springer Berlin Heidelberg, 2006. p. 85–97. ISBN 978-3-540-34598-5.Disponível em: <http://dx.doi.org/10.1007/11764298_8>.

[37] DONG, W.; MOSES, C.; LI, K. Efficient k-nearest neighbor graph constructionfor generic similarity measures. In: Proceedings of the 20th internationalconference on World wide web - WWW ’11. New York, New York, USA:ACM Press, 2011. p. 577. ISBN 9781450306324. Disponível em: <http://dl.acm.org/citation.cfm?id=1963405.1963487>.

[38] CHÁVEZ, E.; TELLEZ, E. S. Navigating k-nearest neighbor graphs tosolve nearest neighbor searches. In: . Advances in Pattern Recognition:Second Mexican Conference on Pattern Recognition, MCPR 2010, Puebla,Mexico, September 27-29, 2010. Proceedings. Berlin, Heidelberg: SpringerBerlin Heidelberg, 2010. p. 270–280. ISBN 978-3-642-15992-3. Disponível em:<http://dx.doi.org/10.1007/978-3-642-15992-3_29>.

[39] AOYAMA, K. et al. Fast Similarity Search in Small-World Networks. In:. Springer Berlin Heidelberg, 2009. p. 185–196. Disponível em: <http://link.springer.com/10.1007/978-3-642-01206-8_16>.

[40] AOYAMA, K. et al. Graph index based query-by-example search on a large speechdata set. In: 2013 IEEE International Conference on Acoustics, Speech and SignalProcessing. IEEE, 2013. p. 8520–8524. ISBN 978-1-4799-0356-6. ISSN 1520-6149.Disponível em: <http://ieeexplore.ieee.org/articleDetails.jsp?arnumber=6639328>.

[41] AOYAMA, K. et al. Zero-resource spoken term detection using hierarchicalgraph-based similarity search. In: 2014 IEEE International Conference onAcoustics, Speech and Signal Processing (ICASSP). IEEE, 2014. p. 7093–7097.ISBN 978-1-4799-2893-4. Disponível em: <http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=6854976>.

[42] AOYAMA, K. et al. Double-layer neighborhood graph based similarity searchfor fast query-by-example spoken term detection. In: 2015 IEEE InternationalConference on Acoustics, Speech and Signal Processing (ICASSP). [S.l.: s.n.], 2015.p. 5216–5220. ISSN 1520-6149.

[43] BRANDES, U.; PICH, C. Centrality estimation in large networks. InternationalJournal of Bifurcation and Chaos, v. 17, n. 07, p. 2303–2318, 2007. Disponível em:<http://www.worldscientific.com/doi/abs/10.1142/S0218127407018403>.

[44] FLOREZ, O. U.; LIM, S. HRG: A Graph Structure for Fast Similarity Searchin Metric Spaces. In: . Database and Expert Systems Applications:19th International Conference, DEXA 2008, Turin, Italy, September 1-5, 2008.Proceedings. Berlin, Heidelberg: Springer Berlin Heidelberg, 2008. p. 57–64. ISBN 978-3-540-85654-2. Disponível em: <http://dx.doi.org/10.1007/978-3-540-85654-2_7>.

Page 67: ESTRATÉGIASPARARECUPERAÇÃODEDADOS ...€¦ · SHIMOMURA,L.C..Estratégiaspararecuperaçãodedadoscomplexosporsi-milaridadeutilizandografos.65p.TrabalhodeConclusãodeCurso(Bachareladoem

65

[45] FLOREZ, O. U.; QI, X.; OCSA, A. Mobhrg: Fast k-nearest-neighbor search byoverlap reduction of hyperspherical regions. In: 2009 IEEE International Conferenceon Acoustics, Speech and Signal Processing. [S.l.: s.n.], 2009. p. 1133–1136. ISSN1520-6149.

[46] PAREDES, R.; CHÁVEZ, E. Using the k-nearest neighbor graph for proximitysearching in metric spaces. In: . String Processing and Information Retrieval:12th International Conference, SPIRE 2005, Buenos Aires, Argentina, November2-4, 2005. Proceedings. Berlin, Heidelberg: Springer Berlin Heidelberg, 2005. p.127–138. ISBN 978-3-540-32241-2. Disponível em: <http://dx.doi.org/10.1007/11575832_14>.

[47] HJALTASON, G. R.; SAMET, H. Index-driven similarity search in metricspaces (survey article). ACM Trans. Database Syst., ACM, New York, NY,USA, v. 28, n. 4, p. 517–580, dez. 2003. ISSN 0362-5915. Disponível em:<http://doi.acm.org/10.1145/958942.958948>.

[48] INDYK, P.; MOTWANI, R. Approximate nearest neighbors: Towards removing thecurse of dimensionality. In: Proceedings of the Thirtieth Annual ACM Symposium onTheory of Computing. New York, NY, USA: ACM, 1998. (STOC ’98), p. 604–613.ISBN 0-89791-962-9. Disponível em: <http://doi.acm.org/10.1145/276698.276876>.

[49] BEIS, J. S.; LOWE, D. G. Shape indexing using approximate nearest-neighboursearch in high-dimensional spaces. In: Computer Vision and Pattern Recognition,1997. Proceedings., 1997 IEEE Computer Society Conference on. [S.l.: s.n.], 1997. p.1000–1006. ISSN 1063-6919.

[50] MALKOV, Y. et al. Approximate nearest neighbor algorithm based on navigablesmall world graphs. Information Systems, v. 45, p. 61 – 68, 2014. ISSN0306-4379. Disponível em: <http://www.sciencedirect.com/science/article/pii/S0306437913001300>.

[51] Watts, D. J.; Strogatz, S. H. Collective dynamics of ‘small-world’ networks. Nature,v. 393, p. 440–442, jun 1998.

[52] CONT, R.; TANIMURA, E. Small-world graphs: characterization and alternativeconstructions. Adv. in Appl. Probab., Applied Probability Trust, v. 40, n. 4, p.939–965, 12 2008. Disponível em: <http://dx.doi.org/10.1239/aap/1231340159>.

[53] PONOMARENKO, A. et al. Comparative analysis of data structures forapproximate nearest neighbor search. Journal of Mathematical Sciences, v. 181, n. 6,p. 782–791, 2012.

[54] LEE, D. T.; SCHACHTER, B. J. Two algorithms for constructing a delaunaytriangulation. International Journal of Computer & Information Sciences, v. 9, n. 3,p. 219–242, 1980. ISSN 1573-7640. Disponível em: <http://dx.doi.org/10.1007/BF00977785>.

[55] SUPOWIT, K. J. The relative neighborhood graph, with an application to minimumspanning trees. J. ACM, ACM, New York, NY, USA, v. 30, n. 3, p. 428–448, jul.1983. ISSN 0004-5411. Disponível em: <http://doi.acm.org/10.1145/2402.322386>.