scaling bayesian network parameter learning with hadoop

28
ACCELERATING BAYESIAN NETWORK PARAMETER LEARNING USING HADOOP AND MAPREDUCE SCALING BAYESIAN NETWORK PARAMETER LEARNING WITH EXPECTATION MAXIMIZATION USING MAPREDUCE MAPREDUCE FOR BAYESIAN NETWORK PARAMETER LEARNING USING THE EM ALGORITHM ANIRUDDHA BASAK, IRINA BRINSTER, XIANHENG MA, OLE J. MENGSHOEL, ERIK B. REED J. Gabriel Lima [email protected]

Upload: joao-gabriel-lima

Post on 11-Jun-2015

286 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Scaling bayesian network parameter learning with Hadoop

ACCELERATING BAYESIAN NETWORK PARAMETER

LEARNING USING HADOOP AND MAPREDUCE

SCALING BAYESIAN NETWORK PARAMETER LEARNING

WITH EXPECTATION MAXIMIZATION USING MAPREDUCE

MAPREDUCE FOR BAYESIAN NETWORK PARAMETER

LEARNING USING THE EM ALGORITHM

ANIRUDDHA BASAK, IRINA BRINSTER, XIANHENG

MA, OLE J. MENGSHOEL, ERIK B. REED

J. Gabriel Lima

[email protected]

Page 2: Scaling bayesian network parameter learning with Hadoop

AGENDA

• Abstract

• Introduction

• MapReduce - Hadoop

• Sequential EM

• MapReduce EM

• MapReduce para EM

• Experiments On Hadoop And Discussion

• Conclusion

• Critical Analysis

Page 3: Scaling bayesian network parameter learning with Hadoop

ABSTRACT

• Fazer a aprendizagem de tabelas de probabilidade condicional de

uma grande Rede Bayesiana(RB) utilizando o Algoritmo EM é uma

atividade muito intensiva computacionalmente.

• Há pelo menos 2 pontos críticos:

• Tamanho do conjunto de dados

• Recursos de memória para armazenamento e/ou processamento

• Aplica-se neste trabalho a computação distribuída, usando-se o

processo de MapReduce

• Aprender os parâmetros da RB com dados completos e imcompletos

• Foram utilizados a aprendizagem de parâmetros tradicional (dados

completos) e através do EM (dados incompletos)

• Neste trabalho analisou-se a velocidade obtida a partir da

comparação de várias RB’s obtidas em diversos cenários

computacionais

Page 4: Scaling bayesian network parameter learning with Hadoop

INTRODUCTION

• Aprendizagem de parâmetros em RB é uma atividade muito intensiva.

• O tamanho da tabela aumenta exponencialmente de acordo com os pais da

RB e a dimensão dos dados de entrada

• Aprendizagem sequencial para grandes e complexas RB torna-se difícil,

mesmo em casos com dados completos

• Para dados incompletos o fator limitante é a inferência – cálculo a posteriori de

todas as instancias de variáveis e seus respectivos pais

• O EM (Expectation Maximization) é um algoritmo iterativo que permite o

aprendizado de modelos estatísticos de dados com valores ausentes.

• É uma poderosa técnica, uma vez que garante convergência para um máximo

local da função de log-verossimilhança (log-likelihood function)

• EM tornou-se o algoritmo de eleição em muitas áreas: em aprendizagem de

máquina e visão computacional, para agrupamento de genes, identificação de

proteínas em biologia computacional e alinhamento por palavra em tradução

automática.

Page 5: Scaling bayesian network parameter learning with Hadoop

INTRODUCTION

• Este trabalho trata da aplicação do MapReduce, utilizando o Hadoop, para a

aprendizagem a partir de dados completos e incompletos.

• Foi implementado uma bayesiana tradicional e o algortimo EM no Hadoop

para acelerar a aprendizagem parâmetro, utilizando uma ampla gama de

tamanhos de dados de entrada

Page 6: Scaling bayesian network parameter learning with Hadoop

