SlideShare uma empresa Scribd logo
1 de 41
Baixar para ler offline
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
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
Agenda
1. Introdução
2. Problema
3. Como o problema é tratado?
4. Abordagem proposta
5. Resultados e discursões
6. Conclusão
3
Agenda
1. Introdução
2. Problema
3. Como o problema é tratado?
4. Abordagem proposta
5. Resultados e discursões
6. Conclusão
4
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
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
Agenda
1. Introdução
2. Problema
3. Como o problema é tratado?
4. Abordagem proposta
5. Resultados e discursões
6. Conclusão
7
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
Agenda
1. Introdução
2. Problema
3. Como o problema é tratado?
4. Abordagem proposta
5. Resultados e discursões
6. Conclusão
9
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
Agenda
1. Introdução
2. Problema
3. Como o problema é tratado?
4. Abordagem proposta
5. Resultados e discursões
6. Conclusão
11
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
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
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
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
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
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
4. Abordagem proposta
• As fases de treinamento e classificação NB são
evidenciadas no Algoritmo 1.
18
4. Abordagem proposta
• Fase de Treinamento:
19
4. Abordagem proposta
• Fase de Teste:
20
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.
22
Figura . Computação e transferências de dados em GPU-NB.
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.
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
Agenda
1. Introdução
2. Problema
3. Como o problema é tratado?
4. Abordagem proposta
5. Resultados e discursões
6. Conclusão
25
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
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
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
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
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.
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.
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%
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).
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 .
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.
Agenda
1. Introdução
2. Problema
3. Como o problema é tratado?
4. Abordagem proposta
5. Resultados e discursões
6. Conclusão
36
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
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
Agenda
1. Introdução
2. Problema
3. Como o problema é tratado?
4. Abordagem proposta
5. Resultados e discursões
6. Conclusão
39
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
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

Mais conteúdo relacionado

Semelhante a Defesa de Artigo: "GPU-NB: A Fast CUDA -based Implementation of Naive Bayes"

KNN - CUDA - Categorizador de rótulos automatizado
KNN - CUDA - Categorizador de rótulos automatizadoKNN - CUDA - Categorizador de rótulos automatizado
KNN - CUDA - Categorizador de rótulos automatizadoRichiely Paiva
 
apresentacao_metricas_avaliacao_persistencia_de_dados.pdf
apresentacao_metricas_avaliacao_persistencia_de_dados.pdfapresentacao_metricas_avaliacao_persistencia_de_dados.pdf
apresentacao_metricas_avaliacao_persistencia_de_dados.pdfLorramNascimento
 
Java Style Grading
Java Style Grading Java Style Grading
Java Style Grading Natã Melo
 
Servidor com processamento paralelo utilizando CUDA aplicado em uma urna elet...
Servidor com processamento paralelo utilizando CUDA aplicado em uma urna elet...Servidor com processamento paralelo utilizando CUDA aplicado em uma urna elet...
Servidor com processamento paralelo utilizando CUDA aplicado em uma urna elet...DouglasAmmirantedaCu
 
Espaço incremental para a mineração visual de conjuntos dinâmicos de documentos
Espaço incremental para a mineração visual de conjuntos dinâmicos de documentosEspaço incremental para a mineração visual de conjuntos dinâmicos de documentos
Espaço incremental para a mineração visual de conjuntos dinâmicos de documentosRoberto de Pinho
 
Paralelização de Algoritmo do Produto Escalar
Paralelização de Algoritmo do Produto EscalarParalelização de Algoritmo do Produto Escalar
Paralelização de Algoritmo do Produto EscalarWendel Oliveira
 
Benchmarking para sistemas de alto desempenho
Benchmarking para sistemas de alto desempenhoBenchmarking para sistemas de alto desempenho
Benchmarking para sistemas de alto desempenhoIntel Software Brasil
 
