• Nenhum resultado encontrado

Revisitando VP-Trees: Estruturas de Complexidade de Busca Sub-linear em Espaços Métricos

N/A
N/A
Protected

Academic year: 2021

Share "Revisitando VP-Trees: Estruturas de Complexidade de Busca Sub-linear em Espaços Métricos"

Copied!
84
0
0

Texto

(1)

UNIVERSIDADE FEDERAL FLUMINENSE

INSTITUTO DO NOROESTE FLUMINENSE DE EDUCAÇÃO SUPERIOR

DEPARTAMENTO DE CIÊNCIAS EXATAS, BIOLÓGICAS E DA TERRA

GRADUAÇÃO EM LICENCIATURA EM COMPUTAÇÃO

Revisitando VP-Trees: Estruturas de

complexidade de busca sub-linear

em espaços métricos

Daniel Leonardo Jasbick

(2)
(3)

Daniel Leonardo Jasbick

Revisitando VP-Trees: Estruturas de complexidade de busca

sub-linear em espaços métricos

Trabalho Final de Curso apresentado ao curso de Licenciatura em Computação da Universi-dade Federal Fluminense, campus Santo Antô-nio de Pádua, como requisito parcial à con-clusão de graduação. Área de concentração: Banco de Dados/Consultas por Similaridade. Orientador: Prof. Dr. Marcos Vinícius Naves Bêdo.

Universidade Federal Fluminense

Instituto do Noroeste Fluminense de Educação Superior Licenciatura em Computação

Santo Antônio de Pádua - RJ

Agosto - 2018

(4)
(5)

Ficha catalográfica automática - SDC/BINF

Bibliotecário responsável: Leandro Martins Cota Busquet - CRB7/6690

J39r Jasbick, Daniel Leonardo

Revisitando VP-Trees: Estruturas de complexidade de busca sub-linear em espaços métricos / Daniel Leonardo Jasbick ; Marcos Vinicius Naves Bedo, orientador. Santo Antônio de Pádua, 2018.

61 p. : il.

Trabalho de Conclusão de Curso (Graduação em

Computação)-Universidade Federal Fluminense, Instituto do Noroeste Fluminense de Educação Superior, Santo Antônio de Pádua, 2018.

1. Espaços métricos. 2. Estruturas de complexidade de busca sub-linear. 3. Vantage-point Trees. 4. Consultas por similaridade. 5. Produção intelectual. I. Título II. Bedo,Marcos Vinicius Naves, orientador. III. Universidade Federal Fluminense. Instituto do Noroeste Fluminense de Educação Superior. Departamento de Ciências Exatas, Biológicas e da Terra.

(6)
(7)

-Daniel Leonardo Jasbick

Revisitando VP-Trees: Estruturas de complexidade de busca

sub-linear em espaços métricos

Trabalho Final de Curso apresentado ao curso de Licenciatura em Computação da Universi-dade Federal Fluminense, campus Santo Antônio de Pádua, como requisito parcial à conclu-são de graduação. Área de concentração: Banco de Dados/Consultas por Similaridade. Aprovado em: __/__/____.

Banca Examinadora

Orientador: Prof. Dr. Marcos Vinícius Naves Bêdo INFES/UFF

Prof. Dr. Daniel Cardoso Moraes de Oliveira IC/UFF

Prof. Dr. Gustavo Silva Semaan INFES/UFF

Prof. Dr. Ricardo Silveira Sousa INFES/UFF

(8)
(9)

Agradecimentos

Agradeço a Deus por direcionar minhas escolhas ao caminho certo.

Ao Instituto do Noroeste Fluminense de Educação Superior - INFES/UFF, sua direção, ad-ministração, técnicos, terceirizados e corpo docente por oportunizar a conclusão deste trabalho. Ao meu orientador, Marcos Vinícius Naves Bêdo, pelo inestimável apoio, incentivo e per-severança em prol da qualidade do trabalho.

Aos demais professores do INFES/UFF por todo apoio e suporte no esclarecimento de dú-vidas e pelas aulas ministradas.

A Camila Cavalcante Guinátios, pela coragem transmitida e apoio em todo o processo de execução dessa monografia.

(10)
(11)

Resumo

Consultas por similaridade constituem um paradigma base para o tratamento de dados que só possuem uma relação de distância entre si. Esse paradigma suporta diversas tarefas computa-cionais modernas, tais como agrupamento, classificação baseada em distância e recuperação de dados por conteúdo. Na prática, duas das mais utilizadas consultas por similaridade são as bus-cas por abrangência e vizinhança. Vantage-Point Trees (VP-Trees) permitem executar consultas por similaridade com eficiência ao organizar o espaço de busca de forma hierárquica e disjunta, o que torna a complexidade média da busca sub-linear. No entanto, o desempenho de buscas em VP-Trees depende da escolha adequada de parâmetros de inicialização, a saber: (i) a forma de selecionar elementos pivôs e (ii) a permissão para se ter excesso de elementos em nós-folha, o que garante o balanceamento da árvore. Este trabalho consiste na análise da construção e consulta de VP-Trees com o objetivo de avaliar o impacto dos parâmetros de inicialização no desempenho de buscas por abrangência e vizinhança. Após uma discussão teórica detalhada, avaliamos seis combinações dos parâmetros de inicialização em quatro conjuntos de dados re-ais. Os resultados em nossos experimentos indicam que: (i) o uso de métodos de seleção de pivôs tem maior impacto que o balanceamento da árvore, com relação ao desempenho da estru-tura em buscas indexadas, (ii) critérios de consulta distintos são executados melhor por índices com parametrizações diferentes, (iii) o método de escolha de pivôs por variância máxima de distâncias obteve os melhores resultados, (iv) consultas com maior seletividade são melhor tra-tadas por árvores desbalanceadas e consultas com menor seletividade são melhor tratra-tadas por árvores balanceadas, e (v) o método de escolha de pivôs por fecho-convexo apresentou maior facilidade em gerar estruturas balanceadas, na comparação com outros métodos. Todas as téc-nicas e algoritmos estudados foram implementados na ferramenta VP-Viewer, que permite a visualização de VP-Trees, inspeção de distribuição de distâncias em nós-diretório e análise dos caminhos percorridos no índice para consulta por similaridade.

Palavras-chave: Vantage-Point Trees, Consultas por Similaridade, Espaços Métricos, Es-truturas de Indexação, Métodos de Seleção de Pivôs.

(12)
(13)

Abstract

Similarity searching is a foundational paradigm for the handling of distance-only data. The paradigm supports a broad variety of computational tasks, such as clustering, distance-based classification, and content-based retrieval. In practice, two of the most requested similarity se-arches are the range and neighborhood queries. Vantage-Point Trees (VP-Trees) execute simi-larity searches efficiently by organizing the search space in a hierarchical and disjoint fashion. As a result, the average indexed search complexity becomes sub-linear. However, VP-Trees’ query performance depends on the suitable choice of initialization parameters, namely: (i) Pi-vot selection method, and (ii) Leaf-node overflow criterion, which ensures VP-Tree balance. This study addresses the VP-Tree indexing and querying for the assessment of the initialization parameters impact regarding both range and neighborhood queries. We provide a theoretical discussion on VP-Tree main routines and evaluate six distinct groups of initialization parame-ters on real-world datasets. Experimental results indicate (i) pivot selection impacts similarity queries deeper than tree balance, (ii) different similarity queries are executed better by distinct VP-Trees parameterizations, (iii) maximum variance-based pivot selection outperformed other selection methods regarding VP-Tree searching, (iv) unbalanced trees are more suitable than ba-lanced trees for more selective queries, and (v) convex hull-based pivot selection is more likely to generate balanced trees, in comparison to other selection methods. All reviewed strategies are implemented on VP-Viewer, a tool that enables visualization of VP-Trees, inspection of distance-distribution within tree nodes and exploration of VP-Tree query paths.

Keywords: Vantage-Point Trees, Similarity Searching, Metric Spaces, Indexing Structu-res, Pivot Selection Methods.

(14)
(15)

Lista de ilustrações

Figura 1 – Tarefas computacionais baseadas em distância. . . 2

Figura 2 – Estrutura de uma VP-Tree . . . 3

Figura 3 – Espaço não-triangular com duas partições não-sobrepostas compartilhando o mesmo elemento de dados . . . 8

Figura 4 – Funções de distância da família Lp. . . 9

Figura 5 – Limites inferior e superior para uma partição métrica. . . 11

Figura 6 – Limite de distâncias para acessar uma partição dada uma consulta por abran-gência. . . 11

Figura 7 – Filtragem baseada em pivô para limite superior e inferior. . . 13

Figura 8 – Tabela LAESA . . . 13

Figura 9 – Estrutura de uma kD-Tree . . . 15

Figura 10 – Mapeamentos métrico para multidimensional e multidimensional para uni-dimensional . . . 17

Figura 11 – Distribuição de distâncias de dois pivôs para dados uniformemente distri-buídos em duas dimensões e comparados por métrica L2 . . . 18

Figura 12 – Impacto dos parâmetros iniciais em uma MDF-Tree . . . 19

Figura 13 – Diferentes categorias de VP-Trees. . . 22

Figura 14 – Exemplos de VP-Trees com e sem suporte à excesso de elementos. . . 23

Figura 15 – Exemplo de construção de VP-Tree balanceada . . . 25

Figura 16 – Exemplo de construção de VP-Tree desbalanceada . . . 27

Figura 17 – Métodos de escolha de pivôs . . . 28

