1. O documento apresenta a GPU-NB, uma implementação paralela do algoritmo Naive Bayes usando GPUs para classificação de documentos. 2. Os resultados experimentais mostraram que a GPU-NB foi até 11x mais rápida que a implementação sequencial e paralela em CPU, mantendo a mesma qualidade de classificação. 3. Quanto maior o número de classes, maior o ganho de desempenho da GPU-NB em relação à CPU.
Defesa de Artigo: "GPU-NB: A Fast CUDA -based Implementation of Naive Bayes"
1. Apresentação de Artigo
GPU-NB: A Fast CUDA-based
Implementation of Naive Bayes
Universidade Federal do Pará
Instituto de Tecnologia
Programa de Pós-Graduação em Engenharia Elétrica
Equipe:
Aline Lima
Andrew Edberg
Rodrigo Lisbôa
Professor:
Dr. Ádamo Santana
Disciplina:
Inteligência Computacional
2. Dados do Artigo
• Título Original:
– GPU-NB: A Fast CUDA-based Implementation of Naive Bayes.
• Título em Português:
– GPU-NB: A Rápida Implementação da Naive Bayes baseada em
CUDA.
• Autores:
– Viegas, F. et al. (Brazil).
• Revista (publicação em October 2013):
– Computer Architecture and High Performance Computing.
• IEEE Transaction on Parallel and Distributed Systems.
• Qualis CAPES:
– A1 (Ciência da Computação e Engenharias IV), A2
(Interdisciplinar), B3 (Ciências Biológicas I).
2
5. 1. Introdução
• O aumento da WEB 2.0 democratizou o acesso à
informação.
– Velocidade (acesso) versus Volume (documentos).
• Isto deu origem a um fenômeno interessante:
– Os dados, atualmente, não são efetivamente analisados sem a
ajuda de ferramentas automáticas sofisticadas.
– Técnicas como aprendizagem de máquina e mineração de
dados/texto são aplicadas pelas ferramentas.
• Classificação Automática de Documentos (ADC).
• Estes algoritmos são, ainda, um desafio computacional,
devido ao volume de dados que tem de ser processado.
5
6. 1. Introdução
• Mineração de Dados¹:
– Processo de extração de conhecimentos significativos.
– Uma quantidade de dados é analisada.
¹D. Kumarihamy and L. Arundhati, “Implementing data mining algorithms using NVIDIA CUDA,” 2009. [Online].
Available: http://hdl.handle.net/1900.100/3013. 6
Figura. Figura representando o processo de KDD (Knowledge Discovery in Databases).
?Classificação
8. 2. Problema
• Classificação²:
– Prediz um item de uma classe.
• O valor de uma classe, dado um conjunto de dados, é previsto com
base nos valores dos seus outros atributos.
• Para resolver o problema, utiliza-se o NB³ (Naive Bayes).
• Desempenho:
– Aceleração do NB na GPU para classificação
probabilística.
• Aplicação do paradigma do paralelismo.
²C. Kruengkrai and C. Jaruskulchai, “A parallel learning algorithm for text classification,” in Proceedings of the
eighth ACM SIGKDD international conference on Knowledge discovery and data mining, ser. KDD ’02. New York,
NY, USA: ACM, 2002, pp. 201–206. [Online]. Available: http://doi.acm.org/10.1145/775047.775077.
³D. Lowd and P. Domingos, “Naive bayes models for probability estimation,” in Proceedings of the 22nd
international conference on Machine learning. ACM, 2005, pp. 529–536..
8
10. 3. Como o problema é tratado?
• Contribuição do trabalho:
– Melhoria na eficiência do modelo: Lógica e
Representação.
1. É proposto o GPU-NB para Classificação Automática
de Documentos.
– Uma versão paralela do NB que utiliza unidades de
processamento gráfico (GPUs).
– A GPU acelera o algoritmo Multinomial NB para a
classificação probabilística.
10
12. 4. Abordagem proposta
• Arquitetura Compute Unified Device Architecture e GPU:
12
Figura. Arquitetura simplificada das GPUs NVIDIA com suporte à CUDA.
Figura. GPU – Acesso à memória.
Núcleo CUDA:
SP: Processadores Compartilhados
13. 4. Abordagem proposta
• O algoritmo NB é baseado em modelos probabilísticos
que calculam a pontuação de uma classe ci como a
probabilidade de um documento dt a ser atribuído a ci.
• Com base nesta pontuação, um ranking das classes é
criado e o Naive Bayes classifica o dt na classe, na
primeira posição da classificação.
• Seja P(ci|dt) a probabilidade de um documento de teste
dt(a1, a2, ..., aj) pertence à classe ci, onde (a1, a2, ..., aj) é
um vetor (binário ou ponderada) que representa os
termos documento dt.
13
14. 4. Abordagem proposta
• A pontuação de uma classe é calculada, usando o
teorema de Bayes:
• O cálculo P(ci|dt) tem um alto custo computacional dado
que o número de possíveis vetores dt também é muito
elevado.
• Consequêntemente, o algoritmo NB atenua os
problemas assumindo que a ocorrência de todos os
termos são independentes.
14
Classe
Documento
15. 4. Abordagem proposta
• Para tornar o processo de classificação mais viável,
calcula-se a probabilidade de cada termo aj
independentemente:
• Há, na literatura, duas abordagens principais para a
execução do algoritmo.
1. Bernoulli: abordagem mais apropriada para um número
fixo de atributos.
2. Multinomial: representa um documento como um
vetor de frequências das palavras no texto.
15
16. 4. Abordagem proposta
• Observando (2), nota-se que uma questão fundamental
na definição de P(ci|dt), pois é como estimar P(aj|ci).
• Para evitar inconsistências (por exemplo, divisão por
zero), usa-se o teorema de Laplace.
16
Somatório dos nº de ocorrências de todos
os termos em documentos da classe ci.
Número de ocorrências de aj na classe ci.
Consiste na adição de 1, no
numerador e no denominador.
Vocabulário
17. 4. Abordagem proposta
• Na ADC, o objetivo é encontrar a classe "mais
adequada" para um documento.
– Utilizando a NB, dá-se pela maior probabilidade condicional da
classe ci para um determinado documento dt.
• Adota-se, então, a soma dos logaritmos em vez de uma
simples multiplicação de probabilidades.
– Para evitar que as probabilidades dos documentos com
um grande número de termos tornem-se próximo de zero.
• A maximização realizada na maioria das
implementações NB é:
17
18. 4. Abordagem proposta
• As fases de treinamento e classificação NB são
evidenciadas no Algoritmo 1.
18
21. 4. Abordagem proposta
• Paralelização da NB: GPU-NB.
– Dois vetores foram utilizados:
– Em TermIndexVector o índice representa o termo e cada posição
do vetor contém a posição no DocTermVector, que é onde
seninicia a lista de termos para determinado documento.
21
Figura . Estrutura de dados que representa os documentos de uma coleção.
Representa os termos.
Armazena listas de documentos
em que cada termo aparece.
23. 23
Calculo da frequência dos termos.
Calculo das probabilidades dos termos nas classes.
Classificação dos documentos testados.
Figura . Computação e transferências de dados em GPU-NB.
O documento é classificado, com base
na classe com maior probabilidade final.
24. 4. Abordagem proposta
• Paralelização da NB: Implementação na CPU.
– Não é o foco principal do trabalho, porém foi desenvolvido
para embasar a comparação com o algoritmo GPU-NB
proposto.
– Implementado em C++, com a paralelização de memória
compartilhada usando a biblioteca OpenMP.
– O código foi organizado com os mesmos passos
destacados.
24
26. 5. Resultados e discussões
• Os resultados experimentais foram realizados a fim de
avaliar a eficácia e a eficiência do algoritmo GPU-NB.
– Os resultados foram comparados com as implementações
do algoritmo Naive Bayes (sequencial e paralelo).
• Plataforma de hardware:
• PC com processador Intel Core I7-2600 CPU em 3,40 GHz, com
HyperThreading, 16GB de memória principal.
• Placa gráfica GeForce GT520 2GB.
26
27. 5. Resultados e discussões
• Seis bibliotecas digitais reais foram usadas.
1. Medline (MedLine).
2. Reuters (Reuters_ny).
3. ACM digital (ACM).
4. Produtos avaliados da Amazônia (acl_bin).
5. Newsgroups (20ng).
6. World Wide Knowledge Base Project (Webkb).
27
28. 5. Resultados e discussões
• Coleções de Documentos:
• Nº Classes, Nº Atributos, Nº Documentos e Densidade (Nº
médio de ocorrências de termos por documento).
28
29. 5. Resultados e discussões
• Eficácia do algoritmo proposto:
• São usadas duas métricas:
– Mic.F1: Mede a eficácia global em termos das decisões
tomadas pelo classificador (a inversa da taxa de erro).
– Mac.F1: Mede a eficácia da classificação dentro de cada
classe de forma independente (calculando a média
harmônica de precisão e de recolha para cada classe).
• As métricas são calculados para cada um dos k conjuntos
de teste.
29
30. 5. Resultados e discussões
30
• Eficácia do algoritmo proposto:
• Todos os resultados apresentados são as médias de 10
execuções dos algoritmos.
– Técnica usada: k-fold cross-validation, com k=10 para
cada combinação da coleção e do algoritmo.
– Quando uma subcoleção k é usada como conjunto de teste,
as restantes (k-1) são utilizadas como conjunto de
treinamento.
– Após todas as execuções, os indicadores são calculados
independentemente.
– Por fim, é calculada a média para uma avaliação mais
confiável à qualidade da classificação.
31. 5. Resultados e discussões
31
Percentual da diferença da
implementação da GPU-NB e da
implementação do Naive Bayes na CPU.
Diferença Não significativa.
Diferença significativa.
32. 5. Resultados e discussões
• Avaliação de desempenho:
– Speedup: Tempo de processamento.
– Eficiência: Quantidade processadores necessários para
obtê-la.
– Desempenho: O “quanto” os processadores são
utilizados.
32
𝑆𝑝𝑒𝑒𝑑𝑢𝑝 =
𝑡𝑒𝑚𝑝𝑜 (1 𝑝𝑟𝑜𝑐𝑒𝑠𝑠𝑎𝑑𝑜𝑟)
𝑡𝑒𝑚𝑝𝑜 (𝑁 𝑝𝑟𝑜𝑐𝑒𝑠𝑠𝑎𝑑𝑜𝑟𝑒𝑠)
𝐸 =
𝑆𝑝𝑒𝑒𝑑𝑢𝑝
𝑁º 𝑑𝑒 𝑝𝑟𝑜𝑐𝑒𝑠𝑠𝑎𝑑𝑜𝑟𝑒𝑠
𝐷𝑒𝑠𝑒𝑚𝑝𝑒𝑛ℎ𝑜 = 𝐸𝑓𝑖𝑐𝑖ê𝑛𝑐𝑖𝑎 𝑥 100%
33. 5. Resultados e discussões
• Execução da CPU:
– Mediu-se o tempo médio das execuções para:
• 1 núcleo (sequencial).
• 2 núcleos.
• 4 núcleos.
• 8 threads independentes.
33
– devido a configuração da CPU.
– devido a CPU suportar (Hyper
Threading).
34. 5. Resultados e discussões
• O nº de classe é o fator mais importante que afeta a
aceleração de GPU-NB.
– A GPU-NB emprega um paralelismo de threads a nível de
expressão. Quanto maior o número de classes, maior será
o número de operações aritméticas executadas por cada
segmento por acesso à memória.
34Figura . Variação explicada por fatores no desempenho do sistema .
35. 5. Resultados e discussões
35
Figura 4. Speedup das implementações paralelas de várias coleções.
O speedup obtido com a implementação GPU-NB foi, estatisticamente, maior com 95%
de confiança, que os speedups de todas as implementações paralelas.
As coleções ACM e 20nb,
com 11 e 20 classes,
respectivamente, atingem
os maiores speedups.
37. 6. Conclusões
• Foi proposta a GPU-NB, implementação paralela do
algoritmo Naive Bayes amplamente utilizado para a
Classificação Automática de Documentos - ADC.
– Explorou-se uma estrutura de dados compacta para
indexar os documentos objetivando minimizar o consumo
de memória.
• Os experimentos focaram-se na comparação da CPU e
da GPU. Aferiu-se a eficiência (aceleração), bem como a
eficácia (a qualidade das classificações).
• Apesar de pequenas perdas na eficácia da classificação
(abaixo de 10%) para algumas coleções, pode-se dizer
que a proposta é equivalente à implementação CPU.
37
38. 6. Conclusões
• O Naive Bayes, quando implementado para GPU, é 11x
mais rápido.
– Comparando os resultados do speedup da biblioteca
20ng, a execução para 4 núcleos atinge um máximo de
3,2x, porém quando aplicou-se a GPU-NB, observa-se
um aumento do speedup de até 34,9x, significando que a
proposta do algoritmo leva à uma redução significativa
no tempo de processamento do Naive Bayes.
• Caso mantenha-se um comportamento linear da
paralelização em CPU, o GPU-NB continuaria a ser
mais rápido para CPUs de até 32 núcleos.
38
40. Análise Crítica
• Foi explorado as características do método Naive Bayes
para realizar tarefas independentes, empregando o
paradigma do paralelismo, porém para o domínio
considerado, os resultados foram satisfatórios.
– Será que, se fosse aplicado à outros domínios (ex.: em
outras coleções), os resultados se manteriam
satisfatórios?
• Poderia ser explorado técnicas de seleção de recursos, a
fim de manter apenas as características mais
discriminativas do GPU-NB, reduzindo assim, os efeitos
negativos do algoritmo seriam reduzidos.
40
41. Apresentação de Artigo
GPU-NB: A Fast CUDA-based
Implementation of Naive Bayes
Universidade Federal do Pará
Instituto de Tecnologia
Programa de Pós-Graduação em Engenharia Elétrica
Equipe:
Aline Lima
Andrew Edberg
Rodrigo Lisbôa
Professor:
Dr. Ádamo Santana
Disciplina:
Inteligência Computacional