Artigo - PROJETO DE UM HARDWARE ACELERADOR DO ALGORITMO DE DISTÂNCIA EUCLIDIA...
Artigo - PROJETO DE UM HARDWARE ACELERADOR DO ALGORITMO DE DISTÂNCIA EUCLIDIA...Artigo - PROJETO DE UM HARDWARE ACELERADOR DO ALGORITMO DE DISTÂNCIA EUCLIDIA...
Artigo - PROJETO DE UM HARDWARE ACELERADOR DO ALGORITMO DE DISTÂNCIA EUCLIDIA...GiovanniGuimares2
 
Sistemas Inteligentes para Textos da Web
Sistemas Inteligentes para Textos da WebSistemas Inteligentes para Textos da Web
Sistemas Inteligentes para Textos da WebFernando Hideo Fukuda
 
EfficientDet__Scalable_and_Efficient_Object_Detection.pdf
EfficientDet__Scalable_and_Efficient_Object_Detection.pdfEfficientDet__Scalable_and_Efficient_Object_Detection.pdf
EfficientDet__Scalable_and_Efficient_Object_Detection.pdfpaulovictor729520
 
Plano de Projeto - Gerencia de Projetos
Plano de Projeto - Gerencia de ProjetosPlano de Projeto - Gerencia de Projetos
Plano de Projeto - Gerencia de ProjetosHelder Filho
 
TDC2016SP - Trilha Data Science
TDC2016SP - Trilha Data ScienceTDC2016SP - Trilha Data Science
TDC2016SP - Trilha Data Sciencetdc-globalcode
 
Aula 1 - Estudando o problema a ser resolvido
Aula 1 - Estudando o problema a ser resolvidoAula 1 - Estudando o problema a ser resolvido
Aula 1 - Estudando o problema a ser resolvidoEduardo de Lucena Falcão
 
Analise de desempenho_compactadores_asti_2011
Analise de desempenho_compactadores_asti_2011Analise de desempenho_compactadores_asti_2011
Analise de desempenho_compactadores_asti_2011Saulo Marques
 

Semelhante a Defesa de Artigo: "GPU-NB: A Fast CUDA -based Implementation of Naive Bayes" (20)

KNN - CUDA - Categorizador de rótulos automatizado
KNN - CUDA - Categorizador de rótulos automatizadoKNN - CUDA - Categorizador de rótulos automatizado
KNN - CUDA - Categorizador de rótulos automatizado
 
Analise Algoritmos
Analise AlgoritmosAnalise Algoritmos
Analise Algoritmos
 
apresentacao_metricas_avaliacao_persistencia_de_dados.pdf
apresentacao_metricas_avaliacao_persistencia_de_dados.pdfapresentacao_metricas_avaliacao_persistencia_de_dados.pdf
apresentacao_metricas_avaliacao_persistencia_de_dados.pdf
 
Apresentacao curso-2017-08-08
Apresentacao curso-2017-08-08Apresentacao curso-2017-08-08
Apresentacao curso-2017-08-08
 
Relatorio base so
Relatorio base soRelatorio base so
Relatorio base so
 
Java Style Grading
Java Style Grading Java Style Grading
Java Style Grading
 
Classificador de Documentos Naïve Bayes
Classificador de Documentos Naïve BayesClassificador de Documentos Naïve Bayes
Classificador de Documentos Naïve Bayes
 
Servidor com processamento paralelo utilizando CUDA aplicado em uma urna elet...
Servidor com processamento paralelo utilizando CUDA aplicado em uma urna elet...Servidor com processamento paralelo utilizando CUDA aplicado em uma urna elet...
Servidor com processamento paralelo utilizando CUDA aplicado em uma urna elet...
 
Espaço incremental para a mineração visual de conjuntos dinâmicos de documentos
Espaço incremental para a mineração visual de conjuntos dinâmicos de documentosEspaço incremental para a mineração visual de conjuntos dinâmicos de documentos
Espaço incremental para a mineração visual de conjuntos dinâmicos de documentos
 
Paralelização de Algoritmo do Produto Escalar
Paralelização de Algoritmo do Produto EscalarParalelização de Algoritmo do Produto Escalar
Paralelização de Algoritmo do Produto Escalar
 