Figura 18 – Exemplo de busca por abrangência em uma VP-Tree desbalanceada . . . 32

Figura 19 – Exemplo de busca por vizinhança em uma VP-Tree balanceada . . . 35

Figura 20 – Arquitetura da VP-Viewer . . . 38

Figura 21 – Interface principal da VP-Viewer . . . 40

Figura 22 – Distribuição de distâncias baseada em pivôs para o conjunto WORDS . . . 41

Figura 23 – Distribuição de distâncias baseada em pivôs para o conjunto ISOLET . . . . 41

Figura 24 – Consulta por vizinhança no conjunto ISOLET utilizando a VP-Viewer . . . . 42

Figura 25 – Consulta por abrangência no conjunto CITIES utilizando a VP-Viewer . . . 42

Figura 26 – Médias de cálculo de distância para consultas por abrangência . . . 45

Figura 27 – Médias de cálculo de distância para consultas por vizinhança . . . 47

Figura 28 – Mapa de calor para VP-Trees em consultas por abrangência . . . 50

Figura 29 – Classificação de desempenho de VP-Trees para consultas por abrangência . 51 Figura 30 – Mapa de calor para VP-Trees em consultas por vizinhança . . . 52

(16)
(17)

Lista de abreviaturas e siglas

k-NN kVizinhos mais próximos VP-Tree Vantage-Point Tree kD-Tree k Dimensional Tree

AESA Aproximating Eliminating Search Algorithm

LAESA Linear Aproximating Eliminating Search Algorithm

EPT Extreme Pivot Table

CPT Clustered Pivot Table

BKT Burkhard-Keller Tree

MDF-Tree Most Distant from the Father Tree

(18)
(19)

Lista de símbolos

ξ Raio de uma consulta

R+ Domínio dos números reais positivos

S Domínio S

S

⊆ S Conjunto de dados

si, sj, sk∈

S

Elementos de dados sq∈ S Elemento de consulta δ Função de distância métrica

dm Distância máxima entre quaisquer elementos do conjunto

S

δin f Limite inferior de δ δsup Limite superior de δ µ Mediana entre distâncias

p∈

S

Pivô

k Número de vizinhos

Ba= hp, ξi Bola aberta Bf = hp, ξi Bola fechada

M

= hS, δi Espaço Métrico

Rq(

S

, sq, ξ) Consulta por abrangência k-NN(

S

, sq, k) Consulta por vizinhança L1 Função de distância Manhattan L2 Função de distância Euclideana L Função de distância de Chebyshev

(20)
(21)

Sumário

1 Introdução . . . 1

1.1 Motivação . . . 3

1.2 Objetivos . . . 5

1.3 Estrutura do Documento . . . 6

2 Buscas em Espaços Métricos . . . 7

2.1 Espaços Métricos . . . 7

2.2 Consultas por abrangência e vizinhança. . . 9

2.3 Filtragem Baseada em Pivôs. . . 10

2.4 Estruturas de Indexação Baseadas em Pivôs . . . 13

2.4.1 Estruturas em Tabela. . . 14

2.4.2 Estruturas em Árvore . . . 14

2.4.3 Estruturas baseadas em Índices Externos. . . 16

2.5 Métodos de Escolha de Pivôs . . . 17

2.5.1 Parâmetros de Inicialização de Árvores baseadas em Pivôs . . . 19

2.6 Conclusões Parciais . . . 20

3 VP-Trees . . . 21

3.1 Estrutura . . . 22

3.2 Implementação . . . 23

3.3 Exemplificação . . . 24

3.4 Métodos de Seleção de Pivôs . . . 28

3.4.1 Escolha Fecho-Convexo . . . 29

3.4.2 Escolha Variância Máxima . . . 29

3.5 Buscas por Abrangência . . . 31

3.6 Buscas por Vizinhança . . . 33

3.7 Conclusões Parciais . . . 36

4 Resultados Experimentais . . . 37

4.1 Visualizando VP-Trees . . . 37

4.2 Casos de Uso para aVP-Viewer . . . 39

4.3 Avaliação do impacto dos parâmetros de construção em VP-Trees . . . 43

4.3.1 Consultas por Abrangência . . . 44

4.3.2 Consultas por Vizinhança . . . 47

4.4 Classificando VP-Trees . . . 49

4.5 Conclusões Parciais . . . 53

5 Conclusões . . . 55

5.1 Dificuldades Encontradas . . . 56

(22)

5.3 Trabalhos Futuros . . . 57

(23)

1

Introdução

Com o armazenamento crescente em mídias digitais nas últimas décadas, a necessidade de métodos computacionalmente eficientes para consultar e recuperar esses dados de grandes repositórios é latente. Em alguns casos, o conteúdo desses dados1 permite que nada além de medidas de similaridade entre eles possam ser tomadas. Neste trabalho denominamos esse tipo de dados como distance-only data, ou “dados somente de distância” (ZEZULA et al., 2010).

Consultas por (dis)similaridade constituem um paradigma base para o tratamento de dados somente de distâncias, onde a similaridade entre elementos pode ser formalizada por meio de uma função de distância (HETLAND, 2009). Além disso, caso o modelo de Espaços Métri-cos(SILVA et al., 2013) seja empregado para a representação de similaridade, então as buscas por similaridadebaseadas em distâncias se tornam buscas entre os elementos de consulta e os do conjunto de dados (ZEZULA et al., 2010; PADMANABHAN; DESHPANDE, 2015). Esse modelo apóia diversas tarefas computacionais modernas, tais como agrupamento, classificação baseada em distância e recuperação de dados por conteúdo. Tarefas de agrupamento permi-tem comprimir informações, formular e testar hipóteses sobre a natureza geométrica dos dados, além de realizar predições baseadas em grupos. Um exemplo dessas tarefas é o algoritmo k-médias, que divide os elementos de um conjunto em k sub-conjuntos de acordo com a média das distâncias entre os elementos, tal como ilustrado na Figura 1(a).

A classificação baseada em distância permite que elementos sejam rotulados de acordo com a classe a qual pertence a maioria de seus vizinhos mais próximos. Uma boa forma de visualizar o impacto da classe do vizinho mais próximo é por meio de um diagrama de Voronoi. Esse diagrama separa o conjunto em regiões definidas por hiperplanos, onde todos os elementos dentro de uma região possuem distância menor para o elemento dominante da região do que para qualquer outro elemento do conjunto. A Figura 1(b) exemplifica um diagrama de Voronoi. A recuperação de dados por conteúdo permite a identificação de padrões em dados multimí-dia, tais como em imagens, por meio de análise de cores, formatos e saliências. Dessa forma, os elementos mais próximos a uma referência de consulta são recuperados considerando a ordena-ção por distância entre eles. A Figura 1(c) mostra um exemplo recuperaordena-ção por 3 e 5 vizinhos mais próximos. Essa tarefa também corresponde à identificação de “padrões implícitos” no conjunto de dados, ou seja, permite que informações sejam recuperadas à partir de elementos que seguem um mesmo padrão (BERKHIN, 2006; PADMANABHAN; DESHPANDE, 2015).

Ainda em se tratando de consultas por similaridade, o relacionamento entre distâncias per-mite a recuperação de dados que atendam a critérios de buscas distintos. Esses critérios também dão nome aos diferentes tipos de consulta por similaridade, dentre os quais os tipos de consulta mais utilizados são: (i) Consulta por abrangência (Range Query) e (ii) Consulta por vizinhança (k-NN). Um exemplo de consulta por abrangência é (Q1) Recupere todas as cadeias de poli-peptídeos que são diferentes de uma dada cadeia por até 3 codões, enquanto uma consulta por

1 No restante dessa monografia, usaremos os termos elementos e instâncias alternadamente para nos referirmos a uma entrada/tupla de um conjunto de dados somente de distâncias.

(24)

(a) (b) (c) 3-NN

5-NN

Figura 1 – Tarefas computacionais baseadas em distância. (a) Agrupamento pelo algoritmo k-médias em em duas dimensões com a função de distância L2para três sub-conjuntos com centros representados pelo simbolo “+”. (b) Diagrama de Voronoi com seus respectivos pontos e regiões cuja distância dos elementos é menor para esse ponto do que para qualquer outro. (c) Consulta por similaridade utilizando vizinhança, onde o elemento “estrela” representa o centro/referência da consulta.

vizinhança é (Q2) Encontre as 5 pinturas mais similares a “Monalisa”, de Da Vinci. Essas con-sultas são modeladas pela Teoria de Espaços Métricos, onde os elementos são representados como pontos e a similaridade entre cada par de pontos é dada por uma função de distância.

O raio de uma consulta por abrangência define uma região no espaço de busca que cobre mais ou menos elementos. Pequenos valores de raio podem levar a resultados vazios, enquanto que, se o raio é aumentado indiscriminadamente, todos os elementos do conjunto podem ser re-tornados (CHÁVEZ et al., 2001; SILVA et al., 2013). Consultas por vizinhança são alternativas à abrangência sempre que não está claro como definir um valor adequado para o raio. O preço pago, nesse caso, é a ordenação entre os elementos comparados para a seleção dos vizinhos mais próximos. Portanto, o processamento de consultas por abrangência ou vizinhança é conduzido por diferentes algoritmos, cuja eficiência depende da organização do espaço de busca. Índices baseados em pivôs particionam o espaço de busca atribuindo elementos à conjuntos/partições, que são representadas por pivôs e raios de cobertura (CHEN et al., 2017).

