scaling bayesian network parameter learning with hadoop
TRANSCRIPT
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
AGENDA
• Abstract
• Introduction
• MapReduce - Hadoop
• Sequential EM
• MapReduce EM
• MapReduce para EM
• Experiments On Hadoop And Discussion
• Conclusion
• Critical Analysis
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
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.
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
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.
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.
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.
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.
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
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):
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.
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:
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.
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.
EXPERIMENTS ON HADOOP AND
DISCUSSION
Análises:
Variando os parâmetros do 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
EXPERIMENTS ON HADOOP AND
DISCUSSION
Análises:
Variando o volume de dados:
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.
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.
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.
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.
https://github.com/jgabriellima/HadoopBNEM
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
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