Benchmarking para sistemas de alto desempenho
Benchmarking para sistemas de alto desempenhoBenchmarking para sistemas de alto desempenho
Benchmarking para sistemas de alto desempenho
 
Artigo - PROJETO DE UM HARDWARE ACELERADOR DO ALGORITMO DE DISTÂNCIA EUCLIDIA...
Artigo - PROJETO DE UM HARDWARE ACELERADOR DO ALGORITMO DE DISTÂNCIA EUCLIDIA...Artigo - PROJETO DE UM HARDWARE ACELERADOR DO ALGORITMO DE DISTÂNCIA EUCLIDIA...
Artigo - PROJETO DE UM HARDWARE ACELERADOR DO ALGORITMO DE DISTÂNCIA EUCLIDIA...
 
Sistemas Inteligentes para Textos da Web
Sistemas Inteligentes para Textos da WebSistemas Inteligentes para Textos da Web
Sistemas Inteligentes para Textos da Web
 
EfficientDet__Scalable_and_Efficient_Object_Detection.pdf
EfficientDet__Scalable_and_Efficient_Object_Detection.pdfEfficientDet__Scalable_and_Efficient_Object_Detection.pdf
EfficientDet__Scalable_and_Efficient_Object_Detection.pdf
 
Node JS - Parte 1
Node JS - Parte 1Node JS - Parte 1
Node JS - Parte 1
 
Plano de Projeto - Gerencia de Projetos
Plano de Projeto - Gerencia de ProjetosPlano de Projeto - Gerencia de Projetos
Plano de Projeto - Gerencia de Projetos
 
TDC2016SP - Trilha Data Science
TDC2016SP - Trilha Data ScienceTDC2016SP - Trilha Data Science
TDC2016SP - Trilha Data Science
 
Plano deprojeto grupo1
Plano deprojeto grupo1Plano deprojeto grupo1
Plano deprojeto grupo1
 
Aula 1 - Estudando o problema a ser resolvido
Aula 1 - Estudando o problema a ser resolvidoAula 1 - Estudando o problema a ser resolvido
Aula 1 - Estudando o problema a ser resolvido
 
Analise de desempenho_compactadores_asti_2011
Analise de desempenho_compactadores_asti_2011Analise de desempenho_compactadores_asti_2011
Analise de desempenho_compactadores_asti_2011
 

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
  • 3. Agenda 1. Introdução 2. Problema 3. Como o problema é tratado? 4. Abordagem proposta 5. Resultados e discursões 6. Conclusão 3
  • 4. Agenda 1. Introdução 2. Problema 3. Como o problema é tratado? 4. Abordagem proposta 5. Resultados e discursões 6. Conclusão 4
  • 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
  • 7. Agenda 1. Introdução 2. Problema 3. Como o problema é tratado? 4. Abordagem proposta 5. Resultados e discursões 6. Conclusão 7
  • 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
  • 9. Agenda 1. Introdução 2. Problema 3. Como o problema é tratado? 4. Abordagem proposta 5. Resultados e discursões 6. Conclusão 9
  • 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
  • 11. Agenda 1. Introdução 2. Problema 3. Como o problema é tratado? 4. Abordagem proposta 5. Resultados e discursões 6. Conclusão 11
  • 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
  • 19. 4. Abordagem proposta • Fase de Treinamento: 19
  • 20. 4. Abordagem proposta • Fase de Teste: 20
  • 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.
  • 22. 22 Figura . Computação e transferências de dados em GPU-NB.
  • 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
  • 25. Agenda 1. Introdução 2. Problema 3. Como o problema é tratado? 4. Abordagem proposta 5. Resultados e discursões 6. Conclusão 25
  • 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.
  • 36. Agenda 1. Introdução 2. Problema 3. Como o problema é tratado? 4. Abordagem proposta 5. Resultados e discursões 6. Conclusão 36
  • 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
  • 39. Agenda 1. Introdução 2. Problema 3. Como o problema é tratado? 4. Abordagem proposta 5. Resultados e discursões 6. Conclusão 39
  • 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