Diferentes estruturas de indexação têm sido propostas para reduzir o tempo de execução de consultas por similaridade em grandes bases de dados (CHEN et al., 2017), segundo várias vertentes da modelagem de particionamento em Espaços Métricos (ZEZULA et al., 2010; PAD-MANABHAN; DESHPANDE, 2015). São exemplos de estruturas de indexação baseadas em pivôs (i) as estruturas de tabelas, como a Aproximating Eliminating Search Tree (AESA) (RUIZ, 1986) e a Linear Aproximating Eliminating Search Tree (LAESA) (MICÓ; ONCINA; CAR-RASCO, 1996), (ii) as estruturas de árvore, como a Burkhard-Keller Tree (BKT) (BURKHARD; KELLER, 1973), Most Distant from the Father Tree (MDF-Tree) (SERRANO; MICÓ; ON-CINA, 2011), Vantage-Point Tree (VP-Tree) (YIANILOS, 1993) e Multi Vantage-Point Tree (MVP-Tree) (BOZKAYA; OZSOYOGLU, 1997) e (iii) as estruturas baseadas em pivôs exter-nos, como a OMNI (TRAINA JR et al., 2007) e a SPB-TREE (CHEN et al., 2015).

Essas estruturas de indexação se diferenciam entre si por adotar critérios diferentes para dividir os dados em partições, considerando tanto a redução de custos de E/S (ao diminuir a

(25)

leitura de partições do disco) quanto de CPU (ao diminuir a quantidade de cálculos de distân-cia necessários para processar os elementos dentro de cada partição candidata) (HETLAND, 2009). Este trabalho discute, em maior profundidade, a estrutura de indexação Vantage-Point Tree (VP-Tree) (YIANILOS, 1993), que permite organizar um conjunto de dados seguindo a premissa do particionamento em bolas (Ball-Tree Partitioning) (ZEZULA et al., 2010).

1.1

Motivação

A VP-Tree é um índice particularmente versátil para melhorar o desempenho da execução de consultas por similaridade, uma vez que organiza o espaço de busca de forma hierárquica e disjunta. Esta versatilidade é devida a capacidade de dividir os elementos indexados de um conjunto de dados em nós, de forma semelhante a uma árvore binária, utilizando-se de pivôs, de medianas das distâncias dos pivôs aos elementos na partição e das maiores distância das coberturas das partições. Os elementos cuja distância para um pivô encontram-se de zero até a mediana são atribuídos à uma nova partição (nó esquerdo), enquanto os elementos cuja distância para o pivô encontram-se no intervalo igual ou superior a mediana, à outra partição (nó direito). Esse particionamento pode ser repetido recursivamente para os nós esquerdo e direito até que a partição contenha (i) apenas um elemento, ou (ii) um número máximo de elementos por nó-folha. Esse segundo critério de parada gera a variação vpsb-Tree dos índices VP-Tree, que é o objeto de estudo e avaliação deste trabalho. Ao organizar o conjunto de dados dessa forma, a VP-Tree permite a execução de consultas por similaridade em complexidade de tempo sub-linear (YIANILOS, 1998; CHÁVEZ et al., 2001).

... Sistema de arquivos Nó Diretório Nó Folha Arquivo ... Arquivo

Figura 2 – Estrutura de uma vpsb-Tree.

Se uma VP-Tree for perfeitamente balanceada, então ela também é capaz de diminuir o tempo médio de uma consulta por similaridade, uma vez que, a cada decisão de percorrer a su-bárvore do lado esquerdo ou direito, tende-se a dividir pela metade a quantidade de partições a serem avaliadas. Tende-se, pois a mediana é, tipicamente, uma escolha cuidadosa para o parti-cionamento disjunto do conjunto. No entanto, apesar de medianas únicas dividirem o conjunto em uma árvore binária perfeitamente balanceada, a unicidade depende exclusivamente da distri-buição de distâncias do conjunto de dados. Portando, a árvore do tipo vpsb-Tree resultante pode

(26)

ser desbalanceada se os nós-folha não suportarem nenhum tipo de excesso (overflow). Em parti-cular, sempre que distâncias se concentrarem em alguma proporção, por exemplo, conjuntos de dados imersos em espaços de alta dimensionalidade consultados por uma distância Euclideana, as medianas são provavelmente não-únicas (VOLNYANSKY; PESTOV, 2009). O balancea-mento de estruturas VP-Tree é discutido nos estudos de (YIANILOS, 1998; XU; THOMPSON; MIRANKER, 2011), onde os autores empregam a mediana como ponto de corte, sob o argu-mento de se manter a complexidade assintótica do método.

Por outro lado, estudos experimentais (BUSTOS; NAVARRO; CHÁVEZ, 2003; FREDRIKS-SON, 2007) seguem a direção oposta e sugerem a possibilidade de se usar a estrutura do índice desbalanceada e algoritmos alternativos de busca (HJALTASON; SAMET, 2003). Ainda nesse sentido, outros estudos sugerem desbalancear propositalmente a árvore, ao se substituir a me-dianapela média para obtenção de partições com um número mais uniforme de elementos por nó-folha (CHÁVEZ et al., 2001). Resultados experimentais indicam que essa estratégia pode ser adequada para diversos casos, embora remova as garantias teóricas do desempenho da consultas para as estruturas baseadas em árvore (SERRANO; MICÓ; ONCINA, 2011).

O uso de pivôs “adequados” também pode melhorar a qualidade do particionamento e evitar o desbalanceamento (BUSTOS; NAVARRO; CHÁVEZ, 2003). Generalizar essa escolha para VP-Trees, no entanto, requer maximizar a variância da distribuição de distâncias dos elementos do conjunto de dados para o pivô escolhido (YIANILOS, 1998). Infelizmente, a solução ótima para esse problema tem custo polinomial, e, na prática, a aplicação direta do critério para gran-des conjuntos de dados se torna impraticável. Nesse sentido, diversos métodos aproximativos para a detecção de elementos representativos em conjuntos de dados podem ser usados para selecionar pivôs (CHÁVEZ et al., 2001; RUIZ et al., 2013).

Uma solução bastante comum na literatura é o uso de pivôs aleatórios, que também serve como técnica base para comparações. Uma segunda possibilidade para a escolha dos pivôs é determinar quais são os elementos que compõem o fecho-convexo do conjunto de dados com relação à função de distância empregada. Nesse sentido, os elementos mais afastados entre si são usados como pivôs, sendo que algoritmos heurísticos podem encontrá-los em tempo linear (TRAINA JR et al., 2007). Finalmente, uma terceira possibilidade é a aplicação de técnicas de amostragem para encontrar o elemento com maior variância na distância para o conjunto de dados. O algoritmo de amostragem aleatória apresentado em (YIANILOS, 1993) é baseado no argumento da distribuição uniforme de distâncias.

Nesse trabalho, assumimos que essas três abordagens de escolha de pivôs são hipóteses que competem entre si e afetam a qualidade do particionamento da VP-Tree. Portanto, na prática, a construção e qualidade de uma VP-Tree depende da escolha de dois parâmetros (BUSTOS; NAVARRO; CHÁVEZ, 2003; LI et al., 2014), a saber:

1. Método de escolha de elementos pivôs: Esse parâmetro define a “perspectiva” de cada partição de um nó da árvore. Nesse trabalho, focamos em avaliar três métodos candi-datos para serem usados na escolha de pivôs, que incluem as estratégias de descoberta de

(27)

(i)elementos aleatórios, (ii) elementos que compõem fechos convexos, e (iii) elementos que maximizam a variância da distribuição de distâncias.

2. Balanceamento da árvore: Esse parâmetro define como será construída a vpsb-Tree. Dois valores são possíveis (i) balanceado, que força a VP-Tree a dar suporte à excesso de elementos em nós-folhas, e (ii) não-balanceado, que não dá suporte à excesso e permite que a árvore tenha diferentes profundidades.

A combinação desses dois parâmetros pode gerar uma ampla variação de estruturas VP-Trees candidatas à índice, cujo desempenho na execução de consultas por similaridade pode apresentar diferenças significativas. De fato, diversos trabalhos teóricos da literatura sustentam que determinados métodos de seleção de pivôs resultam em partições com melhor qualidade que outros (YIANILOS, 1993; TRAINA JR et al., 2007; LI et al., 2014). Mais do que isso, outra gama de estudos experimentais defendem que árvores desbalanceadas são capazes de re-solver consultas por similaridade com melhor desempenho (i.e., menor custo de E/S e CPU), muito embora as garantias de balanceamento e complexidade assintótica sub-linear sejam remo-vidas (CHÁVEZ et al., 2001; FREDRIKSSON, 2007; ZEZULA et al., 2010; LI et al., 2014). No entanto, nenhum desses estudos é conclusivo sobre qual configuração é a mais adequada para otimizar o desempenho de consultas por similaridade em uma VP-Tree.

1.2

Objetivos

Este trabalho tem como objetivo proporcionar uma discussão sobre a influência dos parâ-metros de construção de uma VP-Tree no seu desempenho, além de apresentar uma avaliação comparativa experimental entre eles. Em particular, esse trabalho aprofunda-se em estudos so-bre técnicas de particionamento e escolha de pivôs para o suporte de estruturas de indexação métrica balanceadas. Assim, os objetivos principais desse trabalho consistem em:

• Avaliar o desempenho de consultas por abrangência considerando diversas VP-Trees. • Avaliar o desempenho de consultas por vizinhança considerando diversas VP-Trees. Não obstante, esse trabalho também tem como objetivos secundários a integração de to-das as técnicas estudato-das e implementato-das para proporcionar aos interessados no estudo (ou utilização) das VP-Trees, uma ferramenta que permita:

• Visualizar a estrutura de uma VP-Tree em detalhes, i.e., explorar os nós da árvore em termos da distribuição de distâncias, dos elementos cobertos em cada nó e examinar as fronteiras de cada partição.

• Comparar os algoritmos de busca indexados em uma VP-Tree com a busca sequencial (solução por “força-bruta”), com relação ao número de partições avaliadas, distâncias calculadas e tempo gasto na resolução das consultas.

(28)

• Visualizar o caminho percorrido no índice para a resolução de uma consulta em particular, sendo que os custos associados à cada trecho sejam apresentados em detalhes.

1.3

Estrutura do Documento

O restante deste projeto está organizado da forma como se segue. O Capítulo 2 apresenta o arcabouço teórico sobre consultas por similaridade. Este capítulo abrange o conceito de Es-paços Métricos, diferentes tipos de consulta e as estratégias de filtragem baseadas em pivô. O Capítulo 3 descreve a estrutura de indexação VP-Tree e sua implementação. O Capítulo 4 des-creve a aplicação VP-Viewer, implementada para a visualização de VP-Trees. Este capítulo mostra, por meio da VP-Viewer, as diferentes formas de se construir o índice, como visualizar a distribuição de distâncias e como realizar buscas por abrangência e vizinhança. Nesse mesmo capítulo também estão incluídos os resultados obtidos nos testes para avaliar o impacto das di-ferentes configurações de VP-Trees. Finalmente, o Capítulo 5 discute os resultados e possíveis trabalhos futuros.

(29)

2

Buscas em Espaços Métricos

O problema de buscas por similaridade em espaços métricos requer tratar o tipo de da-dos a ser consultado, a forma de comparação entre elementos e o algoritmo de consulta a ser utilizado. A manipulação de dados como objetos em um Espaço Métrico traz diversas vanta-gens, uma vez que permite buscar diversos tipos de dados, além de usar algoritmos de consulta cuja complexidade computacional já é conhecida. Portanto, uma mesma técnica ou estratégia de busca métrica pode ser aplicada à diversos problemas de consulta com naturezas diferen-tes (HETLAND, 2009; ZEZULA et al., 2010). Ainda nesse sentido, diversas estruturas de particionamento e indexação podem ser construídas para otimizar a execução dos algoritmos de busca. Esses métodos de indexação são de grande importância para permitir a execução de consultas por similaridade sobre grandes conjuntos de dados, onde os custos de execução são limitados tanto pela CPU quanto por E/S (ZEZULA et al., 2010; CHEN et al., 2017).

Estruturas de indexação métricas são construídas sobre conjuntos de dados com a finalidade de melhorar o desempenho de consultas envolvendo distâncias. O tempo para a construção dessas estruturas é o preço a ser pago pela melhoria do desempenho das buscas. No entanto, para um mesmo índice, vários critérios de consulta por similaridade podem ser otimizados. Dentre as consultas indexadas mais solicitadas estão a consulta por abrangência e a consulta por vizinhança, que impactam uma ampla gama de aplicações, tais como a classificação de textos e imagens (DENG, 2012; BLANCO et al., 2016), a transmissão de vídeos comprimidos (para eliminar frames temporalmente próximos e similares) e na otimização em geral (para eliminar soluções duplicadas) (HJALTASON; SAMET, 2003; LOKO ˇC et al., 2012; BEDO; TRAINA; TRAINA JR, 2014; CARVALHO et al., 2016).

Na literatura, o desempenho das consultas sobre uma estrutura de indexação são mensura-dos com relação à três medidas, são elas: (i) O número de cálculos de distância durante uma consulta; (ii) O número de acessos ao disco; e (iii) O tempo de CPU utilizado entre cálculos de distância e acessos ao disco. Geralmente, a primeira medida é considerada a de maior impor-tância, uma vez que se assume que, com o uso de hardware adequado, o gasto com cálculos de distância é grande o suficiente para determinar a qualidade da estratégia (HETLAND, 2009).

2.1

Espaços Métricos

Um Espaço Métrico é uma extensão do conceito conhecido como espaço de distâncias, onde a distância entre todos os elementos de um conjunto de dados é conhecida. A diferença entre estes conceitos, porém, é que um Espaço Métrico restringe o espaço de distâncias em objetos únicos, que devem ser separados por distâncias positivas e onde a distância entre quaisquer dois elementos é menor ou igual a distância entre eles passando por um terceiro elemento.

Formalmente, dado um domínio de dados S , três elementos de dados si, sj e sk∈ S e uma função de distância δ, então o Espaço Métrico

M

é o par

M

= hS, δi se, e somente se, a função de distância δ atende às seguintes propriedades:

(30)

p1 p2

si si

ξ ξ

Figura 3 – Espaço não-triangular com duas partições não-sobrepostas compartilhando o mesmo elemento de dados si.

δ(si, sj) ≥ 0, Não-negatividade,

δ(si, sj) = δ(sj, si) Simetria,

si= sj⇔ δ(si, sj) = 0 Identidade,

δ(si, sk) ≤ δ(si, sj) + δ(sj, sk) Desigualdade triangular. A terceira propriedade (Identidade) também pode ser encontrada na literatura (ZEZULA et al., 2010) como oriunda de duas outras diferentes propriedades:

δ(si, si) = 0 Refletividade,

si6= sj⇒ δ(si, sj) > 0 Positividade.

Há também variedades de espaços de distâncias que permitem o relaxamento de algumas dessas propriedades. Por exemplo, caso a função de distância não satisfaça a propriedade da Positividade, esse espaço é chamado de pseudo-métrico. Se a função de distância não satisfaz a propriedade da Simetria, como no caso de uma viagem por uma estrada onde existam apenas ruas de mão única, o espaço é chamado quase-métrico (ZEZULA et al., 2010).

Dessas quatro propriedades, a da desigualdade triangular é particularmente interessante. Ela garante que duas regiões não-sobrepostas em um espaço métrico não compartilham elementos. Se violada a propriedade da desigualdade triangular, duas regiões não-sobrepostas poderiam compartilhar o mesmo elemento, tal como ilustrado na Figura 3 para um conjunto de duas dimensões comparados por uma distância necessariamente não-métrica.

Apesar de ser possível modelar consultas por similaridade ao se usar propriedades mais gerais, como a ordenação por distâncias (PADMANABHAN; DESHPANDE, 2015), a mode-lagem por Espaços Métricos é utilizada pois suas propriedades trazem diversas vantagens na otimização das buscas. Uma das características mais importantes dessa modelagem é que qual-quer sub-conjunto do domínio também segue restrições métricas. Isso garante, por exemplo, que as distâncias entre conjuntos gerados à partir de consultas por similaridade também estejam sujeitos às propriedades métricas (HETLAND, 2009).

(31)

Ademais, Espaços Métricos suportam vários critérios de busca sobre distintas classes de da-dos, tais como vetores multidimensionais, imagens e texto, além de permitirem a implementa-ção de diversas estruturas de indexaimplementa-ção (BRIN, 1995; CHEN et al., 2017). Uma única estrutura de indexação pode atender diversos problemas de natureza diferente com pouca ou nenhuma mudança em sua construção. Esse conjunto mínimo de requisitos torna a solução por Espaços Métricos mais atraente, se comparada com outros paradigmas de detecção de padrões existentes na literatura, como a solução geral para consultas. Esse tipo de modelagem é, inclusive, passí-vel de ser diretamente incorporada em Sistemas Gerenciadores de Bancos de Dados (ZEZULA et al., 2010; BEDO; TRAINA; TRAINA JR, 2014; AGGARWAL, 2015).

2.2

Consultas por abrangência e vizinhança

Uma consulta por similaridade é definida, essencialmente, por elementos de consulta e res-trições que delimitam o conjunto-resposta. Tal conjunto deve conter todos os elementos do conjunto consultado que satisfaçam o grupo de restrições imposto no critério de busca. Em uma consulta por similaridade, esses elementos são os que se encontram, de alguma forma, ligados aos elementos de consulta (PADMANABHAN; DESHPANDE, 2015).

Uma das consultas por similaridade mais empregadas é a Consulta por Abrangência, ou Range Query. Nessas consultas, todos os elementos dentro de um dado raio de distância até um elemento referência de consulta são retornados, como ilustrado na Figura 4(a). Formalmente, dado um conjunto de elementos

S

⊆ S, um elemento de referência sq∈ S, uma consulta por abrangência Rq recupera todos os elementos de

S

que estão, no máximo, até uma distância limite ξ ∈ R+ de sqtal que Rq

S

, sq, ξ = {si∈

S

| δ(si, sq) ≤ ξ} (ZEZULA et al., 2010).

ξ L1 L2 L∞

(a) (b)

L2

Figura 4 – Funções de distância da família Lp e sua relação com as consultas por abrangência e vizinhança em um espaço de duas dimensões. São mostradas as funções L1 (City-Block ou Manhattan), L2 (Euclideana) e L∞ (Chebyshev) (DEZA; DEZA, 2009). (a) Uma consulta por abrangência demonstrada para funções de distância L1, L2 e L. (b) Uma consulta por vizinhança para k = 3.

Se necessário, o conjunto-resposta pode também ser ordenado de acordo com a distância de seus elementos para o elemento de consulta. Caso o valor do raio seja nulo, i.e., ξ = 0, então deseja-se obter as cópias idênticas do elemento de consulta que estão no conjunto de

(32)