MAPREDUCE - HADOOP

MapReduce é um framework para programação distribuída

computação em grandes conjuntos de dados, que foi introduzido

pelo Google em 2004.

É uma abstração que permite aos usuários criar facilmente

aplicações paralelas ao esconder os detalhes da distribuição de

dados, balanceamento de carga e tolerância a falhas.

MapReduce requer decomposição de um algoritmo em mapear e

reduzir medidas.

Page 7: Scaling bayesian network parameter learning with Hadoop

MAPREDUCE - HADOOP

Hadoop, uma implementação de MapReduce, fornece um quadro

de distribuição dos dados e para MapReduce em um grande

número de nós de cluster ou máquinas. Ele é baseado na

arquitetura master / slave.

O servidor mestre único, conhecido como JobTracker, recebe

uma atribuição de trabalho do usuário, distribui o ‘mapa’ e ‘reduz’

as tarefas para nós escravos (tasktrackers) e monitora seu

processo de armazenamento(Hadoop Distributed File System –

HDFS) e distribuição de dados para nós escravos.

Page 8: Scaling bayesian network parameter learning with Hadoop

SEQUENTIAL EM (SEM)

Neste trabalho, foi implementado o algoritmo básico EM para

aprendizagem de parâmetros de redes Bayesianas com distribuição da

tabela de probabilidade condicional(CPD).

Em SEM, dada a estrutura de BN, a sua decomposição árvore de junção,

e um número de incompleto registros de dados, queremos determinar a

distribuição de probabilidade (parâmetros BN), que é mais provável de

produzir os dados observados.

SEM é um algoritmo iterativo que alterna entre dois passos:

• O cálculo se inicia com a estimativa inicial de parâmetros. Na etapa de

expectativa, usamos os parâmetros atuais para calcular as estatísticas.

Dado cada registro de dados e cada família, calcula-se a distribuição de

probabilidade usando propagação por árvore junção como o nosso

motor de inferência.

Page 9: Scaling bayesian network parameter learning with Hadoop

MAP-REDUCED EM (MREM)

Decomposição do EM básico utilizando algoritmo MapReduce.

Uma vez que todos os registos dos dados de entrada são independentes um

do outro para o cálculo das estatísticas, eles podem ser processados em

paralelo. Os registros de entrada podem ser divididos entre vários Mappers,

cada um executando o E-Step . O M-step é realizada sobre os Reducers.

E- Step: Cada mapper toma como entrada a estrutura da RB, a estimativa

atual de parâmetros t, a decomposição da JT, e os dados incompletos D. Um

contador acompanha o passo acumulando a contagem dos registros de

entrada para [xi, Xi]. PARA TODAS AS COMBINAÇÕES POSSÍVEIS ENTRE

OS ESTADOS DOS PAIS COM OS FILHOS

Uma vez que o mapeador processa todos os registros atribuídos a ele, ele

emite um par chave-valor intermediário para cada entrada de mapa de hash.

Esta chave intermediária garante que todas as variáveis com os mesmos

pais são agrupados e transformados em uma mesma tarefa de redução.

Page 10: Scaling bayesian network parameter learning with Hadoop

MAP-REDUCED EM (MREM)

M-Step: Percorre todos os valores com a mesma chave obtidos na

etapa anterior, analisa o valor, em que as chaves correspondem a pai-

filho com suas combinações e seus estados, e os valores

correspondem a contagem.

Os valores são somadas para obter a contagem de pai.

Por fim, cada função reduce emite uma saída par chave-valor para cada

entrada do map

Page 11: Scaling bayesian network parameter learning with Hadoop
Page 12: Scaling bayesian network parameter learning with Hadoop

EXPERIMENTS ON HADOOP AND

DISCUSSION

Os experimentos foram feitos com três tipos de nós distribuídos:

pequena, média e grande instância.

As implementações foram testadas em uma série de RB

complexas, a partir de diferentes domínios (dados da NASA ,

Sistemas de Energia Elétrica e outros benchmarks):

