IV Workshop em Algoritmos e Aplicações de Mineração de Dados Avaliação de Técnicas Paralelas de Blocagem para Resolução de Entidades e Deduplicação Charles F. Gonçalves� , Walter Santos� , Luis F. D. Flores� , Matheus S. Vilela� , Carla Machado2 , Wagner Meira Jr.� , Altigran Silva 3 Depto. de Ciência da Computação 2 Departamento de Demografia Universidade Federal de Minas Gerais � 3 Depto. de Ciência da Computação Universidade Federal do Amazonas Abstract. Data quality in databases is fundamental to many information management applications. One key criterion while measuring quality is the occurrence of duplicated records in a database, justifying the development of deduplication and entity resolution techniques. In deduplication, the main challenge is the high complexity involved in comparing every single register in a database. In order to minimize such problem, blocking techniques are used to reduce the number of comparisons, using fast and cheap metrics to identify the similarity between each pair of records. In the present study, we evaluate some existing blocking techniques implemented in a distributed, parallel and high scalable deduplication framework. We analyze them comparatively and identify the main advantages and disadvantages achieved by a parallel execution. Resumo. A qualidade da informação nas bases de dados é fundamental para diversas aplicações na área de gestão da informação. Um critério fundamental para medir qualidade é a ocorrência de registros duplicados em uma base de dados, justificando o desenvolvimento de técnicas de deduplicação e resolução de entidades. No problema de deduplicação, o principal desafio é a alta complexidade envolvida para comparar todos registros na base de dados. Assim, técnicas de blocagem são empregadas para diminuir o número de comparações efetivamente realizadas utilizando métricas simples e rápidas para identificar a similaridade entre os registros. Neste trabalho, avaliamos algumas técnicas tradicionais de blocagem num arcabouço paralelo e distribuı́do, altamente escalável. Analisamos estas técnicas de forma comparativa, identificando as vantagens e desvantagens da sua paralelização. 1. Introdução A existência de bases de dados confiáveis e consistentes são premissas importantes para a realização de muitas tarefas, como inteligência de negócios, detecção de fraudes e diversas análises em mineração de dados e KDD (Knowledge-Discovery in Databases). Entretanto, com o intenso uso da web e de geração automática de documentos, cada vez mais as bases de dados apresentam problemas como dados inválidos, campos ausentes ou mesmo dados duplicados. A identificação de duplicidades em uma base de dados é fundamental para melhorar a qualidade dos dados que se deseja extrair de um sistema de informação. Uma entidade é a representação de um conceito real em determinado contexto, como autores, artigos, pacientes e clientes em uma representação qualquer, como em 55 IV Workshop em Algoritmos e Aplicações de Mineração de Dados um banco de dados. O problema de deduplicação consiste no processo de eliminação de réplicas em um dado conjunto de registros, i.e. detectar o subconjunto disjunto de entidades aos quais estes registros estão associados. O processo de deduplicação ideal realiza uma quantidade quadrática de comparações, pois, potencialmente, cada registro de uma dada base de dados deve ser comparado com todos os outros. As bases de dados podem conter um grande número de registros, sendo necessário a utilização de sistemas computacionais que permitam a realização do processo de deduplicação de forma automatizada, garantindo o máximo de precisão e eficiência. Neste contexto, precisão se relaciona com o número de réplicas encontradas e eficiência com a duração do processo de deduplicação. Além disso, estes dois conceitos são concorrentes: se aumentamos a precisão, aumentamos o número de comparações e a eficiência diminui. Na tentativa de reduzir o número de comparações efetivamente realizadas, os algoritmos de deduplicação utilizam técnicas de blocagem, que agrupam registros com algum tipo de semelhança por meio de métricas simples e rápidas [Baxter et al. 2003] em conjuntos denominados blocos. Com a utilização de técnicas de blocagem, são realizadas apenas comparações de registros que estiverem no mesmo bloco. Mesmo empregando métodos de blocagem, a resolução de entidades ainda é um problema computacionalmente dispendioso, que tem sido melhorado por meio da utilização de arquiteturas paralelas [Santos et al. 2007]. Neste trabalho, retomamos o estudo dos métodos de blocagem, porém, diferentemente dos estudos realizados em [Baxter et al. 2003, Christen 2007], estamos interessados na aplicação destas técnicas num ambiente paralelo e distribuı́do. Para tal, utilizaremos o sistema de deduplicação Pareia [Santos et al. 2007]1 . O restante do trabalho é organizado como descrito a seguir. Na próxima seção explicamos o arcabouço usado para a realização do estudo, na seção 3 explicamos as técnicas de blocagem usadas bem como a paralelização destas. Os experimentos e resultados são discutidos na seção 4 e finalmente concluı́mos o estudo e apresentamos futuros trabalhos na seção 5. 2. Ambiente de Execução 2.1. Pareia O Pareia é um ambiente escalável, eficiente e extensı́vel para o processo de pareamento de registros e suporta o processamento paralelo de grandes volumes de dados [Santos et al. 2007] e foi implementado utilizando o arcabouço Anthill (explicado no item 2.2). O Pareia provê uma maneira de separar as etapas do processo de pareamento em um pipeline, proporcionando um arcabouço ideal para o desenvolvimento de novas metodologias ou mesmo modificação de aspectos desejados no processo. O funcionamento do Pareia é dividido em seis estágios principais: (1) leitura dos dados; (2) blocagem; (3) eliminação de pares redundantes; (4) divisão dos pares gerados entre as diferentes instâncias de comparação; (5) comparação dos pares; (6) geração dos resultados. Esta divisão, bem delimitada, favorece a extensão ou substituição de um ou 1 No trabalho de [Santos et al. 2007] o ambiente ainda possuı́a o nome de FERAPARDA 56 IV Workshop em Algoritmos e Aplicações de Mineração de Dados mais algoritmos responsáveis por cada etapa. Neste trabalho, implementamos diferentes algoritmos para a etapa de blocagem, mantendo o restante do processo sem modificações. O ambiente de execução do projeto Pareia, conhecido como Anthill [Ferreira et al. 2005], provê recursos para programação e controle de execução de aplicações paralelas, suportando o paradigma de programação filtros-fluxos identificados. 2.2. Anthill No modelo filtro-fluxo, filtros representam estágios da computação onde os dados são transformados, enquanto fluxos representam a comunicação entre tais estágios, permitindo a transferência de buffers de dados de tamanho fixo de um filtro para outro. Assim, a criação de uma aplicação em tal modelo se resume a sua decomposição em filtros que transformam os dados e encaminham o resultado para o próximo estágio, formando uma espécie de pipeline. O ambiente Anthill se distingue de outras plataformas por duas caracterı́sticas fundamentais: (1)Cópias transparentes: Os filtros podem ser replicados de forma transparente, o que proporciona um mecanismo de particionamento natural e escalável dos dados; (2)Fluxos identificados:2 O mecanismo de fluxos identificados permite que dados com o mesmo identificador sejam sempre enviados para o mesmo lugar. Há três possibilidades de paralelismo exploradas pelo Anthill: (1) de tarefa; (2) de dados; e (3) assincronia. A divisão da computação em vários estágios, como em um pipeline (paralelismo de dados), faz com que possamos ter um paralelismo de grão-fino e, como tudo isto acontece de forma assı́ncrona, a execução estará livre de gargalos. 3. Técnicas de Blocagem As técnicas de blocagem têm como objetivo limitar o número de comparações a serem realizadas no processo de deduplicação. A despeito do pior caso quadrático em termos de comparação, o que se observa é que a maior parte dos registros comparados possuem pouca ou nenhuma relação, sendo a comparação desnecessária. Mais ainda, o número de pares encontrados cresce linearmente com o tamanho da base [Baxter et al. 2003]. O predicado de blocagem [Hernandez and Stolfo 1998] é utilizado para definir quais os atributos dos registros e quais transformações serão aplicadas nas técnicas de blocagem. Um predicado é uma disjunção de conjunções, onde cada termo da conjunção define uma função de transformação sobre o registro. Um exemplo de predicado é P = �nome ∧ ano de nascimento) ∪ �sobrenome ∧ cidade). Quando aplicado a um registro, o predicado de blocagem é capaz de gerar uma chave de blocagem para cada conjunção. A definição do predicado de blocagem deve considerar tanto os erros em campos quanto a freqüência dos valores dos atributos, pois são aspectos que influenciam diretamente o número de pares gerados e a qualidade do resultado final. Erros nos atributos podem prejudicar a qualidade dos pares gerados, ao levar à exclusão de pares que seriam, de fato, verdadeiros. Assim, a escolha dos atributos deve levar em conta a qualidade da informação ali contida. Idades, por exemplo, podem ser declaradas com erro ou arredondadas para zero ou cinco (último dı́gito); nomes podem ser escritos de diferentes maneiras, o que pode dificultar a formação de pares verdadeiro. Outro problema se refere ao fato de alguns atributos, mesmo aqueles de qualidade adequada, assumirem poucos 2 label-stream 57 IV Workshop em Algoritmos e Aplicações de Mineração de Dados valores, o que os torna pouco discriminativos. Esse é o caso do atributo sexo, que ajuda pouco na decisão sobre qual par seria verdadeiro. Por estas razões, a avaliação do campo da chave de blocagem é um aspecto crucial neste processo. Cabe observar que um predicado mais restritivo conduz à geração de um número maior de pequenos blocos, e um número menor de pares potenciais. Neste caso, os erros, ainda que pequenos, poderão fazer com que pares verdadeiros sejam excluı́dos da comparação. Por outro lado, com um predicado menos restritivo, teremos blocos de tamanho maior, possivelmente cobrindo mais pares verdadeiros, mas com crescimento relevante (e provavelmente desnecessário) do número de pares totais gerados, bem como aumento no tempo de processamento. Os métodos de blocagem apresentados na seção 3.1 a 3.3 utilizam as chaves geradas pelo predicado de blocagem, ou uma transformação destas chaves, com a finalidade de agrupar os registros que deverão ser comparados. 3.1. Standard Blocking A blocagem padrão, referenciada na literatura como Standard Blocking[Christen 2007] (SB) , é uma técnica tradicional e simples, que agrupa os registros de acordo com uma chave de blocagem predefinida. A Figura 1 apresenta um exemplo desta técnica. Em tal exemplo, o predicado de blocagem utilizado é a concatenação do ano e da cidade. Para cada registro lido, gera-se um conjunto de chaves de blocagem. Ao final, apenas registros que geraram pelo menos uma chave de blocagem em comum serão comparados e cada par de registros gerado é, então, chamado de par candidato. Supondo uma função bloco��� bi ) que retorna todos os identificadores dos registros de um bloco b gerado da base de dados � �, o número de pares candidatos gerados empregando-se o SB é dado pela equação bi ∈�� |bloco��� bi )| × �|bloco��� bi )| − 1)/2 [Christen 2007]. Já o número de exato de comparações efetivamente realizadas depende diretamente da distribuição das chaves de blocagem no conjunto de dados. No melhor n� ,o caso, todos os blocos contêm o mesmo número de registros, i.e |bloco��� bi )| = �B �� n� na número de registros a serem comparados é dado pela equação |�� | × ��� � × � �� − 1) × �2 . 2 Neste caso, a complexidade é O� nb ), onde n é o número de registros e b o número de blocos. Técnica de Bigram Limite Blocos 0.2 10190 0.3 83177 0.4 223856 1 5402 Figura 1. Geração de pares Blocagem Padrão Blocos Caracteres 88 2 1182 4 3851 6 5419 8 Tabela 1. Número de blocos gerados para o BI e o SB numa base de 50 mil registros O SB foi implementado de forma paralela no Pareia como filtros de blocagem. Cada filtro pode estar instanciado em uma máquina diferente e é responsável por uma porção das chaves de blocagem, o que é garantido de forma transparente pelo Anthill. 58 IV Workshop em Algoritmos e Aplicações de Mineração de Dados 3.2. Bigram Indexing O método Bigram Indexing (BI) [Baxter et al. 2003, Bilenko et al. 2006] permite uma abordagem difusa da blocagem (fuzzy blocking), possibilitando que alguns erros tipográficos possam ser captados. A idéia básica é converter a chave de blocagem em uma lista de bigramas (sub-strings de dois caracteres), por exemplo, uma chave de blocagem com o valor ‘priscila’ gera os bigramas (‘pr’,‘ri’,‘is’,‘sc’,‘ci’,‘il’,‘la’). A partir desta lista de bigramas sub-listas serão geradas usando todas as permutações possı́veis sob um limite t com valor entre 0 e 1. As listas resultantes são convertidas em chaves de blocagem e o processo de blocagem continua da mesma forma do que o SB. Utilizando o exemplo anterior, se aplicarmos o método já descrito com um limite de valor 0.8, teremos as seguintes chaves geradas: prisscciilla, prriisciilla, prriisscciil, prriissccila, prriisscilla, prriscciilla, riisscciilla. Dessa forma, todos os registros com a chave de blocagem ‘priscila’ serão inseridos em 7 blocos diferentes, um para cada chave resultante. De � forma análoga ao SB, o número de pares candidatos gerados para a deduplicação é bi ∈�� |bloco��� bi )| × �|bloco��� bi )| − 1)/2, sendo a complexidade com2 putacional também de O� nb ) (para blocos de tamanhos iguais). Porém, notem-se dois fatores: (1) uma vez que chaves de blocagem diferentes podem gerar sub-listas de bigramas idênticos, pares serão formados entre registros que possuem chaves diferentes, aumentando o número de pares gerados (veja a Figura 2); (2) o número de blocos criados pelo BI é muito maior se comparado ao SB, como pode ser visto na Tabela 1. Em tal tabela, apresentamos o número de blocos gerados para o SB e o BI usando-se parâmetros similares. No BI, foi utilizada uma chave de tamanho 8 que, sob o limite especificado, gera chaves de tamanho correspondente ao do SB da mesma linha. Também é apresentado o caso em que o limite do BI é 1 e este se degenera para o SB (porém as chaves são diferentes). O BI é apenas uma metodologia diferente de se gerar blocos utilizando o mesmo princı́pio de blocagem do SB e a sua paralelização seguiu a mesma estratégia deste. 3.3. Sorted Neighbourhood O Sorted Neighbourhood (SN) [Hernandez and Stolfo 1998, Bilenko et al. 2006] é uma técnica que se baseia na ordenação dos registros pela sua chave de blocagem e na utilização de uma janela deslizante de tamanho fixo w (parâmetro). Somente registros dentro da mesma janela formarão pares candidatos. Desta forma, o número de comparações realizadas tem sua complexidade reduzida de O�n2 ) para O�wn) com w sendo o tamanho da janela. Nessa técnica, o conceito de blocos é difuso, visto que um bloco é formado por todos os registros contidos em uma janela deslizante. Assim, são n − w + 1 blocos, onde n é número total de registros a serem analisados. A principal vantagem do SN é a grande redução no número total de comparações que fica limitado pela janela w. Mas, no caso do número de valores possı́veis para uma chave de blocagem ser superior ao tamanho da janela, o método falha por não gerar todos os possı́veis pares. Outro problema correlacionado à técnica do SN é que registros que possuem erros em sua chave de blocagem podem não ser comparados com todos os seus redundantes. Por exemplo, se os registros com nomes Queli e Keli representarem a mesma entidade diferenciados apenas devido a um erro de grafia, estes ficarão distantes depois da ordenação e, muito provavelmente, não serão comparados. 59 IV Workshop em Algoritmos e Aplicações de Mineração de Dados O principal desafio para a implementação do SN no Pareia é a ordenação das chaves, que faz com que a geração de pares só se inicie após a ordenação total dos registros. Dessa forma, a estratégia de paralelização proposta é particionar os dados de forma estática e anteriormente à execução pelo usuário. Cada filtro receberá uma partição das chaves de blocagem, de forma que todas estas chaves possam ser ordenadas localmente mantendo a ordenação global dos registros. Por exemplo, considerando dois filtros, o filtro A recebe as chaves do intervalo de 0-9A-H e o filtro B recebe I-Z. A ordenação local será realizada de forma direta, através da inserção dos elementos que vão chegando do filtro leitor em uma árvore binária que insere registros de forma ordenada. Após as ordenações em cada filtro de blocagem, os pares serão gerados utilizando-se a janela deslizante, de tal forma que os pares das extremidades intermediárias da partição da ordenação serão gerados através de mensagens entre os filtros de blocagem. 4. Experimentos e Resultados Nesta seção, serão apresentadas as avaliações das diferentes técnicas de blocagem implementadas no ambiente Anthill/Pareia, bem como o comportamento do speedup na paralelização de cada uma delas. Na área de computação paralela, o speedup mede o quanto um algoritmo paralelo é mais rápido que o seu algoritmo correspondente seqüencial. Todos os experimentos foram executados em um cluster com máquinas de processadores Intel(R) Core(TM)2 CPU 2.13GHz e 2GB de memória RAM. Em função da dificuldade de se obter bases de dados reais, em que o número de réplicas sejam conhecidas, os testes foram executados a partir de bases sintéticas geradas pelo DsGen [Christen 2007], um gerador de bases muito utilizado na literatura[Baxter et al. 2003, Bilenko et al. 2006] capaz de fornecer a relação de réplicas das bases geradas. A qualidade e a complexidade das técnicas de blocagem vêm tradicionalmente sendo avaliadas usando-se as métricas Completitude dos Pares (CP) e a Taxa de Redução (TR) [Elfeky et al. 2002]. Além dessas métricas tradicionais, alguns trabalhos sobre blocagem também utilizam o F-score(FS) e a Qualidade dos Pares (QP). As equações de tais métricas podem ser vistas na Figura 3. A CP avalia a taxa dos pares verdadeiros que se encontram; Pe representa o número de pares redundantes encontrados, enquanto Pv é a quantidade de réplicas realmente existentes na base de dados. A TR avalia a redução do número de pares a serem comparados que se obtém com o uso da blocagem; Pg é o número de pares gerados pela blocagem e Pp representa a quantidade de possı́veis pares em toda a base (|A| × �|A| − 1)/2 no caso da deduplicação). O FS é a média harmônica do CP e TR e serve para analisar o melhor compromisso entre estas duas. Já a QP é um indicador da qualidade da blocagem utilizada, ao obter a taxa de pares realmente redundantes encontrados (Pe ) dentre aqueles que foram gerados pelo método de blocagem (PG ). A complexidade do problema de deduplicação se encontra na comparação dos registros. Assim, o primeiro ponto a se observar é o número de pares gerados nas três técnicas. Várias execuções foram feitas para cada técnica, variando-se os parâmetros de configuração e, para cada tamanho de base, utilizamos a média de pares gerados em cada uma das blocagens. Conforme pode ser visto na Figura 2, o número de pares gerados pelo BI é praticamente o dobro dos pares do SB, enquanto para o SN o crescimento é linear com o tamanho da base. De fato, o número de pares gerados depende diretamente 60 IV Workshop em Algoritmos e Aplicações de Mineração de Dados da dimensão da janela, que comumente é de ordens de grandeza inferior ao tamanho da base. Comparativo de Pares Gerados 16000 Milhares de Pares Gerados 14000 Standard Blocking Bigram Sorted Neighbourhood CP = 12000 10000 FS = 8000 6000 2000 15000 20000 25000 30000 35000 40000 45000 TR = 1 − 2 × CP × T R � CP + T R Pg Pp QP = P� Pg P� : Pares encontrados Pv : Pares verdadeiros Pg : Pares gerados Pp : Pares possı́veis 4000 0 10000 P� � Pv 50000 Tamanho da Base (registros) Figura 2. Comparativo do número de Pares Gerados Figura 3. Equações para as métricas utilizadas A Tabela 2 mostra o desempenho das técnicas para a base de 50 mil registros gerada pelo DsGen. Em cada coluna temos a média e o desvio padrão das execuções variando o parâmetro de blocagem. Para o SB variou-se o tamanho da chave de 2 a 10 caracteres, para o BI o limite variou 0,2 a 0,9 e para o SN o tamanho da janela variou de 3 a 30. Esta tabela reflete, de forma sintética, o comportamento padrão de cada técnica durante os experimentos. Resultados muito semelhantes foram obtidos para outras bases de menor tamanho. Das três técnicas, o BI é a que gera o maior número de pares e, portanto, a menor TR. O SN possui a melhor TR o que o torna extremamente rápido. Porém, este apresentou uma CP muito baixa. Este fato não necessariamente desqualifica a técnica. Os valores baixos para este indicador se devem ao fato de termos decidido utilizar parâmetros iguais para realizar uma comparação mais uniforme e não tendenciosa, uma vez que a forma como as chaves de blocagem são escolhidas alteram muito o processo. Entretanto, como SN se baseia em ordenação, a qualidade e o fator discriminativo da chave são fundamentais, podendo levar a taxas de PC de até 98% [Christen 2007]. Um bom indı́cio dessa potencialidade do SN é que este apresentou a maior taxa de QP, o que mostra que mesmo gerando poucos pares, é capaz de encontrar uma boa razão de pares verdadeiros dentro dessa quantia. Outro fator a destacar é o fato de a execução ser muito rápida e, por isso, o método poder ser aplicado várias vezes variando a chave de blocagem. Técnica de Blocagem Standard Blocking Bigram Indexing Sorting Neighbourhood TR (%) 99,41 ± 0,50 98,72 ± 0,91 99,94 ± 0,03 CP (%) 60,84 ± 11,00 69,65 ± 1,93 19,91 ± 8,04 QP (%) 0,37 ± 0,1 0,24 ± 0,13 1,01 ± 0,17 Tabela 2. Comparativo entre as técnicas para Base de 50000 registros 61 IV Workshop em Algoritmos e Aplicações de Mineração de Dados SpeedUp 6 Relação do F−score entre as Técnicas 0.95 Linear Standard Blocking Bigram Sorted Neighbourhood 0.9 F−score( 2*RR*PC / RR+PC ) SpeedUp 5 4 3 2 0.85 0.8 0.75 0.7 0.65 0.6 0.55 0.5 1 1 2 3 4 5 6 Instancias de ReaderComparator Figura 4. Speedup da deduplicação 0.45 10000 Standard Blocking (k=2) Bigram (t=0.4) Sorted Neighbourhood (w=30) 15000 20000 25000 30000 35000 40000 45000 50000 Tamanho da Base (registros) Figura 5. Compromisso entre a Taxa de Redução e a Completitude dos Pares De forma geral o SB apresenta resultados mais satisfatórios, onde todas as métricas mostraram bons resultados e uma melhor CP. Analisando a Figura 5 que mostra o F-score dos experimentos, confirmamos que, para os experimentos efetuados, o SB apresentou melhores resultados qualitativos. Notamos que o FS do SN é reduzido com o crescimento da base. Este fato é conseqüência direta do que discutimos anteriormente. Como a chave de ordenação não foi bem definida a relação entre o tamanho da janela e o tamanho da base é o principal fator discriminante para o FS. Isso se deve ao fato de que o RR para o SN é sempre alto para tamanhos de janela pequena como as do testes. Para avaliar como se comporta a escalabilidade do programa para cada uma das três técnicas de blocagem, utilizamos uma base de dados contendo 250 mil registros gerada pelo dsGen e variamos o número de processadores que realizam as comparações (onde reside a complexidade do processo). O predicado de blocagem para as três técnicas foram os mesmos. O limite t do BI foi 0.6, a janela para o SN possuı́a tamanho 100. O motivo da escolha desses valores é o fato de terem gerado um tempo relativamente grande de execução para a instanciação do Pareia em uma máquina. Analisando o gráfico de speedup na Figura 4 vemos que a técnica escala quase que linearmente para todos os três métodos. Este resultado não é inesperado, tendo em vista que o sistema Pareia torna a computação paralela uma abordagem natural à deduplicação. O speedup das técnicas de blocagem não foi avaliado por dois motivos: (1) o tempo isolado da blocagem não causa impacto no processo como um todo; (2) o objetivo do paralelismo implementado não é aumentar o tempo de resposta da blocagem mas, sim, aumentar a qualidade dos pares gerados por meio das oportunidades que surgem com o paralelismo. 5. Conclusão e Trabalhos Futuros Neste trabalho avaliamos a paralelização de três técnicas tradicionais de blocagem no ambiente de pareamento de registros Pareia. Ao contrário de outros estudos na literatura, as técnicas de blocagem são implementadas e avaliadas usando um arcabouço paralelo o que muda o perfil da aplicação por existir dependência de dados e comunicações entre módulos no processo de blocagem. Neste ambiente, avaliamos as principais vantagens e desvantagens de cada uma das três técnicas, contrastando-as e mostrando que o SB é a técnica de blocagem mais estável entre as três, apresentando resultados razoáveis para 62 IV Workshop em Algoritmos e Aplicações de Mineração de Dados os dados de teste. Mostramos que o BI pode ser uma técnica um pouco mais precisa na detecção de réplicas desde que configurado corretamente e, finalmente, que o SN é uma técnica rápida, com grandes potenciais, mas que deve ser aplicada com cautela e de posse de conhecimento suficiente dos dados. Os experimentos realizados sugerem uma série de possı́veis melhorias nos processos de blocagem. Dentre estas pretendemos, como trabalhos futuros, efetuar a paralelização e a implementação de outras técnicas de blocagem como as citadas em [Christen 2007], um estudo comparativo maior e mais completo abordando aspectos como tempo de criação dos blocos, tempo de geração dos pares, número de mensagens trocadas entre os filtros e o balanceamento de carga na blocagem. Além deste tipo de complementação, dado que o Pareia é paralelo e distribuı́do, esperamos que um grande avanço seja incorporar um processo de múltiplas blocagens simultâneas, onde técnicas distintas sejam aplicadas, na qual cada uma aborde um aspecto discriminativo dos dados. Acreditamos que todas as métricas do processo de blocagem possam ser melhoradas se implementada esta abordagem. Referências Baxter, R., Christen, P., and Churches, T. (2003). A comparison of fast blocking methods for record linkage. Bilenko, M., Kamath, B., and Mooney, R. J. (2006). Adaptive blocking: Learning to scale up record linkage. In ICDM ’06: Proceedings of the Sixth International Conference on Data Mining, pages 87–96, Washington, DC, USA. IEEE Computer Society. Christen, P. (2007). Performance and scalability of fast blocking techniques for deduplication and data linkage. In VLDB 2007: 33rd International Conference on Very Large Data Bases, Vienna, Austria. ACM. Elfeky, M. G., Verykios, V. S., and Elmagarmid, A. K. (2002). TAILOR: A record linkage toolbox. In ICDE. Ferreira, R. A., Wagner Meira, J., Guedes, D., Drummond, L. M. A., Coutinho, B., Teodoro, G., Tavares, T., Araujo, R., and Ferreira, G. T. (2005). Anthill: A scalable run-time environment for data mining applications. In SBAC-PAD ’05: Proceedings of the 17th International Symposium on Computer Architecture on High Performance Computing, pages 159–167, Washington, DC, USA. IEEE Computer Society. Hernandez, M. A. and Stolfo, S. J. (1998). Real-world data is dirty: Data cleansing and the merge/purge problem. Data Mining and Knowledge Discovery, 2(1):9–37. Santos, W., Teixeira, T., Machado, C., da Silva, W. M. A. S., and Guedes, R. F. D. (2007). A scalable parallel deduplication algorithm. Computer Architecture and High Performance Computing, (1):79–86. 63