dados consultado2. As consultas por abrangência, porém, são limitadas pela dificuldade na escolha de ξ. Sem conhecimento prévio da caracterização do conjunto de dados ou da função de distância, determinar esse valor pode se tornar uma tarefa muito difícil. Em alguns casos, se o valor de ξ for muito pequeno, a consulta pode retornar um conjunto vazio, enquanto que, se ξ for muito grande, o conjunto-resposta pode conter vários elementos irrelevantes à consulta, ou até mesmo todo o conjunto de dados (MOŠKO; LOKO ˇC; SKOPAL, 2011).

Uma alternativa para esse problema é utilizar a consulta ao vizinho mais próximo, que recupera o elemento do conjunto de dados mais próximo à referência da consulta. A consulta ao vizinho mais próximo pode ser estendida como uma Consulta por Vizinhança, que recupera os k vizinhos mais próximos (k-NN)3. Formalmente, dado um elemento de consulta sq∈ S e um conjunto de dados

S

⊆ S, uma busca k-NN (

S

, sq, k) pode ser vista como uma consulta Rq(

S

, sq, ξ), i.e., uma consulta Rq com um raio ξ escolhido, tal que |Rq| = k. A Figura 4(b) mostra um exemplo de uma consulta k-NN para k = 3 e distância L2.

2.3

Filtragem Baseada em Pivôs

Consultas por similaridade em espaços métricos podem ser otimizadas de diferentes formas e com diferentes finalidades. Essas otimizações tem sido estudadas por diversos ângulos (CHÁ-VEZ et al., 2001; ZEZULA et al., 2010) e uma das abordagens com maior sucesso é a inde-xação baseada em pivôs (CHEN et al., 2017). Os métodos de indeinde-xação baseados em pivôs adotam critérios diferentes para dividir os elementos de dados em partições na forma de bolas (Definição 1), que são usadas para acelerar a execução de consultas por similaridade, conside-rando tanto a redução de custos de E/S (ao diminuir a leitura de partições candidatas do disco) quanto de CPU (ao diminuir a quantidade de cálculos de distância necessários para processar os elementos dentro de cada partição candidata) (HJALTASON; SAMET, 2003). Diferentes estratégias para esse método têm sido propostas com o objetivo de reduzir o tempo de execução de consultas por similaridade em grandes bases de dados (HETLAND, 2009).

Definição 1 (Bola Fechada/Aberta). Dado um elemento p ∈ S e uma distância limite r ∈ R+, uma partição Bf é formada pelo par B= hp, ri e define uma bola fechada no espaço métrico que contém todos os elementos si∈ S que satisfazem a condição δ(si, p) ≤ r. Uma bola aberta Ba= hp, ri também é uma partição no espaço métrico que contém todos os elementos si∈ S que satisfazem a condição δ(si, p) < r. Analogamente, bolas fechadas e abertas podem ser usadas para definir partições em conjuntos de dados

S

⊆ S ao invés de S.

Geralmente, estruturas de indexação baseiam-se na exclusão de elementos do conjunto-resposta sem que seja necessário calcular a distância entre esses elementos e a referência da

2 Consultas com o objetivo de recuperar as cópias idênticas de um elemento de consulta são chamadas na litera-tura de Consultas por Identidade, Consultas Pontuais, ou ainda, Point Queries.

3 No caso de empate na k-ésima posição, um dos elementos deve ser escolhido arbitrariamente (TASAN; OZ-SOYOGLU, 2004). Repare que, a depender do critério para solucionar empates, a resposta para k-NN (S, sq, k) não é, necessariamente, única.

(33)

consulta. Para que isso possa ser feito, técnicas de limite inferior e superior de distância são aplicadas. Essas técnicas podem tanto subestimar quanto superestimar a distância real, mas devem fazê-lo de forma não-probabilística, seguindo as propriedades métricas. Se uma função de distância δsup produz constantemente valores maiores que outra função δinf para o mesmo conjunto de dados, dizemos que δsupdomina δin f (ZHOU et al., 2005; HETLAND, 2009).

Seja δsup uma função de distância que domina a função δ (um limite superior) e δ uma função de distância que domina a função δin f (um limite inferior), essas aproximações permi-tem dividir a análise dos elementos de dados em três categorias: SIM, NÃO e TALVEZ. As Figuras 5(a) e 5(b) ilustram, respectivamente, os conceitos de limite inferior e superior basea-dos na Desigualdade Triangular, enquanto que a Figura 6 discute os critérios para inclusão basea-dos elementos no conjunto-resposta com ou sem o cálculo de distância por meio da função δ.

p si sq δinf p si sq δsup (a) (b)

Figura 5 – Limites inferior e superior para uma partição métrica dada por Bf = hp, δ(p, si)i com relação à um elemento de consulta sq. (a) O limite inferior δin f é calculado como |δ(sq, p) − δ(p, si)|. (b) O limite superior δsupé calculado como δ(sq, p) + δ(p, si).

Talvez Talvez Sim Não ξ sq si sj δsup(sq,si) δsup(sq,si) δinf(sq,sj) δinf(sq,sj)

Figura 6 – Limite de distâncias, onde a linha vertical representa o raio da consulta por abrangên-cia. Se o limite δsup ultrapassa ξ, então talvez o elemento sitenha que ser incluído no conjunto-resposta, o que só pode ser aferido ao se medir a distância entre sie sq. Se o limite δsup não ultrapassa ξ, os elementos si devem ser incluídos na resposta sem a necessidade de se calcular a distância entre sq e si. Se o limite δin f ultrapassa ξ, então o elemento sj deve ser excluído do conjunto-resposta. Se o limite δin f não ultrapassa ξ, então talvez o elemento sjtenha que ser incluído no conjunto-resposta, o que requer aferir a distância entre sje sq.

(34)

Dado uma consulta por abrangência, Rq(

S

, sq, ξ), se δin f(sq, si) > ξ, o elemento sipode ser excluído do conjunto-resposta, pois garante-se que δ(sq, si) não satisfaz o critério do conjunto de abrangência, enquanto que, se δsup(sq, si) ≤ ξ, si já é parte do conjunto-resposta. Se o elemento não satisfizer esses critérios, a distância δ(sq, si) precisa ser calculada, pois o elemento é candidato ao conjunto-resposta (HETLAND, 2009).

A filtragem de elementos para uma consulta por abrangência é a base de todos os algorit-mos que usam indexação baseada em pivôs (HJALTASON; SAMET, 2003; HETLAND, 2009; ZEZULA et al., 2010) de acordo com os dois seguintes lemas.

Lema 1 (Particionamento em Bola). Sejam sq, sie p elementos de um conjunto

S

⊆ S e δ uma função de distância métrica, a Desigualdade Triangular garante que:

max {0, δ(si, p) − δ(p, sq), δ(sq, p) − δ(p, si)} ≤ δ(sq, si) ≤ δ(sq, p) + δ(p, si)

Demonstração. O limite superior é uma consequência direta da desigualdade triangular, i.e., δ(sq, si) ≤ δ(sq, p) + δ(p, si). Para o limite inferior, podemos afirmar tanto que δ(p, si) ≤ δ( p, sq) + δ(sq, si), quanto que δ(sq, p) ≤ δ(sq, si) + δ(si, p), também de acordo com a desi-gualdade triangular. A primeira desidesi-gualdade implica que δ(si, p) − δ(p, sq) ≤ δ(sq, si), en-quanto a segunda implica que δ(sq, p) − δ(p, si) ≤ δ(sq, si). Dessa forma, combinando essas desigualdades e usando a Simetria e a Não-Negatividade, nós obtemos que max{0, δ(p, si) − δ( p, sq), δ(sq, p) − δ(p, si)} ≤ δ(sq, si) ≤ δ(sq, p) + δ(p, si).

De particular interesse, podemos estender a definição da função δin f em virtude da Desi-gualdade Triangular, o que resulta no Princípio do Limite Inferior.

Lema 2 (Princípio do limite inferior). Sejam sq, sie p elementos de um conjunto

S

⊆ S e δ uma função de distância métrica, a Desigualdade Triangular garante que:

|δ(sq, p) − δ(p, si)| ≤ δ(sq, si)

Demonstração. Da desigualdade triangular, podemos afirmar que δ(si, p) ≤ δ(p, sq) + δ(sq, si). Então, δ(si, p) − δ(p, sq) ≤ δ(sq, si) (1). Por outro lado, δ(p, sq) ≤ δ(sq, si) + δ(si, p), então δ(sq, p) − δ(p, si) ≤ δ(sq, si) (2). Tanto δ(si, p) − δ(p, sq) quanto δ(sq, p) − δ(p, si) podem ser interpretados como a distância L1de um ponto da reta real para a origem, visto que existe uma correspondência biunívoca entre os pontos de uma reta e os números reais4.

Portanto, ao aplicarmos L1 δ(si, p) − δ(p, sq), 0 e L1 δ(sq, p) − δ(p, si), 0, nós obtemos que |δ(si, p) − δ(p, sq) − 0| = |δ(sq, p) − δ(p, si) − 0|. Ao unirmos esse resultado a (1) e (2), temos que |δ(sq, p) − δ(p, si)| ≤ δ(sq, si).

4 Uma correspondência biunívoca ocorre quando, entre dois conjuntos, todos os elementos do primeiro conjunto correspondem a todos os elementos do segundo conjunto e vice-versa.

(35)

p sq

ξ

δ(sq,p) + ξ

δ(sq,p) - ξ