Page 13: Scaling bayesian network parameter learning with Hadoop

EXPERIMENTS ON HADOOP AND

DISCUSSION

Nas análises do MREM , podemos calcular a velocidade do

algoritmo com base na iteração por tempo de execução, que é

medido como a média de 10 iterações do algoritmo EM.

Todos os algoritmos foram implementados em Java, utilizando-se

da arquitetura em Cloud da Amazon EC2, sem o uso de serviços

dedicados e a Amazon S3 para armazenamento dos arquivos de

dados.

Page 14: Scaling bayesian network parameter learning with Hadoop
Page 15: Scaling bayesian network parameter learning with Hadoop

EXPERIMENTS ON HADOOP AND

DISCUSSION

Análises:

Variando o tamanho da RB e quantidade de registros:

Variou-se o tamanho do conjunto de dados, usando 10K, 50K, 100K, 500K

e 1.000K amostras de treinamento, para treinar cada RB.

Usando-se um single-node, é evidente que o aumento do tamanho da

base de dados aumenta o tempo de processamento:

Page 16: Scaling bayesian network parameter learning with Hadoop

EXPERIMENTS ON HADOOP AND

DISCUSSION

Análises:

Variando o número de nós do Hadoop:

Para cada BN do mesmo tamanho treinamento, varia-se o número de nós

para paralelizar o algoritmo.

Este experimento é executado em Amazon Elastic MapReduce, e os dados

de treinamento são armazenados no Amazon S3.

Assim, o desempenho do MapReduce é afetado por alguns fatores

externos, tais como a rede, largura de banda entre o Amazon S3 e o

Amazon EC2.

Para pequenas quantidades de dados, os ganhos não são tão evidentes,

entretanto, para grandes conjuntos de dados verifica-se uma diminuição

significativa em relação ao tempo de processamento quando

acrescentam-se outros nós no Hadoop.

Page 17: Scaling bayesian network parameter learning with Hadoop
Page 18: Scaling bayesian network parameter learning with Hadoop

EXPERIMENTS ON HADOOP AND

DISCUSSION

Análises:

Variando os parâmetros do Hadoop:

O desempenho está relacionado a qualidade dos seus parâmetros.

Ao aumentar o número de Maps de 1 a 10, a uma redução no

tempo de execução em relação ao tempo médio do Map. No

entanto quando o numero de tarefas Map é aumentada de 20 a 100,

mesmo que o tempo médio gasto no Map diminua, o tempo total

de execução não diminui ou mesmo aumenta. Isso acontece pois

aumentar o número de operadores Map, leva a um excesso de

divisão dos dados, impactando diretamente no tempo de

execução.

Page 19: Scaling bayesian network parameter learning with Hadoop

EXPERIMENTS ON HADOOP AND

DISCUSSION

Análises:

Variando os parâmetros do Hadoop:

Page 20: Scaling bayesian network parameter learning with Hadoop

EXPERIMENTS ON HADOOP AND

DISCUSSION

Análises:

Variando o volume de dados:

Comparar os EM seqüenciais e MREM para registos de entrada

variando de 1 a 1000 K.

Ambos os algoritmos são executado em pequenas instâncias do

Amazon EC2. Para MREM, 4 nós mapper da mesma instância

foram utilizados.

A aceleração alcançada pelo MREM para pequenos conjuntos de

dados é tipicamente menor devido a sobrecarga de MapReduce

Percebeu-se melhorias no uso do MREM aumentando-se o número

de registros

Page 21: Scaling bayesian network parameter learning with Hadoop

EXPERIMENTS ON HADOOP AND

DISCUSSION

Análises:

Variando o volume de dados:

Page 22: Scaling bayesian network parameter learning with Hadoop

EXPERIMENTS ON HADOOP AND

DISCUSSION

Análises:

Análise das instâncias do Cluster:

Foram investigadas os tipos de instância que melhor se adaptam entre

