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

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

description

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).

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

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

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 LimaAndrew EdbergRodrigo Lisbôa

Professor:Dr. Ádamo Santana

Disciplina:Inteligência Computacional

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

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

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

Agenda

1. Introdução

2. Problema

3. Como o problema é tratado?

4. Abordagem proposta

5. Resultados e discursões

6. Conclusão

3

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

Agenda

1. Introdução

2. Problema

3. Como o problema é tratado?

4. Abordagem proposta

5. Resultados e discursões

6. Conclusão

4

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

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

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

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

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

Agenda

1. Introdução

2. Problema

3. Como o problema é tratado?

4. Abordagem proposta

5. Resultados e discursões

6. Conclusão

7

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

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

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

Agenda

1. Introdução

2. Problema

3. Como o problema é tratado?

4. Abordagem proposta

5. Resultados e discursões

6. Conclusão

9

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

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

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

Agenda

1. Introdução

2. Problema

3. Como o problema é tratado?

4. Abordagem proposta

5. Resultados e discursões

6. Conclusão

11

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

4. Abordagem proposta

• Arquitetura Compute Unified Device Architecture e GPU:

12Figura. Arquitetura simplificada das GPUs NVIDIA com suporte à CUDA.

Figura. GPU – Acesso à memória.

Núcleo CUDA:SP: Processadores Compartilhados

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

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

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

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

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

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

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

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 todosos termos em documentos da classe ci.

Número de ocorrências de aj na classe ci.

Consiste na adição de 1, nonumerador e no denominador.

Vocabulário

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

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

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

4. Abordagem proposta

• As fases de treinamento e classificação NB são

evidenciadas no Algoritmo 1.

18

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

4. Abordagem proposta

• Fase de Treinamento:

19

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

4. Abordagem proposta

• Fase de Teste:

20

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

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 documentosem que cada termo aparece.

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

22Figura . Computação e transferências de dados em GPU-NB.

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

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.

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

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

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

Agenda

1. Introdução

2. Problema

3. Como o problema é tratado?

4. Abordagem proposta

5. Resultados e discursões

6. Conclusão

25

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

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

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

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

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

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

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

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

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

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.

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

5. Resultados e discussões

31

Percentual da diferença daimplementação da GPU-NB e daimplementação do Naive Bayes na CPU.

Diferença Não significativa.

Diferença significativa.

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

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%

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

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).

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

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 .

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

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, atingemos maiores speedups.

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

Agenda

1. Introdução

2. Problema

3. Como o problema é tratado?

4. Abordagem proposta

5. Resultados e discursões

6. Conclusão

36

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

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

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

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

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

Agenda

1. Introdução

2. Problema

3. Como o problema é tratado?

4. Abordagem proposta

5. Resultados e discursões

6. Conclusão

39

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

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

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

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 LimaAndrew EdbergRodrigo Lisbôa

Professor:Dr. Ádamo Santana

Disciplina:Inteligência Computacional