Figura 7 – Ilustração da filtragem baseada em pivô. A área em branco representa a região da “casca”, onde podem existir elementos do conjunto-resposta, enquanto a área em cinza pode ser eliminada da consulta seja pelo Princípio do Limite Inferior, seja pelo limite superior oriundo da Desigualdade Triangular.

Ao selecionarmos um pivô p, com a distância δ(p, si) pré-computada para todos os elemen-tos de um conjunto de dados, temos que, para uma consulta por abrangência Rq

S

, sq, ξ, preci-samos realizar o cálculo de distância até sqpara todos os elementos sidentro da região definida pelo Particionamento em Bola. Para os elementos δ(sq, p) − δ(p, si) > ξ e |δ(si, p) − δ(p, sq)| ≤ ξ temos uma “casca” que é o objeto da análise (HJALTASON; SAMET, 2003; HETLAND, 2009). Uma ilustração dessa filtragem é esboçada na Figura 7.

2.4

Estruturas de Indexação Baseadas em Pivôs

Estruturas de indexação baseadas em pivôs consistem no armazenamento das distâncias pré-computadas entre os elementos do conjunto de dados e pivôs escolhidos criteriosamente, de forma que seja possível “podar” elementos candidatos ao conjunto-reposta no cálculos de distância. Essas estruturas de indexação podem ser separadas em uma taxonomia de três cate-gorias (CHEN et al., 2017) que seguem o tipo de estrutura de dados empregada na construção do índice. São elas: Tabelas, Árvores e Índices Externos .

Pivôs Elementos δ(s1,si) δ(s3,si) s1 s2 s3 s4 s5 0 3/4 2 2/5 1 3/2 4 0 5 1/4 s1 s3

Figura 8 – Exemplo de uma tabela de distâncias da estrutura LAESA.

(36)

2.4.1 Estruturas em Tabela

As estruturas Aproximating Eliminating Search Algorithm (AESA) (RUIZ, 1986), Linear AESA(LAESA) (MICÓ; ONCINA; CARRASCO, 1996), Extreme Pivot Table (EPT) (RUIZ et al., 2013) e Clustered Pivot Table (CPT) (MOŠKO; LOKO ˇC; SKOPAL, 2011) são exemplos de estruturas de indexação que utilizam tabelas de pivôs em memória principal e secundária para armazenar distâncias pré-calculadas. A AESA se assemelha a uma matriz de distâncias e é uma estrutura conhecida por ter alto custo de armazenamento e construção, que necessita apenas de um número linear de operações lógicas e aritméticas para resolver consultas por abrangência. Para cada consulta, um pivô é aleatoriamente selecionado, e usando a desigualdade triangular, vários elementos irrelevantes são filtrados. Dentre os elementos não filtrados, um novo pivô próximo ao elemento de consulta é selecionado. Esse processo é repetido até sobrarem apenas elementos relevantes (RUIZ, 1986; CHEN et al., 2017).

A estrutura LAESA foi proposta com o objetivo de diminuir o custo de armazenamento e construção da estrutura AESA. Ela armazena a distância dos elementos apenas para alguns pivôs, o que diminui o custo de armazenamento (MICÓ; ONCINA; CARRASCO, 1996). Nesse caso, o número de possíveis filtragens é limitado pela quantidade de pivôs empregados e pelo uso do Particionamento em Bola. A Figura 8 é um exemplo da tabela de distâncias da estrutura LAESA. O índice EPT, diferentemente das estruturas acima, utiliza o conceito de grupos de pivôs, onde cada grupo é formado por alguns pivôs e suas regiões disjuntas que representam todo o conjunto de dados. Essas regiões permitem descartar objetos que não se encontram na intersec-ção da bola da consulta e das regiões do índice (TELLEZ; RUIZ; CHAVEZ, 2016).

Finalmente, a estrutura CPT armazena as distâncias pré-calculadas entre todos os objetos do conjunto de dados para um conjunto de pivôs estáticos na memória. Para armazenar os elemen-tos de dados, a CPT utiliza uma estrutura de dados balanceada chamada M-Tree (CIACCIA; PATELLA; ZEZULA, 1997), que permite organizar esses dados em disco. Essa organização diminui a probabilidade de elementos não-filtrados ocuparem diferentes páginas no disco, o que melhora o desempenho de uma consulta à tabela de pivôs, sempre que a cardinalidade do conjunto de dados seja grande o suficiente para requerer paginação da memória secundária para memória principal (MOŠKO; LOKO ˇC; SKOPAL, 2011).

2.4.2 Estruturas em Árvore

As estruturas Burkhard-Keller Tree (BKT) (BURKHARD; KELLER, 1973) e k-Dimensional Tree(kD-Tree) (BENTLEY, 1975) organizam os elementos em árvores e mantêm as distâncias pré-calculadas em memória principal. Exceto pela estrutura kD-Tree, todas trabalham com as distâncias pertencendo ao domínio discreto (FRIEDMAN; BENTLEY; FINKEL, 1977).

A BKT é uma estrutura que escolhe um pivô p como raiz da árvore e insere todos elemen-tos cuja distância para o pivô seja d na d-ésima subárvore. Essa construção é possível devido ao domínio discreto das distâncias. Se uma subárvore contém mais de um elemento, o

(37)

(50,35) (84,44) (44,43) (14,15) (48,0) (60,30) (88,72) (a) (b) 90 90 0

Figura 9 – Estrutura de uma kD-Tree. (a) Particinamento de um conjunto bidimensional uni-forme com a estrutura kD-Tree. (b) Árvore kD-Tree com os nós representados por coordenadas do conjunto.

ritmo seleciona um pivô aleatoriamente e particiona a árvore recursivamente. Cada nó-diretório contém, então, um pivô, enquanto os elementos de dados são armazenados em nós-folha (BOZ-KAYA; OZSOYOGLU, 1999; CHEN et al., 2017).

A árvore de busca binária multidimensional (S = Rn), resumidamente chamada de kD-Tree (onde o k representa o número de dimensões do conjunto de dados) é uma estrutura que par-ticiona, recursivamente, o espaço em regiões hiperretangulares mutuamente exclusivas usando hiperplanos alinhados com os eixos, e de acordo com a mediana das dimensões de cada hiper-plano no espaço (BENTLEY, 1975). Uma kD-Tree é associada à uma região hiperretangular do espaço, com seu nó-raiz associado ao hiperretângulo que compreende todo o espaço. Os nós internos, assim como a região que representam, também armazenam informações sobre o hiperplano que poda a região em duas sub-regiões filhas. Os nós-folha da árvore compreendem regiões retangulares não podadas e são chamados de buckets (KIBRIYA, 2007). A Figura 9(a) representa o particionamento de uma kD-Tree de um conjunto de pontos uniformemente dis-tribuído em duas dimensões considerando a função de distância L2. A Figura 9(b) representa a árvore gerada a partir do particionamento da kD-Tree.

A estrutura da kD-Tree pode ser construída de diferentes formas. Os métodos de construção que mais se destacam são Top-Down (de cima para baixo), Bottom-Up (de baixo para cima) e Middle-Out(do meio para fora). O método de construção Top-Down começa associando o nó-raiz à região que compreende todo o conjunto. A região no nó-nó-raiz é então particionada em duas regiões menores, que são associadas a dois novos nós-filhos. Esse processo é repetido recursivamente nas regiões dos dois nós-filhos. O particionamento só termina quando o número de elementos em uma região atinge um limite estabelecido na construção (BENTLEY, 1975). O critério para a escolha da dimensão a ser dividida é guloso, e o particionamento é feito na mediana da dimensão escolhida.

Na construção Bottom-Up, inicia-se procurando o par de elementos que forma a menor área, e então cria-se um nó para esse par de elementos. O método procura e constrói iterati-vamente nós para: (i) pares de elementos, (ii) pares de nós, ou (iii) um par contendo um nó

(38)

e um elemento, contanto que esse par forme a menor área para a iteração. A rotina se repete até que todos os elementos sejam unidos em nós e todos os nós sejam unidos em um único nó-raiz (AGGARWAL, 2015).

Na construção Middle-Out, inicia-se procurando grupos entre os pontos e construindo nós a partir desses grupos, por meio do método chamado Hierarquia de Âncoras (Anchors Hierar-chy). Esses nós contendo grupos de pontos são então unidos utilizando a construção Bottom-Up, até o nó-raiz. O processo de encontrar grupos, construir nós-diretório e então uni-los em um nó-raiz é aplicado recursivamente para cada nó de grupos criado anteriormente, e a recursão é interrompida quando o número de elementos for menor que um limite estabelecido na constru-ção (KIBRIYA, 2007). Todo o processo é bastante similar ao de um algoritmo de agrupamento hierárquico generalizado (AGGARWAL, 2015).

Em se tratando de custos de consultas por vizinhança em espaços exclusivamente de baixa dimensionalidade, a kD-Tree mostra ser uma estrutura eficiente. A consulta por vizinhança em uma kD-Tree percorre a árvore recursivamente até a região do nó-folha contendo o elemento de consulta. Uma busca linear nessa região calcula a distância de todos os elementos para a referência da consulta. Os k elementos mais próximos formam uma bola fechada com o raio igual a distância entre o elemento de consulta e o k-ésimo elemento mais próximo. No retorno da recursão, apenas as regiões que interceptam a bola de consulta são visitadas, sendo que a bola é atualizada toda vez que um melhor k-ésimo elemento mais próximo é encontrado em outra região. O resultado é equivalente a geração de uma bola com o elemento de consulta no centro e sua distância para o k-ésimo elemento mais próximo como raio (BENTLEY, 1975; FRIEDMAN; BENTLEY; FINKEL, 1977; HJALTASON; SAMET, 2003).