as pequenos, médios e grandes casos

Pequeno: 16 pequenos nós de computação,

Médio: 8 de média nós de computação

Grande: 4 grandes nós de computação.

Em quase todos os casos, o desempenho é melhor no uso do tipo

Médio de instância.

Page 23: Scaling bayesian network parameter learning with Hadoop

EXPERIMENTS ON HADOOP AND

DISCUSSION

Análises:

Análise das instâncias do Cluster:

Foram investigadas os tipos de

instância que melhor se adaptam entre

as pequenos, médios e grandes casos

Pequeno: 16 pequenos nós de

computação,

Médio: 8 de média nós de computação

Grande: 4 grandes nós de computação.

Em quase todos os casos, o

desempenho é melhor no uso do tipo

Médio de instância.

Page 24: Scaling bayesian network parameter learning with Hadoop

CONCLUSION

Neste trabalho, foi feita uma análise da computação de RB de modo

distribuído utilizando MapReduce com o Hadoop rodando em uma Cloud

na infra-estrutura da Amazon.

A Execução do EM sequencial para aprender os parâmetros da rede T2

ADAPT de 100 mil registros de dados leva em torno de 2 horas e 30

minutos em cada iteração.

O uso de do MREM para a mesma tarefa, em um cluster do Amazon EC2

com cinco grandes nós de computação, leva apenas 15 minutos para

cada iteração.

Além disso, descobrimos que usar o MapReduce para aprendizagem de

parâmetros não depende apenas do tamanho dos dados de entrada (tal

como é bem conhecido), mas também do tamanho e da estrutura da rede.

De modo mais geral, este trabalho melhora a compreensão de como

otimizar o uso de MapReduce e Hadoop quando aplicado à tarefa

importante BN parâmetro de aprendizagem.

Page 25: Scaling bayesian network parameter learning with Hadoop

CRITICAL ANALYSIS

• O autor inova em analisar tecnicamente uma arquitetura de

Cloud para um algoritmo de DM

• O uso de um banco de dados não-relacional que rode sobre o

Hadoop facilitaria a aplicação do algoritmo.

• Conceitos de DW

O autor utiliza bases de dados estáticas que não precisam ser

analisadas em tempo real.

• Extrair a etapa de MapReduce de dentro do algoritmo e

executá-lo em uma etapa anterior

• Como foi analisado que o tempo de processamento pode ser

afetado pelo número de Maps, essa ‘alocação’ de maps

poderia ser dinâmica, variando de acordo com os demais

parâmetros em tempo de execução.

Page 26: Scaling bayesian network parameter learning with Hadoop

https://github.com/jgabriellima/HadoopBNEM

Page 27: Scaling bayesian network parameter learning with Hadoop

TRABALHOS COMPLEMENTARES

Accelerating Bayesian Network Parameter Learning Using Hadoop and

MapReduce

Aniruddha Basak, Irina Brinster, Xianheng Ma, Ole J. Mengshoel

Carnegie Mellon University. Silicon Valley Campus. NASA Research Park

Scaling Bayesian Network Parameter Learning with Expectation

Maximization using MapReduce

Erik B. Reed, Ole J. Mengshoel

MapReduce for Bayesian Network Parameter Learning using the EM

Algorithm

Aniruddha Basak, Irina Brinster, Ole J. Mengshoel

Page 28: Scaling bayesian network parameter learning with Hadoop

ACCELERATING BAYESIAN NETWORK PARAMETER

LEARNING USING HADOOP AND MAPREDUCE

SCALING BAYESIAN NETWORK PARAMETER LEARNING

WITH EXPECTATION MAXIMIZATION USING MAPREDUCE

MAPREDUCE FOR BAYESIAN NETWORK PARAMETER

LEARNING USING THE EM ALGORITHM

ANIRUDDHA BASAK, IRINA BRINSTER, XIANHENG

MA, OLE J. MENGSHOEL, ERIK B. REED

J. Gabriel Lima

[email protected]