2.4.3 Estruturas baseadas em Índices Externos

As estruturas da família OMNI (TRAINA JR et al., 2007) e Space-filling Curve and Pivot-based B+-tree(SPB-TREE) (CHEN et al., 2015) utilizam índices em disco para armazenar dis-tâncias pré-calculadas. Em todas essas estruturas as disdis-tâncias pertencem ao domínio contínuo. A estrutura OMNI padrão também armazena os elementos de dados em um arquivo de acesso sequencial, com o objetivo de diminuir o impacto da cardinalidade do conjunto. Se o arquivo sequencial for usado, as distâncias pré-calculadas dos elementos para seus identificadores são armazenadas como na estrutura LAESA, porém com suporte à paginação também da tabela de distâncias. No entanto, as estruturas da família OMNI podem se utilizar de outras estruturas de índice já existentes para armazenar os valores das distâncias aos pivôs, que passam a ser vistas como coordenadas multidimensionais para o conjunto de dados métrico. Estruturas auxiliares como a B+-Tree e a R-Tree (GUTTMAN, 1984) podem indexar as distâncias pré-calculadas do espaço métrico que emulam um espaço multidimensional (Figuras 10(a) e 10(b)).

A SPB-TREE adiciona um segundo mapeamento à ideia das estruturas Omni: o uso de uma curva preenchedora de espaços (Curva de Hilbert) para mapear as distâncias armazenadas em números inteiros, com o objetivo de diminuir o custo de armazenamento das distâncias

(39)

p1 ξ (a) (b) (c) p1 p2 p3 p1 p2

Figura 10 – Mapeamento do Espaço Métrico particionado para um espaço multidimensional e de um espaço multidimensional para um espaço unidimensional. (a) Bola fechada delimitada por raio ξ e pivô p1. (b) Espaço multidimensional de 3 dimensões que correspondem a três pivôs usados no espaço métrico original. (c) Espaço unidimen-sional com o mapeamento pela Curva de Hilbert.

computadas. Esse mapeamento pode ser compreendido como o mapeamento de um espaço multidimensional em um espaço unidimensional, como ilustrado nas Figuras 10(b) e 10(c). A curva preenchedora é muito eficientemente indexada pela estrutura de dados clássica B+-Tree, enquanto que os elementos de dados em si são armazenados em um arquivo sequencial de acesso aleatório paginado (CHEN et al., 2015).

No momento da execução de uma consulta, percorre-se o caminho inverso. Inicialmente, aplica-se a busca no espaço unidimensional. Eventualmente, em um segundo momento, busca-se espaço multidimensional (no caso da família OMNI). Somente após exaurida a busca no espaço reduzido é que se recorre ao cálculo de distância para a formação do conjunto-resposta da consulta por similaridade (TRAINA JR et al., 2007; CHEN et al., 2015).

2.5

Métodos de Escolha de Pivôs

O uso de pivôs é importante para qualquer técnica de consulta em espaços métricos, devido a necessidade de se usar elementos representativos para o particionamento e poda do conjunto de dados. Existem pelo menos três pontos que precisam ser levados em conta no momento da escolha dos pivôs. O primeiro ponto é a escolha do critério de comparação entre grupos de pivôs. O segundo é a quantidade de pivôs a serem escolhidos, visto que, quanto mais pivôs, maior o espaço ocupado pelo índice. Assim, idealmente, o método de indexação deve considerar o balanceamento entre a quantidade de pivôs e o espaço ocupado. Embora alguns autores sugiram que o número de pivôs deva ser limitado pela dimensionalidade (TRAINA JR et al., 2007; MAO; MIRANKER; MIRANKER, 2012), a quantidade de pivôs a ser usada ainda é uma questão em aberto na literatura (NAVARRO et al., 2017). O terceiro e último ponto são os algoritmos de escolha de pivôs, que determinam quanto tempo e espaço serão necessários para encontrar o conjunto de pivôs desejado (MAO et al., 2016).

A escolha de pivôs “adequados” pode influenciar diretamente o desempenho das consultas 17

(40)

1000 0 0 0.5 1 1.5 2 2.5 3 3.5 4 200 400 600 800 Pivôs na borda Pivôs medóides Distância Frequência

Figura 11 – Distribuição de distâncias para dois pivôs em um espaço Euclideano de 20 dimen-sões uniformemente distribuídas. Adaptado de (ZEZULA et al., 2010).

ao resultar em melhores (ou piores) partições. Por exemplo, se todas as distâncias do conjunto forem similares à distância usada para a construção da bola, então provavelmente os elementos cobertos pela bola precisarão ser analisados na maioria das consultas, o que inutiliza a premissa de se particionar o conjunto de dados. Infelizmente, soluções ótimas para escolhas de pivôs que maximizem a probabilidade de poda das partições tem custo mínimo polinomial, o que torna impraticável a aplicação direta desse critério para grandes conjuntos de dados. Nesse sentido, diversos métodos aproximativos para a detecção de elementos representativos em conjuntos de dados são usados para selecionar pivôs (YIANILOS, 1993; BOZKAYA; OZSOYOGLU, 1999; BUSTOS; NAVARRO; CHÁVEZ, 2003; ZEZULA et al., 2010).

Uma solução bastante comum na literatura é o uso de pivôs aleatórios, que também servem como técnica base para comparações entre métodos de escolha de pivôs (CHÁVEZ et al., 2001). Outra possibilidade para a escolha dos pivôs é determinar quais são os elementos que compõem o fecho convexo do conjunto de dados com relação à função de distância, sendo que algorit-mos heurísticos podem encontrá-los em tempo linear (TRAINA JR et al., 2007). Uma terceira possibilidade é a aplicação de técnicas de amostragem para encontrar o elemento com maior variância de distâncias dentre todos os elementos do conjunto de dados (YIANILOS, 1993).

Em geral, quanto maior e mais focada for a densidade das distâncias ao redor de um pivô, maior a chance do elemento de consulta estar localizado na distância mais frequente desse pivô. Seguindo essa premissa, é possível afirmar que elementos mais afastados entre si resul-tam em melhores pivôs do que elementos medóides5. Essa afirmação é baseada na observação de que a distribuição das distâncias de todos os elementos para um ponto na borda do espaço é mais ampla do que a densidade para um elemento medóide (YIANILOS, 1993; BOZKAYA; OZSOYOGLU, 1999; BUSTOS; NAVARRO; CHÁVEZ, 2003; ZEZULA et al., 2010). A Fi-gura 11 ilustra esse raciocínio para a densidade de distâncias com relação a um conjunto de elementos uniformemente distribuídos em um espaço de 20 dimensões com distância L2.

5 Elementos medóides são elementos centrais de conjunto de dados em relação à média das distâncias

(41)

Pr ofundid ade d a ár vor e Dimensões Profundidade da árvore 0 100 200 300 400 500 600 700 800 900 2 4 6 8 10 12 14 16 18 20 Aleatório Outlier Mediana Cálculos de distância Dimensões Cálculos de distância 50000 10000 15000 20000 25000 30000 35000 40000 2 4 6 8 10 12 14 16 18 20 Aleatório Outlier Mediana (a) (b) (c) Dimensões Outlier Mediana Aleatório 0 5000 10000 15000 20000 25000 30000 35000 40000 2 4 6 8 10 12 14 16 18 20 T empo Tempo

Figura 12 – Comparação dos métodos de escolha dos pivôs iniciais em SERRANO; MICÓ; ONCINA (2011) para consultas por abrangência e raios de tamanho fixo em con-juntos sintéticos de dimensões uniformes com a função de distância L2. (a) Altura da árvore usando pivôs com três critérios. (b) Média do número de cálculos de distância. (c) Média do tempo de execução em segundos.

2.5.1 Parâmetros de Inicialização de Árvores baseadas em Pivôs

Nos métodos de indexação baseados em pivôs, a escolha inicial é, geralmente, uma escolha aleatória de um elemento do conjunto de dados. Porém, experimentos demonstram que escolhas adequadas para os pivôs iniciais também podem levar a uma significante redução no número de cálculos de distância na execução de consultas, além de impactar diretamente na estrutura do índice, em particular, na estrutura de árvores baseadas em pivôs.

Em SERRANO; MICÓ; ONCINA (2011), os autores avaliam esse impacto sobre árvores MDF-Tree (GÓMEZ-BALLESTER; MICÓ; ONCINA, 2006), que são estruturas binárias ba-seadas em particionamento por hiperplanos (diferentemente da kD-Tree, que gera estruturas hiperretangulares). Para a construção dessa árvore, um pivô é aleatoriamente escolhido como nó-raiz, e em seguida um novo pivô é escolhido dentre os elementos mais distantes do primeiro pivô. De acordo com a distância aos dois pivôs agrupam-se os mais próximo do primeiro pivô de um lado e os mais próximos do segundo pivô de outro e o conjunto é dividido recursivamente até que cada nó-folha contenha apenas um único elemento.

Os autores em SERRANO; MICÓ; ONCINA (2011) avaliaram o impacto de três métodos

(42)

de inicialização para a MDF-Tree. São eles: (i) Método aleatório, (ii) Método da mediana e (iii) Método dos anômalos6. Na análise empírica dos autores, o método aleatório consiste na seleção de um pivô de conjunto de dados, onde todo elemento tem igual probabilidade de ser escolhido. O método da mediana consiste na escolha de elementos medóides como pivôs. O método dos anômalos é implementado como a seleção do elemento mais distante em relação a um elemento aleatório com probabilidade de escolha uniforme. A hipótese por trás do método dos anômalos é que selecionar dois elementos distantes entre si para cada nível da árvore deve gerar partições do conjunto de dados de tamanho similar, o que produziria uma árvore MDF-Treebalanceada (GÓMEZ-BALLESTER; MICÓ; ONCINA, 2006).

Os experimentos em SERRANO; MICÓ; ONCINA (2001) analisam os três métodos de inicialização, e os resultados indicam que, para dimensionalidades crescentes, o método da mediana reduziu significantemente a quantidade de cálculos de distância e o tempo de execução em comparação com os métodos aleatório e dos anômalos, como ilustrado nas Figuras 12(a) e 12(c). Além disso, árvores mais profundas também são geradas, como indicado no resultado da Figura 12(b). Um resultado contra-intuitivo desses experimentos é que árvores profundas também costumam ser desbalanceadas, o que sugere que o desbalanceamento da estrutura pode levar ao aumento do desempenho na execução média de consultas por similaridade.

Portanto, uma indicação desses resultados empíricos é que nem sempre árvores menores e balanceadas serão capazes de alcançar um melhor desempenho do que árvores maiores e desbalanceadas. As questões deixadas em aberto são: (i) A escolha do mesmo critério de pivôs para todos os níveis da árvore e a extrapolação do desbalanceamento da estrutura para outras estruturas de indexação do tipo de Árvores baseadas em Pivôs geram resultados similares? e (ii) Qual a significância desses parâmetros de escolha de pivôs e balanceamento para árvores em Espaços Métricos genéricos?

2.6

Conclusões Parciais

A otimização de consultas por similaridade em Espaços Métricos depende da escolha do algoritmo de consulta, da estrutura de indexação e do método de escolha de pivôs que melhor se encaixa com o conjunto de dados a ser analisado. O otimizador de buscas deve saber ex-plorar essas combinações para determinar a melhor combinação para o seu objetivo. Na seção seguinte, exploraremos a fundo a estrutura de indexação puramente métrica VP-Tree, com o objetivo de atacar as duas questões deixadas em aberto no estudo de SERRANO; MICÓ; ON-CINA (2011). Para nossa análise, iremos revisitar e propor novas implementações algorítmicas com exemplificações para essa estrutura de indexação métrica, cuja complexidade de busca de pior caso em cenários adequadamente caracterizados é, comprovadamente, sub-linear (YIANI-LOS, 1993; YIANI(YIANI-LOS, 1998).

6 No contexto deste trabalho, denominamos elementos anômalos, ou outliers, os elementos que se encontram mais afastados entre si dentro do mesmo conjunto de dados.

(43)

3

VP-Trees

A estrutura de indexação VP-Tree (YIANILOS, 1993; YIANILOS, 1998) é uma extensão das árvores binárias unidimensional e multidimensional (kD-Tree) para a indexação em espa-ços métricos. Essa estrutura é construída com dois objetivos principais, a saber (i) permitir que consultas por similaridade possam ser efetuadas na estrutura com complexidade de tempo sub-linear e (ii) particionar, em tempo de construção aceitável (não-polinomial), os dados de acordo com a definição de Espaços Métricos. A busca na árvore binária unidimensional é uma operação cuja construção do índice exige a ordenação do conjunto de dados e cuja complexi-dade é logarítmica. A essência da VP-Tree é permitir que consultas por similaricomplexi-dade possam ser efetuadas em uma estrutura semelhante e com a mesma complexidade de construção e busca, a depender da implementação, do tipo da consulta e da função de distância empregada.

Também não seria incorreto afirmar que a VP-Tree se assemelha às estruturas MDF-Tree e BKT, e que pode ser vista como uma “concorrente” desses métodos. No entanto, ao contrário dos competidores, a VP-Tree é projetada para o particionamento balanceado e mutuamente ex-clusivo, sendo que a fronteira da partição é dada por características da função de distância, i.e., não é definida por hiperplanos. Portanto, no caso médio, a VP-Tree demonstra desempenho superior ao dos competidores (CHEN et al., 2017), sendo que essa vantagem pode aumentar em espaços de média dimensionalidade. Esse ganho ocorre de duas formas: (i) conforme as dimensões aumentam, outros índices tendem a visitar todos os elementos do conjunto de da-dos, e (ii) outras estruturas que usam muitos pivôs tendem a consumir muito espaço para o armazenamento das distâncias pré-computadas.

Outro fator importante na disputa com seus competidores é que VP-Trees são projetadas para operar com quaisquer funções de distâncias métricas. Apesar das funções de distância Lp serem úteis para muitos casos, não há razões para assumirmos a priori que essas métricas são as únicas aplicáveis, tampouco as mais adequadas. A estrutura de uma VP-Tree funciona a partir da escolha de Pontos de Vantagem (Vantage Points), que funcionam como os pivôs em outros métodos. Esses pontos de vantagem dão uma perspectiva do espaço como um todo ao consi-derar as suas distâncias para todos os outros elementos do conjunto de dados. Essa perspectiva (distâncias) contém informações que servem como apoio para as buscas por similaridade.

Por exemplo, dado um espaço métrico

M

= hS, δi, um conjunto de dados

S

⊆ S, três ele-mentos p, sq e si∈

S

, e distâncias conhecidas δ(p, si) e δ(p, sq), podemos dizer que δ(sq, si) pode ser calculada pela perspectiva de p, o que equivale a dizer que podemos empregar o Prin-cípio do Limite Inferior para podar, ou não, side uma busca por similaridade a partir de bola dada por hp, δ(p, si)i. Partindo dessa premissa, uma busca na VP-Tree consegue evitar diversos cálculos de distância e diminui a quantidade de partições vasculhadas, ao custo de uma pequena sobrecarga de armazenamento e processamento do índice.

(44)

3.1

Estrutura

Dado um conjunto de dados

S

⊆ S, VP-Trees dividem os elementos de

S

por meio de um pivô p, da mediana µ de distâncias dos elementos em

S

para p e da distância máxima dm entre pe todos os elementos de

S

, em dois sub-conjuntos disjuntos

S

1,

S

2⊆

S

que constituem os nós esquerdoe direito associados ao nó-diretório que contém as informações de p, µ e dm. Elemen-tos que caem dentro do intervalo de distâncias [0, µ) são atribuídos ao nó esquerdo, enquanto os elementos que caem dentro do intervalo [µ, dm] são colocados no nó direito. Ambos os nós, esquerdo e direito, são conjuntos de dados menores e podem ser recursivamente divididos até que os nós se tornem conjuntos unitários.

... Pivô μ Esquerdo Direito ... ... ... ... Pivô μ Esquerdo Direito ... ... ... VP-Tree vps-Tree ... ... Limite Inf. Limite Sup. Limite Inf. Limite Sup. (a) (b)

Figura 13 – Estrutura de uma VP-Tree e de uma vps-Tree. (a) Ilustração da estrutura de uma VP-Tree. (b) Ilustração da estrutura de uma vps-Tree.

A variante vps-Tree adiciona à estrutura da árvore o armazenamento das distâncias entre os elementos e seus pivôs ancestrais (acima dele) no momento da construção da árvore. Esse armazenamento é feito a partir de um vetor de limites inferiores e superiores que correspondem as partições delimitadas pelo nó com relação aos seus pivôs ancestrais. A Figura 13 ilustra a diferença entre uma VP-Tree simples e uma vps-Tree. A variante vps-Tree pode evitar o cálculo de distâncias no momento de uma consulta, uma vez que as distâncias aos pivôs são armazenadas no momento da construção. O preço a ser pago por essa variante é o aumento no consumo de memória – Uma variação da estrutura LAESA para cada nó.

Uma última variação do índice é a estrutura vpsb-Tree, que adiciona uma restrição ou à VP-Tree ou à vps-Tree: uma quantidade máxima (não unitária) de elementos por nó-folha. Essa estrutura permite guardar os elementos de uma partição como um nó-folha “cheio”, ou um “balde” de elementos, o que gera um benefício para o tratamento de grandes conjuntos de dados: a parametrização do uso de memória e a possibilidade do uso de técnicas de paginação entre memória principal e memória secundária. Em todo este trabalho, temos usado o termo VP-Tree para generalizar a estrutura vpsb-Tree e, de agora em diante, discutiremos os métodos de construção e busca apenas para essa estrutura de árvores VP-Trees.

Referências

Documentos relacionados

Na primeira década da existência do Estado de Minas Gerais, a legislação educacional mineira estabeleceu o perfil de professor estadual, imputando como formação

Nessa situação temos claramente a relação de tecnovívio apresentado por Dubatti (2012) operando, visto que nessa experiência ambos os atores tra- çam um diálogo que não se dá

Neste tipo de situações, os valores da propriedade cuisine da classe Restaurant deixam de ser apenas “valores” sem semântica a apresentar (possivelmente) numa caixa

Este dado diz respeito ao número total de contentores do sistema de resíduos urbanos indiferenciados, não sendo considerados os contentores de recolha

[r]

I: hum hum.. 125 M: A forma como intarigir com eles… Saber estar com eles, e essa foi uma das maiores lições. Sabermos nós, saber lidar com eles. Ah, conhece-los mais. No âmbito em

A questão da transferência ocorre de maneira diferente para os trabalhadores que reivindicam melhores condições de trabalho ou que fazem parte do movimento sindical, pois

Anderson (2003) reduz a importância da interação aluno-aluno se o planejamento do curso é baseado em abordagens pedagógicas cognitivistas ou behavioristas, ao